struct AAValueConstantRangeImpl
Declaration
struct AAValueConstantRangeImpl : public AAValueConstantRange { /* full declaration omitted */ };
Description
------------------ Value Constant Range Attribute -------------------------
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5118
Inherits from: AAValueConstantRange
Member Variables
Inherited from AAValueConstantRange:
Inherited from IRPosition:
Inherited from IntegerRangeState:
Method Overview
- public AAValueConstantRangeImpl(const llvm::IRPosition & IRP)
- public const std::string getAsStr() const
- public llvm::ConstantRange getAssumedConstantRange(llvm::Attributor & A, const llvm::Instruction * CtxI = nullptr) const
- public llvm::ConstantRange getConstantRangeFromLVI(llvm::Attributor & A, const llvm::Instruction * CtxI = nullptr) const
- public llvm::ConstantRange getConstantRangeFromSCEV(llvm::Attributor & A, const llvm::Instruction * I = nullptr) const
- public llvm::ConstantRange getKnownConstantRange(llvm::Attributor & A, const llvm::Instruction * CtxI = nullptr) const
- public static llvm::MDNode * getMDNodeForConstantRange(llvm::Type * Ty, llvm::LLVMContext & Ctx, const llvm::ConstantRange & AssumedConstantRange)
- public const llvm::SCEV * getSCEV(llvm::Attributor & A, const llvm::Instruction * I = nullptr) const
- public void initialize(llvm::Attributor & A)
- public static bool isBetterRange(const llvm::ConstantRange & Assumed, llvm::MDNode * KnownRanges)
- public llvm::ChangeStatus manifest(llvm::Attributor & A)
- public static bool setRangeMetadataIfisBetterRange(llvm::Instruction * I, const llvm::ConstantRange & AssumedConstantRange)
Inherited from AAValueConstantRange:
- public createForPosition
- public getAssumedConstantInt
- public getAssumedConstantRange
- public getIRPosition
- public getKnownConstantRange
- public getState
- public getState
Inherited from IRPosition:
- public argument
- public callsite_argument
- public callsite_argument
- public callsite_argument
- public callsite_function
- public callsite_function
- public callsite_returned
- public callsite_returned
- public function
- public function_scope
- public getAnchorScope
- public getAnchorValue
- public getArgNo
- public getAssociatedArgument
- public getAssociatedFunction
- public getAssociatedValue
- public getAttr
- public getAttrIdx
- public getAttrs
- public getCtxI
- public getPositionKind
- public hasAttr
- public isAnyCallSitePosition
- public isFnInterfaceKind
- public removeAttrs
- public returned
- public value
Inherited from AbstractAttribute:
- public dump
- public getAsStr
- public getIRPosition
- public getState
- public getState
- public initialize
- protected manifest
- public print
- protected trackStatistics
- protected update
- protected updateImpl
Inherited from IntegerRangeState:
- public getAssumed
- public getBestState
- public getBitWidth
- public getKnown
- public getWorstState
- public indicateOptimisticFixpoint
- public indicatePessimisticFixpoint
- public intersectKnown
- public intersectKnown
- public isAtFixpoint
- public isValidState
- public unionAssumed
- public unionAssumed
- public unionKnown
- public unionKnown
Inherited from AbstractState:
- public indicateOptimisticFixpoint
- public indicatePessimisticFixpoint
- public isAtFixpoint
- public isValidState
Methods
¶AAValueConstantRangeImpl(
const llvm::IRPosition& IRP)
AAValueConstantRangeImpl(
const llvm::IRPosition& IRP)
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5120
Parameters
- const llvm::IRPosition& IRP
¶const std::string getAsStr() const
const std::string getAsStr() const
Description
See AbstractAttribute::getAsStr().
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5123
¶llvm::ConstantRange getAssumedConstantRange(
llvm::Attributor& A,
const llvm::Instruction* CtxI = nullptr) const
llvm::ConstantRange getAssumedConstantRange(
llvm::Attributor& A,
const llvm::Instruction* CtxI = nullptr) const
Description
See AAValueConstantRange::getAssumedConstantRange(..).
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5208
Parameters
- llvm::Attributor& A
- const llvm::Instruction* CtxI = nullptr
¶llvm::ConstantRange getConstantRangeFromLVI(
llvm::Attributor& A,
const llvm::Instruction* CtxI = nullptr) const
llvm::ConstantRange getConstantRangeFromLVI(
llvm::Attributor& A,
const llvm::Instruction* CtxI = nullptr) const
Description
Helper function to get a range from LVI for the associated value at program point \p I.
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5178
Parameters
- llvm::Attributor& A
- const llvm::Instruction* CtxI = nullptr
¶llvm::ConstantRange getConstantRangeFromSCEV(
llvm::Attributor& A,
const llvm::Instruction* I = nullptr) const
llvm::ConstantRange getConstantRangeFromSCEV(
llvm::Attributor& A,
const llvm::Instruction* I = nullptr) const
Description
Helper function to get a range from SCEV for the associated value at program point \p I.
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5159
Parameters
- llvm::Attributor& A
- const llvm::Instruction* I = nullptr
¶llvm::ConstantRange getKnownConstantRange(
llvm::Attributor& A,
const llvm::Instruction* CtxI = nullptr) const
llvm::ConstantRange getKnownConstantRange(
llvm::Attributor& A,
const llvm::Instruction* CtxI = nullptr) const
Description
See AAValueConstantRange::getKnownConstantRange(..).
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5196
Parameters
- llvm::Attributor& A
- const llvm::Instruction* CtxI = nullptr
¶static llvm::MDNode* getMDNodeForConstantRange(
llvm::Type* Ty,
llvm::LLVMContext& Ctx,
const llvm::ConstantRange&
AssumedConstantRange)
static llvm::MDNode* getMDNodeForConstantRange(
llvm::Type* Ty,
llvm::LLVMContext& Ctx,
const llvm::ConstantRange&
AssumedConstantRange)
Description
Helper function to create MDNode for range metadata.
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5234
Parameters
- llvm::Type* Ty
- llvm::LLVMContext& Ctx
- const llvm::ConstantRange& AssumedConstantRange
¶const llvm::SCEV* getSCEV(
llvm::Attributor& A,
const llvm::Instruction* I = nullptr) const
const llvm::SCEV* getSCEV(
llvm::Attributor& A,
const llvm::Instruction* I = nullptr) const
Description
Helper function to get a SCEV expr for the associated value at program point \p I.
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5136
Parameters
- llvm::Attributor& A
- const llvm::Instruction* I = nullptr
¶void initialize(llvm::Attributor& A)
void initialize(llvm::Attributor& A)
Description
See AbstractAttribute::initialize(..).
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5224
Parameters
¶static bool isBetterRange(
const llvm::ConstantRange& Assumed,
llvm::MDNode* KnownRanges)
static bool isBetterRange(
const llvm::ConstantRange& Assumed,
llvm::MDNode* KnownRanges)
Description
Return true if \p Assumed is included in \p KnownRanges.
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5244
Parameters
- const llvm::ConstantRange& Assumed
- llvm::MDNode* KnownRanges
¶llvm::ChangeStatus manifest(llvm::Attributor& A)
llvm::ChangeStatus manifest(llvm::Attributor& A)
Description
See AbstractAttribute::manifest()
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5286
Parameters
¶static bool setRangeMetadataIfisBetterRange(
llvm::Instruction* I,
const llvm::ConstantRange&
AssumedConstantRange)
static bool setRangeMetadataIfisBetterRange(
llvm::Instruction* I,
const llvm::ConstantRange&
AssumedConstantRange)
Description
Helper function to set range metadata.
Declared at: llvm/lib/Transforms/IPO/Attributor.cpp:5271
Parameters
- llvm::Instruction* I
- const llvm::ConstantRange& AssumedConstantRange