llvm-6502/lib/Transforms/Scalar
Rafael Espindola 0513059726 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162023 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-16 15:09:43 +00:00
..
ADCE.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
BasicBlockPlacement.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
CMakeLists.txt move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place. 2012-07-20 22:39:33 +00:00
CodeGenPrepare.cpp Remove dead flag. 2012-08-15 21:18:10 +00:00
ConstantProp.cpp Last bit of TargetLibraryInfo propagation. Also fixed a case for TargetData 2011-12-01 21:29:16 +00:00
CorrelatedValuePropagation.cpp llvm::SwitchInst 2012-03-11 06:09:17 +00:00
DCE.cpp Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
DeadStoreElimination.cpp Change greater than to greater than or equal so that an identical sized store to the same offset is treated as completing overwriting. 2012-08-14 07:32:05 +00:00
EarlyCSE.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
GlobalMerge.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
GVN.cpp Teach GVN to reason about edges dominating uses. This allows it to handle cases 2012-08-16 15:09:43 +00:00
IndVarSimplify.cpp indvars: drive by heuristics fix. 2012-07-18 04:35:13 +00:00
JumpThreading.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
LICM.cpp Avoid recomputing the unique exit blocks and their insert points when doing 2012-08-08 00:00:26 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LoopDeletion.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
LoopIdiomRecognize.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
LoopInstSimplify.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
LoopRotation.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
LoopStrengthReduce.cpp Reapply r160340. LSR: Limit CollectSubexprs. 2012-07-17 05:30:37 +00:00
LoopUnrollPass.cpp LoopUnrollPass: Use variable "Threshold" instead of "CurrentThreshold" when 2012-04-04 11:44:08 +00:00
LoopUnswitch.cpp Do not pass an invalid domtree to SimplifyInstruction from 2012-05-20 01:32:09 +00:00
LowerAtomic.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
Makefile
MemCpyOptimizer.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
ObjCARC.cpp An objc_retain can serve as a may-use for a different pointer. 2012-07-23 19:27:31 +00:00
Reassociate.cpp Stop reassociate from looking through expressions of arbitrary complexity. This 2012-07-26 09:26:40 +00:00
Reg2Mem.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
Scalar.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
ScalarReplAggregates.cpp Fix crash when when do lto on Bullet. Dynamic GEPs in SROA were incorrectly being applied to all accesses to an alloca, not just the ones which read from the GEP. Thanks to Evan for reducing the test. rdar://11861001 2012-08-10 03:26:36 +00:00
SCCP.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
SimplifyCFGPass.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
SimplifyLibCalls.cpp do null checks for a few more Emit*() functions. 2012-07-26 17:10:46 +00:00
Sink.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00
TailRecursionElimination.cpp Clean whitespaces. 2012-07-24 10:51:42 +00:00