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

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)

Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:277

Parameters

llvm::BasicBlock* BB
llvm::gvn::AvailableValue&& AV

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)

Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:293

Parameters

llvm::BasicBlock* BB
llvm::SelectInst* Sel

static llvm::gvn::AvailableValueInBlock getUndef(
    llvm::BasicBlock* BB)

Declared at: llvm/lib/Transforms/Scalar/GVN.cpp:289

Parameters

llvm::BasicBlock* BB