llvm-project/llvm/lib/Transforms
Rafael Espindola cc80cdebb9 Teach GVN to reason about edges dominating uses. This allows it to handle cases
where some fact lake a=b dominates a use in a phi, but doesn't dominate the
basic block itself.

This feature could also be implemented by splitting critical edges, but at least
with the current algorithm reasoning about the dominance directly is faster.

The time for running "opt -O2" in the testcase in pr10584 is 1.003 times slower
and on gcc as a single file it is 1.0007 times faster.

llvm-svn: 162023
2012-08-16 15:09:43 +00:00
..
Hello Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet. 2010-10-07 00:31:16 +00:00
IPO Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
InstCombine fix infinite loop in instcombine with more than 4GB memcpy 2012-08-15 03:49:59 +00:00
Instrumentation [asan] implement --asan-always-slow-path, which is a part of the improvement to handle unaligned partially OOB accesses. See http://code.google.com/p/address-sanitizer/issues/detail?id=100 2012-08-15 08:58:58 +00:00
Scalar Teach GVN to reason about edges dominating uses. This allows it to handle cases 2012-08-16 15:09:43 +00:00
Utils LICM uses AliasSet information to hoist and sink instructions. However, other passes, such as LoopRotate 2012-08-13 23:06:54 +00:00
Vectorize Precompute SCEV pointer analysis prior to instruction fusion in BBVectorize. 2012-06-28 05:42:45 +00:00
CMakeLists.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
LLVMBuild.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
Makefile Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00