llvm-mirror/test/Transforms
Owen Anderson 856fcd57d1 LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to.
Splitting critical edges at the merge point only addressed part of the issue; it is also possible for non-post-domination
to occur when the path from the load to the merge has branches in it.  Unfortunately, full anticipation analysis is
time-consuming, so for now approximate it.  This is strictly more conservative than real anticipation, so we will miss
some cases that real PRE would allow, but we also no longer insert loads into paths where they didn't exist before. :-)

This is a very slight net positive on SPEC for me (0.5% on average).  Most of the benchmarks are largely unaffected, but
when it pays off it pays off decently: 181.mcf improves by 4.5% on my machine.

llvm-svn: 114785
2010-09-25 05:26:18 +00:00
..
ADCE
ArgumentPromotion Fix rdar://7879828 - crash in CallGraph, a self host issue. 2010-04-20 00:46:50 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge fix PR8144, a bug where constant merge would merge globals marked 2010-09-15 00:30:11 +00:00
ConstProp remove some noise from tests. 2010-09-02 22:35:33 +00:00
CorrelatedValuePropagation Add missing RUN line to this test. 2010-09-16 18:46:23 +00:00
DeadArgElim Preserve debug info attached with call instruction while eliminating dead argument. 2010-04-30 20:23:54 +00:00
DeadStoreElimination add newlines at the end of files. 2010-04-07 22:53:17 +00:00
FunctionAttrs
GlobalDCE
GlobalOpt Fix this test to avoid an "inexact" fold. 2010-09-17 20:25:43 +00:00
GVN LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to. 2010-09-25 05:26:18 +00:00
IndVarSimplify more test cleanup 2010-09-02 22:38:56 +00:00
Inline Fix PR7272: when inlining through a callsite with byval arguments, 2010-05-31 21:00:26 +00:00
InstCombine Be more precise when trying to XFAIL this tester: http://google1.osuosl.org:8011/builders/llvm-arm-linux 2010-09-24 20:34:49 +00:00
Internalize
IPConstantProp more test cleanup 2010-09-02 22:38:56 +00:00
JumpThreading Remove dead option from tests. 2010-09-14 21:03:40 +00:00
LCSSA Avoid depending on LCSSA implicitly pulling in LoopSimplify. 2010-07-26 18:00:43 +00:00
LICM fix PR8102, a case where we'd copyValue from a value that we already 2010-09-14 00:19:00 +00:00
LoopDeletion
LoopIndexSplit Check for side effects before splitting loop. 2010-05-03 18:06:58 +00:00
LoopRotate Teach loop rotate to hoist trivially invariant instructions 2010-09-06 01:10:22 +00:00
LoopSimplify Fix LoopSimplify to notify ScalarEvolution when splitting a loop backedge 2010-09-04 02:42:48 +00:00
LoopStrengthReduce Correct bogus module triple specifications. 2010-08-30 10:48:29 +00:00
LoopUnroll Revert r113439, which relaxed the requirement that loops containing calls cannot be unrolled. After some discussion, 2010-09-09 20:02:23 +00:00
LoopUnswitch Fix loop unswitching's assumption that a code path which either 2010-09-01 21:46:45 +00:00
LowerAtomic Add an atomic lowering pass 2010-08-03 16:19:16 +00:00
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg Copy location info for current function argument from dbg.declare if respective store instruction does not have any location info. 2010-06-04 22:27:30 +00:00
MemCpyOpt
MergeFunc Arrays and vectors with different numbers of elements are not equivalent. 2010-07-16 06:31:12 +00:00
PartialSpecialize Fixed and reactivated a partial specialization test 2010-08-19 12:42:38 +00:00
PruneEH fix some failures my callgraph dump format change broke. 2010-04-23 18:38:40 +00:00
Reassociate
ScalarRepl deepen my MMX/SRoA hack to avoid hurting non-x86 codegen. 2010-09-01 23:09:27 +00:00
SCCP fix PR7876: If ipsccp decides that a function's address is taken 2010-08-12 22:25:23 +00:00
SimplifyCFG Correct bogus module triple specifications. 2010-08-30 10:48:29 +00:00
SimplifyLibCalls Make sure that simplify libcalls does not replace a call with one calling 2010-06-16 19:34:01 +00:00
Sink Add an LLVM IR version of code sinking. This uses the same simple algorithm 2010-05-07 15:40:13 +00:00
SRETPromotion
StripSymbols DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE. 2010-08-25 18:52:02 +00:00
TailCallElim merge two tests. 2010-08-31 18:44:03 +00:00
TailDup The output of opt -stats must be sent to stderr. Patch by NAKAMURA Takumi! 2010-09-01 18:32:56 +00:00