[SCEV] don't query getSCEV() for incomplete phis
authorChen Zheng <czhengsz@cn.ibm.com>
Sat, 1 Aug 2020 05:28:15 +0000 (01:28 -0400)
committerChen Zheng <czhengsz@cn.ibm.com>
Sat, 1 Aug 2020 06:38:54 +0000 (02:38 -0400)
commit8c5edf50234f52e0de37df3e4e7cec92bdb70e12
treeff58f4f5e1add04e842ce09ab557ccee647d670c
parent1bd7046e4ce0102adef6096a12a289d7f94b8c73
[SCEV] don't query getSCEV() for incomplete phis

querying getSCEV() for incomplete phis leads to wrong cache value in `ExprToIVMap`,
because incomplete phis may be simplified to same value before get SCEV expression.

Reviewed By: lebedev.ri, mkazantsev

Differential Revision: https://reviews.llvm.org/D77560
llvm/include/llvm/IR/Instructions.h
llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
llvm/test/Transforms/LoopStrengthReduce/Power/incomplete-phi.ll [new file with mode: 0644]
llvm/test/Transforms/LoopStrengthReduce/Power/lit.local.cfg [new file with mode: 0644]