When pruning candidate formulae out of an LSRUse, update the
authorDan Gohman <gohman@apple.com>
Fri, 7 May 2010 23:36:59 +0000 (23:36 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 7 May 2010 23:36:59 +0000 (23:36 +0000)
commit59dc60337fb9c02c4fbec3b44d7275a32bafa775
tree4e6a5481eef75b59a2d12c67a5f52fd6c25bc158
parentc665a5146d37cbc793f2e4413fd39a40ec230e12
When pruning candidate formulae out of an LSRUse, update the
LSRUse's Regs set after all pruning is done, rather than trying
to do it on the fly, which can produce an incomplete result.

This fixes a case where heuristic pruning was stripping all
formulae from a use, which led the solver to enter an infinite
loop.

Also, add a few asserts to diagnose this kind of situation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103328 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/LoopStrengthReduce.cpp
test/CodeGen/X86/lsr-delayed-fold.ll