llvm-project/llvm/test/Transforms
Chris Lattner 6fbe704932 Implement (but don't enable) PR6724 and rdar://6295824. In short,
we have RefreshCallGraph detect when a function pass devirtualizes
a call, and have CGSCCPassMgr iterate (up to a count) when this 
happens.  This allows (in the example) GVN to devirtualize the 
call in foo, then the inliner to inline it away.

This is not currently enabled because I haven't done any analysis
on the (potentially substantial) code size or performance impact of
doing this, and guess what, it exposes callgraph updating bugs in
various passes.  This is progress though, and you can play with it
by passing -max-cg-scc-iterations=5 to opt.

llvm-svn: 101973
2010-04-21 00:47:40 +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 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
ArgumentPromotion Fix rdar://7879828 - crash in CallGraph, a self host issue. 2010-04-20 00:46:50 +00:00
BlockPlacement Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
BranchFolding Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeExtractor Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeGenPrepare Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
ConstProp fix PR6197 - infinite recursion in ipsccp due to block addresses 2010-02-01 19:35:08 +00:00
ConstantMerge 1. modernize the constantmerge pass, using densemap/smallvector. 2010-02-12 18:17:23 +00:00
DeadArgElim Revert r101213. 2010-04-14 04:51:58 +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
GVN Fix intrinsic signature in this test. 2010-04-17 21:12:55 +00:00
GlobalDCE Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
GlobalOpt Trim tests and convert to FileCheck. 2010-04-14 20:22:17 +00:00
IPConstantProp Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
IndVarSimplify Remove the Expr member from IVUsers. Instead of remembering the expression, 2010-04-19 21:48:58 +00:00
Inline Implement (but don't enable) PR6724 and rdar://6295824. In short, 2010-04-21 00:47:40 +00:00
InstCombine Fix declarations in a few more tests. 2010-04-17 21:29:25 +00:00
Internalize Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +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 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
LowerSetJmp Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
LowerSwitch Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
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 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
PruneEH Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
Reassociate fix a nice subtle reassociate bug which would only occur 2010-03-05 07:18:54 +00:00
SCCP fix a SCCP miscompilation that could happen when a 2010-04-09 01:14:31 +00:00
SRETPromotion Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
SSI Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
ScalarRepl move comment. 2010-04-16 01:05:52 +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
StripSymbols Update test. 2009-09-09 02:41:50 +00:00
TailCallElim Refine the detection of seemingly infinitely recursive calls where the 2010-04-16 15:57:50 +00:00
TailDup Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00