crash in 2.7: SCCPSolver::ResolvedUndefsIn

Are there any known issues with the ResolvedUndefsIn in 2.7? We've hit this particular stack a couple times now in the JIT. I've copied the failing bitcode to disk and doesn't crash opt or llc. It doesn't repro easily in the JIT either, but the stack is always the same... hoping it's a known issue. Thanks!

    TerminatorInst *TI = BB->getTerminator();

if (BranchInst *BI = dyn_cast<BranchInst>(TI)) {

      if (!BI->isConditional()) continue;

#0 llvm::Value::getValueID (this=0xfffffd7fecbef3c0, F=<value optimized out>) at ./llvm-2.7/include/llvm/Value.h:247
#1 llvm::Instruction::getOpcode (this=0xfffffd7fecbef3c0, F=<value optimized out>) at ./llvm-2.7/include/llvm/Instruction.h:80
#2 llvm::BranchInst::classof (this=0xfffffd7fecbef3c0, F=<value optimized out>) at ./llvm-2.7/include/llvm/Instructions.h:2083
#3 isa_impl<llvm::BranchInst, llvm::TerminatorInst> (this=0xfffffd7fecbef3c0, F=<value optimized out>)
    at ./llvm-2.7/include/llvm/Support/Casting.h:54
#4 llvm::isa_impl_wrap<llvm::BranchInst, llvm::TerminatorInst const, llvm::TerminatorInst const>::doit (this=0xfffffd7fecbef3c0,
    F=<value optimized out>) at ./llvm-2.7/include/llvm/Support/Casting.h:71
#5 isa<llvm::BranchInst> (this=0xfffffd7fecbef3c0, F=<value optimized out>) at ./llvm-2.7/include/llvm/Support/Casting.h:83
#6 isa<llvm::BranchInst> (this=0xfffffd7fecbef3c0, F=<value optimized out>) at ./llvm-2.7/include/llvm/Support/Casting.h:101
#7 isa<llvm::BranchInst, llvm::TerminatorInst*> (this=0xfffffd7fecbef3c0, F=<value optimized out>)
    at ./llvm-2.7/include/llvm/Support/Casting.h:116
#8 dyn_cast<llvm::BranchInst, llvm::TerminatorInst*> (this=0xfffffd7fecbef3c0, F=<value optimized out>)
    at ./llvm-2.7/include/llvm/Support/Casting.h:226
#9 ResolvedUndefsIn (this=0xfffffd7fecbef3c0, F=<value optimized out>) at ./llvm-2.7/lib/Transforms/Scalar/SCCP.cpp:1525
#10 0xfffffd7ffd5b5b26 in runOnModule (this=<value optimized out>, M=<value optimized out>)
    at ./llvm-2.7/lib/Transforms/Scalar/SCCP.cpp:1781
#11 0xfffffd7ffd73a558 in llvm::MPPassManager::runOnModule (this=0x6f6dff00, M=...)
    at ./llvm-2.7/lib/VMCore/PassManager.cpp:1424
#12 0xfffffd7ffd73a67b in llvm::PassManagerImpl::run (this=0x98d417c0, M=...) at ./llvm-2.7/lib/VMCore/PassManager.cpp:1506

Hi Nathan,

Yes, there were some fixes in this area back in april after 2.7 branched. I'd recommend diffing the lib/Transforms/Scalar/SCCP.cpp file between 2.7 and mainline to see if you want to pull in the changes.

-Chris