llvm-project/llvm/lib
Philip Reames 2460989eab [SelectionDAG] Enable lowering unordered atomics loads w/LoadSDNode (and stores w/StoreSDNode) by default
Enable the new SelectionDAG representation for unordered loads and stores introduced in r371441 by default.  As a reminder, the new lowering changes the representation of an unordered atomic load from an AtomicSDNode - which is essentially a black box which gets passed through without combines messing with it - to a LoadSDNode w/a atomic marker on the MMO. The later parallels the way we handle volatiles, and I've audited the code to ensure that every location which checks one checks the other.

This has been fairly heavily fuzzed, and I examined diffs in a reasonable large corpus of assembly by hand, so I'm reasonable sure this is correct for the common case.  Late in the review for this, it was discovered that I hadn't correctly handled cases which could be legalized into CAS operations.  This points out that there's a strong bias in the IR of the frontend I'm working with towards only legal atomics.  If there are problems with this patch, the most likely area will be legalization.

Differential Revision: https://reviews.llvm.org/D69219
2019-10-29 12:46:24 -07:00
..
Analysis [Alignment][NFC] getMemoryOpCost uses MaybeAlign 2019-10-25 21:26:59 +02:00
AsmParser Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00
BinaryFormat [DebugInfo] Add a DW_OP_LLVM_entry_value operation 2019-10-15 11:31:21 +00:00
Bitcode [Alignment][NFC] Convert AllocaInst to MaybeAlign 2019-10-25 22:41:34 +02:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [SelectionDAG] Enable lowering unordered atomics loads w/LoadSDNode (and stores w/StoreSDNode) by default 2019-10-29 12:46:24 -07:00
DebugInfo Hide implementation details in anonymous namespaces. NFC. 2019-10-24 10:48:43 +02:00
Demangle [Demangle] Add a few more options to the microsoft demangler 2019-10-15 08:29:56 +00:00
ExecutionEngine [JITLink] Tighten section sorting criteria to fix a flaky test case. 2019-10-28 22:56:13 -07:00
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Fuzzer
IR [IR] move/change null-check to assert 2019-10-29 09:28:47 -04:00
IRReader
LTO Fix compilation warning on the trailing whitespace. NFC. 2019-10-24 09:55:06 -04:00
LineEditor [CMake] Delete redundant DEPENDS/LINK_LIBS from LineEditor/XRay 2019-06-22 01:50:21 +00:00
Linker [Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned) 2019-10-15 11:24:36 +00:00
MC [NFCI][XCOFF][AIX] Skip empty Section during object file generation 2019-10-28 22:04:23 +00:00
MCA [MCA] Fix a spelling mistake in a comment. NFC 2019-10-27 10:06:22 +00:00
Object [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
ObjectYAML [yaml2obj] - Make .symtab to be not mandatory section for SHT_REL[A] section. 2019-10-29 11:43:12 +03:00
Option [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Passes PM: silence `-Wpessimizing-move` from GCC 9.2.1 (NFC) 2019-10-27 18:33:09 -04:00
ProfileData [SampleFDO] Add profile remapping support for profile on-demand loading used 2019-10-18 22:35:20 +00:00
Remarks [Remarks] Add support for prepending a path to external files 2019-10-16 15:40:59 +00:00
Support minor doc typo fix / testing github commit 2019-10-28 12:08:40 +01:00
TableGen Add Record::getValueAsOptionalDef(). 2019-10-25 16:39:21 -07:00
Target [SelectionDAG] Enable lowering unordered atomics loads w/LoadSDNode (and stores w/StoreSDNode) by default 2019-10-29 12:46:24 -07:00
Testing
TextAPI Reland "[TextAPI] Introduce TBDv4" 2019-10-10 04:24:44 +00:00
ToolDrivers [llvm-lib] Detect duplicate input files 2019-10-02 06:41:52 +00:00
Transforms [SLP] Fix -Wunused-variable. NFC 2019-10-29 09:38:55 -07:00
WindowsManifest Fight a bit against global initializers. NFC. 2019-08-22 19:43:27 +00:00
XRay [XRay] Silence static analyzer dyn_cast<BufferExtents> null dereference warning. NFCI. 2019-09-22 18:47:00 +00:00
CMakeLists.txt Fix build errors LLVM tests are disabled. 2019-07-11 22:08:35 +00:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00