LLVM 19.0.0git
Classes | Namespaces
Constants.h File Reference

This file contains the declarations for the subclasses of Constant, which represent the different flavors of constant values that live in LLVM. More...

#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/OperandTraits.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <optional>

Go to the source code of this file.

Classes

class  llvm::ConstantData
 Base class for constants with no operands. More...
 
class  llvm::ConstantInt
 This is the shared class of boolean and integer constants. More...
 
class  llvm::ConstantFP
 ConstantFP - Floating Point Values [float, double]. More...
 
class  llvm::ConstantAggregateZero
 All zero aggregate value. More...
 
class  llvm::ConstantAggregate
 Base class for aggregate constants (with operands). More...
 
struct  llvm::OperandTraits< ConstantAggregate >
 
class  llvm::ConstantArray
 ConstantArray - Constant Array Declarations. More...
 
class  llvm::ConstantStruct
 
class  llvm::ConstantVector
 Constant Vector Declarations. More...
 
class  llvm::ConstantPointerNull
 A constant pointer value that points to null. More...
 
class  llvm::ConstantDataSequential
 ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer or half/bfloat/float/double, and whose elements are just simple data values (i.e. More...
 
class  llvm::ConstantDataArray
 An array constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More...
 
class  llvm::ConstantDataVector
 A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More...
 
class  llvm::ConstantTokenNone
 A constant token which is empty. More...
 
class  llvm::ConstantTargetNone
 A constant target extension type default initializer. More...
 
class  llvm::BlockAddress
 The address of a basic block. More...
 
struct  llvm::OperandTraits< BlockAddress >
 
class  llvm::DSOLocalEquivalent
 Wrapper for a function that represents a value that functionally represents the original function. More...
 
struct  llvm::OperandTraits< DSOLocalEquivalent >
 
class  llvm::NoCFIValue
 Wrapper for a value that won't be replaced with a CFI jump table pointer in LowerTypeTestsModule. More...
 
struct  llvm::OperandTraits< NoCFIValue >
 
class  llvm::ConstantExpr
 A constant value that is initialized with an expression using other constant values. More...
 
struct  llvm::OperandTraits< ConstantExpr >
 
class  llvm::UndefValue
 'undef' values are things that do not have specified contents. More...
 
class  llvm::PoisonValue
 In order to facilitate speculative execution, many instructions do not invoke immediate undefined behavior when provided with illegal operands, and return a poison value instead. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Detailed Description

This file contains the declarations for the subclasses of Constant, which represent the different flavors of constant values that live in LLVM.

Note that Constants are immutable (once created they never change) and are fully shared by structural equivalence. This means that two structurally equivalent constants will always have the same address. Constants are created on demand as needed and never deleted: thus clients don't have to worry about the lifetime of the objects.

Definition in file Constants.h.