[llvm-dev] Diff to add ARMv6L to Target parser
Tim Northover via llvm-dev
llvm-dev at lists.llvm.org
Tue Jan 5 04:33:18 PST 2016
> You assume triples make sense. That's the first mistake everyone does
> when thinking about triples. :)
I know they don't make sense in many corner cases, but I think
discarding logic where it *does* exist is a mistake.
> AFAIK, "ARMv7B" is only used by HighBank, which is no more. But that,
> too, was "ARMv7A big endian".
I believe it's what any Linux kernel will present itself as via "uname
-a" which, as James said, is a vaguely sane way to seed a triple.
> The ARM documents define a list of official architecture names, and
> those are the ones supported by the TargetParser. What the
> Triple/Tuple supports is completely orthogonal.
I do know this, Renato.
> So, in the TargetParser, there can be no "ARMv7L" nor "ARMv7B", only
> "ARMv7A". The other strings map to ARMv7A because that's what they
> generally mean, in the wild, with regards to "architecture names". The
> hack is that the Driver/Triple/Tuple are using that to mean everything
> else.
Sure. In exactly the same way there's no "armebv7" in TargetParser.
There's principled(ish) parsing of the "eb" when deciding what the
triple actually means though.
>> What does RTLinux on an R-class CPU present itself as? My guess would
>> be "armv7l" too.
>
> Nope. GNU triples have a very specific meaning because that's what's
> generated from the configure-time options.
I have no idea what you're objecting to here. I wasn't saying anything
about how GNU interprets the armv7l that would be produced, just that
I would expect running "uname" on an R-class Linux to produce armv7l.
Tim.
More information about the llvm-dev
mailing list