[LLVMdev] How to implement register allocation constraints to guide allocator dispatching different registers for certain instruction?

Quentin Colombet qcolombet at apple.com
Wed Feb 19 09:35:32 PST 2014


Hi Kevin,

I concur Tim’s advice, you should use the @earlyclobber.

Cheers,
-Quentin

On Feb 19, 2014, at 3:27 AM, Tim Northover <t.p.northover at gmail.com> wrote:

> Hi Kevin,
> 
>> I suppose to add some extra rules on register allocator to avoid it
>> allocating register causing any unpredictable behavior, but I don't have
>> experience to this part. Can anybody tell me how to implement this or have
>> better ideas to solve this problem? Thanks in advance.
> 
> I think this is what the "@earlyclobber" constraint is for: if you
> mark the status output register as @earlyclobber then LLVM will think
> it gets written early on during the instruction (i.e. before the CPU
> would get a chance to read the other two) and make sure it gets
> allocated to a different register.
> 
> Cheers.
> 
> Tim.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list