[llvm-commits] [patch] Intruction Constraint DestReg!=SrcReg (for review)

Lauro Ramos Venancio lauro.venancio at gmail.com
Tue Feb 6 15:04:14 PST 2007


The read_latency.patch is incomplete. I forgot to deal with spill live
intervals.

Lauro

2007/2/6, Lauro Ramos Venancio <lauro.venancio at gmail.com>:
> READ_LATENCY patch for review.
>
> Sample of use:
> class RegConstraint<string C> {
>  string Constraints = C;
> }
>
> // AI_orr - Defines a (op r, r) pattern.
> class AI_orr<string opc, SDNode opnode>
>  : AI<(ops GPR:$dst, GPR:$a, GPR:$b),
>       !strconcat(opc, " $dst, $a, $b"),
>       [(set GPR:$dst, (opnode GPR:$a, GPR:$b))]>,
>        RegConstraint<"$a lat 2">;
>
>
> Lauro
>
> 2007/1/26, Evan Cheng <evan.cheng at apple.com>:
> >
> > On Jan 26, 2007, at 1:07 PM, Lauro Ramos Venancio wrote:
> >
> > >> The facility does that have to be that general. There are 4 cycles
> > >> between every two instructions.  See LiveIntervalAnalysis:
> > >>
> > >>      struct InstrSlots {
> > >>        enum {
> > >>          LOAD  = 0,
> > >>          USE   = 1,
> > >>          DEF   = 2,
> > >>          STORE = 3,
> > >>          NUM   = 4
> > >>        };
> > >>      };
> > >>
> > >> We can restrict the constraint range to 1 - 3. This ensures the last
> > >> use is always the kill while retaining its flexibility.
> > >>
> > >> Evan
> > >
> > > I will try to implement this. Do you have any suggestion for
> > > constraint name and syntax?
> >
> > I don't have any great ideas. Perhaps READ_LATENCY for constraint and
> > something like
> >
> > $src +lat 2
> >
> > for syntax?
> >
> > Feel free to choose something else if you have better ideas.
> >
> > Thanks,
> >
> > Evan
> >
> > >
> > > Lauro
> >
> >
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: read_latency2.patch
Type: text/x-patch
Size: 13821 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070206/b0edea93/attachment.bin>


More information about the llvm-commits mailing list