Commit 89a44b0f authored by Philip Reames's avatar Philip Reames Committed by Philip Reames
Browse files

[LAA] Use early return [nfc]

parent 6cd3343b
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -1414,19 +1414,19 @@ std::optional<int64_t> llvm::getPtrStride(PredicatedScalarEvolution &PSE,
    isNoWrapAddRec(Ptr, AR, PSE, Lp);
  if (!IsNoWrapAddRec && !IsInBoundsGEP &&
      NullPointerIsDefined(Lp->getHeader()->getParent(), AddrSpace)) {
    if (Assume) {
    if (!Assume) {
      LLVM_DEBUG(
          dbgs() << "LAA: Bad stride - Pointer may wrap in the address space "
                 << *Ptr << " SCEV: " << *AR << "\n");
      return std::nullopt;
    }

    PSE.setNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW);
    IsNoWrapAddRec = true;
    LLVM_DEBUG(dbgs() << "LAA: Pointer may wrap in the address space:\n"
                      << "LAA:   Pointer: " << *Ptr << "\n"
                      << "LAA:   SCEV: " << *AR << "\n"
                      << "LAA:   Added an overflow assumption\n");
    } else {
      LLVM_DEBUG(
          dbgs() << "LAA: Bad stride - Pointer may wrap in the address space "
                 << *Ptr << " SCEV: " << *AR << "\n");
      return std::nullopt;
    }
  }

  // Check the step is constant.
@@ -1463,7 +1463,9 @@ std::optional<int64_t> llvm::getPtrStride(PredicatedScalarEvolution &PSE,
  if (!IsNoWrapAddRec && Stride != 1 && Stride != -1 &&
      (IsInBoundsGEP || !NullPointerIsDefined(Lp->getHeader()->getParent(),
                                              AddrSpace))) {
    if (Assume) {
    if (!Assume)
      return std::nullopt;

    // We can avoid this case by adding a run-time check.
    LLVM_DEBUG(dbgs() << "LAA: Non unit strided pointer which is not either "
                      << "inbounds or in address space 0 may wrap:\n"
@@ -1471,8 +1473,6 @@ std::optional<int64_t> llvm::getPtrStride(PredicatedScalarEvolution &PSE,
                      << "LAA:   SCEV: " << *AR << "\n"
                      << "LAA:   Added an overflow assumption\n");
    PSE.setNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW);
    } else
      return std::nullopt;
  }

  return Stride;