From 2891b007e33136fd5d75b13a2c2eec6f8b5b2657 Mon Sep 17 00:00:00 2001 From: Johannes Doerfert Date: Wed, 22 Apr 2020 16:02:10 -0500 Subject: [PATCH] [Attributor][NFC] Add `const` and missing state constructors --- llvm/include/llvm/Transforms/IPO/Attributor.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h index 3002a111a7168..c4ace30f3d642 100644 --- a/llvm/include/llvm/Transforms/IPO/Attributor.h +++ b/llvm/include/llvm/Transforms/IPO/Attributor.h @@ -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. @@ -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; @@ -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) {