[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