Optimize this test. Firstly, only Instructions may use other Instructions.

Secondly, checking whether removal succeeded tells you whether it was in
the map to begin with.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37469 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky 2007-06-06 11:26:20 +00:00
parent 2c614c5c69
commit 51e844b601

View File

@ -1210,8 +1210,8 @@ void ScalarEvolutionsImpl::deleteInstructionFromRecords(Instruction *I) {
for (Instruction::use_iterator UI = II->use_begin(), UE = II->use_end();
UI != UE; ++UI) {
Instruction *Inst = dyn_cast<Instruction>(*UI);
if (Inst && hasSCEV(Inst) && Scalars.erase(Inst)) {
Instruction *Inst = cast<Instruction>(*UI);
if (Scalars.erase(Inst)) {
if (PHINode *PN = dyn_cast<PHINode>(II))
ConstantEvolutionLoopExitValue.erase(PN);
Worklist.push_back(Inst);