[llvm-commits] byval arg lowering (was: [PATCH, RFC] Fix PR13891 (AliasChain not properly maintained in ScheduleDAGInstrs::buildSchedGraph()))

William J. Schmidt wschmidt at linux.vnet.ibm.com
Thu Sep 27 08:59:56 PDT 2012


On Tue, 2012-09-25 at 15:11 -0700, Akira Hatanaka wrote:

<snip>
> 
> 2. Is it not possible to preprocess functions with byval arguments at
> the IR level and get rid of byval arguments altogether by the time the
> backend sees the function? clang does some of that in
> CodeGen/TargetInfo.cpp. If the preprocessing is done later (but before
> isel/codegen), the code which is needed to handle byval args can be
> simplified or completely removed.
> 
I'm interested in the answer to this as well.  For PowerPC, small
aggregates that fit in a register are being passed as byval, which
causes unnecessary save/restore code to be generated (including the
store and load that started this discussion).  If there's a place where
the byval annotation can be intelligently suppressed, I'd like to look
into that at some point.

Thanks,
Bill

-- 
Bill Schmidt, Ph.D.
IBM Advance Toolchain for PowerLinux
IBM Linux Technology Center
wschmidt at us.ibm.com
wschmidt at linux.vnet.ibm.com








More information about the llvm-commits mailing list