Go to file
Sean Fertile 7f3f05e0b7 [PPC64] Optimize redundant instructions in global access sequences.
The access sequence for global variables in the medium and large code models use
2 instructions to add an offset to the toc-pointer. If the offset fits whithin
16-bits then the instruction that sets the high 16 bits is redundant.

This patch adds the --toc-optimize option, (on by default) and enables rewriting
of 2 instruction global variable accesses into 1 when the offset from the
TOC-pointer to the variable (or .got entry) fits in 16 signed bits. eg

addis %r3, %r2, 0           -->     nop
addi  %r3, %r3, -0x8000     -->     addi %r3, %r2, -0x8000

This rewriting can be disabled with the --no-toc-optimize flag

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

llvm-svn: 342602
2018-09-20 00:26:44 +00:00
clang Thread safety analysis: Handle ObjCIvarRefExpr in SExprBuilder::translate 2018-09-19 23:57:38 +00:00
clang-tools-extra [Clang-tidy] Alphabetical sort of files/checks. Add space after clang-tidy in source code headers. 2018-09-20 00:02:55 +00:00
compiler-rt Revert "[XRay][compiler-rt] FDRLogWriter Abstraction" and 1 more. 2018-09-19 22:29:56 +00:00
debuginfo-tests Revert "(Retry) Add a basic integration test for C++ smart pointers" 2018-08-20 19:53:33 +00:00
libclc configure: Rework support for gfx9+ devices that were added post LLVM 3.9 2018-09-15 22:02:01 +00:00
libcxx Revert "Implement LWG 2221 - No formatted output operator for nullptr." 2018-09-19 23:31:34 +00:00
libcxxabi Merge Demangle change in r342330 to libcxxabi. 2018-09-15 18:25:49 +00:00
libunwind [CMake] Don't use -rtlib=compiler-rt with -nodefaultlibs. 2018-09-04 20:57:50 +00:00
lld [PPC64] Optimize redundant instructions in global access sequences. 2018-09-20 00:26:44 +00:00
lldb [DataFormatters] Add formatter for C++17 std::variant 2018-09-19 18:07:05 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [WEB] add new flags to a DebugInfo lit test 2018-09-19 22:56:14 +00:00
openmp [OPENMP]Increment iterator when the loop is continued. 2018-09-11 17:16:26 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [ScopDetection] Use addUnknown for calls in the AliasSetTracker. 2018-09-11 23:48:14 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.