diff --git a/hpvm/docs/hpvm-c.md b/hpvm/docs/hpvm-c.md index 2d377016e4a7e463b27cf1dfa9573d2622ac856d..6f0c01d3284b8dfef70daf0fd0f7222c80208ca7 100644 --- a/hpvm/docs/hpvm-c.md +++ b/hpvm/docs/hpvm-c.md @@ -76,38 +76,32 @@ Returns the dynamic ID of the current instance of node ```N``` in the x, y, or z ```long __hpvm__getNumNodeInstances_{x,y,z}(void* N)``` Returns the number of dynamic instances of node ```N``` in the x, y, or z dimension respectively. The dimension must be one of the dimensions in which the node is replicated. -```void __hpvm__barrier()``` -Local synchronization barrier across dynamic instances of current leaf node. - ```void* __hpvm__malloc(long nBytes)``` -Allocate a block of memory of size ```nBytes``` and returns a pointer to it. The allocated object can be shared by all nodes, although the pointer returned must somehow be communicated explicitly for use by other nodes. +Allocate a block of memory of size ```nBytes``` and returns a pointer to it. The allocated object can be shared by all nodes. *Note that the returned pointer must somehow be communicated explicitly for use by other nodes.* ```int __hpvm__atomic_add(int* m, int v)``` -Atomically adds ```v``` to the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically adds ```v``` to 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]```. ```int __hpvm__atomic_sub(int* m, int v)``` -Atomically subtracts ```v``` from the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. - -```int __hpvm__atomic_xchg(int* m, int v)``` -Atomically swaps ```v``` with the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. - -```int __hpvm__atomic_inc(int* m)``` -Atomically increments the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. - -```int __hpvm__atomic_dec(int* m)``` -Atomically decrements the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically subtracts ```v``` from 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]```. ```int __hpvm__atomic_min(int* m, int v)``` -Atomically computes the min of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the 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]```. ```int __hpvm__atomic_max(int* m, int v)``` -Atomically computes the max of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the 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]```. + +```int __hpvm__atomic_xchg(int* m, int v)``` +Atomically swaps ```v``` with 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]```. ```int __hpvm__atomic_and(int* m, int 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]```. ```int __hpvm__atomic_or(int* m, int v)``` -Atomically computes the bitwise OR of ```v``` and the value stored at memory location ```[m]```. Returns the value previously stored at ```[m]```. +Atomically computes the bitwise OR 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]```. ```int __hpvm__atomic_xor(int* m, int 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 __hpvm__barrier()``` +Local synchronization barrier across dynamic instances of current leaf node.