OSDN Git Service

[globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg
authorDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 9 Jul 2018 19:33:40 +0000 (19:33 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 9 Jul 2018 19:33:40 +0000 (19:33 +0000)
commitd700c295ab81692a348c22998d67167ef8da9514
tree593abae218f84f8b71580e8999d22c10796a9933
parent28793aedf683a9270754c67dbebdc13bd9119ea7
[globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg

Summary:
This patch adds support for the atomicrmw instructions and the strong
cmpxchg instruction to the IRTranslator.

I've left out weak cmpxchg because LangRef.rst isn't entirely clear on what
difference it makes to the backend. As far as I can tell from the code, it
only matters to AtomicExpandPass which is run at the LLVM-IR level.

Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar, volkan, javed.absar

Reviewed By: qcolombet

Subscribers: kristof.beyls, javed.absar, igorb, llvm-commits

Differential Revision: https://reviews.llvm.org/D40092

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336589 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/GlobalISel/IRTranslator.h
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
lib/CodeGen/GlobalISel/IRTranslator.cpp
lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll