[llvm-dev] byval vs. explicitly coded copy (original) (raw)

Friedman, Eli via llvm-dev llvm-dev at lists.llvm.org
Fri Nov 3 15:44:58 PDT 2017


On 11/3/2017 2:57 PM, Rodney M. Bates via llvm-dev wrote:

Is there any disadvantage to inserting explicit llvm code in a prolog to copy a parameter, rather than putting the 'byval' attribute on the formal or indirect call?

I have an IR that, without some significant work, does not make enough information available at an indirect call site to know whether a copy is needed.  (The original source language knows, it just gets lost at an indirect call.)

It's fine; actually, you'll probably get better code in many cases by avoiding byval.  (If you're calling code which uses the C calling convention, you might need to use "byval" to match the calling convention.)

-Eli

-- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project



More information about the llvm-dev mailing list