class ConstantStruct

Declaration

class ConstantStruct : public ConstantAggregate { /* full declaration omitted */ };

Description

Base class for aggregate constants (with operands). These constants are aggregates of other constants, which are stored as operands. Subclasses are \a ConstantStruct, \a ConstantArray, and \a ConstantVector.

Declared at: llvm/include/llvm/IR/Constants.h:445

Inherits from: ConstantAggregate

Member Variables

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 29
public static MaximumAlignment = 1U << MaxAlignmentExponent

Method Overview

  • public static bool classof(const llvm::Value * V)
  • public static llvm::Constant * get(llvm::StructType * T, ArrayRef<llvm::Constant *> V)
  • public template <typename... Csts>static typename std::enable_if<are_base_of<Constant, Csts...>::value, Constant *>::type get(llvm::StructType * T, Csts *... Vs)
  • public static llvm::Constant * getAnon(ArrayRef<llvm::Constant *> V, bool Packed = false)
  • public static llvm::Constant * getAnon(llvm::LLVMContext & Ctx, ArrayRef<llvm::Constant *> V, bool Packed = false)
  • public inline llvm::StructType * getType() const
  • public static llvm::StructType * getTypeForElements(ArrayRef<llvm::Constant *> V, bool Packed = false)
  • public static llvm::StructType * getTypeForElements(llvm::LLVMContext & Ctx, ArrayRef<llvm::Constant *> V, bool Packed = false)

Inherited from ConstantAggregate:

Inherited from Constant:

Inherited from User:

Inherited from Value:

Methods

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

Description

Methods for support type inquiry through isa, cast, and dyn_cast:

Declared at: llvm/include/llvm/IR/Constants.h:491

Parameters

const llvm::Value* V

static llvm::Constant* get(
    llvm::StructType* T,
    ArrayRef<llvm::Constant*> V)

Declared at: llvm/include/llvm/IR/Constants.h:456

Parameters

llvm::StructType* T
ArrayRef<llvm::Constant*> V

template <typename... Csts>
static typename std::enable_if<
    are_base_of<Constant, Csts...>::value,
    Constant*>::type
get(llvm::StructType* T, Csts*... Vs)

Declared at: llvm/include/llvm/IR/Constants.h:461

Templates

Csts

Parameters

llvm::StructType* T
Csts*... Vs

static llvm::Constant* getAnon(
    ArrayRef<llvm::Constant*> V,
    bool Packed = false)

Description

Return an anonymous struct that has the specified elements. If the struct is possibly empty, then you must specify a context.

Declared at: llvm/include/llvm/IR/Constants.h:468

Parameters

ArrayRef<llvm::Constant*> V
bool Packed = false

static llvm::Constant* getAnon(
    llvm::LLVMContext& Ctx,
    ArrayRef<llvm::Constant*> V,
    bool Packed = false)

Declared at: llvm/include/llvm/IR/Constants.h:471

Parameters

llvm::LLVMContext& Ctx
ArrayRef<llvm::Constant*> V
bool Packed = false

inline llvm::StructType* getType() const

Description

Specialization - reduce amount of casting.

Declared at: llvm/include/llvm/IR/Constants.h:486

static llvm::StructType* getTypeForElements(
    ArrayRef<llvm::Constant*> V,
    bool Packed = false)

Description

Return an anonymous struct type to use for a constant with the specified set of elements. The list must not be empty.

Declared at: llvm/include/llvm/IR/Constants.h:478

Parameters

ArrayRef<llvm::Constant*> V
bool Packed = false

static llvm::StructType* getTypeForElements(
    llvm::LLVMContext& Ctx,
    ArrayRef<llvm::Constant*> V,
    bool Packed = false)

Description

This version of the method allows an empty list.

Declared at: llvm/include/llvm/IR/Constants.h:481

Parameters

llvm::LLVMContext& Ctx
ArrayRef<llvm::Constant*> V
bool Packed = false