1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/lib/Transforms
James Molloy cefbfa53f9 [SimplifyCFG] Don't create unnecessary PHIs
In conditional store merging, we were creating PHIs when we didn't
need to. If the value to be predicated isn't defined in the block
we're predicating, then it doesn't need a PHI at all (because we only
deal with triangles and diamonds, any value not in the predicated BB
must dominate the predicated BB).

This fixes a large code size increase in some benchmarks in a popular embedded benchmark suite.

Now with a fix (and fixed tests) for the conformance issue seen in Chromium.

llvm-svn: 255767
2015-12-16 14:12:44 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InstCombine InstCombineLoadStoreAlloca.cpp: Avoid instantiating Twine. 2015-12-15 09:37:31 +00:00
Instrumentation [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
IPO Remove one of the void casts used to suppress unused variable warning. 2015-12-15 23:47:17 +00:00
ObjCARC ObjCARC: Remove implicit ilist iterator conversions, NFC 2015-10-19 23:20:14 +00:00
Scalar [EarlyCSE] DSE of stores which write back loaded values 2015-12-16 01:01:30 +00:00
Utils [SimplifyCFG] Don't create unnecessary PHIs 2015-12-16 14:12:44 +00:00
Vectorize [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions. 2015-12-15 22:45:09 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile