llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-systemz Author: None (llvmbot) <details> <summary>Changes</summary> Backport 11e0d6ae4b00114d642f03168f57a007464bf5f6 Requested by: @<!-- -->nikic --- Full diff: https://github.com/llvm/llvm-project/pull/186052.diff 1 Files Affected: - (modified) llvm/lib/Target/SystemZ/SystemZISelLowering.cpp (+9-4) ``````````diff diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp index 21beef238f187..8f21e00983601 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -8705,7 +8705,12 @@ SDValue SystemZTargetLowering::combineSETCC( return SDValue(); } -static std::pair<SDValue, int> findCCUse(const SDValue &Val) { +static std::pair<SDValue, int> findCCUse(const SDValue &Val, + unsigned Depth = 0) { + // Limit depth of potentially exponential walk. + if (Depth > 5) + return std::make_pair(SDValue(), SystemZ::CCMASK_NONE); + switch (Val.getOpcode()) { default: return std::make_pair(SDValue(), SystemZ::CCMASK_NONE); @@ -8718,7 +8723,7 @@ static std::pair<SDValue, int> findCCUse(const SDValue &Val) { SDValue Op4CCReg = Val.getOperand(4); if (Op4CCReg.getOpcode() == SystemZISD::ICMP || Op4CCReg.getOpcode() == SystemZISD::TM) { - auto [OpCC, OpCCValid] = findCCUse(Op4CCReg.getOperand(0)); + auto [OpCC, OpCCValid] = findCCUse(Op4CCReg.getOperand(0), Depth + 1); if (OpCC != SDValue()) return std::make_pair(OpCC, OpCCValid); } @@ -8735,10 +8740,10 @@ static std::pair<SDValue, int> findCCUse(const SDValue &Val) { case ISD::SHL: case ISD::SRA: case ISD::SRL: - auto [Op0CC, Op0CCValid] = findCCUse(Val.getOperand(0)); + auto [Op0CC, Op0CCValid] = findCCUse(Val.getOperand(0), Depth + 1); if (Op0CC != SDValue()) return std::make_pair(Op0CC, Op0CCValid); - return findCCUse(Val.getOperand(1)); + return findCCUse(Val.getOperand(1), Depth + 1); } } `````````` </details> https://github.com/llvm/llvm-project/pull/186052 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
