1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/test/Transforms/CodeExtractor
Florian Hahn f3a8f80975 [PartialInliner] Inline vararg functions that forward varargs.
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
2017-11-13 10:35:52 +00:00
..
X86 [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
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 [CodeExtractor] Prevent extraction of block involving blockaddress 2017-06-27 18:57:53 +00:00
BlockAddressSelfReference.ll Clean up a test case 2017-06-27 21:35:49 +00:00
cost_meta.ll [PartialInlining] Minor cost anaysis tuning 2017-06-02 22:08:04 +00:00
cost.ll [PartialInlining] Minor cost anaysis tuning 2017-06-02 22:08:04 +00:00
ExtractedFnEntryCount.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
live_shrink_gep.ll [PartialInlining] Support shrinkwrap life_range markers 2017-06-11 20:46:05 +00:00
live_shrink_hoist.ll [CodeExtractor] Fix iterator invalidation in findOrCreateBlockForHoisting. 2017-11-01 09:48:12 +00:00
live_shrink_multiple.ll [PartialInlining] Support shrinkwrap life_range markers 2017-06-11 20:46:05 +00:00
live_shrink_unsafe.ll [PartialInlining] Support shrinkwrap life_range markers 2017-06-11 20:46:05 +00:00
live_shrink.ll [PartialInlining] Support shrinkwrap life_range markers 2017-06-11 20:46:05 +00:00
MultipleExitBranchProb.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
PartialInlineAlloca2.ll [PartialInlining] Shrinkwrap allocas with live range contained in outline region. 2017-05-30 21:22:18 +00:00
PartialInlineAlloca4.ll [PartialInlining] Shrinkwrap allocas with live range contained in outline region. 2017-05-30 21:22:18 +00:00
PartialInlineAlloca5.ll [PartialInlining] Shrinkwrap allocas with live range contained in outline region. 2017-05-30 21:22:18 +00:00
PartialInlineAlloca.ll [PartialInlining] Shrinkwrap allocas with live range contained in outline region. 2017-05-30 21:22:18 +00:00
PartialInlineAnd.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
PartialInlineAndOr.ll [PartialInlining]: Improve partial inlining to handle complex conditions 2017-04-27 16:34:00 +00:00
PartialInlineCallRef.ll [PartialInliner] Partial inliner needs to check use kind before transformation 2017-04-21 21:20:56 +00:00
PartialInlineEntryUpdate.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
PartialInlineHighCost.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
PartialInlineLiveAcross.ll [PartialInlining] Reduce outlining overhead by removing unneeded live-out(s) 2017-06-01 00:12:41 +00:00
PartialInlineNoInline.ll [PartialInliner] Skip call sites where inlining fails. 2017-11-03 11:29:00 +00:00
PartialInlineNoLiveOut.ll [PartialInlining] Reduce outlining overhead by removing unneeded live-out(s) 2017-06-01 00:12:41 +00:00
PartialInlineOptRemark.ll Cleanup tests to not share a DISubprogram between multiple Functions. 2017-05-04 16:24:31 +00:00
PartialInlineOr.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
PartialInlineOrAnd.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
PartialInlineVarArg.ll [PartialInliner] Inline vararg functions that forward varargs. 2017-11-13 10:35:52 +00:00
SingleCondition.ll [PartialInlining] Profile based cost analysis 2017-05-12 23:41:43 +00:00
unreachable-block.ll [PartialInlining]: Improve partial inlining to handle complex conditions 2017-04-27 16:34:00 +00:00