[llvm-dev] About TableGen RangeList

陳韋任 via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 17 06:27:31 PDT 2017


Hi Matt,

  I believe `bit isLittleEndianEncoding` is irrelevant here. Tim and I are
talking about if the (a) and (b)
below getting the same (expected) result.

    bits<32> insnEncoding;
    let insnEncoding{15-12} = 0b0100; // (a)
    let insnEncoding{15-12} = 0b0100; // (b)

Looking at TGParser::ParseRangePiece [1], no one use isLittleEndianEncoding.
I think Tim's concern
is it's quite easy to misuse those {15-12} and {12-15}, and users won't be
notified if thing doesn't go as
they expected.

[1] http://llvm.org/doxygen/TGParser_8cpp_source.html

Regards,
chenwj


2017-04-17 1:16 GMT+08:00 Matt Arsenault <arsenm2 at gmail.com>:

>
> > On Apr 15, 2017, at 20:35, Tim Northover via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >
> > On 15 April 2017 at 19:52, 陳韋任 via llvm-dev <llvm-dev at lists.llvm.org>
> wrote:
> >> Okay, a little experiment shows the order matters.
> >
> > Interesting, thanks for reporting back. Personally I find it pretty
> > scary that we support the second form at all. It's mixing two
> > different endiannesses with no real indication of which one will win.
> >
> > Tim.
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
> I recall seeing an option to control this in InstrInfo:
>
>   // Target can specify its instructions in either big or little-endian
> formats.
>   // For instance, while both Sparc and PowerPC are big-endian platforms,
> the
>   // Sparc manual specifies its instructions in the format [31..0] (big),
> while
>   // PowerPC specifies them using the format [0..31] (little).
>   bit isLittleEndianEncoding = 0;




-- 
Wei-Ren Chen (陳韋任)
Homepage: https://people.cs.nctu.edu.tw/~chenwj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170417/39c0dc5c/attachment.html>


More information about the llvm-dev mailing list