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:239

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 * LI, llvm::GVN & 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 getUndef(llvm::BasicBlock * BB)

Methods

llvm::Value* MaterializeAdjustedValue(
    llvm::LoadInst* LI,
    llvm::GVN& 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:264

Parameters

llvm::LoadInst* LI
llvm::GVN& gvn

static llvm::gvn::AvailableValueInBlock get(
    llvm::BasicBlock* BB,
    llvm::gvn::AvailableValue&& AV)

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

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:253

Parameters

llvm::BasicBlock* BB
llvm::Value* V
unsigned int Offset = 0

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

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

Parameters

llvm::BasicBlock* BB