diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp')
| -rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp index c859f16e74fe..488bac1a9a80 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp @@ -19,8 +19,9 @@  using namespace llvm; -bool BaseIndexOffset::equalBaseIndex(BaseIndexOffset &Other, -                                     const SelectionDAG &DAG, int64_t &Off) { +bool BaseIndexOffset::equalBaseIndex(const BaseIndexOffset &Other, +                                     const SelectionDAG &DAG, +                                     int64_t &Off) const {    // Conservatively fail if we a match failed..    if (!Base.getNode() || !Other.Base.getNode())      return false; @@ -75,7 +76,7 @@ bool BaseIndexOffset::equalBaseIndex(BaseIndexOffset &Other,  }  /// Parses tree in Ptr for base, index, offset addresses. -BaseIndexOffset BaseIndexOffset::match(LSBaseSDNode *N, +BaseIndexOffset BaseIndexOffset::match(const LSBaseSDNode *N,                                         const SelectionDAG &DAG) {    SDValue Ptr = N->getBasePtr(); @@ -106,14 +107,14 @@ BaseIndexOffset BaseIndexOffset::match(LSBaseSDNode *N,        if (auto *C = dyn_cast<ConstantSDNode>(Base->getOperand(1)))          if (DAG.MaskedValueIsZero(Base->getOperand(0), C->getAPIntValue())) {            Offset += C->getSExtValue(); -          Base = Base->getOperand(0); +          Base = DAG.getTargetLoweringInfo().unwrapAddress(Base->getOperand(0));            continue;          }        break;      case ISD::ADD:        if (auto *C = dyn_cast<ConstantSDNode>(Base->getOperand(1))) {          Offset += C->getSExtValue(); -        Base = Base->getOperand(0); +        Base = DAG.getTargetLoweringInfo().unwrapAddress(Base->getOperand(0));          continue;        }        break; @@ -129,7 +130,7 @@ BaseIndexOffset BaseIndexOffset::match(LSBaseSDNode *N,              Offset -= Off;            else              Offset += Off; -          Base = LSBase->getBasePtr(); +          Base = DAG.getTargetLoweringInfo().unwrapAddress(LSBase->getBasePtr());            continue;          }        break;  | 
