mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 03:53:04 +02:00
6fec4b3a5f
Right now scalarpre doesn't have phi-translate support, so it will miss some simple pre opportunities. Like the following testcase, current scalarpre cannot recognize the last "a * b" is fully redundent because a and b used by the last "a * b" expr are both defined by phis. long a[100], b[100], g1, g2, g3; __attribute__((pure)) long goo(); void foo(long a, long b, long c, long d) { g1 = a * b; if (__builtin_expect(g2 > 3, 0)) { a = c; b = d; g2 = a * b; } g3 = a * b; // fully redundant. } The patch adds phi-translate support in scalarpre. This is only a temporary solution before the newpre based on newgvn is available. Differential Revision: https://reviews.llvm.org/D32252 llvm-svn: 303923 |
||
---|---|---|
.. | ||
InstCombine | ||
IPO | ||
Scalar | ||
Utils | ||
Vectorize | ||
Coroutines.h | ||
GCOVProfiler.h | ||
InstrProfiling.h | ||
Instrumentation.h | ||
IPO.h | ||
ObjCARC.h | ||
PGOInstrumentation.h | ||
SampleProfile.h | ||
Scalar.h | ||
Vectorize.h |