diff options
author | Amara Emerson <aemerson@apple.com> | 2017-12-11 16:58:29 +0000 |
---|---|---|
committer | Amara Emerson <aemerson@apple.com> | 2017-12-11 16:58:29 +0000 |
commit | df9b529d4205362fe1e073a1f0d9d9106e687df1 (patch) | |
tree | eb2e37e40576edaa00f3cc37c62479fb1f3498c2 /llvm/lib/CodeGen | |
parent | fabe354b42f90289dea877eb2dd85fa75d492817 (diff) | |
download | bcm5719-llvm-df9b529d4205362fe1e073a1f0d9d9106e687df1.tar.gz bcm5719-llvm-df9b529d4205362fe1e073a1f0d9d9106e687df1.zip |
[GlobalISel] Disable GISel for big endian.
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.
Differential Revision: https://reviews.llvm.org/D40789
llvm-svn: 320388
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index e911085d0ad..8ecfd1e9efd 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -1253,6 +1253,15 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &CurMF) { assert(PendingPHIs.empty() && "stale PHIs"); + if (!DL->isLittleEndian()) { + // Currently we don't properly handle big endian code. + OptimizationRemarkMissed R("gisel-irtranslator", "GISelFailure", + MF->getFunction()->getSubprogram(), + &MF->getFunction()->getEntryBlock()); + R << "unable to translate in big endian mode"; + reportTranslationError(*MF, *TPC, *ORE, R); + } + // Release the per-function state when we return, whether we succeeded or not. auto FinalizeOnReturn = make_scope_exit([this]() { finalizeFunction(); }); |