struct State

Declaration

struct State : public AbstractState { /* full declaration omitted */ };

Description

A type to track pointer/struct usage and accesses for AAPointerInfo.

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:739

Inherits from: AbstractState

Member Variables

protected llvm::AA::PointerInfo::State::AccessBinsTy AccessBins
The bins with all the accesses for the associated pointer.
private llvm::BooleanState BS
State to track fixpoint and validity.

Method Overview

  • public State()
  • public State(llvm::AA::PointerInfo::State && SIS)
  • protected llvm::ChangeStatus addAccess(llvm::Attributor & A, int64_t Offset, int64_t Size, llvm::Instruction & I, Optional<llvm::Value *> Content, AAPointerInfo::AccessKind Kind, llvm::Type * Ty, llvm::Instruction * RemoteI = nullptr, llvm::AA::PointerInfo::State::Accesses * BinPtr = nullptr)
  • public AccessBinsTy::const_iterator begin() const
  • public AccessBinsTy::const_iterator end() const
  • protected bool forallInterferingAccesses(AAPointerInfo::OffsetAndSize OAS, function_ref<bool (const AAPointerInfo::Access &, bool)> CB) const
  • protected bool forallInterferingAccesses(llvm::Instruction & I, function_ref<bool (const AAPointerInfo::Access &, bool)> CB) const
  • public const llvm::AA::PointerInfo::State & getAssumed() const
  • public static llvm::AA::PointerInfo::State getBestState(const llvm::AA::PointerInfo::State & SIS)
  • public static llvm::AA::PointerInfo::State getWorstState(const llvm::AA::PointerInfo::State & SIS)
  • public llvm::ChangeStatus indicateOptimisticFixpoint()
  • public llvm::ChangeStatus indicatePessimisticFixpoint()
  • public bool isAtFixpoint() const
  • public bool isValidState() const
  • public ~State()

Inherited from AbstractState:

Methods

State()

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:757

State(llvm::AA::PointerInfo::State&& SIS)

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:758

Parameters

llvm::AA::PointerInfo::State&& SIS

llvm::ChangeStatus addAccess(
    llvm::Attributor& A,
    int64_t Offset,
    int64_t Size,
    llvm::Instruction& I,
    Optional<llvm::Value*> Content,
    AAPointerInfo::AccessKind Kind,
    llvm::Type* Ty,
    llvm::Instruction* RemoteI = nullptr,
    llvm::AA::PointerInfo::State::Accesses*
        BinPtr = nullptr)

Description

Add a new access to the state at offset \p Offset and with size \p Size. The access is associated with \p I, writes \p Content (if anything), and is of kind \p Kind.

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:862

Parameters

llvm::Attributor& A
int64_t Offset
int64_t Size
llvm::Instruction& I
Optional<llvm::Value*> Content
AAPointerInfo::AccessKind Kind
llvm::Type* Ty
llvm::Instruction* RemoteI = nullptr
llvm::AA::PointerInfo::State::Accesses* BinPtr = nullptr

Returns

CHANGED, if the state changed, UNCHANGED otherwise.

AccessBinsTy::const_iterator begin() const

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:851

AccessBinsTy::const_iterator end() const

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:852

bool forallInterferingAccesses(
    AAPointerInfo::OffsetAndSize OAS,
    function_ref<
        bool(const AAPointerInfo::Access&, bool)>
        CB) const

Description

See AAPointerInfo::forallInterferingAccesses.

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:888

Parameters

AAPointerInfo::OffsetAndSize OAS
function_ref<bool(const AAPointerInfo::Access&, bool)> CB

bool forallInterferingAccesses(
    llvm::Instruction& I,
    function_ref<
        bool(const AAPointerInfo::Access&, bool)>
        CB) const

Description

See AAPointerInfo::forallInterferingAccesses.

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:907

Parameters

llvm::Instruction& I
function_ref<bool(const AAPointerInfo::Access&, bool)> CB

const llvm::AA::PointerInfo::State& getAssumed()
    const

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:762

static llvm::AA::PointerInfo::State getBestState(
    const llvm::AA::PointerInfo::State& SIS)

Description

Return the best possible representable state.

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:748

Parameters

const llvm::AA::PointerInfo::State& SIS

static llvm::AA::PointerInfo::State getWorstState(
    const llvm::AA::PointerInfo::State& SIS)

Description

Return the worst possible representable state.

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:751

Parameters

const llvm::AA::PointerInfo::State& SIS

llvm::ChangeStatus indicateOptimisticFixpoint()

Description

See AbstractState::indicateOptimisticFixpoint().

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:771

llvm::ChangeStatus indicatePessimisticFixpoint()

Description

See AbstractState::indicatePessimisticFixpoint().

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:777

bool isAtFixpoint() const

Description

See AbstractState::isAtFixpoint().

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:768

bool isValidState() const

Description

See AbstractState::isValidState().

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:765

~State()

Declared at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:741