llvm-6502/test/Transforms/Inline
Hal Finkel 3d03d60ca8 Add functions for finding ephemeral values
This adds a set of utility functions for collecting 'ephemeral' values. These
are LLVM IR values that are used only by @llvm.assume intrinsics (directly or
indirectly), and thus will be removed prior to code generation, implying that
they should be considered free for certain purposes (like inlining). The
inliner's cost analysis, and a few other passes, have been updated to account
for ephemeral values using the provided functionality.

This functionality is important for the usability of @llvm.assume, because it
limits the "non-local" side-effects of adding llvm.assume on inlining, loop
unrolling, etc. (these are hints, and do not generate code, so they should not
directly contribute to estimates of execution cost).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217335 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-07 13:49:57 +00:00
..
2003-09-14-InlineValue.ll
2003-09-22-PHINodeInlineFail.ll
2003-09-22-PHINodesInExceptionDest.ll
2003-09-22-PHINodesInNormalInvokeDest.ll
2003-10-13-AllocaDominanceProblem.ll
2004-04-15-InlineDeletesCall.ll
2004-04-20-InlineLinkOnce.ll
2004-10-17-InlineFunctionWithoutReturn.ll
2006-01-14-CallGraphUpdate.ll
2006-07-12-InlinePruneCGUpdate.ll
2006-11-09-InlineCGUpdate-2.ll
2006-11-09-InlineCGUpdate.ll
2007-04-15-InlineEH.ll
2007-06-25-WeakInline.ll
2007-12-19-InlineNoUnwind.ll
2008-09-02-NoInline.ll
2009-01-08-NoInlineDynamicAlloca.ll
2009-01-13-RecursiveInlineCrash.ll
2009-05-07-CallUsingSelfCrash.ll
2010-05-12-ValueMap.ll
alloca_test.ll
alloca-bonus.ll
alloca-in-scc.ll
alloca-merge-align-nodl.ll
alloca-merge-align.ll
always-inline.ll
array_merge.ll
attributes.ll
basictest.ll
blockaddress.ll Suppress inlining when the block address is taken 2014-07-01 00:19:34 +00:00
byval_lifetime.ll
byval-tail-call.ll
byval.ll
callgraph-update.ll
casts.ll
cfg_preserve_test.ll
crash2.ll
crash.ll
debug-invoke.ll
delete-call.ll
devirtualize-2.ll
devirtualize-3.ll
devirtualize.ll
dynamic_alloca_test.ll
ephemeral.ll Add functions for finding ephemeral values 2014-09-07 13:49:57 +00:00
externally_available.ll
gvn-inline-iteration.ll
ignore-debug-info.ll
inline_cleanup.ll
inline_constprop.ll
inline_dce.ll
inline_invoke.ll
inline_minisize.ll
inline_prune.ll
inline_returns_twice.ll
inline_ssp.ll
inline-byval-bonus.ll
inline-cold.ll
inline-invoke-tail.ll
inline-invoke-with-asm-call.ll
inline-musttail-varargs.ll Declare that musttail calls in variadic functions forward the ellipsis 2014-08-26 00:33:28 +00:00
inline-optnone.ll
inline-optsize.ll
inline-tail.ll
inline-vla.ll
invoke_test-1.ll
invoke_test-2.ll
invoke_test-3.ll
invoke-cleanup.ll
invoke-combine-clauses.ll
invoke-cost.ll
lifetime-no-datalayout.ll
lifetime.ll
nested-inline.ll
noalias2.ll Convert noalias parameter attributes into noalias metadata during inlining 2014-07-25 15:50:08 +00:00
noalias-calls.ll Feed AA to the inliner and use AA->getModRefBehavior in AddAliasScopeMetadata 2014-09-01 09:01:39 +00:00
noalias-cs.ll Copy noalias metadata from call sites to inlined instructions 2014-08-14 21:09:37 +00:00
noalias.ll Convert noalias parameter attributes into noalias metadata during inlining 2014-07-25 15:50:08 +00:00
noinline-recursive-fn.ll
noinline.ll
null-function.ll Add new lines to debugging information. 2014-07-03 02:11:49 +00:00
optimization-remarks.ll
PR4909.ll
ptr-diff.ll
recursive.ll
switch.ll