| ; RUN: llc < %s -verify-coalescing |
| ; PR12892 |
| ; |
| ; Dead code elimination during coalesing causes a live range to split into two |
| ; virtual registers. Stale identity copies that had already been joined were |
| ; interfering with the liveness computations. |
| |
| target triple = "i386-pc-linux-gnu" |
| |
| define void @_ZN4llvm17AsmMatcherEmitter3runERNS_11raw_ostreamE() align 2 { |
| invoke void @_ZNK4llvm13CodeGenTarget12getAsmParserEv() |
| to label %1 unwind label %5 |
| |
| ; <label>:1 ; preds = %0 |
| invoke void @_ZNK4llvm6Record16getValueAsStringENS_9StringRefE() |
| to label %4 unwind label %2 |
| |
| ; <label>:2 ; preds = %1 |
| %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| cleanup |
| unreachable |
| |
| ; <label>:4 ; preds = %1 |
| invoke void @_ZN4llvm18isCurrentDebugTypeEPKc() |
| to label %12 unwind label %7 |
| |
| ; <label>:5 ; preds = %0 |
| %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| cleanup |
| br label %33 |
| |
| ; <label>:7 ; preds = %4 |
| %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| cleanup |
| br label %9 |
| |
| ; <label>:9 ; preds = %28, %7 |
| %10 = phi { i8*, i32 } [ %29, %28 ], [ %8, %7 ] |
| %11 = extractvalue { i8*, i32 } %10, 1 |
| invoke fastcc void @_ZN12_GLOBAL__N_114AsmMatcherInfoD2Ev() |
| to label %32 unwind label %35 |
| |
| ; <label>:12 ; preds = %4 |
| invoke void @_ZNK4llvm13CodeGenTarget10getRegBankEv() |
| to label %13 unwind label %16 |
| |
| ; <label>:13 ; preds = %12 |
| br label %14 |
| |
| ; <label>:14 ; preds = %20, %13 |
| %15 = icmp eq i32 undef, 0 |
| br i1 %15, label %20, label %18 |
| |
| ; <label>:16 ; preds = %12 |
| %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| cleanup |
| br label %26 |
| |
| ; <label>:18 ; preds = %14 |
| invoke void @_ZNSs4_Rep9_S_createEjjRKSaIcE() |
| to label %19 unwind label %21 |
| |
| ; <label>:19 ; preds = %18 |
| unreachable |
| |
| ; <label>:20 ; preds = %14 |
| br label %14 |
| |
| ; <label>:21 ; preds = %18 |
| %22 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| cleanup |
| %23 = extractvalue { i8*, i32 } %22, 1 |
| br i1 undef, label %26, label %24 |
| |
| ; <label>:24 ; preds = %21 |
| br i1 undef, label %25, label %26 |
| |
| ; <label>:25 ; preds = %24 |
| unreachable |
| |
| ; <label>:26 ; preds = %24, %21, %16 |
| %27 = phi i32 [ 0, %16 ], [ %23, %21 ], [ %23, %24 ] |
| invoke void @_ZNSt6vectorISt4pairISsSsESaIS1_EED1Ev() |
| to label %28 unwind label %30 |
| |
| ; <label>:28 ; preds = %26 |
| %29 = insertvalue { i8*, i32 } undef, i32 %27, 1 |
| br label %9 |
| |
| ; <label>:30 ; preds = %26 |
| %31 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| catch i8* null |
| unreachable |
| |
| ; <label>:32 ; preds = %9 |
| br label %33 |
| |
| ; <label>:33 ; preds = %32, %5 |
| %34 = phi i32 [ undef, %5 ], [ %11, %32 ] |
| unreachable |
| |
| ; <label>:35 ; preds = %9 |
| %36 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| catch i8* null |
| unreachable |
| } |
| |
| declare void @_ZNK4llvm13CodeGenTarget12getAsmParserEv() |
| |
| declare i32 @__gxx_personality_v0(...) |
| |
| declare void @_ZNK4llvm6Record16getValueAsStringENS_9StringRefE() |
| |
| declare void @_ZN4llvm18isCurrentDebugTypeEPKc() |
| |
| declare fastcc void @_ZN12_GLOBAL__N_114AsmMatcherInfoD2Ev() unnamed_addr inlinehint align 2 |
| |
| declare hidden void @_ZNSt6vectorISt4pairISsSsESaIS1_EED1Ev() unnamed_addr align 2 |
| |
| declare void @_ZNSs4_Rep9_S_createEjjRKSaIcE() |
| |
| declare void @_ZNK4llvm13CodeGenTarget10getRegBankEv() |