[LLVMdev] adding support for -ffixed-<reg>

Matthew Curtis mcurtis at codeaurora.org
Wed Oct 3 08:46:02 PDT 2012


On 10/3/2012 12:29 AM, Chris Lattner wrote:
> On Oct 2, 2012, at 7:23 AM, Matthew Curtis <mcurtis at codeaurora.org 
> <mailto:mcurtis at codeaurora.org>> wrote:
>> I'm adding support for -ffixed-<reg> 
>> <http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Code-Gen-Options.html#index-ffixed-1435> 
>> for Hexagon and was wondering if I should do it in such a way that 
>> other targets get the support as well by default or if a given target 
>> back-end should have to explicitly opt-in for support.
>
> It would be great to have this as a target-indepentent (well, 
> obviously the specific register names are target specific, you know 
> what I mean) compiler feature.  This is one of the blocking issues 
> preventing some portion of the Linux kernel from "just working" with LLVM.
>
> From the design perspective, I think it would make sense to represent 
> this in LLVM IR with named metadata 
> (http://llvm.org/docs/LangRef.html#namedmetadatastructure) like 
> "!llvm.fixedregs".  This could then be picked up by the code 
> generator, installed as preallocated registers (Jakob would be the one 
> to ask how best to do this).
>
> If you're not in a huge hurry, an even better way to model this is 
> with Bill Wendling's work on generalized function attributes.  Our 
> eventual goal is to allow arbitrary target-specific function 
> attributes.  Modeling this list as a per-function attribute would be 
> much cleaner, and allow -ffixed-<reg> to work with LTO.

We currently have a working solution that satisfies the needs of our 
internal users, so we're not in a huge hurry.

Depending on the timeline for generalized function attributes, I'd like 
to pursue this as the preferred solution. I will follow-up with Bill.

Thanks,
Matthew Curtis.


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121003/6b782986/attachment.html>


More information about the llvm-dev mailing list