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 6203 include/llvm/IR/Argument.h
include/llvm/IR/Instructions.h
include/llvm/Support/CallSite.h
lib/Analysis/MemoryBuiltins.cpp
lib/Analysis/ValueTracking.cpp
lib/IR/Function.cpp
lib/IR/Instructions.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
|
"the byval attribute or inalloca attribute"
or *the inalloca attribute?
"from the perspective of the callee" doesn't really tell the reader much (why are they similar?). Suggestion: "These attributes both represent arguments being passed by copy under different ABIs."