Index: llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp =================================================================== --- llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -125,8 +125,11 @@ MachineBasicBlock &IRTranslator::getOrCreateBB(const BasicBlock &BB) { MachineBasicBlock *&MBB = BBToMBB[&BB]; if (!MBB) { - MBB = MF->CreateMachineBasicBlock(); + MBB = MF->CreateMachineBasicBlock(&BB); MF->push_back(MBB); + + if (BB.hasAddressTaken()) + MBB->setHasAddressTaken(); } return *MBB; } Index: llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll =================================================================== --- llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll +++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll @@ -52,10 +52,10 @@ ; CHECK: body: ; ; ABI/constant lowering and IR-level entry basic block. -; CHECK: {{bb.[0-9]+}}: +; CHECK: {{bb.[0-9]+}} (%ir-block.{{[0-9]+}}): ; ; Make sure we have one successor and only one. -; CHECK-NEXT: successors: %[[END:bb.[0-9]+]](0x80000000) +; CHECK-NEXT: successors: %[[END:bb.[0-9]+.end]](0x80000000) ; ; Check that we emit the correct branch. ; CHECK: G_BR %[[END]] @@ -74,10 +74,10 @@ ; CHECK: body: ; ; ABI/constant lowering and IR-level entry basic block. -; CHECK: {{bb.[0-9]+}}: +; CHECK: {{bb.[0-9]+}} (%ir-block.{{[0-9]+}}): ; Make sure we have two successors -; CHECK-NEXT: successors: %[[TRUE:bb.[0-9]+]](0x40000000), -; CHECK: %[[FALSE:bb.[0-9]+]](0x40000000) +; CHECK-NEXT: successors: %[[TRUE:bb.[0-9]+.true]](0x40000000), +; CHECK: %[[FALSE:bb.[0-9]+.false]](0x40000000) ; ; CHECK: [[ADDR:%.*]](p0) = COPY %x0 ; @@ -105,8 +105,8 @@ ; CHECK-LABEL: name: switch ; CHECK: body: ; -; CHECK: {{bb.[0-9]+}}: -; CHECK-NEXT: successors: %[[BB_CASE100:bb.[0-9]+]](0x40000000), %[[BB_NOTCASE100_CHECKNEXT:bb.[0-9]+.entry]](0x40000000) +; CHECK: {{bb.[0-9]+.entry}}: +; CHECK-NEXT: successors: %[[BB_CASE100:bb.[0-9]+.case100]](0x40000000), %[[BB_NOTCASE100_CHECKNEXT:bb.[0-9]+.entry]](0x40000000) ; CHECK: %0(s32) = COPY %w0 ; CHECK: %[[reg100:[0-9]+]](s32) = G_CONSTANT i32 100 ; CHECK: %[[reg200:[0-9]+]](s32) = G_CONSTANT i32 200 @@ -118,21 +118,21 @@ ; CHECK: G_BR %[[BB_NOTCASE100_CHECKNEXT]] ; ; CHECK: [[BB_CASE100]]: -; CHECK-NEXT: successors: %[[BB_RET:bb.[0-9]+]](0x80000000) +; CHECK-NEXT: successors: %[[BB_RET:bb.[0-9]+.return]](0x80000000) ; CHECK: %[[regretc100:[0-9]+]](s32) = G_ADD %0, %[[reg1]] ; CHECK: G_BR %[[BB_RET]] ; CHECK: [[BB_NOTCASE100_CHECKNEXT]]: -; CHECK-NEXT: successors: %[[BB_CASE200:bb.[0-9]+]](0x40000000), %[[BB_NOTCASE200_CHECKNEXT:bb.[0-9]+.entry]](0x40000000) +; CHECK-NEXT: successors: %[[BB_CASE200:bb.[0-9]+.case200]](0x40000000), %[[BB_NOTCASE200_CHECKNEXT:bb.[0-9]+.entry]](0x40000000) ; CHECK: %[[regicmp200:[0-9]+]](s1) = G_ICMP intpred(eq), %[[reg200]](s32), %0 ; CHECK: G_BRCOND %[[regicmp200]](s1), %[[BB_CASE200]] ; CHECK: G_BR %[[BB_NOTCASE200_CHECKNEXT]] ; ; CHECK: [[BB_CASE200]]: -; CHECK-NEXT: successors: %[[BB_RET:bb.[0-9]+]](0x80000000) +; CHECK-NEXT: successors: %[[BB_RET:bb.[0-9]+.return]](0x80000000) ; CHECK: %[[regretc200:[0-9]+]](s32) = G_ADD %0, %[[reg2]] ; CHECK: G_BR %[[BB_RET]] ; CHECK: [[BB_NOTCASE200_CHECKNEXT]]: -; CHECK-NEXT: successors: %[[BB_DEFAULT:bb.[0-9]+]](0x80000000) +; CHECK-NEXT: successors: %[[BB_DEFAULT:bb.[0-9]+.default]](0x80000000) ; CHECK: G_BR %[[BB_DEFAULT]] ; ; CHECK: [[BB_DEFAULT]]: @@ -168,7 +168,6 @@ ret i32 %res } - ; Tests for or. ; CHECK-LABEL: name: ori64 ; CHECK: [[ARG1:%[0-9]+]](s64) = COPY %x0 @@ -292,11 +291,11 @@ ; CHECK-LABEL: name: trivial_bitcast_with_copy ; CHECK: [[A:%[0-9]+]](p0) = COPY %x0 -; CHECK: G_BR %[[CAST:bb\.[0-9]+]] +; CHECK: G_BR %[[CAST:bb\.[0-9]+.cast]] ; CHECK: [[CAST]]: ; CHECK: {{%[0-9]+}}(p0) = COPY [[A]] -; CHECK: G_BR %[[END:bb\.[0-9]+]] +; CHECK: G_BR %[[END:bb\.[0-9]+.end]] ; CHECK: [[END]]: define i64* @trivial_bitcast_with_copy(i8* %a) { @@ -393,8 +392,8 @@ } ; CHECK-LABEL: name: test_phi -; CHECK: G_BRCOND {{%.*}}, %[[TRUE:bb\.[0-9]+]] -; CHECK: G_BR %[[FALSE:bb\.[0-9]+]] +; CHECK: G_BRCOND {{%.*}}, %[[TRUE:bb\.[0-9]+.true]] +; CHECK: G_BR %[[FALSE:bb\.[0-9]+.false]] ; CHECK: [[TRUE]]: ; CHECK: [[RES1:%[0-9]+]](s32) = G_LOAD @@ -1002,7 +1001,7 @@ ; correct. define i8* @test_const_placement() { ; CHECK-LABEL: name: test_const_placement -; CHECK: bb.{{[0-9]+}}: +; CHECK: bb.{{[0-9]+}} (%ir-block.{{[0-9]+}}): ; CHECK: [[VAL_INT:%[0-9]+]](s32) = G_CONSTANT i32 42 ; CHECK: [[VAL:%[0-9]+]](p0) = G_INTTOPTR [[VAL_INT]](s32) ; CHECK: G_BR Index: llvm/trunk/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll =================================================================== --- llvm/trunk/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll +++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll @@ -8,8 +8,8 @@ ; CHECK: name: bar ; CHECK: body: -; CHECK-NEXT: bb.1: -; CHECK: successors: %[[GOOD:bb.[0-9]+]]{{.*}}%[[BAD:bb.[0-9]+]] +; CHECK-NEXT: bb.1 (%ir-block.0): +; CHECK: successors: %[[GOOD:bb.[0-9]+.continue]]{{.*}}%[[BAD:bb.[0-9]+.broken]] ; CHECK: EH_LABEL ; CHECK: %w0 = COPY ; CHECK: BL @foo, csr_aarch64_aapcs, implicit-def %lr, implicit %sp, implicit %w0, implicit-def %w0 Index: llvm/trunk/test/CodeGen/X86/GlobalISel/irtranslator-call.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/GlobalISel/irtranslator-call.ll +++ llvm/trunk/test/CodeGen/X86/GlobalISel/irtranslator-call.ll @@ -24,7 +24,7 @@ ; CHECK-NEXT: hasVAStart: false ; CHECK-NEXT: hasMustTailInVarArgFunc: false ; CHECK-NEXT: body: -; CHECK-NEXT: bb.1: +; CHECK-NEXT: bb.1.entry: ; CHECK-NEXT: RET 0 entry: ret void