llvm-project/llvm
Philip Reames 1183d65b4d [SCEV] Search operand tree for scope bound when inferring flags from IR
When checking to see if we can apply IR flags to a SCEV, we need to identify a bound on the defining scope of the SCEV to be produced.  We'd previously added support for a couple SCEVExpr types which trivially imply bounds, but hadn't handled types such as umax where the bounds come from the bounds of the operands.  This does the obvious thing, and recurses through operands searching for a tighter bound on the defining scope.

I'm honestly surprised by how little this seems to mater on existing tests, but it's worth doing for completeness sake alone.

Differential Revision: https://reviews.llvm.org/D111191
2021-10-06 15:10:02 -07:00
..
benchmarks
bindings [NFC][C API] Make LLVMSetInstrParamAlignment's index param type LLVMAttributeIndex 2021-09-07 15:13:45 -07:00
cmake Add .cmt and .cmti files for OCaml bindings 2021-10-05 19:36:12 +05:30
docs [docs] Fix typo and minor text changes in MyFirstTypoFix 2021-10-06 08:31:56 +00:00
examples [ORC][examples] Port LLJITWithRemoteDebugging to SimpleRemoteEPC 2021-09-29 10:20:41 +02:00
include Reland [IR] Increase max alignment to 4GB 2021-10-06 13:29:23 -07:00
lib [SCEV] Search operand tree for scope bound when inferring flags from IR 2021-10-06 15:10:02 -07:00
projects
resources
runtimes [runtimes] Ensure required deps for tests targets are actually built 2021-09-29 14:41:33 -07:00
test [SCEV] Search operand tree for scope bound when inferring flags from IR 2021-10-06 15:10:02 -07:00
tools [llvm-profgen] Support symbol list for accurate profile 2021-10-06 11:41:39 -07:00
unittests Reland [IR] Increase max alignment to 4GB 2021-10-06 13:29:23 -07:00
utils [gn build] Port 67231650e6 2021-10-06 20:22:05 +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.