struct AAPointerInfo
Declaration
struct AAPointerInfo : public AbstractAttribute { /* full declaration omitted */ };
Description
An abstract interface for struct information.
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4911
Inherits from: AbstractAttribute
Member Variables
- public static const char ID
- Unique ID (due to the unique address)
Inherited from AADepGraphNode:
Inherited from IRPosition:
Method Overview
- public AAPointerInfo(const llvm::IRPosition & IRP)
- public static bool classof(const llvm::AbstractAttribute * AA)
- public static llvm::AAPointerInfo & createForPosition(const llvm::IRPosition & IRP, llvm::Attributor & A)
- public virtual bool forallInterferingAccesses(llvm::AAPointerInfo::OffsetAndSize OAS, function_ref<bool (const llvm::AAPointerInfo::Access &, bool)> CB) const
- public virtual bool forallInterferingAccesses(llvm::Attributor & A, const llvm::AbstractAttribute & QueryingAA, llvm::Instruction & I, function_ref<bool (const llvm::AAPointerInfo::Access &, bool)> CB, bool & HasBeenWrittenTo) const
- public const char * getIdAddr() const
- public const std::string getName() const
Inherited from AbstractAttribute:
- public classof
- public dump
- public getAsStr
- public getIRPosition
- public getIRPosition
- public getIdAddr
- public getName
- public getState
- public getState
- public initialize
- public isQueryAA
- protected manifest
- public print
- public printWithDeps
- protected trackStatistics
- protected update
- protected updateImpl
Inherited from AADepGraphNode:
- protected DepGetVal
- protected DepGetValAA
- public begin
- public child_begin
- public child_end
- public end
- public getDeps
- protected operator llvm::AbstractAttribute *
- public print
Inherited from IRPosition:
- public argument
- public callsite_argument
- public callsite_argument
- public callsite_function
- public callsite_returned
- public function
- public function_scope
- public getAnchorScope
- public getAnchorValue
- public getAssociatedArgument
- public getAssociatedFunction
- public getAssociatedType
- public getAssociatedValue
- public getAttrIdx
- public getAttrs
- public getCallBaseContext
- public getCallSiteArgNo
- public getCalleeArgNo
- public getCtxI
- public getPositionKind
- public hasAttr
- public hasCallBaseContext
- public inst
- public isAnyCallSitePosition
- public isArgumentPosition
- public isFnInterfaceKind
- public operator void *
- public removeAttrs
- public returned
- public stripCallBaseContext
- public value
Methods
¶AAPointerInfo(const llvm::IRPosition& IRP)
AAPointerInfo(const llvm::IRPosition& IRP)
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4912
Parameters
- const llvm::IRPosition& IRP
¶static bool classof(
const llvm::AbstractAttribute* AA)
static bool classof(
const llvm::AbstractAttribute* AA)
Description
This function should return true if the type of the \p AA is AAPointerInfo
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:5094
Parameters
- const llvm::AbstractAttribute* AA
¶static llvm::AAPointerInfo& createForPosition(
const llvm::IRPosition& IRP,
llvm::Attributor& A)
static llvm::AAPointerInfo& createForPosition(
const llvm::IRPosition& IRP,
llvm::Attributor& A)
Description
Create an abstract attribute view for the position \p IRP.
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:5030
Parameters
- const llvm::IRPosition& IRP
- llvm::Attributor& A
¶virtual bool forallInterferingAccesses(
llvm::AAPointerInfo::OffsetAndSize OAS,
function_ref<
bool(const llvm::AAPointerInfo::Access&,
bool)> CB) const
virtual bool forallInterferingAccesses(
llvm::AAPointerInfo::OffsetAndSize OAS,
function_ref<
bool(const llvm::AAPointerInfo::Access&,
bool)> CB) const
Description
Call \p CB on all accesses that might interfere with \p OAS and return true if all such accesses were known and the callback returned true for all of them, false otherwise. An access interferes with an offset-size pair if it might read or write that memory region.
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:5077
Parameters
- llvm::AAPointerInfo::OffsetAndSize OAS
- function_ref<bool( const llvm::AAPointerInfo::Access&, bool)> CB
¶virtual bool forallInterferingAccesses(
llvm::Attributor& A,
const llvm::AbstractAttribute& QueryingAA,
llvm::Instruction& I,
function_ref<
bool(const llvm::AAPointerInfo::Access&,
bool)> CB,
bool& HasBeenWrittenTo) const
virtual bool forallInterferingAccesses(
llvm::Attributor& A,
const llvm::AbstractAttribute& QueryingAA,
llvm::Instruction& I,
function_ref<
bool(const llvm::AAPointerInfo::Access&,
bool)> CB,
bool& HasBeenWrittenTo) const
Description
Call \p CB on all accesses that might interfere with \p I and return true if all such accesses were known and the callback returned true for all of them, false otherwise. In contrast to forallInterferingAccesses this function will perform reasoning to exclude write accesses that cannot affect the load even if they on the surface look as if they would. The flag \p HasBeenWrittenTo will be set to true if we know that \p I does not read the intial value of the underlying memory.
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:5088
Parameters
- llvm::Attributor& A
- const llvm::AbstractAttribute& QueryingAA
- llvm::Instruction& I
- function_ref<bool( const llvm::AAPointerInfo::Access&, bool)> CB
- bool& HasBeenWrittenTo
¶const char* getIdAddr() const
const char* getIdAddr() const
Description
See AbstractAttribute::getIdAddr()
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:5036
¶const std::string getName() const
const std::string getName() const
Description
See AbstractAttribute::getName()
Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:5033