Warning, /include/llvm/SandboxIR/Values.def is written in an unsupported language. File is not indexed.
0001 //===- Values.def -----------------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008
0009 // ClassID, Class
0010 #ifndef DEF_VALUE
0011 #define DEF_VALUE(ID, CLASS)
0012 #endif
0013
0014 #ifndef DEF_USER
0015 #define DEF_USER(ID, CLASS)
0016 #endif
0017
0018 #ifndef DEF_CONST
0019 #define DEF_CONST(ID, CLASS)
0020 #endif
0021
0022 DEF_CONST(Function, Function)
0023 DEF_VALUE(Argument, Argument)
0024
0025 DEF_USER(User, User)
0026 DEF_VALUE(Block, BasicBlock)
0027 DEF_CONST(Constant, Constant)
0028 DEF_CONST(ConstantInt, ConstantInt)
0029 DEF_CONST(ConstantFP, ConstantFP)
0030 DEF_CONST(ConstantArray, ConstantArray)
0031 DEF_CONST(ConstantStruct, ConstantStruct)
0032 DEF_CONST(ConstantVector, ConstantVector)
0033 DEF_CONST(ConstantAggregateZero, ConstantAggregateZero)
0034 DEF_CONST(ConstantPointerNull, ConstantPointerNull)
0035 DEF_CONST(UndefValue, UndefValue)
0036 DEF_CONST(PoisonValue, PoisonValue)
0037 DEF_CONST(GlobalVariable, GlobalVariable)
0038 DEF_CONST(GlobalIFunc, GlobalIFunc)
0039 DEF_CONST(GlobalAlias, GlobalAlias)
0040 DEF_CONST(BlockAddress, BlockAddress)
0041 DEF_CONST(NoCFIValue, NoCFIValue)
0042 DEF_CONST(ConstantPtrAuth, ConstantPtrAuth)
0043 DEF_CONST(ConstantExpr, ConstantExpr)
0044 DEF_CONST(DSOLocalEquivalent, DSOLocalEquivalent)
0045 DEF_CONST(ConstantTokenNone, ConstantTokenNone)
0046
0047 #ifndef DEF_INSTR
0048 #define DEF_INSTR(ID, OPCODE, CLASS)
0049 #endif
0050
0051 #ifndef OP
0052 #define OP(OPCODE)
0053 #endif
0054
0055 #ifndef OPCODES
0056 #define OPCODES(...)
0057 #endif
0058 // clang-format off
0059 // ClassID, Opcode(s), Class
0060 DEF_INSTR(Opaque, OP(Opaque), OpaqueInst)
0061 DEF_INSTR(ExtractElement, OP(ExtractElement), ExtractElementInst)
0062 DEF_INSTR(InsertElement, OP(InsertElement), InsertElementInst)
0063 DEF_INSTR(VAArg, OP(VAArg), VAArgInst)
0064 DEF_INSTR(Freeze, OP(Freeze), FreezeInst)
0065 DEF_INSTR(Fence, OP(Fence), FenceInst)
0066 DEF_INSTR(ShuffleVector, OP(ShuffleVector), ShuffleVectorInst)
0067 DEF_INSTR(ExtractValue, OP(ExtractValue), ExtractValueInst)
0068 DEF_INSTR(InsertValue, OP(InsertValue), InsertValueInst)
0069 DEF_INSTR(Select, OP(Select), SelectInst)
0070 DEF_INSTR(Br, OP(Br), BranchInst)
0071 DEF_INSTR(Load, OP(Load), LoadInst)
0072 DEF_INSTR(Store, OP(Store), StoreInst)
0073 DEF_INSTR(Ret, OP(Ret), ReturnInst)
0074 DEF_INSTR(Call, OP(Call), CallInst)
0075 DEF_INSTR(Invoke, OP(Invoke), InvokeInst)
0076 DEF_INSTR(CallBr, OP(CallBr), CallBrInst)
0077 DEF_INSTR(LandingPad, OP(LandingPad), LandingPadInst)
0078 DEF_INSTR(CatchPad, OP(CatchPad), CatchPadInst)
0079 DEF_INSTR(CleanupPad, OP(CleanupPad), CleanupPadInst)
0080 DEF_INSTR(CatchRet, OP(CatchRet), CatchReturnInst)
0081 DEF_INSTR(CleanupRet, OP(CleanupRet), CleanupReturnInst)
0082 DEF_INSTR(GetElementPtr, OP(GetElementPtr), GetElementPtrInst)
0083 DEF_INSTR(Resume, OP(Resume), ResumeInst)
0084 DEF_INSTR(CatchSwitch, OP(CatchSwitch), CatchSwitchInst)
0085 DEF_INSTR(Switch, OP(Switch), SwitchInst)
0086 DEF_INSTR(UnOp, OPCODES( \
0087 OP(FNeg) \
0088 ), UnaryOperator)
0089 DEF_INSTR(BinaryOperator, OPCODES(\
0090 OP(Add) \
0091 OP(FAdd) \
0092 OP(Sub) \
0093 OP(FSub) \
0094 OP(Mul) \
0095 OP(FMul) \
0096 OP(UDiv) \
0097 OP(SDiv) \
0098 OP(FDiv) \
0099 OP(URem) \
0100 OP(SRem) \
0101 OP(FRem) \
0102 OP(Shl) \
0103 OP(LShr) \
0104 OP(AShr) \
0105 OP(And) \
0106 OP(Or) \
0107 OP(Xor) \
0108 ), BinaryOperator)
0109 DEF_INSTR(AtomicRMW, OP(AtomicRMW), AtomicRMWInst)
0110 DEF_INSTR(AtomicCmpXchg, OP(AtomicCmpXchg), AtomicCmpXchgInst)
0111 DEF_INSTR(Alloca, OP(Alloca), AllocaInst)
0112 DEF_INSTR(Cast, OPCODES(\
0113 OP(ZExt) \
0114 OP(SExt) \
0115 OP(FPToUI) \
0116 OP(FPToSI) \
0117 OP(FPExt) \
0118 OP(PtrToInt) \
0119 OP(IntToPtr) \
0120 OP(SIToFP) \
0121 OP(UIToFP) \
0122 OP(Trunc) \
0123 OP(FPTrunc) \
0124 OP(BitCast) \
0125 OP(AddrSpaceCast) \
0126 ), CastInst)
0127 DEF_INSTR(PHI, OP(PHI), PHINode)
0128 DEF_INSTR(Unreachable, OP(Unreachable), UnreachableInst)
0129 DEF_INSTR(ICmp, OP(ICmp), FCmpInst)
0130 DEF_INSTR(FCmp, OP(FCmp), ICmpInst)
0131
0132 // clang-format on
0133 #ifdef DEF_VALUE
0134 #undef DEF_VALUE
0135 #endif
0136 #ifdef DEF_USER
0137 #undef DEF_USER
0138 #endif
0139 #ifdef DEF_CONST
0140 #undef DEF_CONST
0141 #endif
0142 #ifdef DEF_INSTR
0143 #undef DEF_INSTR
0144 #endif
0145 #ifdef OP
0146 #undef OP
0147 #endif
0148 #ifdef OPCODES
0149 #undef OPCODES
0150 #endif