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.