llvm-project/llvm
Jonas Paulsson 580310ff0c [SystemZ] Improve handling of huge PC relative immediate offsets.
Demand that an immediate offset to a PC relative address fits in 32 bits, or
else load it into a register and perform a separate add.

Verify in the assembler that such immediate offsets fit the bitwidth.

Even though the final address of a Load Address Relative Long may fit in 32
bits even with a >32 bit offset (depending on where the symbol lives relative
to PC), the GNU toolchain demands the offset by itself to be in range. This
patch adapts the same behavior for llvm.

Review: Ulrich Weigand
https://reviews.llvm.org/D69749
2019-11-04 10:38:18 +01:00
..
benchmarks
bindings Update version number in llvm python bindings 2019-10-25 17:14:11 -04:00
cmake Revert "[NFC] Rename LLVM_NO_DEAD_STRIP" 2019-10-30 14:56:20 -04:00
docs NoFree argument attribute. 2019-11-02 19:40:48 +01:00
examples Break out OrcError and RPC 2019-10-29 17:31:28 -07:00
include [opaque pointer types] Add element type argument to IRBuilder CreatePreserveStructAccessIndex and CreatePreserveArrayAccessIndex 2019-11-03 10:27:18 -08:00
lib [SystemZ] Improve handling of huge PC relative immediate offsets. 2019-11-04 10:38:18 +01:00
projects Add few docs and implementation of strcpy and strcat. 2019-10-04 17:30:54 +00:00
resources
runtimes
test [SystemZ] Improve handling of huge PC relative immediate offsets. 2019-11-04 10:38:18 +01:00
tools Fix uninitialized variable warning. NFCI. 2019-11-02 18:03:21 +00:00
unittests [LV] Apply sink-after & interleave-groups as VPlan transformations (NFC) 2019-11-04 10:37:39 +02:00
utils gn build: (manually) merge 3a399c09 / add76dd3c 2019-11-03 12:52:54 -05:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt build: remove `LLVM_CXX_STD` extension point 2019-10-25 11:51:47 -07:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Test commit. 2019-10-03 14:57:49 +00:00
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

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

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.