llvm-project/llvm
Philip Reames 2cd23eb243 [instcombine] Fold overflow check using umulo to comparison
If we have a umul.with.overflow where the multiply result is not used and one of the operands is a constant, we can perform the overflow check cheaper with a comparison then by performing the multiply and extracting the overflow flag.

(Noticed when looking at the conditions SCEV emits for overflow checks.)

Differential Revision: https://reviews.llvm.org/D104665
2021-06-25 10:25:45 -07:00
..
benchmarks
bindings [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute 2021-05-25 12:57:14 +02:00
cmake [CMake] Don't LTO optimize targets on Darwin either 2021-06-24 10:02:03 -07:00
docs [AMDGPU] Reserve AMDGPU ELF e_flags machine 0x43 2021-06-24 22:51:47 +00:00
examples [ORC][examples] Add missing library dependence 2021-06-19 14:48:34 +10:00
include Revert "[GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize." 2021-06-25 17:37:16 +01:00
lib [instcombine] Fold overflow check using umulo to comparison 2021-06-25 10:25:45 -07:00
projects
resources
runtimes [runtimes] Fix umbrella component targets 2021-06-12 19:49:44 -07:00
test [instcombine] Fold overflow check using umulo to comparison 2021-06-25 10:25:45 -07:00
tools [MC][ELF] Change SHT_LLVM_CALL_GRAPH_PROFILE relocations from SHT_RELA to SHT_REL 2021-06-24 21:35:48 -07:00
unittests Revert "[GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize." 2021-06-25 17:37:16 +01:00
utils [UpdateCCTestChecks] Support --check-globals 2021-06-25 13:17:56 -04:00
.clang-format
.clang-tidy NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
.gitattributes
.gitignore
CMakeLists.txt
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.