X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FInstruction.def;h=205f30313e761babd416edc37d926fc31ebb59db;hb=7293ac12811c8a43023830380e70c0fda941f8ec;hp=0cde5c1208e41b9ef45126d940ef9e7e005a6ea1;hpb=c795a48e76b0f4e546fa9d5a4090931ff12a7988;p=oota-llvm.git diff --git a/include/llvm/Instruction.def b/include/llvm/Instruction.def index 0cde5c1208e..205f30313e7 100644 --- a/include/llvm/Instruction.def +++ b/include/llvm/Instruction.def @@ -2,8 +2,8 @@ // // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -60,18 +60,18 @@ #define LAST_MEMORY_INST(num) #endif -#ifndef FIRST_CONVERT_INST -#define FIRST_CONVERT_INST(num) +#ifndef FIRST_CAST_INST +#define FIRST_CAST_INST(num) #endif -#ifndef HANDLE_CONVERT_INST +#ifndef HANDLE_CAST_INST #ifndef HANDLE_INST -#define HANDLE_CONVERT_INST(num, opcode, Class) +#define HANDLE_CAST_INST(num, opcode, Class) #else -#define HANDLE_CONVERT_INST(num, opcode, Class) HANDLE_INST(num, opcode, Class) +#define HANDLE_CAST_INST(num, opcode, Class) HANDLE_INST(num, opcode, Class) #endif #endif -#ifndef LAST_CONVERT_INST -#define LAST_CONVERT_INST(num) +#ifndef LAST_CAST_INST +#define LAST_CAST_INST(num) #endif #ifndef FIRST_OTHER_INST @@ -97,78 +97,78 @@ HANDLE_TERM_INST ( 1, Ret , ReturnInst) HANDLE_TERM_INST ( 2, Br , BranchInst) HANDLE_TERM_INST ( 3, Switch , SwitchInst) -HANDLE_TERM_INST ( 4, Invoke , InvokeInst) -HANDLE_TERM_INST ( 5, Unwind , UnwindInst) -HANDLE_TERM_INST ( 6, Unreachable, UnreachableInst) - LAST_TERM_INST ( 6) +HANDLE_TERM_INST ( 4, IndirectBr , IndirectBrInst) +HANDLE_TERM_INST ( 5, Invoke , InvokeInst) +HANDLE_TERM_INST ( 6, Unwind , UnwindInst) +HANDLE_TERM_INST ( 7, Unreachable, UnreachableInst) + LAST_TERM_INST ( 7) // Standard binary operators... - FIRST_BINARY_INST( 7) -HANDLE_BINARY_INST( 7, Add , BinaryOperator) -HANDLE_BINARY_INST( 8, Sub , BinaryOperator) -HANDLE_BINARY_INST( 9, Mul , BinaryOperator) -HANDLE_BINARY_INST(10, UDiv , BinaryOperator) -HANDLE_BINARY_INST(11, SDiv , BinaryOperator) -HANDLE_BINARY_INST(12, FDiv , BinaryOperator) -HANDLE_BINARY_INST(13, URem , BinaryOperator) -HANDLE_BINARY_INST(14, SRem , BinaryOperator) -HANDLE_BINARY_INST(15, FRem , BinaryOperator) - -// Logical operators... -HANDLE_BINARY_INST(16, And , BinaryOperator) -HANDLE_BINARY_INST(17, Or , BinaryOperator) -HANDLE_BINARY_INST(18, Xor , BinaryOperator) - -// Binary comparison operators... -HANDLE_BINARY_INST(19, SetEQ , SetCondInst) -HANDLE_BINARY_INST(20, SetNE , SetCondInst) -HANDLE_BINARY_INST(21, SetLE , SetCondInst) -HANDLE_BINARY_INST(22, SetGE , SetCondInst) -HANDLE_BINARY_INST(23, SetLT , SetCondInst) -HANDLE_BINARY_INST(24, SetGT , SetCondInst) - LAST_BINARY_INST(24) + FIRST_BINARY_INST( 8) +HANDLE_BINARY_INST( 8, Add , BinaryOperator) +HANDLE_BINARY_INST( 9, FAdd , BinaryOperator) +HANDLE_BINARY_INST(10, Sub , BinaryOperator) +HANDLE_BINARY_INST(11, FSub , BinaryOperator) +HANDLE_BINARY_INST(12, Mul , BinaryOperator) +HANDLE_BINARY_INST(13, FMul , BinaryOperator) +HANDLE_BINARY_INST(14, UDiv , BinaryOperator) +HANDLE_BINARY_INST(15, SDiv , BinaryOperator) +HANDLE_BINARY_INST(16, FDiv , BinaryOperator) +HANDLE_BINARY_INST(17, URem , BinaryOperator) +HANDLE_BINARY_INST(18, SRem , BinaryOperator) +HANDLE_BINARY_INST(19, FRem , BinaryOperator) + +// Logical operators (integer operands) +HANDLE_BINARY_INST(20, Shl , BinaryOperator) // Shift left (logical) +HANDLE_BINARY_INST(21, LShr , BinaryOperator) // Shift right (logical) +HANDLE_BINARY_INST(22, AShr , BinaryOperator) // Shift right (arithmetic) +HANDLE_BINARY_INST(23, And , BinaryOperator) +HANDLE_BINARY_INST(24, Or , BinaryOperator) +HANDLE_BINARY_INST(25, Xor , BinaryOperator) + LAST_BINARY_INST(25) // Memory operators... - FIRST_MEMORY_INST(25) -HANDLE_MEMORY_INST(25, Malloc, MallocInst) // Heap management instructions -HANDLE_MEMORY_INST(26, Free , FreeInst ) -HANDLE_MEMORY_INST(27, Alloca, AllocaInst) // Stack management -HANDLE_MEMORY_INST(28, Load , LoadInst ) // Memory manipulation instrs -HANDLE_MEMORY_INST(29, Store , StoreInst ) -HANDLE_MEMORY_INST(30, GetElementPtr, GetElementPtrInst) - LAST_MEMORY_INST(30) - -// Conversion operators ... -// NOTE: The order matters here, see InstCombine (isEliminableCastOfCast) - FIRST_CONVERT_INST(31) -HANDLE_CONVERT_INST(31, Trunc , ConvertInst ) // Truncate integers -HANDLE_CONVERT_INST(32, ZExt , ConvertInst ) // Zero extend integers -HANDLE_CONVERT_INST(33, SExt , ConvertInst ) // Sign extend integers -HANDLE_CONVERT_INST(34, FPToUI , ConvertInst ) // floating point -> UInt -HANDLE_CONVERT_INST(35, FPToSI , ConvertInst ) // floating point -> SInt -HANDLE_CONVERT_INST(36, UIToFP , ConvertInst ) // UInt -> floating point -HANDLE_CONVERT_INST(37, SIToFP , ConvertInst ) // SInt -> floating point -HANDLE_CONVERT_INST(38, FPTrunc , ConvertInst ) // Truncate floating point -HANDLE_CONVERT_INST(39, FPExt , ConvertInst ) // Extend floating point -HANDLE_CONVERT_INST(40, IntToPtr, ConvertInst ) // Integer -> Pointer -HANDLE_CONVERT_INST(41, PtrToInt, ConvertInst ) // Pointer -> Integer -HANDLE_CONVERT_INST(42, BitCast , ConvertInst ) // Type cast - LAST_CONVERT_INST(42) + FIRST_MEMORY_INST(26) +HANDLE_MEMORY_INST(26, Alloca, AllocaInst) // Stack management +HANDLE_MEMORY_INST(27, Load , LoadInst ) // Memory manipulation instrs +HANDLE_MEMORY_INST(28, Store , StoreInst ) +HANDLE_MEMORY_INST(29, GetElementPtr, GetElementPtrInst) + LAST_MEMORY_INST(29) + +// Cast operators ... +// NOTE: The order matters here because CastInst::isEliminableCastPair +// NOTE: (see Instructions.cpp) encodes a table based on this ordering. + FIRST_CAST_INST(30) +HANDLE_CAST_INST(30, Trunc , TruncInst ) // Truncate integers +HANDLE_CAST_INST(31, ZExt , ZExtInst ) // Zero extend integers +HANDLE_CAST_INST(32, SExt , SExtInst ) // Sign extend integers +HANDLE_CAST_INST(33, FPToUI , FPToUIInst ) // floating point -> UInt +HANDLE_CAST_INST(34, FPToSI , FPToSIInst ) // floating point -> SInt +HANDLE_CAST_INST(35, UIToFP , UIToFPInst ) // UInt -> floating point +HANDLE_CAST_INST(36, SIToFP , SIToFPInst ) // SInt -> floating point +HANDLE_CAST_INST(37, FPTrunc , FPTruncInst ) // Truncate floating point +HANDLE_CAST_INST(38, FPExt , FPExtInst ) // Extend floating point +HANDLE_CAST_INST(39, PtrToInt, PtrToIntInst) // Pointer -> Integer +HANDLE_CAST_INST(40, IntToPtr, IntToPtrInst) // Integer -> Pointer +HANDLE_CAST_INST(41, BitCast , BitCastInst ) // Type cast + LAST_CAST_INST(41) // Other operators... - FIRST_OTHER_INST(43) -HANDLE_OTHER_INST(43, PHI , PHINode ) // PHI node instruction -HANDLE_OTHER_INST(44, Call , CallInst ) // Call a function -HANDLE_OTHER_INST(45, Shl , ShiftInst ) // Shift Left operations (logical) -HANDLE_OTHER_INST(46, LShr , ShiftInst ) // Logical Shift right (unsigned) -HANDLE_OTHER_INST(47, AShr , ShiftInst ) // Arithmetic shift right (signed) -HANDLE_OTHER_INST(48, Select , SelectInst ) // select instruction -HANDLE_OTHER_INST(49, UserOp1, Instruction) // May be used internally in a pass -HANDLE_OTHER_INST(50, UserOp2, Instruction) // Internal to passes only -HANDLE_OTHER_INST(51, VAArg , VAArgInst ) // vaarg instruction -HANDLE_OTHER_INST(52, ExtractElement, ExtractElementInst)// extract from vector. -HANDLE_OTHER_INST(53, InsertElement, InsertElementInst) // insert into vector -HANDLE_OTHER_INST(54, ShuffleVector, ShuffleVectorInst) // shuffle two vectors. + FIRST_OTHER_INST(42) +HANDLE_OTHER_INST(42, ICmp , ICmpInst ) // Integer comparison instruction +HANDLE_OTHER_INST(43, FCmp , FCmpInst ) // Floating point comparison instr. +HANDLE_OTHER_INST(44, PHI , PHINode ) // PHI node instruction +HANDLE_OTHER_INST(45, Call , CallInst ) // Call a function +HANDLE_OTHER_INST(46, Select , SelectInst ) // select instruction +HANDLE_OTHER_INST(47, UserOp1, Instruction) // May be used internally in a pass +HANDLE_OTHER_INST(48, UserOp2, Instruction) // Internal to passes only +HANDLE_OTHER_INST(49, VAArg , VAArgInst ) // vaarg instruction +HANDLE_OTHER_INST(50, ExtractElement, ExtractElementInst)// extract from vector +HANDLE_OTHER_INST(51, InsertElement, InsertElementInst) // insert into vector +HANDLE_OTHER_INST(52, ShuffleVector, ShuffleVectorInst) // shuffle two vectors. +HANDLE_OTHER_INST(53, ExtractValue, ExtractValueInst)// extract from aggregate +HANDLE_OTHER_INST(54, InsertValue, InsertValueInst) // insert into aggregate + LAST_OTHER_INST(54) #undef FIRST_TERM_INST @@ -183,9 +183,9 @@ HANDLE_OTHER_INST(54, ShuffleVector, ShuffleVectorInst) // shuffle two vectors. #undef HANDLE_MEMORY_INST #undef LAST_MEMORY_INST -#undef FIRST_CONVERT_INST -#undef HANDLE_CONVERT_INST -#undef LAST_CONVERT_INST +#undef FIRST_CAST_INST +#undef HANDLE_CAST_INST +#undef LAST_CAST_INST #undef FIRST_OTHER_INST #undef HANDLE_OTHER_INST