Skip to content

Commit

Permalink
[Attributor][NFC] Add const and missing state constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
jdoerfert committed Apr 24, 2020
1 parent 5948daf commit 2891b00
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions llvm/include/llvm/Transforms/IPO/Attributor.h
Expand Up @@ -1360,6 +1360,9 @@ struct IntegerStateBase : public AbstractState {

/// Return the worst possible representable state.
static constexpr base_t getWorstState() { return WorstState; }
static constexpr base_t getWorstState(const IntegerStateBase &) {
return getWorstState();
}

/// See AbstractState::isValidState()
/// NOTE: For now we simply pretend that the worst possible state is invalid.
Expand Down Expand Up @@ -2273,6 +2276,16 @@ struct DerefState : AbstractState {
static DerefState getBestState() { return DerefState(); }
static DerefState getBestState(const DerefState &) { return getBestState(); }

/// Return the worst possible representable state.
static DerefState getWorstState() {
DerefState DS;
DS.indicatePessimisticFixpoint();
return DS;
}
static DerefState getWorstState(const DerefState &) {
return getWorstState();
}

/// State representing for dereferenceable bytes.
IncIntegerState<> DerefBytesState;

Expand Down Expand Up @@ -2363,13 +2376,13 @@ struct DerefState : AbstractState {
}

/// Equality for DerefState.
bool operator==(const DerefState &R) {
bool operator==(const DerefState &R) const {
return this->DerefBytesState == R.DerefBytesState &&
this->GlobalState == R.GlobalState;
}

/// Inequality for DerefState.
bool operator!=(const DerefState &R) { return !(*this == R); }
bool operator!=(const DerefState &R) const { return !(*this == R); }

/// See IntegerStateBase::operator^=
DerefState operator^=(const DerefState &R) {
Expand Down

0 comments on commit 2891b00

Please sign in to comment.