The SCCP pass was failing an assertion that I traced back to
SCCPSolver::visitExtractValueInst. getStructValueState was used on the
aggregate operand even if it had no structure type. I added a check to
use getStructValueState for structs and getValueState for other
operands.
This behavior was introduced in r85793. Please note that I'm not sure
whether my changes correctly address this problem. In case they don't,
I'd be glad to learn why in order to get a better understanding of
llvm.
Please find attached a patch.
Best,
Stephan
sccp-fix.patch (837 Bytes)