forked from OSchip/llvm-project
0e9dec672d
Summary: This patch extends the partial inliner to support inlining parts of vararg functions, if the vararg handling is done in the outlined part. It adds a `ForwardVarArgsTo` argument to InlineFunction. If it is non-null, all varargs passed to the inlined function will be added to all calls to `ForwardVarArgsTo`. The partial inliner takes care to only pass `ForwardVarArgsTo` if the varargs handing is done in the outlined function. It checks that vastart is not part of the function to be inlined. `test/Transforms/CodeExtractor/PartialInlineNoInline.ll` (already part of the repo) checks we do not do partial inlining if vastart is used in a basic block that will be inlined. Reviewers: davide, davidxl, grosser Reviewed By: davide, davidxl, grosser Subscribers: gyiu, grosser, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D39607 llvm-svn: 318028 |
||
---|---|---|
.. | ||
X86 | ||
2004-03-13-LoopExtractorCrash.ll | ||
2004-03-14-DominanceProblem.ll | ||
2004-03-14-NoSwitchSupport.ll | ||
2004-03-17-MissedLiveIns.ll | ||
2004-03-17-UpdatePHIsOutsideRegion.ll | ||
2004-03-18-InvokeHandling.ll | ||
2004-08-12-BlockExtractPHI.ll | ||
2004-11-12-InvokeExtract.ll | ||
BlockAddressReference.ll | ||
BlockAddressSelfReference.ll | ||
ExtractedFnEntryCount.ll | ||
MultipleExitBranchProb.ll | ||
PartialInlineAlloca.ll | ||
PartialInlineAlloca2.ll | ||
PartialInlineAlloca4.ll | ||
PartialInlineAlloca5.ll | ||
PartialInlineAnd.ll | ||
PartialInlineAndOr.ll | ||
PartialInlineCallRef.ll | ||
PartialInlineEntryUpdate.ll | ||
PartialInlineHighCost.ll | ||
PartialInlineLiveAcross.ll | ||
PartialInlineNoInline.ll | ||
PartialInlineNoLiveOut.ll | ||
PartialInlineOptRemark.ll | ||
PartialInlineOr.ll | ||
PartialInlineOrAnd.ll | ||
PartialInlineVarArg.ll | ||
SingleCondition.ll | ||
cost.ll | ||
cost_meta.ll | ||
live_shrink.ll | ||
live_shrink_gep.ll | ||
live_shrink_hoist.ll | ||
live_shrink_multiple.ll | ||
live_shrink_unsafe.ll | ||
unreachable-block.ll |