Section courante

A propos

Section administrative du site

atomicrmw

Modification atomique
LLVM

Syntaxe

atomicrmw [volatile] operation ty* pointer, ty value [syncscope("target-scope")] ordering

Paramètres

Nom Description
volatile Ce paramètre permet d'indiquer que l'accès mémoire ne peut pas être supprimé ni réordonné par l'optimiseur. Utile pour les accès mémoire ayant des effets secondaires non modélisables.
operation Ce paramètre permet d'indiquer que l'opération atomique à effectuer.
ty Ce paramètre permet d'indiquer un pointeur vers la variable en mémoire à modifier. Le type ty* doit être un pointeur vers un entier ou un pointeur.
value Ce paramètre permet d'indiquer la valeur utilisée dans l'opération (exemple ajoutée, soustraite, comparée,...). Doit avoir le même type que la valeur pointée.
target-scope Ce paramètre permet d'indiquer l'étendue de synchronisation (exemple] "singlethread" pour une synchronisation intra-thread seulement). Si omis, c'est l'étendue par défaut de la cible.
ordering Ce paramètre permet d'indiquer le modèle mémoire utilisé (exemple monotonic, acquire, release, seq_cst). Définit la manière dont l'accès est vu par les autres processus léger.

Description

Cette instruction permet de modifier de manière atomique la mémoire.



Dernière mise à jour : Jeudi, le 13 juin 2019