llvm-project/llvm
Simon Pilgrim 7e4cf582cf [InstCombine] Add general constant support to eq/ne icmp(add(X,C1),add(Y,C2)) -> icmp(add(X,C1-C2),Y) fold
A further extension for Issue #32161

For eq/ne comparisons - the sign mismatch and bounds constraints are redundant, so if the that fold fails, fallback and just fold the constants directly.

https://alive2.llvm.org/ce/z/cdodNQ

The loop rotation test change looks mostly benign - the backend doesn't seem to suffer? https://gcc.godbolt.org/z/dErMY78To

Differential Revision: https://reviews.llvm.org/D121551
2022-03-15 14:17:38 +00:00
..
benchmarks
bindings [NFC] Fix go binding build 2022-03-14 14:08:51 +08:00
cmake Add cmake_parse_arguments() to `tablegen()` CMake function 2022-03-14 06:56:11 +00:00
docs Revert rG9c542a5a4e1ba36c24e48185712779df52b7f7a6 "Lower `@llvm.global_dtors` using `__cxa_atexit` on MachO" 2022-03-15 13:01:35 +00:00
examples Cleanup includes: LLVMTarget 2022-03-10 10:00:29 +01:00
include Revert rG9c542a5a4e1ba36c24e48185712779df52b7f7a6 "Lower `@llvm.global_dtors` using `__cxa_atexit` on MachO" 2022-03-15 13:01:35 +00:00
lib [InstCombine] Add general constant support to eq/ne icmp(add(X,C1),add(Y,C2)) -> icmp(add(X,C1-C2),Y) fold 2022-03-15 14:17:38 +00:00
projects
resources
runtimes [CMake] Rename TARGET_TRIPLE to LLVM_TARGET_TRIPLE 2022-03-11 15:43:01 -08:00
test [InstCombine] Add general constant support to eq/ne icmp(add(X,C1),add(Y,C2)) -> icmp(add(X,C1-C2),Y) fold 2022-03-15 14:17:38 +00:00
tools Revert "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-15 13:02:37 +00:00
unittests [Support] Change zlib::compress to return void 2022-03-14 11:38:04 -07:00
utils [gn build] Port 7262eacd41 2022-03-15 13:08:09 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Rename TARGET_TRIPLE to LLVM_TARGET_TRIPLE 2022-03-11 15:43:01 -08:00
CODE_OWNERS.TXT [VE] Transfer backend ownership 2022-03-14 09:18:40 +01:00
CREDITS.TXT [CODE_OWNERS/CREDITS] Update my email address 2022-03-07 10:53:29 +00:00
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.