{-# OPTIONS_HADDOCK hide #-} -- | -- Module : LLVM.AST.Type.Instruction.Volatile -- Copyright : [2016..2017] Trevor L. McDonell -- License : BSD3 -- -- Maintainer : Trevor L. McDonell -- Stability : experimental -- Portability : non-portable (GHC extensions) -- module LLVM.AST.Type.Instruction.Volatile where -- | Loads and stores may be marked as 'volatile'. The LLVM optimiser will not -- change the number of volatile operations or their order with respect to other -- volatile operations, but may change the order of volatile operations relative -- to non-volatile operations. -- -- Note that in LLVM IR, volatility and atomicity are orthogonal; 'volatile' has -- no cross-thread synchronisation behaviour. -- -- -- data Volatility = Volatile | NonVolatile