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

Kevin Qin kevinqindev at gmail.com
Thu Feb 20 03:24:19 PST 2014


Hi Tim and Quentin,

Thanks a lot for your help. This solution is quite simple and works well!
Patch is in http://llvm-reviews.chandlerc.com/D2844, please review:)


2014-02-20 1:35 GMT+08:00 Quentin Colombet <qcolombet at apple.com>:

> 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
>
>


-- 
Best Regards,

Kevin Qin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140220/1db63825/attachment.html>


More information about the llvm-dev mailing list