diff options
Diffstat (limited to 'include/llvm/Instruction.def')
-rw-r--r-- | include/llvm/Instruction.def | 69 |
1 files changed, 52 insertions, 17 deletions
diff --git a/include/llvm/Instruction.def b/include/llvm/Instruction.def index 55c668a..dac14d3 100644 --- a/include/llvm/Instruction.def +++ b/include/llvm/Instruction.def @@ -60,6 +60,20 @@ #define LAST_MEMORY_INST(num) #endif +#ifndef FIRST_CAST_INST +#define FIRST_CAST_INST(num) +#endif +#ifndef HANDLE_CAST_INST +#ifndef HANDLE_INST +#define HANDLE_CAST_INST(num, opcode, Class) +#else +#define HANDLE_CAST_INST(num, opcode, Class) HANDLE_INST(num, opcode, Class) +#endif +#endif +#ifndef LAST_CAST_INST +#define LAST_CAST_INST(num) +#endif + #ifndef FIRST_OTHER_INST #define FIRST_OTHER_INST(num) #endif @@ -124,24 +138,41 @@ HANDLE_MEMORY_INST(29, Store , StoreInst ) HANDLE_MEMORY_INST(30, GetElementPtr, GetElementPtrInst) LAST_MEMORY_INST(30) +// Cast operators ... +// NOTE: The order matters here because CastInst::isEliminableCastPair +// NOTE: (see Instructions.cpp) encodes a table based on this ordering. + FIRST_CAST_INST(31) +HANDLE_CAST_INST(31, Trunc , CastInst ) // Truncate integers +HANDLE_CAST_INST(32, ZExt , CastInst ) // Zero extend integers +HANDLE_CAST_INST(33, SExt , CastInst ) // Sign extend integers +HANDLE_CAST_INST(34, FPToUI , CastInst ) // floating point -> UInt +HANDLE_CAST_INST(35, FPToSI , CastInst ) // floating point -> SInt +HANDLE_CAST_INST(36, UIToFP , CastInst ) // UInt -> floating point +HANDLE_CAST_INST(37, SIToFP , CastInst ) // SInt -> floating point +HANDLE_CAST_INST(38, FPTrunc , CastInst ) // Truncate floating point +HANDLE_CAST_INST(39, FPExt , CastInst ) // Extend floating point +HANDLE_CAST_INST(40, PtrToInt, CastInst ) // Pointer -> Integer +HANDLE_CAST_INST(41, IntToPtr, CastInst ) // Integer -> Pointer +HANDLE_CAST_INST(42, BitCast , CastInst ) // Type cast + LAST_CAST_INST(42) + // Other operators... - FIRST_OTHER_INST(31) -HANDLE_OTHER_INST(31, ICmp , ICmpInst ) // Integer comparison instruction -HANDLE_OTHER_INST(32, FCmp , FCmpInst ) // Floating point comparison instr. -HANDLE_OTHER_INST(33, PHI , PHINode ) // PHI node instruction -HANDLE_OTHER_INST(34, Cast , CastInst ) // Type cast -HANDLE_OTHER_INST(35, Call , CallInst ) // Call a function -HANDLE_OTHER_INST(36, Shl , ShiftInst ) // Shift Left operations (logical) -HANDLE_OTHER_INST(37, LShr , ShiftInst ) // Logical Shift right (unsigned) -HANDLE_OTHER_INST(38, AShr , ShiftInst ) // Arithmetic shift right (signed) -HANDLE_OTHER_INST(39, Select , SelectInst ) // select instruction -HANDLE_OTHER_INST(40, UserOp1, Instruction) // May be used internally in a pass -HANDLE_OTHER_INST(41, UserOp2, Instruction) // Internal to passes only -HANDLE_OTHER_INST(42, VAArg , VAArgInst ) // vaarg instruction -HANDLE_OTHER_INST(43, ExtractElement, ExtractElementInst)// extract from vector. -HANDLE_OTHER_INST(44, InsertElement, InsertElementInst) // insert into vector -HANDLE_OTHER_INST(45, ShuffleVector, ShuffleVectorInst) // shuffle two vectors. - LAST_OTHER_INST(45) + FIRST_OTHER_INST(43) +HANDLE_OTHER_INST(43, ICmp , ICmpInst ) // Integer comparison instruction +HANDLE_OTHER_INST(44, FCmp , FCmpInst ) // Floating point comparison instr. +HANDLE_OTHER_INST(45, PHI , PHINode ) // PHI node instruction +HANDLE_OTHER_INST(46, Call , CallInst ) // Call a function +HANDLE_OTHER_INST(47, Shl , ShiftInst ) // Shift Left operations (logical) +HANDLE_OTHER_INST(48, LShr , ShiftInst ) // Logical Shift right (unsigned) +HANDLE_OTHER_INST(49, AShr , ShiftInst ) // Arithmetic shift right (signed) +HANDLE_OTHER_INST(50, Select , SelectInst ) // select instruction +HANDLE_OTHER_INST(51, UserOp1, Instruction) // May be used internally in a pass +HANDLE_OTHER_INST(52, UserOp2, Instruction) // Internal to passes only +HANDLE_OTHER_INST(53, VAArg , VAArgInst ) // vaarg instruction +HANDLE_OTHER_INST(54, ExtractElement, ExtractElementInst)// extract from vector. +HANDLE_OTHER_INST(55, InsertElement, InsertElementInst) // insert into vector +HANDLE_OTHER_INST(56, ShuffleVector, ShuffleVectorInst) // shuffle two vectors. + LAST_OTHER_INST(56) #undef FIRST_TERM_INST #undef HANDLE_TERM_INST @@ -155,6 +186,10 @@ HANDLE_OTHER_INST(45, ShuffleVector, ShuffleVectorInst) // shuffle two vectors. #undef HANDLE_MEMORY_INST #undef LAST_MEMORY_INST +#undef FIRST_CAST_INST +#undef HANDLE_CAST_INST +#undef LAST_CAST_INST + #undef FIRST_OTHER_INST #undef HANDLE_OTHER_INST #undef LAST_OTHER_INST |