llvm-project/llvm
Chad Rosier 8db41e9dbd [Reassociate] Don't canonicalize x + (-Constant * y) -> x - (Constant * y)..
..if the resulting subtract will be broken up later.  This can cause us to get
into an infinite loop.

x + (-5.0 * y)      -> x - (5.0 * y)       ; Canonicalize neg const
x - (5.0 * y)       -> x + (0 - (5.0 * y)) ; Break up subtract
x + (0 - (5.0 * y)) -> x + (-5.0 * y)      ; Replace 0-X with X*-1.

PR34078

llvm-svn: 311554
2017-08-23 14:10:06 +00:00
..
bindings Update the Go bindings for r309426 (remove offset from llvm.dbg.value) 2017-07-28 22:44:44 +00:00
cmake Update LLVM fuzzers to use the libFuzzer bundled with the compiler toolchain 2017-08-23 00:40:58 +00:00
docs Emit section information for extern variables 2017-08-22 15:30:43 +00:00
examples [ORC][Kaleidoscope] Update Chapter 1 of BuildingAJIT to incorporate recent ORC 2017-08-15 19:20:10 +00:00
include [Bash-autocompletion] Add support for static analyzer flags 2017-08-23 13:39:47 +00:00
lib [Reassociate] Don't canonicalize x + (-Constant * y) -> x - (Constant * y).. 2017-08-23 14:10:06 +00:00
projects
resources
runtimes [CMake][runtimes] Support for building target variants 2017-08-16 19:13:45 +00:00
test [Reassociate] Don't canonicalize x + (-Constant * y) -> x - (Constant * y).. 2017-08-23 14:10:06 +00:00
tools Update LLVM fuzzers to use the libFuzzer bundled with the compiler toolchain 2017-08-23 00:40:58 +00:00
unittests [ARM][AArch64] Add Armv8.3-a unittests 2017-08-22 12:46:33 +00:00
utils [Bash-autocompletion] Add support for static analyzer flags 2017-08-23 13:39:47 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Remove RISCV from LLVM_ALL_TARGETS in CMakeLists.txt 2017-08-13 18:49:33 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Test commit access 2017-08-18 02:39:28 +00:00
RELEASE_TESTERS.TXT [RelTest] Diana is doing both releases now 2017-07-14 08:33:52 +00:00
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

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.