-
Notifications
You must be signed in to change notification settings - Fork 15.1k
Description
| Bugzilla Link | 3405 |
| Resolution | FIXED |
| Resolved on | Jan 25, 2009 20:19 |
| Version | trunk |
| OS | Linux |
| Reporter | LLVM Bugzilla Contributor |
Extended Description
Running opt -condprop on the attached bitcode file causes an assertion failure.
Revision is today's trunk and architecture is amd64.
$ opt -condprop bugpoint-reduced-simplified.bc
opt: CondPropagate.cpp:197: void::CondProp::RevectorBlockTo(llvm::BasicBlock*, llvm::BasicBlock*): Assertion `FromBr->isUnconditional() && "FromBB should end with uncond br!"' failed.
0 opt 0x000000000078440f
1 libc.so.6 0x00007f98a5b7ef60
2 libc.so.6 0x00007f98a5b7eed5 gsignal + 53
3 libc.so.6 0x00007f98a5b803f3 abort + 387
4 libc.so.6 0x00007f98a5b77dc9 __assert_fail + 233
5 opt 0x00000000004f3713
6 opt 0x00000000004f3bb0
7 opt 0x000000000072199b llvm::FPPassManager::runOnFunction(llvm::Function&) + 347
8 opt 0x0000000000721bd6 llvm::FPPassManager::runOnModule(llvm::Module&) + 166
9 opt 0x0000000000721577 llvm::MPPassManager::runOnModule(llvm::Module&) + 199
10 opt 0x0000000000721776 llvm::PassManagerImpl::run(llvm::Module&) + 134
11 opt 0x0000000000497166 main + 3046
12 libc.so.6 0x00007f98a5b6b1a6 __libc_start_main + 230
13 opt 0x000000000048be39 sinh + 65
Aborted
Here's the bitcode disassembled:
; ModuleID = 'bugpoint-reduced-simplified.bc'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-unknown-linux-gnu"
define i32 @main(i32 %argc, i8** %argv) nounwind {
entry:
br label %bb2
bb2: ; preds = %bb.bb2_crit_edge, %entry
br i1 false, label %bb5.thread2, label %bb
bb: ; preds = %bb2
br i1 false, label %bb3, label %bb.bb2_crit_edge
bb.bb2_crit_edge: ; preds = %bb
br label %bb2
bb3: ; preds = %bb
%.lcssa4 = phi i1 [ false, %bb ] ; [#uses=1]
br i1 %.lcssa4, label %bb5.thread, label %bb6
bb5.thread: ; preds = %bb3
br label %bb7
bb7: ; preds = %bb5.thread2, %bb5.thread
br label %UnifiedReturnBlock
bb6: ; preds = %bb3
br label %UnifiedReturnBlock
bb5.thread2: ; preds = %bb2
br label %bb7