I searched Transforms/ and Analysis/ for 'ByVal' and updated those call
sites to check for inalloca if appropriate.
I added tests for any change that would allow an optimization to fire on
inalloca.
Paths
| Differential D2449
Update optimization passes to handle inalloca arguments ClosedPublic Authored by rnk on Dec 19 2013, 2:43 PM.
Details
Summary I searched Transforms/ and Analysis/ for 'ByVal' and updated those call I added tests for any change that would allow an optimization to fire on
Diff Detail Event Timeline
Comment Actions A lot of this changed and I think the questionable parts went away. PTAL
Comment Actions Please merge test/Transforms/ArgumentPromotion/inalloca.ll and test/Transforms/ArgumentPromotion/inalloca-2.ll
Revision Contents
Diff 6563 lib/Analysis/MemoryBuiltins.cpp
lib/Analysis/ValueTracking.cpp
lib/Transforms/IPO/ArgumentPromotion.cpp
lib/Transforms/IPO/DeadArgumentElimination.cpp
lib/Transforms/IPO/FunctionAttrs.cpp
lib/Transforms/IPO/IPConstantPropagation.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
lib/Transforms/ObjCARC/ObjCARC.h
lib/Transforms/Scalar/DeadStoreElimination.cpp
test/Transforms/ArgumentPromotion/inalloca-2.ll
test/Transforms/ArgumentPromotion/inalloca.ll
test/Transforms/DeadStoreElimination/simple.ll
test/Transforms/FunctionAttrs/readattrs.ll
test/Transforms/InstCombine/call-cast-target-inalloca.ll
|
"considered to be" --> "implicitly"? You get undef if you load from one afterwards, right?