llvm-project/llvm
Arthur Eubanks 7f28b4d5b7 [LICM] Bail if checking a global/constant for invariant.start
When we check if a load is loop invariant by finding a dominating
invariant.start call, we strip bitcasts until we get to an i8* Value,
and look for an invariant.start use of the i8* Value.

We may accidentally end up at an i8 global and look at a global's uses,
which we shouldn't do in a loop pass. Although we could make this
logic work with globals, that's not currently intended.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D111098
2021-10-04 14:14:25 -07:00
..
benchmarks
bindings [NFC][C API] Make LLVMSetInstrParamAlignment's index param type LLVMAttributeIndex 2021-09-07 15:13:45 -07:00
cmake [CMake] Remove the LLD LTO check for Darwin 2021-09-30 14:00:31 -07:00
docs [VP] Vector predicated vector splice intrinsic 2021-09-29 10:43:36 +02:00
examples [ORC][examples] Port LLJITWithRemoteDebugging to SimpleRemoteEPC 2021-09-29 10:20:41 +02:00
include Delay outgoing register assignments to last. 2021-10-04 12:33:20 -07:00
lib [LICM] Bail if checking a global/constant for invariant.start 2021-10-04 14:14:25 -07:00
projects
resources
runtimes [runtimes] Ensure required deps for tests targets are actually built 2021-09-29 14:41:33 -07:00
test [LICM] Bail if checking a global/constant for invariant.start 2021-10-04 14:14:25 -07:00
tools [llvm-objdump] Fix common symbol output on 32 bit platforms 2021-10-04 14:24:03 +00:00
unittests Delay outgoing register assignments to last. 2021-10-04 12:33:20 -07:00
utils [gn build] Port 811b1736d9 2021-10-04 15:13:27 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert "[CMake] Enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR by default on Linux" 2021-09-28 18:23:43 +03:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
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.