[llvm] r320388 - [GlobalISel] Disable GISel for big endian.
Amara Emerson via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 12 06:00:16 PST 2017
Hi Galina,
I did a build with EXPENSIVE_CHECKS but this failure happens without my patch so it seems to be an existing issue.
Jessica, could you take a look?
Cheers,
Amara
> On Dec 11, 2017, at 10:08 PM, Galina Kistanova <gkistanova at gmail.com> wrote:
>
> Hello Amara,
>
> It looks like this commit broke a test on one of our builders:
> http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/6693 <http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/6693>
>
> . . .
> Failing Tests (3):
> LLVM :: CodeGen/AArch64/machine-outliner.mir
> . . .
>
> Please have a look?
> The builder was already red and did not send notifications.
>
> Thanks
>
> Galina
>
> On Mon, Dec 11, 2017 at 8:58 AM, Amara Emerson via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
> Author: aemerson
> Date: Mon Dec 11 08:58:29 2017
> New Revision: 320388
>
> URL: http://llvm.org/viewvc/llvm-project?rev=320388&view=rev <http://llvm.org/viewvc/llvm-project?rev=320388&view=rev>
> Log:
> [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 <https://reviews.llvm.org/D40789>
>
> Modified:
> llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp
> llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
> llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
> llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll
>
> Modified: llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp?rev=320388&r1=320387&r2=320388&view=diff <http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp?rev=320388&r1=320387&r2=320388&view=diff>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (original)
> +++ llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp Mon Dec 11 08:58:29 2017
> @@ -1253,6 +1253,15 @@ bool IRTranslator::runOnMachineFunction(
>
> 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(); });
>
>
> Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll?rev=320388&r1=320387&r2=320388&view=diff <http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll?rev=320388&r1=320387&r2=320388&view=diff>
> ==============================================================================
> --- llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll (original)
> +++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll Mon Dec 11 08:58:29 2017
> @@ -3,6 +3,7 @@
> ; RUN: llc -O0 -global-isel -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o %t.out 2> %t.err
> ; RUN: FileCheck %s --check-prefix=FALLBACK-WITH-REPORT-OUT < %t.out
> ; RUN: FileCheck %s --check-prefix=FALLBACK-WITH-REPORT-ERR < %t.err
> +; RUN: not llc -global-isel -mtriple aarch64_be %s -o - 2>&1 | FileCheck %s --check-prefix=BIG-ENDIAN
> ; This file checks that the fallback path to selection dag works.
> ; The test is fragile in the sense that it must be updated to expose
> ; something that fails with global-isel.
> @@ -12,6 +13,8 @@
> target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
> target triple = "aarch64--"
>
> +; BIG-ENDIAN: unable to translate in big endian mode
> +
> ; We use __fixunstfti as the common denominator for __fixunstfti on Linux and
> ; ___fixunstfti on iOS
> ; ERROR: unable to lower arguments: i128 (i128)* (in function: ABIi128)
>
> Modified: llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll?rev=320388&r1=320387&r2=320388&view=diff <http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll?rev=320388&r1=320387&r2=320388&view=diff>
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll Mon Dec 11 08:58:29 2017
> @@ -1,5 +1,6 @@
> ; RUN: llc -mtriple arm-unknown -mattr=+vfp2,+v4t -global-isel -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=LITTLE
> -; RUN: llc -mtriple armeb-unknown -mattr=+vfp2,+v4t -global-isel -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=BIG
> +; RUN: llc -mtriple armeb-unknown -mattr=+vfp2,+v4t -global-isel -global-isel-abort=0 -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=BIG
> +; XFAIL: armeb
>
> define void @test_void_return() {
> ; CHECK-LABEL: name: test_void_return
>
> Modified: llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll?rev=320388&r1=320387&r2=320388&view=diff <http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll?rev=320388&r1=320387&r2=320388&view=diff>
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll Mon Dec 11 08:58:29 2017
> @@ -1,5 +1,6 @@
> ; RUN: llc -mtriple arm-unknown -mattr=+vfp2,+v4t -global-isel -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=LITTLE
> -; RUN: llc -mtriple armeb-unknown -mattr=+vfp2,+v4t -global-isel -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=BIG
> +; RUN: llc -mtriple armeb-unknown -mattr=+vfp2,+v4t -global-isel -global-isel-abort=0 -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefix=CHECK -check-prefix=BIG
> +; XFAIL: armeb
>
> declare arm_aapcscc i32* @simple_reg_params_target(i32, i32*)
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171212/229786d0/attachment.html>
More information about the llvm-commits
mailing list