struct AvailableValueInBlock
Declaration
struct AvailableValueInBlock { /* full declaration omitted */ };
Description
Represents an AvailableValue which can be rematerialized at the end of the associated BasicBlock.
Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:270
Member Variables
- public llvm::BasicBlock* BB = nullptr
- BB - The basic block in question.
- public llvm::gvn::AvailableValue AV
- AV - The actual available value
Method Overview
- public llvm::Value * MaterializeAdjustedValue(llvm::LoadInst * Load, llvm::GVNPass & gvn) const
- public static llvm::gvn::AvailableValueInBlock get(llvm::BasicBlock * BB, llvm::gvn::AvailableValue && AV)
- public static llvm::gvn::AvailableValueInBlock get(llvm::BasicBlock * BB, llvm::Value * V, unsigned int Offset = 0)
- public static llvm::gvn::AvailableValueInBlock getSelect(llvm::BasicBlock * BB, llvm::SelectInst * Sel)
- public static llvm::gvn::AvailableValueInBlock getUndef(llvm::BasicBlock * BB)
Methods
¶llvm::Value* MaterializeAdjustedValue(
llvm::LoadInst* Load,
llvm::GVNPass& gvn) const
llvm::Value* MaterializeAdjustedValue(
llvm::LoadInst* Load,
llvm::GVNPass& gvn) const
Description
Emit code at the end of this block to adjust the value defined here to the specified type. This handles various coercion cases.
Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:299
Parameters
- llvm::LoadInst* Load
- llvm::GVNPass& gvn
¶static llvm::gvn::AvailableValueInBlock get(
llvm::BasicBlock* BB,
llvm::gvn::AvailableValue&& AV)
static llvm::gvn::AvailableValueInBlock get(
llvm::BasicBlock* BB,
llvm::gvn::AvailableValue&& AV)
Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:277
Parameters
¶static llvm::gvn::AvailableValueInBlock get(
llvm::BasicBlock* BB,
llvm::Value* V,
unsigned int Offset = 0)
static llvm::gvn::AvailableValueInBlock get(
llvm::BasicBlock* BB,
llvm::Value* V,
unsigned int Offset = 0)
Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:284
Parameters
- llvm::BasicBlock* BB
- llvm::Value* V
- unsigned int Offset = 0
¶static llvm::gvn::AvailableValueInBlock getSelect(
llvm::BasicBlock* BB,
llvm::SelectInst* Sel)
static llvm::gvn::AvailableValueInBlock getSelect(
llvm::BasicBlock* BB,
llvm::SelectInst* Sel)
Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:293
Parameters
- llvm::BasicBlock* BB
- llvm::SelectInst* Sel
¶static llvm::gvn::AvailableValueInBlock getUndef(
llvm::BasicBlock* BB)
static llvm::gvn::AvailableValueInBlock getUndef(
llvm::BasicBlock* BB)
Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:289
Parameters
- llvm::BasicBlock* BB