llvm-6502/lib/Transforms/IPO
Reid Kleckner 9d1f8b1b21 ArgPromotion: Don't touch variadic functions
Adding, removing, or changing non-pack parameters can change the ABI
classification of pack parameters. Clang and other frontends encode the
classification in the IR of the call site, but the callee side
determines it dynamically based on the number of registers consumed so
far. Changing the prototype affects the number of registers consumed
would break such code.

Dead argument elimination performs a similar task and already has a
similar check to avoid this problem.

Patch by Thomas Jablin!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216421 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-25 23:58:48 +00:00
..
ArgumentPromotion.cpp ArgPromotion: Don't touch variadic functions 2014-08-25 23:58:48 +00:00
BarrierNoopPass.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-05 09:10:37 +00:00
CMakeLists.txt Move -verify-use-list-order into llvm-uselistorder 2014-07-25 17:13:03 +00:00
ConstantMerge.cpp Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size. 2014-08-21 05:55:13 +00:00
DeadArgumentElimination.cpp Constify the Function pointers in the result of makeSubprogramMap 2014-07-02 18:30:05 +00:00
ExtractGV.cpp GlobalValue: Assert symbols with local linkage have default visibility 2014-05-07 23:00:22 +00:00
FunctionAttrs.cpp [optnone] Make the optnone attribute effective at suppressing function 2014-08-13 10:49:33 +00:00
GlobalDCE.cpp Remove dangling initializers in GlobalDCE 2014-08-25 17:51:14 +00:00
GlobalOpt.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
InlineAlways.cpp Check the alwaysinline attribute on the call as well as on the caller. 2014-05-19 18:25:54 +00:00
Inliner.cpp Add the missing hasLinkOnceODRLinkage predicate. 2014-07-30 15:57:51 +00:00
InlineSimple.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
Internalize.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
IPConstantPropagation.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
IPO.cpp Move -verify-use-list-order into llvm-uselistorder 2014-07-25 17:13:03 +00:00
LLVMBuild.txt Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
LoopExtractor.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
Makefile
MergeFunctions.cpp MergeFunctions, tiny refactoring: 2014-08-25 08:22:46 +00:00
PartialInlining.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
PassManagerBuilder.cpp Move some logic to populateLTOPassManager. 2014-08-21 20:03:44 +00:00
PruneEH.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
StripDeadPrototypes.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
StripSymbols.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00