LSR: Don't optimize loops if an outer loop has no preheader.
authorAndrew Trick <atrick@apple.com>
Sat, 7 Jan 2012 03:16:50 +0000 (03:16 +0000)
committerAndrew Trick <atrick@apple.com>
Sat, 7 Jan 2012 03:16:50 +0000 (03:16 +0000)
commit732ad80dbb21f100891691706e00ffabcca1f67d
tree868eb40b7d3da73adab1f0766627323ee201ac07
parent07082096428579009bf20eb276b3e67707a0916d
LSR: Don't optimize loops if an outer loop has no preheader.

LoopSimplify may not run on some outer loops, e.g. because of indirect
branches. SCEVExpander simply cannot handle outer loops with no preheaders.
Fixes rdar://10655343 SCEVExpander segfault.

llvm-svn: 147718
llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
llvm/test/Transforms/LoopStrengthReduce/2012-02-nopreheader.ll