This is an archive of the discontinued LLVM Phabricator instance.

[GlobalISel] Disable GISel for big endian
ClosedPublic

Authored by aemerson on Dec 4 2017, 8:17 AM.

Details

Summary

This is due to PR26161 needing to be resolved before we can fix big endian bugs like PR35359. The work to split aggregates into smaller LLTs instead of using one large scalar will take some time, so in the mean time we'll fall back to SDAG.

Some ARM BE tests xfailed for now as a result.

Diff Detail

Repository
rL LLVM

Event Timeline

aemerson created this revision.Dec 4 2017, 8:17 AM
fhahn added a subscriber: fhahn.Dec 4 2017, 8:37 AM

I'll let @rovka review the code; I just thought I'd add @ivanbaev as a subscriber, as I believe he's a user of big endian code generation on Arm/AArch64 to be aware that this means that when globalisel gets enabled by default on AArch64 at -O0, it'll in practice only be for little endian, not big endian.
I'm wondering if a test case could be added to test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll, so that test keeps on being a reasonable representation of fallbacks that need to be fixed eventually.

aemerson updated this revision to Diff 126140.Dec 8 2017, 6:49 AM

Thanks, I've added a new fallback test.

rovka accepted this revision.Dec 11 2017, 2:07 AM

LGTM until we can handle big endian. Sorry about the delay.

This revision is now accepted and ready to land.Dec 11 2017, 2:07 AM
This revision was automatically updated to reflect the committed changes.