[PATCH] D136871: [SelectionDAG] remove stale check assuming INLINEASM_BR is terminator

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 27 12:27:35 PDT 2022


craig.topper added inline comments.


================
Comment at: llvm/test/CodeGen/X86/callbr-asm-bb-exports.ll:22
+; CHECK-NEXT: t28: ch,glue = inlineasm_br t21, TargetExternalSymbol:i64'xorl $0, $0; jmp ${1:l}', MDNode:ch<null>, TargetConstant:i64<0>, TargetConstant:i32<2359305>, Register:i32 %5, TargetConstant:i64<13>, BasicBlock:ch<fail 0x{{[0-9a-f]+}}>, TargetConstant:i32<12>, Register:i32 $df, TargetConstant:i32<12>, Register:i16 $fpsw, TargetConstant:i32<12>, Register:i32 $eflags, t21:1
+; CHECK-NEXT: t29: ch = TokenFactor t12, t15, t28
+; CHECK-NEXT: t31: ch = br t29, BasicBlock:ch<normal 0x{{[0-9a-f]+}}>
----------------
This means the copies to virtual register %0 and %1 are no longer guaranteed to happen before the inlineasm_br block is executed. Since I think one of those is used by the `fail` basic block, that seems wrong.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D136871



More information about the llvm-commits mailing list