[PATCH] Improve big-endian support for ARM and AArch64

Eric Christopher echristo at gmail.com
Tue Sep 30 09:46:01 PDT 2014


On Tue, Sep 30, 2014 at 5:31 AM, Charlie Turner <charlie.turner at arm.com> wrote:
> Hi Renato,
>
>> ** First, the processes-relocations.ll file shouldn't have all archs, since some bots only build one or two back-ends:
>> [snip]
>> So, an XFAIL on hexagon is probably a good idea.
>
> I now realize why hexagon was omitted from the original chain of if/else comparisons. I thought it was probably an oversight, but it doesn't make sense to add a test for this target, since there's no object emission. I have updated my refactoring to not handle the hexagon case, since it's not handled in the original code.
>

You'll want:

REQUIRES: object-emission

for the test cases.

>> ** Second, Windows machines failed, since they don't support Dwarf:

Not quite true.

>>
>> http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/6585
>>
>> Eric hinted to look at nearby tests and make sure to follow the same pattern.
>
> My test (processes-relocations.ll) appears to have passed from that link's build log (http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/6585/steps/test_all/logs/stdio)
>
> PASS: LLVM :: DebugInfo/processes-relocations.ll (14176 of 19516)
>
> I have noted that in each arch-specific subdir, there are tests assuming dwarf emission, and they're not using %llc_dwarf since they want to pass their own -mtriple.
>
>> ** Third, i686 has an error::
>>
>> http://bb.pgr.jp/builders/clang-i686-cygwin-RA-centos6/builds/10472/steps/test_llvmclang/logs/LLVM%20%3A%3A%20DebugInfo__processes-relocations.ll
>
> That failed because you removed the -mtriple argument to llc (the -linux part forces ELF IIUC), which caused llc to default to COFF emission.

COFF should be ok. You should be able to use dwarf with cygwin/mingw.

-eric

>
>> Though, i386 works, at least on FreeBSD (where XFAIL i386 actually passes):
>>
>> http://llvm-amd64.freebsd.your.org/b/builders/clang-i386-freebsd/builds/23659/steps/check-all.1/logs/stdio
>
> As before, the -mtriple was removed from the invocation. The reason this one passed is because ELF is the default on a FreeBSD host, whereas the i686 above defaulted to COFF, since it was Cygwin host.
>
>> A better alternative is to split that test into multiple files, one on each arch's directory (at least ARM, AArch64 and x86_64).
>
> The attached patch does this for all the architectures dealt with in my refactoring. I can provide the next two patches of the original set if this one is OK.
>
> Thanks,
> Charlie.




More information about the llvm-commits mailing list