/// determines (and caches) reachability.
bool isAssumedReachable(Attributor &A, const Instruction &From,
const Instruction &To) const {
+ if (!getState().isValidState())
+ return true;
return A.getInfoCache().getPotentiallyReachable(From, To);
}
/// determines (and caches) reachability.
bool isKnownReachable(Attributor &A, const Instruction &From,
const Instruction &To) const {
+ if (!getState().isValidState())
+ return false;
return A.getInfoCache().getPotentiallyReachable(From, To);
}
return "reachable";
}
- /// See AbstractAttribute::initialize(...).
- void initialize(Attributor &A) override { indicatePessimisticFixpoint(); }
-
/// See AbstractAttribute::updateImpl(...).
ChangeStatus updateImpl(Attributor &A) override {
- return indicatePessimisticFixpoint();
+ return ChangeStatus::UNCHANGED;
}
};