forked from OSchip/llvm-project
				
			
				
					
						
							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 | ||