llvm-6502/test/Transforms
Chris Lattner 6da12e6767 Implement rdar://6295824 and PR6724 with two tiny changes
that can have a big effect :).  The first is to enable the
iterative SCC passmanager juice that kicks in when the
scc passmgr detects that a function pass has devirtualized
a call.  In this case, it will rerun all the passes it 
manages on the SCC, up to the iteration count limit (4). This
is useful because a function pass may devirualize a call, and
we want the inliner to inline it, or pruneeh to infer stuff
about it, etc.

The second patch is to add *all* call sites to the 
DevirtualizedCalls list the inliner uses.  This list is
about to get renamed, but the jist of this is that the 
inliner now reconsiders *all* inlined call sites as candidates
for further inlining.  The intuition is this that in cases 
like this:

f() { g(1); }     g(int x) { h(x); }

We analyze this bottom up, and may decide that it isn't 
profitable to inline H into G.  Next step, we decide that it is
profitable to inline G into F, and do so, which means that F 
now calls H.  Even though the call from G -> H may not have been
profitable to inline, the call from F -> H may be (in this case
because a constant allows folding etc).

In my spot checks, this doesn't have a big impact on code.  For
example, the LLC output for 252.eon grew from 0.02% (from
317252 to 317308) and 176.gcc actually shrunk by .3% (from 1525612
to 1520964 bytes).  252.eon never iterated in the SCC Passmgr,
176.gcc iterated at most 1 time.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102823 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 01:15:56 +00:00
..
ABCD Revert my previous patch to ABCD and fix things the right way. There are two problems addressed 2009-11-09 00:44:44 +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 1. modernize the constantmerge pass, using densemap/smallvector. 2010-02-12 18:17:23 +00:00
ConstProp fix PR6197 - infinite recursion in ipsccp due to block addresses 2010-02-01 19:35:08 +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 Fix a README item: have functionattrs look through selects and 2010-01-06 15:37:47 +00:00
GlobalDCE
GlobalOpt fix this to work with objdir != srcdir 2010-04-28 22:34:35 +00:00
GVN Fix intrinsic signature in this test. 2010-04-17 21:12:55 +00:00
IndVarSimplify Remove the Expr member from IVUsers. Instead of remembering the expression, 2010-04-19 21:48:58 +00:00
Inline Implement rdar://6295824 and PR6724 with two tiny changes 2010-05-01 01:15:56 +00:00
InstCombine Fix declarations in a few more tests. 2010-04-17 21:29:25 +00:00
Internalize
IPConstantProp Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
JumpThreading fix PR6743, a case where we'd delete an instruction before using it 2010-04-10 18:26:57 +00:00
LCSSA Make isLCSSA ignore uses in blocks not reachable from the entry block, 2010-03-09 01:53:33 +00:00
LICM Remove dead debug info intrinsics. 2010-01-05 01:10:40 +00:00
LoopDeletion Make LoopSimplify change conditional branches in loop exiting blocks 2010-02-25 06:57:05 +00:00
LoopIndexSplit add newlines at the end of files. 2010-04-07 22:53:17 +00:00
LoopRotate Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
LoopSimplify Make Loop::getLoopLatch() work on loops which don't have preheaders, as 2009-11-20 20:51:18 +00:00
LoopStrengthReduce When determining a canonical insert position, don't climb deeper 2010-04-09 22:07:05 +00:00
LoopUnroll Teach getSmallConstantTripMultiple about Shl operators. 2009-11-20 01:09:34 +00:00
LoopUnswitch RewriteLoopBodyWithConditionConstant can end up rewriting the 2010-04-20 05:09:16 +00:00
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg When converting dbg.declare to dbg.value, attach promoted store's debug metadata to dbg.value 2010-01-27 00:44:36 +00:00
MemCpyOpt Reapply address space patch after fixing an issue in MemCopyOptimizer. 2010-04-04 03:10:48 +00:00
MergeFunc
PruneEH fix some failures my callgraph dump format change broke. 2010-04-23 18:38:40 +00:00
Reassociate fix a nice subtle reassociate bug which would only occur 2010-03-05 07:18:54 +00:00
ScalarRepl move comment. 2010-04-16 01:05:52 +00:00
SCCP fix PR6940: sitofp(undef) folds to 0.0, not undef. 2010-04-26 18:21:23 +00:00
SimplifyCFG testcase for r99914, provided by baldrick! 2010-03-31 20:37:13 +00:00
SimplifyLibCalls Reapply address space patch after fixing an issue in MemCopyOptimizer. 2010-04-04 03:10:48 +00:00
SRETPromotion
SSI
StripSymbols
TailCallElim Refine the detection of seemingly infinitely recursive calls where the 2010-04-16 15:57:50 +00:00
TailDup