[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