class DerivedUser

Declaration

class DerivedUser : public User { /* full declaration omitted */ };

Description

Extension point for the Value hierarchy. All classes outside of lib/IR that wish to inherit from User should instead inherit from DerivedUser instead. Inheriting from this class is discouraged. Generally speaking, Value is the base of a closed class hierarchy that can't be extended by code outside of lib/IR. This class creates a loophole that allows classes outside of lib/IR to extend User to leverage its use/def list machinery.

Declared at: llvm/include/llvm/IR/DerivedUser.h:27

Inherits from: User

Member Variables

private llvm::DerivedUser::DeleteValueTy DeleteValue

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 DerivedUser(llvm::Type * Ty, unsigned int VK, llvm::Use * U, unsigned int NumOps, llvm::DerivedUser::DeleteValueTy DeleteValue)

Inherited from User:

Inherited from Value:

Methods

ΒΆDerivedUser(
    llvm::Type* Ty,
    unsigned int VK,
    llvm::Use* U,
    unsigned int NumOps,
    llvm::DerivedUser::DeleteValueTy DeleteValue)

Declared at: llvm/include/llvm/IR/DerivedUser.h:37

Parameters

llvm::Type* Ty
unsigned int VK
llvm::Use* U
unsigned int NumOps
llvm::DerivedUser::DeleteValueTy DeleteValue