compiler: add SEQ_CST fence support
In addition to existing Acquire/Release fences, this commit adds SEQ_CST fence support to GHC, allowing Cmm code to explicitly emit a fence that enforces total memory ordering. The following logic is added: - The MO_SeqCstFence callish MachOp - The %prim fence_seq_cst() Cmm syntax and the SEQ_CST_FENCE macro in Cmm.h - MO_SeqCstFence lowering logic in every single GHC codegen backend
Showing
- compiler/GHC/Cmm/MachOp.hs 1 addition, 0 deletionscompiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Parser.y 2 additions, 0 deletionscompiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs 1 addition, 0 deletionscompiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs 3 additions, 0 deletionscompiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs 1 addition, 0 deletionscompiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs 1 addition, 1 deletioncompiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs 3 additions, 0 deletionscompiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs 5 additions, 0 deletionscompiler/GHC/CmmToLlvm/CodeGen.hs
- rts/include/Cmm.h 1 addition, 0 deletionsrts/include/Cmm.h
Loading
Please register or sign in to comment