From 3ff6126487ddc7636af83c70ee11a586d83ed59a Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sat, 27 Jul 2019 12:23:36 +0000 Subject: [PATCH] [TargetLowering] Add depth limit to SimplifyMultipleUseDemandedBits We're getting reports of massive compile time increases because SimplifyMultipleUseDemandedBits was losing track of the depth and not earlying-out. No repro yet, but consider this a pre-emptive commit. llvm-svn: 367169 --- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 6bfb388..1173beb 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -569,6 +569,9 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op, const APInt &DemandedBits, SDValue TargetLowering::SimplifyMultipleUseDemandedBits( SDValue Op, const APInt &DemandedBits, const APInt &DemandedElts, SelectionDAG &DAG, unsigned Depth) const { + if (Depth == 6) // Limit search depth. + return SDValue(); + KnownBits LHSKnown, RHSKnown; switch (Op.getOpcode()) { case ISD::AND: { -- 2.7.4