class ExtractValueInst

Declaration

class ExtractValueInst : public UnaryInstruction { /* full declaration omitted */ };

Description

This instruction extracts a struct member or array element value from an aggregate value.

Declared at: llvm/include/llvm/IR/Instructions.h:2411

Inherits from: UnaryInstruction

Member Variables

private SmallVector<unsigned int, 4> Indices

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasMetadata
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 32
public static MaximumAlignment = 1ULL << MaxAlignmentExponent

Method Overview

  • public static llvm::ExtractValueInst * Create(llvm::Value * Agg, ArrayRef<unsigned int> Idxs, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::ExtractValueInst * Create(llvm::Value * Agg, ArrayRef<unsigned int> Idxs, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • private inline ExtractValueInst(llvm::Value * Agg, ArrayRef<unsigned int> Idxs, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore)
  • private inline ExtractValueInst(llvm::Value * Agg, ArrayRef<unsigned int> Idxs, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • private ExtractValueInst(const llvm::ExtractValueInst & EVI)
  • public static bool classof(const llvm::Value * V)
  • public static bool classof(const llvm::Instruction * I)
  • protected llvm::ExtractValueInst * cloneImpl() const
  • public llvm::Value * getAggregateOperand()
  • public const llvm::Value * getAggregateOperand() const
  • public static unsigned int getAggregateOperandIndex()
  • public static llvm::Type * getIndexedType(llvm::Type * Agg, ArrayRef<unsigned int> Idxs)
  • public ArrayRef<unsigned int> getIndices() const
  • public unsigned int getNumIndices() const
  • public bool hasIndices() const
  • public inline llvm::ExtractValueInst::idx_iterator idx_begin() const
  • public inline llvm::ExtractValueInst::idx_iterator idx_end() const
  • public inline iterator_range<llvm::ExtractValueInst::idx_iterator> indices() const
  • private void init(ArrayRef<unsigned int> Idxs, const llvm::Twine & NameStr)

Inherited from UnaryInstruction:

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

static llvm::ExtractValueInst* Create(
    llvm::Value* Agg,
    ArrayRef<unsigned int> Idxs,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:2437

Parameters

llvm::Value* Agg
ArrayRef<unsigned int> Idxs
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::ExtractValueInst* Create(
    llvm::Value* Agg,
    ArrayRef<unsigned int> Idxs,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:2445

Parameters

llvm::Value* Agg
ArrayRef<unsigned int> Idxs
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

inline ExtractValueInst(
    llvm::Value* Agg,
    ArrayRef<unsigned int> Idxs,
    const llvm::Twine& NameStr,
    llvm::Instruction* InsertBefore)

Description

Constructors - Create a extractvalue instruction with a base aggregate value and a list of indices. The first ctor can optionally insert before an existing instruction, the second appends the new instruction to the specified BasicBlock.

Declared at: llvm/include/llvm/IR/Instructions.h:2420

Parameters

llvm::Value* Agg
ArrayRef<unsigned int> Idxs
const llvm::Twine& NameStr
llvm::Instruction* InsertBefore

inline ExtractValueInst(
    llvm::Value* Agg,
    ArrayRef<unsigned int> Idxs,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:2424

Parameters

llvm::Value* Agg
ArrayRef<unsigned int> Idxs
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

ExtractValueInst(
    const llvm::ExtractValueInst& EVI)

Declared at: llvm/include/llvm/IR/Instructions.h:2414

Parameters

const llvm::ExtractValueInst& EVI

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/Instructions.h:2492

Parameters

const llvm::Value* V

static bool classof(const llvm::Instruction* I)

Declared at: llvm/include/llvm/IR/Instructions.h:2489

Parameters

const llvm::Instruction* I

llvm::ExtractValueInst* cloneImpl() const

Declared at: llvm/include/llvm/IR/Instructions.h:2434

llvm::Value* getAggregateOperand()

Declared at: llvm/include/llvm/IR/Instructions.h:2466

const llvm::Value* getAggregateOperand() const

Declared at: llvm/include/llvm/IR/Instructions.h:2469

static unsigned int getAggregateOperandIndex()

Declared at: llvm/include/llvm/IR/Instructions.h:2472

static llvm::Type* getIndexedType(
    llvm::Type* Agg,
    ArrayRef<unsigned int> Idxs)

Description

Returns the type of the element that would be extracted with an extractvalue instruction with the specified parameters. Null is returned if the indices are invalid for the specified type.

Declared at: llvm/include/llvm/IR/Instructions.h:2456

Parameters

llvm::Type* Agg
ArrayRef<unsigned int> Idxs

ArrayRef<unsigned int> getIndices() const

Declared at: llvm/include/llvm/IR/Instructions.h:2476

unsigned int getNumIndices() const

Declared at: llvm/include/llvm/IR/Instructions.h:2480

bool hasIndices() const

Declared at: llvm/include/llvm/IR/Instructions.h:2484

inline llvm::ExtractValueInst::idx_iterator
idx_begin() const

Declared at: llvm/include/llvm/IR/Instructions.h:2460

inline llvm::ExtractValueInst::idx_iterator
idx_end() const

Declared at: llvm/include/llvm/IR/Instructions.h:2461

inline iterator_range<
    llvm::ExtractValueInst::idx_iterator>
indices() const

Declared at: llvm/include/llvm/IR/Instructions.h:2462

void init(ArrayRef<unsigned int> Idxs,
          const llvm::Twine& NameStr)

Declared at: llvm/include/llvm/IR/Instructions.h:2428

Parameters

ArrayRef<unsigned int> Idxs
const llvm::Twine& NameStr