diff --git a/hpvm/docs/hpvm-specification.md b/hpvm/docs/hpvm-specification.md index 20ed00a5a1f0f14ba713ffcd59be314b49e1906c..a5c744d7be41352b183df1cc48aa5be0a26c261b 100644 --- a/hpvm/docs/hpvm-specification.md +++ b/hpvm/docs/hpvm-specification.md @@ -183,5 +183,5 @@ Pop and return data from streaming DFG with handle ```GraphID```. ## Implementation Limitations Due to limitations of our current prototype implementation, the following restrictions are imposed: -- In HPVM, a memory object is represented as a combination of a pointer to a memory location and the size of the pointed-to object. Therefore, when an edge/bind carries a pointer to an input location, then the edge/bind incoming to the next input location is required to transfer a value of type i64 containing the size, in bytes, of the transferred memory object represented by the pointer-size pair. -- Pointers cannot be transferred between nodes using dataflow edges. Instead, they may be passed using the bind operation from the (common) parent of the source and sink nodes. +- In HPVM, a memory object is represented as a (pointer, size) pair that includes the address of memory object, and the size (in bytes) of the pointed-to object. Therefore, when an edge/bind carries a pointer, it must be followed by an i64 size value. +- Pointers cannot be transferred between nodes using dataflow edges. Instead, they should be passed using the bind operation from the (common) parent of the source and sink nodes.