Memory barrier __builtin_arm_[dmb, dsb, isb] intrinsics are required to implement their corresponding ACLE and MSVC intrinsics.
This patch ports ARM dmb, dsb, isb intrinsic to AArch64. It relies on D4516.
Paths
| Differential D4520
Port memory barriers intrinsics to AArch64 ClosedPublic Authored by kongyi on Jul 15 2014, 7:51 AM.
Details Summary Memory barrier __builtin_arm_[dmb, dsb, isb] intrinsics are required to implement their corresponding ACLE and MSVC intrinsics. This patch ports ARM dmb, dsb, isb intrinsic to AArch64. It relies on D4516.
Diff Detail Event Timelinekongyi updated this object. Comment Actions Hi Yi, Are you sure this is going to interact well with D4516? The builtins you're adding are in the "__builtin_arm" space but that's (correctly, IMO) changing the prefix to "aarch64". Either way, we probably want a Clang-side test for that GCCBuiltin too. One other thing I noticed was some extra complexity that shouldn't be needed (see end). Cheers. Tim.
This revision is now accepted and ready to land.Jul 17 2014, 3:48 AM
Revision Contents
Diff 11442 include/llvm/IR/IntrinsicsAArch64.td
lib/Target/AArch64/AArch64InstrFormats.td
lib/Target/AArch64/AArch64InstrInfo.td
test/CodeGen/AArch64/intrinsics-memory-barrier.ll
|
Something weird is going on here. You're adding a ParserMatchClass but not using this operand in any assembly context so it's almost certainly ignored. You probably only need the "ImmLeaf" part of this definition.