llvm-project/llvm/test/Transforms/Inline
Teresa Johnson 43417d8159 [MemProf] Update metadata during inlining
Update both memprof and callsite metadata to reflect inlined functions.

For callsite metadata this is simply a concatenation of each cloned
call's call stack with that of the inlined callsite's.

For memprof metadata, each profiled memory info block (MIB) is either
moved to the cloned allocation call or left on the original allocation
call depending on whether its context matches the newly refined call
stack context on the cloned call. We also reapply context trimming
optimizations based on the refined set of contexts on each of the calls
(cloned and original).

Depends on D128142.

Reviewed By: snehasish

Differential Revision: https://reviews.llvm.org/D128143
2022-09-30 19:21:15 -07:00
..
AArch64 [AArch64][SME] Disable inlining when SME attributes require smstart/smstop or lazy-save. 2022-09-21 09:35:47 +01:00
AMDGPU Revert "Inliner: Correctly merge amdgpu-unsafe-fp-atomics attribute" 2022-03-03 15:25:32 -05:00
ARM [InlineAdvisor] Add single quotes around caller/callee names 2021-08-10 11:51:31 -07:00
Inputs [InlineAdvisor] Add fallback/format switches and negative remark processing to Replay Inliner 2021-10-29 12:32:03 -07:00
ML [mlgo] Use TFLite for 'development' mode. 2022-08-24 16:07:24 -07:00
PowerPC
WebAssembly
X86 [InlineCost] Improve debugging experience by adding print about initial inlining cost 2022-06-24 16:27:26 +02: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-10-17-InlineFunctionWithoutReturn.ll
2007-04-15-InlineEH.ll [Tests] Add elementtype attribute to indirect inline asm operands (NFC) 2022-01-06 14:23:51 +01:00
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 [ArgPromotion] Remove legacy PM support 2022-06-27 09:42:17 +02:00
2009-05-07-CallUsingSelfCrash.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
2010-05-12-ValueMap.ll
PR4909.ll
align.ll
alloca-bonus.ll
alloca-dbgdeclare-merge.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
alloca-dbgdeclare.ll
alloca-in-scc.ll
alloca-merge-align.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
alloca_test.ll
always-inline-attr.ll Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
always-inline-invalidate.ll [test] Make test added in D112473 check the IR 2021-10-25 14:10:58 -07:00
always-inline-remark.ll [AlwaysInliner] Emit inline remark only when successful 2022-03-17 15:40:24 -07:00
always-inline.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
analysis-invalidation.ll [NewPM] Only invalidate modified functions' analyses in CGSCC passes + turn on eagerly invalidate analyses 2021-11-15 14:44:53 -08:00
arg-attr-propagation.ll
array-alloca.ll
array_merge.ll
attributes.ll [X86] initial -mfunction-return=thunk-extern support 2022-07-12 09:17:54 -07:00
basictest.ll
bfi-update.ll
blockaddress.ll [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
byref-align.ll
byval-align.ll
byval-tail-call.ll [instcombine] Fold away memset/memmove from otherwise unused alloca 2022-03-22 13:48:48 -07:00
byval.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
byval_lifetime.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
call-intrinsic-is-constant.ll [InlineCost] model calls to llvm.is.constant* more carefully 2021-10-08 15:27:30 -07:00
call-site-attrs.ll [Inliner] Respect noinline call site attribute 2022-02-14 18:35:52 +01:00
callbr.ll [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
callgraph-update.ll
casts.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
cfg_preserve_test.ll
cgscc-cycle-debug.ll [NewPM] Don't skip SCCs not in current RefSCC 2022-03-18 14:16:29 -07:00
cgscc-cycle.ll [LazyCallGraph] Build SCCs of the reference graph in order 2020-11-02 13:22:42 -08:00
cgscc-incremental-invalidate.ll [Inline] Disable deferred inlining 2021-12-16 09:59:50 +01:00
cgscc-inline-replay.ll [InlineAdvisor] Add fallback/format switches and negative remark processing to Replay Inliner 2021-10-29 12:32:03 -07:00
cgscc-invalidate.ll [LazyCallGraph] Build SCCs of the reference graph in order 2020-11-02 13:22:42 -08:00
cgscc-update.ll [NFC][llvm] Inclusive language: reword uses of sanity test and check 2021-11-25 07:21:42 -05:00
clear-analyses.ll [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
comdat-ipo.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
crash-lifetime-marker.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
crash.ll [ArgPromotion] Remove legacy PM support 2022-06-27 09:42:17 +02:00
crash2.ll [NPM] Share pass building options with legacy PM 2020-11-23 13:04:05 -08:00
dead-calls-willreturn.ll [test] Pin dead-calls-willreturn.ll to legacy PM 2021-01-23 12:35:36 -08:00
debug-info-duplicate-calls.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
debug-invoke.ll
debuginline-cost-delta.ll
delete-call.ll
delete-function-with-metadata-use.ll [Inline] Attempt to delete any discardable if unused functions 2022-01-13 14:48:38 -08:00
delete-unused-function.ll [Inline] Attempt to delete any discardable if unused functions 2022-01-13 14:48:38 -08:00
deleted-scc.ll [NewPM][Inliner] Check if deleted function is in current SCC 2021-07-21 08:47:45 -07:00
deopt-bundles.ll
deoptimize-intrinsic-attrs.ll [Inliner] Copy attributes when deoptimize intrinsic is inlined 2021-05-18 10:08:37 +07:00
deoptimize-intrinsic-cconv.ll
deoptimize-intrinsic.ll
devirtualize-2.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
devirtualize-3.ll [opt] Directly translate -O# to -passes='default<O#>' 2021-10-18 16:48:10 -07:00
devirtualize-4.ll [Tests] Add elementtype attribute to indirect inline asm operands (NFC) 2022-01-06 14:23:51 +01:00
devirtualize-5.ll Reland [CGSCC] Detect devirtualization in more cases 2020-11-23 21:28:59 -08:00
devirtualize-6.ll Reland [CGSCC] Detect devirtualization in more cases 2020-11-23 21:28:59 -08:00
devirtualize.ll [Inline] prevent inlining on stack protector mismatch 2020-12-02 11:00:16 -08:00
dynamic-alloca-simplified-large.ll
dynamic_alloca_test.ll
enable-inline-advisor-printing.ll [inliner] Add per-SCC-pass InlineAdvisor printing option 2022-06-14 08:06:52 -07:00
ephemeral.ll [CodeMetrics] Don't require speculatability for ephemeral values 2021-10-21 20:30:01 +02:00
exponential-deferred-inlining.ll [Inline] Disable deferred inlining 2021-12-16 09:59:50 +01:00
externally_available.ll
frameescape.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
function-count-update-2.ll
function-count-update-3.ll
function-count-update.ll
gep_from_constant.ll [InlineCost] Simplify constant folding 2022-06-30 11:49:17 +02:00
guard-intrinsic.ll
gvn-inline-iteration.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
ignore-debug-info.ll
inalloca-not-static.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
infinite-loop-two-predecessors.ll
inline-assume.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
inline-brunch-funnel.ll
inline-byval-bonus.ll [Inline] prevent inlining on stack protector mismatch 2020-12-02 11:00:16 -08:00
inline-call-penalty-option.ll [InlineCost] Introduce attributes to override InlineCost for inliner testing 2021-09-02 17:35:06 +00:00
inline-cold-callee.ll [InlineCost] Introduce attributes to override InlineCost for inliner testing 2021-09-02 17:35:06 +00:00
inline-cold-callsite-pgo.ll [InlineCost] Introduce attributes to override InlineCost for inliner testing 2021-09-02 17:35:06 +00:00
inline-cold-callsite.ll [InlineCost] Introduce attributes to override InlineCost for inliner testing 2021-09-02 17:35:06 +00:00
inline-cold.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
inline-constexpr-addrspacecast-argument.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
inline-cost-annotation-pass.ll [InlineCost] Add empty line between call sites when printing inline costs 2021-10-18 13:56:48 -07:00
inline-cost-attributes.ll [NewPM][Inliner] Make inlined calls to functions in same SCC as callee exponentially expensive 2022-03-07 23:51:09 -08:00
inline-cost-dead-users.ll [Inline] Introduce Constant::hasOneLiveUse, use it instead of hasOneUse in inline cost model (PR51667) 2021-10-07 08:33:25 -07:00
inline-fast-math-flags.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
inline-funclets.ll
inline-hot-callee.ll
inline-hot-callsite-2.ll
inline-hot-callsite.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
inline-incompat-attrs.ll
inline-indirect-chain.ll
inline-indirect.ll
inline-invoke-tail.ll
inline-invoke-with-asm-call.ll
inline-min-legal-vector-width.ll
inline-no-builtin-compatible.ll
inline-noalias-unidentify-object.ll [NFC] add --match-full-lines to the RUN line 2022-07-01 02:37:35 -04:00
inline-optnone.ll
inline-optsize.ll
inline-probe-stack.ll
inline-ptrtoint-different-sizes.ll [test] Update PR reference in testcase [NFC] 2020-11-23 15:12:50 +01:00
inline-recur-stacksize.ll [Inliner] Make recusive inlinee stack size limit tunable 2022-07-08 21:32:39 -07:00
inline-remark-mandatory.ll [inliner] Mandatory inlining decisions produce remarks 2021-10-05 14:01:25 -07:00
inline-remark.ll
inline-retainRV-call.ll [ObjC][ARC] Use the addresses of the ARC runtime functions instead of 2021-09-08 11:58:03 -07:00
inline-scalable.ll
inline-semantic-interposition.ll
inline-skip-use-empty-alloca.ll
inline-stack-probe-size.ll
inline-stacksize.ll [Inlining] Introduce the function attribute "inline-max-stacksize" 2022-08-12 11:07:18 -07:00
inline-strictfp.ll [FileCheck] Catch missspelled directives. 2022-05-26 11:37:19 +01:00
inline-tail.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
inline-threshold.ll [InlineCost] Introduce attributes to override InlineCost for inliner testing 2021-09-02 17:35:06 +00:00
inline-varargs.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
inline-vla.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
inline_call.ll [llvm][Inline] Remove PriorityInlineOrder in SCC inliner 2022-04-26 20:20:10 +08:00
inline_cleanup.ll
inline_constprop.ll [NFC] Rename Instrinsic to Intrinsic 2022-04-25 18:13:23 +01:00
inline_dbg_declare.ll
inline_dce.ll
inline_inv_group.ll
inline_invoke.ll [llvm][Inline] Remove PriorityInlineOrder in SCC inliner 2022-04-26 20:20:10 +08:00
inline_minisize.ll
inline_negative_result.ll
inline_noprofile.ll [InlineAdvisor] Add single quotes around caller/callee names 2021-08-10 11:51:31 -07:00
inline_prune.ll
inline_returns_twice.ll
inline_ssp.ll Don't override __attribute__((no_stack_protector)) by inlining (PR52886) 2022-01-13 12:04:49 +01:00
inline_stats.ll Reland "[NPM][Inliner] Factor ImportedFunctionStats in the InlineAdvisor" 2021-01-20 13:33:43 -08:00
inline_unreachable-2.ll
inline_unreachable.ll
inlined-loop-metadata-inseltpoison.ll Precommit tests that have poison as shufflevector's placeholder 2020-12-29 17:09:31 +09:00
inlined-loop-metadata.ll
inlined-mustprogress-loop-metadata.ll [Inliner] Handle `mustprogress` functions 2020-11-06 20:03:46 -05:00
inlinedefault-threshold.ll
inlining-advisor-default.ll
internal-scc-members.ll
invariant-group-sroa.ll [Inliner] Propagate SROA analysis through invariant group intrinsics 2021-04-12 10:54:22 -07:00
invoke-cleanup.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
invoke-combine-clauses.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
invoke-cost.ll
invoke_test-1.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
invoke_test-2.ll [SimplifyCFG] TryToSimplifyUncondBranchFromEmptyBlock() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
invoke_test-3.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
label-annotation.ll
last-call-bonus.ll
last-call-no-bonus.ll
last-callsite.ll [llvm][Inline] Remove PriorityInlineOrder in SCC inliner 2022-04-26 20:20:10 +08:00
launder.invariant.group.ll [InlineFunction] Use llvm.experimental.noalias.scope.decl for noalias arguments. 2021-01-23 12:10:57 +01:00
lifetime-no-datalayout.ll
lifetime.ll
local-as-metadata-undominated-use.ll
memprof_inline.ll [MemProf] Update metadata during inlining 2022-09-30 19:21:15 -07:00
memprof_inline2.ll [MemProf] Update metadata during inlining 2022-09-30 19:21:15 -07:00
module-inlining.ll
monster_scc.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
mut-rec-scc-2.ll [NewPM][Inliner] Make inlined calls to functions in same SCC as callee exponentially expensive 2022-03-07 23:51:09 -08:00
mut-rec-scc.ll [NewPM][Inliner] Make inlined calls to functions in same SCC as callee exponentially expensive 2022-03-07 23:51:09 -08:00
nested-inline.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
no-inline-line-tables.ll
no-unwind-inline-asm.ll Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
noalias-calls-always.ll Inliner: don't mark call sites as 'nounwind' if that would be redundant 2022-07-20 14:17:23 +02:00
noalias-calls.ll Inliner: don't mark call sites as 'nounwind' if that would be redundant 2022-07-20 14:17:23 +02:00
noalias-calls2.ll [Inline] Don't add noalias metadata to inaccessiblememonly calls 2021-04-17 14:56:13 +02:00
noalias-cs.ll Inliner: don't mark call sites as 'nounwind' if that would be redundant 2022-07-20 14:17:23 +02:00
noalias.ll [InlineFunction] Use llvm.experimental.noalias.scope.decl for noalias arguments. 2021-01-23 12:10:57 +01:00
noalias2.ll Inliner: don't mark call sites as 'nounwind' if that would be redundant 2022-07-20 14:17:23 +02:00
noalias3.ll [InlineFunction] Only update noalias scopes once for an instruction. 2021-02-02 17:57:10 +01:00
noduplicate.ll Fix getInlineCost with ComputeFullInlineCost enabled 2021-10-14 17:41:41 -07:00
noinline-recursive-fn.ll
noinline.ll
nonnull.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
null-function.ll [PM] Show the pass argument in pre/post-pass IR dumps 2021-02-25 14:02:00 -08:00
opaque-ptr.ll [InlineCost] Check that function types match 2022-04-12 11:05:33 +02:00
optimization-remarks-hotness-threshold.ll [InlineAdvisor] Add single quotes around caller/callee names 2021-08-10 11:51:31 -07:00
optimization-remarks-passed-yaml.ll [Inline] Annotate inline pass name with link phase information for analysis. 2022-06-24 10:06:43 -07:00
optimization-remarks-with-hotness.ll [InlineAdvisor] Add single quotes around caller/callee names 2021-08-10 11:51:31 -07:00
optimization-remarks-yaml.ll
optimization-remarks.ll [InlineAdvisor] Add single quotes around caller/callee names 2021-08-10 11:51:31 -07:00
parallel-loop-md-callee.ll
parallel-loop-md-merge.ll
parallel-loop-md.ll
partial-inline-act.ll
partial-inline-incompat-attrs.ll
pr21206.ll [llvm][Inline] Add a module level inliner 2021-11-09 11:03:29 +08:00
pr22285.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
pr26698.ll
pr28298.ll
pr33637.ll
pr46945.ll [NewPM][Inliner] Move the 'always inliner' case in the same CGSCC pass as 'regular' inliner 2021-01-15 17:59:38 -08:00
pr48209.ll [Inline] Fix incorrect noalias metadata application (PR48209) 2020-11-18 20:52:58 +01:00
pr50270.ll [Inliner] Fix noalias metadata handling for instructions simplified during cloning (PR50270) 2021-05-10 21:59:59 +02:00
pr50589.ll [Inline] Fix noalias addition on simplified instructions (PR50589) 2021-07-20 19:52:41 +02:00
pr52118.ll [Inline] Make sure the InlineAdvisor is correctly cleared. 2021-10-12 10:42:41 -07:00
pr53206.ll [Inline][Cloning] Reliably remove unreachable blocks during cloning (PR53206) 2022-01-31 09:31:34 +01:00
prof-update-instr.ll
prof-update-sample-alwaysinline.ll Make CallInst::updateProfWeight emit i32 weights instead of i64 2020-11-24 18:13:59 -08:00
prof-update-sample.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
profile-meta.ll
profile_meta_invoke.ll [Inliner] Preserve !prof metadata when converting call to invoke. 2022-05-09 15:08:09 -07:00
ptr-diff.ll
recursive.ll
redundant-loads.ll
ret_attr_update.ll [Attributes] Make attribute addition behavior consistent 2022-01-19 12:05:27 +01:00
simplified_to.ll
store-sroa.ll
switch.ll
unwind-inline-asm.ll Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
vector-bonus.ll
vector-no-bonus.ll
zero-cost.ll