#ifndef LLVM_LIB_IR_CONSTANTSCONTEXT_H
#define LLVM_LIB_IR_CONSTANTSCONTEXT_H
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/OperandTraits.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <utility>
#define DEBUG_TYPE …
namespace llvm {
class CastConstantExpr final : public ConstantExpr { … };
class BinaryConstantExpr final : public ConstantExpr { … };
class ExtractElementConstantExpr final : public ConstantExpr { … };
class InsertElementConstantExpr final : public ConstantExpr { … };
class ShuffleVectorConstantExpr final : public ConstantExpr { … };
class GetElementPtrConstantExpr : public ConstantExpr { … };
template <>
struct OperandTraits<CastConstantExpr>
: public FixedNumOperandTraits<CastConstantExpr, 1> { … };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(…)
template <>
struct OperandTraits<BinaryConstantExpr>
: public FixedNumOperandTraits<BinaryConstantExpr, 2> { … };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(…)
template <>
struct OperandTraits<ExtractElementConstantExpr>
: public FixedNumOperandTraits<ExtractElementConstantExpr, 2> { … };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(…)
template <>
struct OperandTraits<InsertElementConstantExpr>
: public FixedNumOperandTraits<InsertElementConstantExpr, 3> { … };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(…)
template <>
struct OperandTraits<ShuffleVectorConstantExpr>
: public FixedNumOperandTraits<ShuffleVectorConstantExpr, 2> { … };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(…)
template <>
struct OperandTraits<GetElementPtrConstantExpr>
: public VariadicOperandTraits<GetElementPtrConstantExpr> { … };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(…)
template <class ConstantClass> struct ConstantAggrKeyType;
struct InlineAsmKeyType;
struct ConstantExprKeyType;
struct ConstantPtrAuthKeyType;
template <class ConstantClass> struct ConstantInfo;
template <> struct ConstantInfo<ConstantExpr> { … };
template <> struct ConstantInfo<InlineAsm> { … };
template <> struct ConstantInfo<ConstantArray> { … };
template <> struct ConstantInfo<ConstantStruct> { … };
template <> struct ConstantInfo<ConstantVector> { … };
template <> struct ConstantInfo<ConstantPtrAuth> { … };
template <class ConstantClass> struct ConstantAggrKeyType { … };
struct InlineAsmKeyType { … };
struct ConstantExprKeyType { … };
struct ConstantPtrAuthKeyType { … };
void deleteConstant(Constant *C);
template <class ConstantClass> class ConstantUniqueMap { … };
template <> inline void ConstantUniqueMap<InlineAsm>::freeConstants() { … }
}
#endif