An abstract interface for pointer struct and access information.

Synopsis

Declared in <llvm/Transforms/IPO/Attributor.h>

struct AAPointerInfo
    : AbstractAttribute

Base Classes

Name

Description

AbstractAttribute

Base struct for all "concrete attribute" deductions.

Types

Name

Description

Access

An access description.

OffsetInfo

Helper holding offsets computed for a Use.

RangeList

A container for a list of ranges.

Type Aliases

Name

Description

CallBaseContext

Call‐base context associated with an IR position.

DepSetTy

Set of dependence edges from this node.

DepTy

Dependence edge with an optional‐bit tag.

OffsetBinsTy

Map type from offset to access bin.

StateType

State type associated with this abstract attribute.

aaiterator

Iterator over dependent abstract attributes.

const_bin_iterator

Const iterator over offset bins.

iterator

Iterator over dependent graph nodes.

Enums

Name

Description

AccessKind

Kind of memory access described by an Access object.

Kind

The positions we distinguish in the IR.

Member Functions

Name

Description

AAPointerInfo [constructor]

Create an AAPointerInfo for the position IRP.

addReturnedOffsetsTo [virtual]

Add returned‐pointer offsets into the given set.

begin

begin overloads

child_begin

Return an iterator to the first child dependence node.

child_end

Return an iterator past the last child dependence node.

dump

Dump this abstract attribute to stderr.

end

end overloads

forallInterferingAccesses

forallInterferingAccesses overloads

getAnchorScope

Return the Function surrounding the anchor value.

getAnchorValue

Return the value this abstract attribute is anchored with.

getArg

Return theargument ArgNo associated with this function or call site scope.

getAsStr [virtual]

This function should return the "summarized" assumed state as string.

getAssociatedArgument

Return the associated argument, if any.

getAssociatedFunction

Return the associated function, if any.

getAssociatedType

Return the type this abstract attribute is associated with.

getAssociatedValue

Return the value this abstract attribute is associated with.

getAttrIdx

Return the index in the attribute list for this position.

getAttrList

Return the attributes associated with this function or call site scope.

getAttrListAnchor

Return the value attributes are attached to.

getCallBaseContext

Get the call base context from the position.

getCallSiteArgNo

Return the call‐site argument number of the associated value.

getCalleeArgNo

Return the callee‐side argument number, or a negative value.

getCtxI

Return the context instruction, if any.

getDeps

Return the set of dependence edges.

getIRPosition

Return an IR position, see struct IRPosition.

getIdAddr [virtual]

See AbstractAttribute::getIdAddr()

getName [virtual]

See AbstractAttribute::getName()

getNumArgs

Return the number of arguments associated with this function or call site scope.

getPositionKind

Return the associated position kind.

getState

Return the internal abstract state for inspection.

hasCallBaseContext

Check if the position has any call base context.

initialize [virtual]

Initialize the state with the information in the Attributor A.

isAnyCallSitePosition

Return true if this is any call‐site‐related position.

isArgumentPosition

Return true if the position is an argument or call site argument.

isFnInterfaceKind

Return true if the position refers to a function interface, that is the function scope, the function return, or an argument.

isFunctionScope

Return true if this is a function or call site position.

isQueryAA [virtual]

Return true if this is a query abstract attribute.

numOffsetBins [virtual]

Return the number of offset bins.

print

print overloads

printWithDeps [virtual]

Print this attribute and its dependences.

reachesReturn [virtual]

Return true if the pointer may reach a return.

setAttrList

Update the attributes associated with this function or call site scope.

stripCallBaseContext

Return the same position without the call base context.

operator void*

Conversion into a void * to allow reuse of pointer hashing.

operator==

Return true if this equals RHS.

operator!=

Return true if this differs from RHS.

Static Member Functions

Name

Description

argument

Create a position describing the argument Arg.

callsite_argument

callsite_argument overloads

callsite_function

Create a position describing the function scope of CB.

callsite_returned

Create a position describing the returned value of CB.

classof

classof overloads

createForPosition

Create an abstract attribute view for the position IRP.

function

Create a position describing the function scope of F.

function_scope

Create a function‐scope position matching the context of IRP.

hasTrivialInitializer

Return false if this AA does anything non‐trivial (hence not done by default) in its initializer.

inst

Create a position describing the instruction I.

isValidIRPositionForInit

See AbstractAttribute::isValidIRPositionForInit

isValidIRPositionForUpdate

Return false if an AA should not be updated for IRP.

requiresCalleeForCallBase

Return true if this AA requires a "callee" (or an associted function) for a call site positon. Default is optimistic to minimize AAs.

requiresCallersForArgOrFunction

Return true if this AA requires all callees for an argument or function positon.

requiresNonAsmForCallBase

Return true if this AA requires non‐asm "callee" for a call site positon.

returned

Create a position describing the returned value of F.

value

Create a position describing the value of V.

Static Data Members

Name

Description

ID

Unique ID (due to the unique address)

IRAttributeKind

Compile time access to the IR attribute kind.

Protected Member Functions

Name

Description

manifest [virtual]

Hook for the Attributor to trigger the manifestation of the information represented by the abstract attribute in the LLVM‐IR.

trackStatistics [virtual]

Hook to enable custom statistic tracking, called after manifest that resulted in a change if statistics are enabled.

update

Hook for the Attributor to trigger an update of the internal state.

updateImpl [virtual]

The actual update/transfer function which has to be implemented by the derived classes.

operator AbstractAttribute*

Cast this node to an AbstractAttribute pointer.

Protected Static Member Functions

Name

Description

DepGetVal

Return the dependence‐graph node from edge DT.

DepGetValAA

Return the abstract attribute from dependence edge DT.

Protected Data Members

Name

Description

Deps

Set of dependency graph nodes which should be updated if this one is updated. The bit encodes if it is optional.

Created with MrDocs