diff --git a/hpvm/docs/hpvm-specification.md b/hpvm/docs/hpvm-specification.md index 2a1b1305a27c60ba65886d3ee984d5b2ec402b15..57e7fe65efc6b94c5ac3e1faedc027d555706463 100644 --- a/hpvm/docs/hpvm-specification.md +++ b/hpvm/docs/hpvm-specification.md @@ -98,7 +98,7 @@ Bind output ```oc``` of child node ```N``` to output ```op``` of current node. ` The following intrinsics are used to query the structure of the DFG. They can only be used by leaf nodes. ```i8* llvm.hpvm.getNode()``` -Return a handle to the current dataflow node. +Return a handle to the current leaf node. ```i8* llvm.hpvm.getParentNode(i8* N)``` Return a handle to the parent in the hierarchy of node ```N```. @@ -121,28 +121,28 @@ Allocate a block of memory of size ```nBytes``` and return pointer to it. The al *Note that the pointer returned must somehow be communicated explicitly for use by other nodes.* ```i32 llvm.hpvm.atomic.add(i8* m, i32 v)``` -Atomically computes the bitwise ADD of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise ADD of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.sub(i8* m, i32 v)``` -Atomically computes the bitwise SUB of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise SUB of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.min(i8* m, i32 v)``` -Atomically computes the bitwise MIN of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise MIN of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.max(i8* m, i32 v)``` -Atomically computes the bitwise MAX of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise MAX of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.xchg(i8* m, i32 v)``` -Atomically computes the bitwise XCHG of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise XCHG of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.and(i8* m, i32 v)``` -Atomically computes the bitwise AND of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise AND of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.or(i8* m, i32 v)``` -Atomically computes the bitwise XOR of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise XOR of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```i32 llvm.hpvm.atomic.xor(i8* m, i32 v)``` -Atomically computes the bitwise XOR of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise XOR of ```v``` and the value stored at memory location ```[m]``` w.r.t. the dynamic instances of the current leaf node and stores the result back into ```[m]```. Returns the value previously stored at ```[m]```. ```void llvm.hpvm.barrier()``` Local synchronization barrier across dynamic instances of current leaf node.