diff --git a/src/mapleall/maple_me/src/ssa_epre.cpp b/src/mapleall/maple_me/src/ssa_epre.cpp index 940ac78969cb6db6e087c8cd9c59e19ccd6e7a70..443ce84fd3c060bba0a066e67a003f067821545d 100644 --- a/src/mapleall/maple_me/src/ssa_epre.cpp +++ b/src/mapleall/maple_me/src/ssa_epre.cpp @@ -225,8 +225,9 @@ MeExpr *SSAEPre::PhiOpndFromRes(MeRealOcc &realZ, size_t j) const { case kMeOpOp: { OpMeExpr opMeExpr(*static_cast(realZ.GetMeExpr()), -1); for (size_t i = 0; i < opMeExpr.GetNumOpnds(); ++i) { - MeExpr *retOpnd = GetReplaceMeExpr(*opMeExpr.GetOpnd(i), *ePhiBB, j); - if (retOpnd != nullptr) { + MeExpr *resolvedOpnd = ResolveAllInjuringDefs(opMeExpr.GetOpnd(i)); + MeExpr *retOpnd = GetReplaceMeExpr(*resolvedOpnd, *ePhiBB, j); + if (retOpnd != nullptr) { opMeExpr.SetOpnd(i, retOpnd); } } diff --git a/src/mapleall/maple_me/src/ssa_pre.cpp b/src/mapleall/maple_me/src/ssa_pre.cpp index a6324f9eb7cbca725e634486098cd6090c58a96f..a6bf2889de402a06242806e7ca5940ca7fd4add9 100644 --- a/src/mapleall/maple_me/src/ssa_pre.cpp +++ b/src/mapleall/maple_me/src/ssa_pre.cpp @@ -818,9 +818,6 @@ void SSAPre::Rename1() { } else { for (auto varIt = varVec.begin(); varIt != varVec.end(); ++varIt) { MeExpr *varMeExpr = *varIt; - if (workCand->isSRCand) { - varMeExpr = ResolveAllInjuringDefs(varMeExpr); - } if (!DefVarDominateOcc(varMeExpr, *topOccur)) { isAllDom = false; }