llvm-project/llvm/test/Transforms/Inline
Hal Finkel 57f03dda49 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).

llvm-svn: 217335
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
PR4909.ll
alloca-bonus.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
alloca-in-scc.ll
alloca-merge-align-nodl.ll TBAA: remove !tbaa from testing cases when they are not needed. 2013-09-30 18:17:35 +00:00
alloca-merge-align.ll TBAA: remove !tbaa from testing cases when they are not needed. 2013-09-30 18:17:35 +00:00
alloca_test.ll
always-inline.ll Check the alwaysinline attribute on the call as well as on the caller. 2014-05-19 18:25:54 +00:00
array_merge.ll
attributes.ll Disable inlining between sanitized and non-sanitized functions. 2013-08-08 08:22:39 +00:00
basictest.ll Fixup to r186268 and r186269: don't append -LABEL to CHECK-NOT. No functionality change. 2013-07-14 02:10:57 +00:00
blockaddress.ll Suppress inlining when the block address is taken 2014-07-01 00:19:34 +00:00
byval-tail-call.ll Fix PR7272 in -tailcallelim instead of the inliner 2014-04-21 20:48:47 +00:00
byval.ll Revert "Inliner: Handle readonly attribute per argument when adding memcpy" 2013-11-03 12:22:13 +00:00
byval_lifetime.ll Add lifetime markers for allocas created to hold byval arguments, make them 2014-04-15 18:06:46 +00:00
callgraph-update.ll
casts.ll
cfg_preserve_test.ll
crash.ll
crash2.ll
debug-invoke.ll DebugInfo: Preserve debug location information when transforming a call into an invoke during inlining. 2014-06-30 20:30:39 +00:00
delete-call.ll Fix FileCheck --check-prefix lines. 2013-08-12 12:43:26 +00:00
devirtualize-2.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
devirtualize-3.ll
devirtualize.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
dynamic_alloca_test.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
ephemeral.ll Add functions for finding ephemeral values 2014-09-07 13:49:57 +00:00
externally_available.ll
gvn-inline-iteration.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
ignore-debug-info.ll Revert test commit. Removed blank line. 2014-05-08 12:54:43 +00:00
inline-byval-bonus.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
inline-cold.ll [inline cold threshold] Command line argument for inline threshold will 2014-04-25 17:34:55 +00:00
inline-invoke-tail.ll
inline-invoke-with-asm-call.ll Rename testing case to use - instead of _. 2013-11-04 18:52:06 +00:00
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 The 'optnone' attribute means don't inline anything into this function 2013-11-18 21:44:03 +00:00
inline-optsize.ll
inline-tail.ll Don't insert lifetime.end markers between a musttail call and ret 2014-05-15 21:10:46 +00:00
inline-vla.ll Handle vlas during inline cost computation if they'll be turned 2014-04-07 13:36:21 +00:00
inline_cleanup.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
inline_constprop.ll Have InlineCost check constant fcmps 2013-07-20 04:09:00 +00:00
inline_dce.ll
inline_invoke.ll Fix inlining to not produce duplicate landingpad clauses 2013-12-08 00:50:58 +00:00
inline_minisize.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
inline_prune.ll
inline_returns_twice.ll [inliner] Fix PR18206 by preventing inlining functions that call setjmp 2013-12-13 08:00:01 +00:00
inline_ssp.ll
invoke-cleanup.ll Fix inlining to not lose the "cleanup" clause from landingpads 2013-12-08 00:51:21 +00:00
invoke-combine-clauses.ll Fix inlining to not produce duplicate landingpad clauses 2013-12-08 00:50:58 +00:00
invoke-cost.ll [inliner] Completely change (and fix) how the inline cost analysis 2013-12-13 07:59:56 +00:00
invoke_test-1.ll
invoke_test-2.ll
invoke_test-3.ll
lifetime-no-datalayout.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
lifetime.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
nested-inline.ll Fixup to r186268 and r186269: don't append -LABEL to CHECK-NOT. No functionality change. 2013-07-14 02:10:57 +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
noalias2.ll Convert noalias parameter attributes into noalias metadata during inlining 2014-07-25 15:50:08 +00:00
noinline-recursive-fn.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
noinline.ll
null-function.ll Add new lines to debugging information. 2014-07-03 02:11:49 +00:00
optimization-remarks.ll Add support for missed and analysis optimization remarks. 2014-05-22 14:19:46 +00:00
ptr-diff.ll Fix known typos 2014-01-24 17:20:08 +00:00
recursive.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
switch.ll [inliner] Significantly improve the compile time in cases like PR19499 2014-04-28 08:52:44 +00:00