Add the 'resume' instruction for the new EH rewrite. · clang-omp/llvm@dccc03b (original) (raw)
`@@ -100,79 +100,79 @@ HANDLE_TERM_INST ( 3, Switch , SwitchInst)
`
100
100
`HANDLE_TERM_INST ( 4, IndirectBr , IndirectBrInst)
`
101
101
`HANDLE_TERM_INST ( 5, Invoke , InvokeInst)
`
102
102
`HANDLE_TERM_INST ( 6, Unwind , UnwindInst)
`
103
``
`-
HANDLE_TERM_INST ( 7, Unreachable, UnreachableInst)
`
104
``
`-
LAST_TERM_INST ( 7)
`
``
103
`+
HANDLE_TERM_INST ( 7, Resume , ResumeInst)
`
``
104
`+
HANDLE_TERM_INST ( 8, Unreachable, UnreachableInst)
`
``
105
`+
LAST_TERM_INST ( 8)
`
105
106
``
106
107
`// Standard binary operators...
`
107
``
`-
FIRST_BINARY_INST( 8)
`
108
``
`-
HANDLE_BINARY_INST( 8, Add , BinaryOperator)
`
109
``
`-
HANDLE_BINARY_INST( 9, FAdd , BinaryOperator)
`
110
``
`-
HANDLE_BINARY_INST(10, Sub , BinaryOperator)
`
111
``
`-
HANDLE_BINARY_INST(11, FSub , BinaryOperator)
`
112
``
`-
HANDLE_BINARY_INST(12, Mul , BinaryOperator)
`
113
``
`-
HANDLE_BINARY_INST(13, FMul , BinaryOperator)
`
114
``
`-
HANDLE_BINARY_INST(14, UDiv , BinaryOperator)
`
115
``
`-
HANDLE_BINARY_INST(15, SDiv , BinaryOperator)
`
116
``
`-
HANDLE_BINARY_INST(16, FDiv , BinaryOperator)
`
117
``
`-
HANDLE_BINARY_INST(17, URem , BinaryOperator)
`
118
``
`-
HANDLE_BINARY_INST(18, SRem , BinaryOperator)
`
119
``
`-
HANDLE_BINARY_INST(19, FRem , BinaryOperator)
`
``
108
`+
FIRST_BINARY_INST( 9)
`
``
109
`+
HANDLE_BINARY_INST( 9, Add , BinaryOperator)
`
``
110
`+
HANDLE_BINARY_INST(10, FAdd , BinaryOperator)
`
``
111
`+
HANDLE_BINARY_INST(11, Sub , BinaryOperator)
`
``
112
`+
HANDLE_BINARY_INST(12, FSub , BinaryOperator)
`
``
113
`+
HANDLE_BINARY_INST(13, Mul , BinaryOperator)
`
``
114
`+
HANDLE_BINARY_INST(14, FMul , BinaryOperator)
`
``
115
`+
HANDLE_BINARY_INST(15, UDiv , BinaryOperator)
`
``
116
`+
HANDLE_BINARY_INST(16, SDiv , BinaryOperator)
`
``
117
`+
HANDLE_BINARY_INST(17, FDiv , BinaryOperator)
`
``
118
`+
HANDLE_BINARY_INST(18, URem , BinaryOperator)
`
``
119
`+
HANDLE_BINARY_INST(19, SRem , BinaryOperator)
`
``
120
`+
HANDLE_BINARY_INST(20, FRem , BinaryOperator)
`
120
121
``
121
122
`// Logical operators (integer operands)
`
122
``
`-
HANDLE_BINARY_INST(20, Shl , BinaryOperator) // Shift left (logical)
`
123
``
`-
HANDLE_BINARY_INST(21, LShr , BinaryOperator) // Shift right (logical)
`
124
``
`-
HANDLE_BINARY_INST(22, AShr , BinaryOperator) // Shift right (arithmetic)
`
125
``
`-
HANDLE_BINARY_INST(23, And , BinaryOperator)
`
126
``
`-
HANDLE_BINARY_INST(24, Or , BinaryOperator)
`
127
``
`-
HANDLE_BINARY_INST(25, Xor , BinaryOperator)
`
128
``
`-
LAST_BINARY_INST(25)
`
``
123
`+
HANDLE_BINARY_INST(21, Shl , BinaryOperator) // Shift left (logical)
`
``
124
`+
HANDLE_BINARY_INST(22, LShr , BinaryOperator) // Shift right (logical)
`
``
125
`+
HANDLE_BINARY_INST(23, AShr , BinaryOperator) // Shift right (arithmetic)
`
``
126
`+
HANDLE_BINARY_INST(24, And , BinaryOperator)
`
``
127
`+
HANDLE_BINARY_INST(25, Or , BinaryOperator)
`
``
128
`+
HANDLE_BINARY_INST(26, Xor , BinaryOperator)
`
``
129
`+
LAST_BINARY_INST(26)
`
129
130
``
130
131
`// Memory operators...
`
131
``
`-
FIRST_MEMORY_INST(26)
`
132
``
`-
HANDLE_MEMORY_INST(26, Alloca, AllocaInst) // Stack management
`
133
``
`-
HANDLE_MEMORY_INST(27, Load , LoadInst ) // Memory manipulation instrs
`
134
``
`-
HANDLE_MEMORY_INST(28, Store , StoreInst )
`
135
``
`-
HANDLE_MEMORY_INST(29, GetElementPtr, GetElementPtrInst)
`
136
``
`-
HANDLE_MEMORY_INST(30, Fence , FenceInst )
`
137
``
`-
HANDLE_MEMORY_INST(31, AtomicCmpXchg , AtomicCmpXchgInst )
`
138
``
`-
HANDLE_MEMORY_INST(32, AtomicRMW , AtomicRMWInst )
`
139
``
`-
LAST_MEMORY_INST(32)
`
``
132
`+
FIRST_MEMORY_INST(27)
`
``
133
`+
HANDLE_MEMORY_INST(27, Alloca, AllocaInst) // Stack management
`
``
134
`+
HANDLE_MEMORY_INST(28, Load , LoadInst ) // Memory manipulation instrs
`
``
135
`+
HANDLE_MEMORY_INST(29, Store , StoreInst )
`
``
136
`+
HANDLE_MEMORY_INST(30, GetElementPtr, GetElementPtrInst)
`
``
137
`+
HANDLE_MEMORY_INST(31, Fence , FenceInst )
`
``
138
`+
HANDLE_MEMORY_INST(32, AtomicCmpXchg , AtomicCmpXchgInst )
`
``
139
`+
HANDLE_MEMORY_INST(33, AtomicRMW , AtomicRMWInst )
`
``
140
`+
LAST_MEMORY_INST(33)
`
140
141
``
141
142
`// Cast operators ...
`
142
143
`// NOTE: The order matters here because CastInst::isEliminableCastPair
`
143
144
`// NOTE: (see Instructions.cpp) encodes a table based on this ordering.
`
144
``
`-
FIRST_CAST_INST(33)
`
145
``
`-
HANDLE_CAST_INST(33, Trunc , TruncInst ) // Truncate integers
`
146
``
`-
HANDLE_CAST_INST(34, ZExt , ZExtInst ) // Zero extend integers
`
147
``
`-
HANDLE_CAST_INST(35, SExt , SExtInst ) // Sign extend integers
`
148
``
`-
HANDLE_CAST_INST(36, FPToUI , FPToUIInst ) // floating point -> UInt
`
149
``
`-
HANDLE_CAST_INST(37, FPToSI , FPToSIInst ) // floating point -> SInt
`
150
``
`-
HANDLE_CAST_INST(38, UIToFP , UIToFPInst ) // UInt -> floating point
`
151
``
`-
HANDLE_CAST_INST(39, SIToFP , SIToFPInst ) // SInt -> floating point
`
152
``
`-
HANDLE_CAST_INST(40, FPTrunc , FPTruncInst ) // Truncate floating point
`
153
``
`-
HANDLE_CAST_INST(41, FPExt , FPExtInst ) // Extend floating point
`
154
``
`-
HANDLE_CAST_INST(42, PtrToInt, PtrToIntInst) // Pointer -> Integer
`
155
``
`-
HANDLE_CAST_INST(43, IntToPtr, IntToPtrInst) // Integer -> Pointer
`
156
``
`-
HANDLE_CAST_INST(44, BitCast , BitCastInst ) // Type cast
`
157
``
`-
LAST_CAST_INST(44)
`
``
145
`+
FIRST_CAST_INST(34)
`
``
146
`+
HANDLE_CAST_INST(34, Trunc , TruncInst ) // Truncate integers
`
``
147
`+
HANDLE_CAST_INST(35, ZExt , ZExtInst ) // Zero extend integers
`
``
148
`+
HANDLE_CAST_INST(36, SExt , SExtInst ) // Sign extend integers
`
``
149
`+
HANDLE_CAST_INST(37, FPToUI , FPToUIInst ) // floating point -> UInt
`
``
150
`+
HANDLE_CAST_INST(38, FPToSI , FPToSIInst ) // floating point -> SInt
`
``
151
`+
HANDLE_CAST_INST(39, UIToFP , UIToFPInst ) // UInt -> floating point
`
``
152
`+
HANDLE_CAST_INST(40, SIToFP , SIToFPInst ) // SInt -> floating point
`
``
153
`+
HANDLE_CAST_INST(41, FPTrunc , FPTruncInst ) // Truncate floating point
`
``
154
`+
HANDLE_CAST_INST(42, FPExt , FPExtInst ) // Extend floating point
`
``
155
`+
HANDLE_CAST_INST(43, PtrToInt, PtrToIntInst) // Pointer -> Integer
`
``
156
`+
HANDLE_CAST_INST(44, IntToPtr, IntToPtrInst) // Integer -> Pointer
`
``
157
`+
HANDLE_CAST_INST(45, BitCast , BitCastInst ) // Type cast
`
``
158
`+
LAST_CAST_INST(45)
`
158
159
``
159
160
`// Other operators...
`
160
``
`-
FIRST_OTHER_INST(45)
`
161
``
`-
HANDLE_OTHER_INST(45, ICmp , ICmpInst ) // Integer comparison instruction
`
162
``
`-
HANDLE_OTHER_INST(46, FCmp , FCmpInst ) // Floating point comparison instr.
`
163
``
`-
HANDLE_OTHER_INST(47, PHI , PHINode ) // PHI node instruction
`
164
``
`-
HANDLE_OTHER_INST(48, Call , CallInst ) // Call a function
`
165
``
`-
HANDLE_OTHER_INST(49, Select , SelectInst ) // select instruction
`
166
``
`-
HANDLE_OTHER_INST(50, UserOp1, Instruction) // May be used internally in a pass
`
167
``
`-
HANDLE_OTHER_INST(51, UserOp2, Instruction) // Internal to passes only
`
168
``
`-
HANDLE_OTHER_INST(52, VAArg , VAArgInst ) // vaarg instruction
`
169
``
`-
HANDLE_OTHER_INST(53, ExtractElement, ExtractElementInst)// extract from vector
`
170
``
`-
HANDLE_OTHER_INST(54, InsertElement, InsertElementInst) // insert into vector
`
171
``
`-
HANDLE_OTHER_INST(55, ShuffleVector, ShuffleVectorInst) // shuffle two vectors.
`
172
``
`-
HANDLE_OTHER_INST(56, ExtractValue, ExtractValueInst)// extract from aggregate
`
173
``
`-
HANDLE_OTHER_INST(57, InsertValue, InsertValueInst) // insert into aggregate
`
174
``
-
175
``
`-
LAST_OTHER_INST(57)
`
``
161
`+
FIRST_OTHER_INST(46)
`
``
162
`+
HANDLE_OTHER_INST(46, ICmp , ICmpInst ) // Integer comparison instruction
`
``
163
`+
HANDLE_OTHER_INST(47, FCmp , FCmpInst ) // Floating point comparison instr.
`
``
164
`+
HANDLE_OTHER_INST(48, PHI , PHINode ) // PHI node instruction
`
``
165
`+
HANDLE_OTHER_INST(49, Call , CallInst ) // Call a function
`
``
166
`+
HANDLE_OTHER_INST(50, Select , SelectInst ) // select instruction
`
``
167
`+
HANDLE_OTHER_INST(51, UserOp1, Instruction) // May be used internally in a pass
`
``
168
`+
HANDLE_OTHER_INST(52, UserOp2, Instruction) // Internal to passes only
`
``
169
`+
HANDLE_OTHER_INST(53, VAArg , VAArgInst ) // vaarg instruction
`
``
170
`+
HANDLE_OTHER_INST(54, ExtractElement, ExtractElementInst)// extract from vector
`
``
171
`+
HANDLE_OTHER_INST(55, InsertElement, InsertElementInst) // insert into vector
`
``
172
`+
HANDLE_OTHER_INST(56, ShuffleVector, ShuffleVectorInst) // shuffle two vectors.
`
``
173
`+
HANDLE_OTHER_INST(57, ExtractValue, ExtractValueInst)// extract from aggregate
`
``
174
`+
HANDLE_OTHER_INST(58, InsertValue, InsertValueInst) // insert into aggregate
`
``
175
`+
LAST_OTHER_INST(58)
`
176
176
``
177
177
`#undef FIRST_TERM_INST
`
178
178
`#undef HANDLE_TERM_INST
`