[PATCH] D137269: [Clang][AArch64][Darwin] Enable GlobalISel by default for Darwin ARM64 platforms.
Matt Arsenault via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 10 00:00:37 PST 2022
arsenm added a comment.
In D137269#3916911 <https://reviews.llvm.org/D137269#3916911>, @fhahn wrote:
> It looks like GISel crashes when building `llvm-test-suite` with -O3 on ARM64. If it isn't trivial to fix we should probably revert the patch to bring things back to green.
>
> Reproducer:
>
> ; llc -global-isel -O3
> target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
> target triple = "arm64-apple-macosx"
>
> define void @widget(ptr %arg, i1 %arg1) {
> bb:
> br i1 %arg1, label %bb2, label %bb3
>
> bb2: ; preds = %bb
> %tmp = icmp slt i32 0, 0
> br i1 %tmp, label %bb3, label %bb9
>
> bb3: ; preds = %bb2, %bb
> %tmp4 = phi i32 [ 1, %bb ], [ 0, %bb2 ]
> %tmp5 = zext i32 %tmp4 to i64
> br label %bb6
>
> bb6: ; preds = %bb6, %bb3
> %tmp7 = getelementptr i32, ptr %arg, i64 %tmp5
> %tmp8 = getelementptr i32, ptr %tmp7, i64 4
> store <4 x i32> zeroinitializer, ptr %tmp8, align 4
> br label %bb6
>
> bb9: ; preds = %bb2
> ret void
> }
>
> https://llvm.godbolt.org/z/d5oTWxvaG
There are a few minor issues here. There are a handle of g_ptr_add combines which are creating offsets with the non-canonical size, and then others that don't consider that the size could be different
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137269/new/
https://reviews.llvm.org/D137269
More information about the cfe-commits
mailing list