[PATCH] D156345: RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 2 10:38:47 PDT 2023


fhahn added a comment.

FYI it looks like this is causing crashes on ARM64.

Reproducer for `llc`:

  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
  target triple = "arm64-apple-macosx"
  
  declare i32 @fprintf(ptr, ptr, ...)
  
  declare i32 @putc(i32, ptr)
  
  define void @widget(i32 %arg, i32 %arg1, ptr %arg2, ptr %arg3, ptr %arg4, i32 %arg5, i1 %arg6) {
  bb:
    br label %bb7
  
  bb7:                                              ; preds = %bb14, %bb13, %bb
    %phi = phi i32 [ undef, %bb ], [ %mul, %bb14 ], [ %mul, %bb13 ]
    br label %bb8
  
  bb8:                                              ; preds = %bb10, %bb9, %bb8, %bb7
    switch i32 %arg1, label %bb8 [
      i32 10, label %bb9
      i32 64, label %bb16
      i32 0, label %bb13
      i32 39, label %bb10
      i32 34, label %bb10
      i32 1, label %bb12
    ]
  
  bb9:                                              ; preds = %bb8
    store i32 1, ptr %arg2, align 4
    br label %bb8
  
  bb10:                                             ; preds = %bb8, %bb8
    store i32 0, ptr %arg4, align 4
    %call = tail call i32 @putc(i32 %arg5, ptr %arg3)
    %call11 = tail call i32 @putc(i32 %arg, ptr null)
    br label %bb8
  
  bb12:                                             ; preds = %bb12, %bb8
    br label %bb12
  
  bb13:                                             ; preds = %bb8
    %mul = mul i32 1, 1
    br i1 %arg6, label %bb14, label %bb7
  
  bb14:                                             ; preds = %bb13
    %call15 = tail call i32 (ptr, ptr, ...) @fprintf(ptr null, ptr null, ptr null, i32 0, i32 %mul, ptr null)
    br label %bb7
  
  bb16:                                             ; preds = %bb8
    %call17 = tail call i32 (ptr, ptr, ...) @fprintf(ptr null, ptr null, i32 %phi)
    unreachable
  }


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156345/new/

https://reviews.llvm.org/D156345



More information about the llvm-commits mailing list