Go to the source code of this file.
◆ AMO_CASES
Value:
CASE(AMSWAP, W) \
CASE(AMADD, W) \
CASE(AMAND, W) \
CASE(AMOR, W) \
CASE(AMXOR, W) \
CASE(AMMAX, W) \
CASE(AMMAX, WU) \
CASE(AMMAX, DU) \
CASE(AMMIN, W) \
CASE(AMMIN, WU) \
CASE(AMMIN, DU) \
CASE(AMCAS, W) \
#define CASE(ATTRNAME, AANAME,...)
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
Definition at line 51 of file LoongArchMemoryBarrierOpt.cpp.
◆ CASE
| #define CASE |
( |
| Name, |
|
|
| Suffix ) |
Value: case LoongArch::Name##
_##Suffix: \
return std::nullopt; \
[[fallthrough]]; \
case LoongArch::Name##__DB_##Suffix: \
return LoongArch::Name##__DB_##Suffix;
static cl::opt< bool > MergeAMOWithMB("loongarch-merge-amo-with-dbar", cl::desc("Merge AMOs with DBARs into AMO_DB during optimization"), cl::init(true), cl::Hidden)
◆ DEBUG_TYPE
| #define DEBUG_TYPE "loongarch-memory-barrier-opt" |
◆ LOONGARCH_MEMORY_BARRIER_OPT_NAME
| #define LOONGARCH_MEMORY_BARRIER_OPT_NAME "LoongArch Memory Barrier Optimisation pass" |
◆ INITIALIZE_PASS_BEGIN()
◆ DEBUG_TYPE
◆ false
◆ LOONGARCH_MEMORY_BARRIER_OPT_NAME
| LOONGARCH_MEMORY_BARRIER_OPT_NAME |
◆ MergeAMOWithMB
| cl::opt< bool > MergeAMOWithMB("loongarch-merge-amo-with-dbar", cl::desc("Merge AMOs with DBARs into AMO_DB during optimization"), cl::init(true), cl::Hidden) |
( |
"loongarch-merge-amo-with-dbar" | , |
|
|
cl::desc("Merge AMOs with DBARs into AMO_DB during optimization") | , |
|
|
cl::init(true) | , |
|
|
cl::Hidden | ) |
|
static |
◆ ReplaceEliminatedMBToNop
| cl::opt< bool > ReplaceEliminatedMBToNop("loongarch-replace-eliminated-dbar-to-nop", cl::desc("Replace eliminated DBARs with NOPs to preserve code layout"), cl::init(false), cl::Hidden) |
( |
"loongarch-replace-eliminated-dbar-to-nop" | , |
|
|
cl::desc("Replace eliminated DBARs with NOPs to preserve code layout") | , |
|
|
cl::init(false) | , |
|
|
cl::Hidden | ) |
|
static |
◆ RequireNoPathBypass
| cl::opt< bool > RequireNoPathBypass("loongarch-require-no-path-bypass", cl::desc("Optimize only when no paths bypass either memory barrier"), cl::init(true), cl::Hidden) |
( |
"loongarch-require-no-path-bypass" | , |
|
|
cl::desc("Optimize only when no paths bypass either memory barrier") | , |
|
|
cl::init(true) | , |
|
|
cl::Hidden | ) |
|
static |