llvm-project/llvm/lib
Ulrich Weigand eaf0051ba3 [SystemZ] Remove unnecessary serialization before volatile loads
This reverts the use of TargetLowering::prepareVolatileOrAtomicLoad
introduced by r196905.  Nothing in the semantics of the "volatile"
keyword or the definition of the z/Architecture actually requires
that volatile loads are preceded by a serialization operation, and
no other compiler on the platform actually implements this.

Since we've now seen a use case where this additional serialization
causes noticable performance degradation, this patch removes it.

The patch still leaves in the serialization before atomic loads,
which is now implemented directly in lowerATOMIC_LOAD.  (This also
seems overkill, but that can be addressed separately.)

llvm-svn: 306117
2017-06-23 15:56:14 +00:00
..
Analysis [JumpThreading] Teach jump threading how to analyze (and (cmp A, C1), (cmp A, C2)) after InstCombine has turned it into (cmp (add A, C3), C4) 2017-06-23 05:41:35 +00:00
AsmParser Add dependency from AsmParser to BinaryFormat. 2017-06-07 04:24:33 +00:00
BinaryFormat Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
Bitcode Fix build warning on 32-bit targets where sizeof(size_t) < sizeof(long long). 2017-06-16 00:32:11 +00:00
CodeGen Restrict the definition of loop preheader to avoid EH blocks 2017-06-22 23:27:16 +00:00
DebugInfo Fix build break by using llvm::make_unique instead of std::make_unique. 2017-06-22 18:57:51 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine [ORC] Switch the object layer API from addObjectSet to addObject (singular), and 2017-06-22 21:06:54 +00:00
Fuzzer [libFuzzer] change the default max_len from 64 to 4096. This will affect cases where libFuzzer is run w/o initial corpus or with a corpus of very small items. 2017-06-15 22:43:40 +00:00
IR Restrict the definition of loop preheader to avoid EH blocks 2017-06-22 23:27:16 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO [ThinLTO] Remove unnecessary include of Linker.h (NFC) 2017-06-22 16:18:48 +00:00
LineEditor
Linker Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
MC COFF: Produce an error on invalid pcrel relocs. 2017-06-23 04:07:44 +00:00
Object Updated llvm-objdump symbolic disassembly with x86_64 Mach-O MH_KEXT_BUNDLE 2017-06-22 17:41:22 +00:00
ObjectYAML [codeview] respect signedness of APSInts when printing to YAML 2017-06-21 22:31:52 +00:00
Option [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
Passes Remove the LoadCombine pass. It was never enabled and is unsupported. 2017-06-22 22:58:12 +00:00
ProfileData [ProfileData, Support] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-21 23:19:47 +00:00
Support [ADT] Add llvm::to_float 2017-06-23 12:55:02 +00:00
TableGen [BinaryFormat, Option, TableGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-16 00:43:26 +00:00
Target [SystemZ] Remove unnecessary serialization before volatile loads 2017-06-23 15:56:14 +00:00
Testing Mark LLVMTestingSupport as not installed in LLVMBuild. 2017-06-19 22:01:50 +00:00
ToolDrivers [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
Transforms [RuntimeLoopUnrolling] Rename exit block and move assert earlier. NFC 2017-06-23 14:28:01 +00:00
XRay Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
CMakeLists.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00
LLVMBuild.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00