Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / include / llvm / Support / Dwarf.def
1 //===- llvm/Support/Dwarf.def - Dwarf definitions ---------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // Macros for running through Dwarf enumerators.
11 //
12 //===----------------------------------------------------------------------===//
13
14 // TODO: Add other DW-based macros.
15 #if !(defined HANDLE_DW_TAG || defined HANDLE_DW_OP ||                         \
16       defined HANDLE_DW_LANG || defined HANDLE_DW_ATE ||                       \
17       defined HANDLE_DW_VIRTUALITY)
18 #error "Missing macro definition of HANDLE_DW*"
19 #endif
20
21 #ifndef HANDLE_DW_TAG
22 #define HANDLE_DW_TAG(ID, NAME)
23 #endif
24
25 #ifndef HANDLE_DW_OP
26 #define HANDLE_DW_OP(ID, NAME)
27 #endif
28
29 #ifndef HANDLE_DW_LANG
30 #define HANDLE_DW_LANG(ID, NAME)
31 #endif
32
33 #ifndef HANDLE_DW_ATE
34 #define HANDLE_DW_ATE(ID, NAME)
35 #endif
36
37 #ifndef HANDLE_DW_VIRTUALITY
38 #define HANDLE_DW_VIRTUALITY(ID, NAME)
39 #endif
40
41 HANDLE_DW_TAG(0x0001, array_type)
42 HANDLE_DW_TAG(0x0002, class_type)
43 HANDLE_DW_TAG(0x0003, entry_point)
44 HANDLE_DW_TAG(0x0004, enumeration_type)
45 HANDLE_DW_TAG(0x0005, formal_parameter)
46 HANDLE_DW_TAG(0x0008, imported_declaration)
47 HANDLE_DW_TAG(0x000a, label)
48 HANDLE_DW_TAG(0x000b, lexical_block)
49 HANDLE_DW_TAG(0x000d, member)
50 HANDLE_DW_TAG(0x000f, pointer_type)
51 HANDLE_DW_TAG(0x0010, reference_type)
52 HANDLE_DW_TAG(0x0011, compile_unit)
53 HANDLE_DW_TAG(0x0012, string_type)
54 HANDLE_DW_TAG(0x0013, structure_type)
55 HANDLE_DW_TAG(0x0015, subroutine_type)
56 HANDLE_DW_TAG(0x0016, typedef)
57 HANDLE_DW_TAG(0x0017, union_type)
58 HANDLE_DW_TAG(0x0018, unspecified_parameters)
59 HANDLE_DW_TAG(0x0019, variant)
60 HANDLE_DW_TAG(0x001a, common_block)
61 HANDLE_DW_TAG(0x001b, common_inclusion)
62 HANDLE_DW_TAG(0x001c, inheritance)
63 HANDLE_DW_TAG(0x001d, inlined_subroutine)
64 HANDLE_DW_TAG(0x001e, module)
65 HANDLE_DW_TAG(0x001f, ptr_to_member_type)
66 HANDLE_DW_TAG(0x0020, set_type)
67 HANDLE_DW_TAG(0x0021, subrange_type)
68 HANDLE_DW_TAG(0x0022, with_stmt)
69 HANDLE_DW_TAG(0x0023, access_declaration)
70 HANDLE_DW_TAG(0x0024, base_type)
71 HANDLE_DW_TAG(0x0025, catch_block)
72 HANDLE_DW_TAG(0x0026, const_type)
73 HANDLE_DW_TAG(0x0027, constant)
74 HANDLE_DW_TAG(0x0028, enumerator)
75 HANDLE_DW_TAG(0x0029, file_type)
76 HANDLE_DW_TAG(0x002a, friend)
77 HANDLE_DW_TAG(0x002b, namelist)
78 HANDLE_DW_TAG(0x002c, namelist_item)
79 HANDLE_DW_TAG(0x002d, packed_type)
80 HANDLE_DW_TAG(0x002e, subprogram)
81 HANDLE_DW_TAG(0x002f, template_type_parameter)
82 HANDLE_DW_TAG(0x0030, template_value_parameter)
83 HANDLE_DW_TAG(0x0031, thrown_type)
84 HANDLE_DW_TAG(0x0032, try_block)
85 HANDLE_DW_TAG(0x0033, variant_part)
86 HANDLE_DW_TAG(0x0034, variable)
87 HANDLE_DW_TAG(0x0035, volatile_type)
88 HANDLE_DW_TAG(0x0036, dwarf_procedure)
89 HANDLE_DW_TAG(0x0037, restrict_type)
90 HANDLE_DW_TAG(0x0038, interface_type)
91 HANDLE_DW_TAG(0x0039, namespace)
92 HANDLE_DW_TAG(0x003a, imported_module)
93 HANDLE_DW_TAG(0x003b, unspecified_type)
94 HANDLE_DW_TAG(0x003c, partial_unit)
95 HANDLE_DW_TAG(0x003d, imported_unit)
96 HANDLE_DW_TAG(0x003f, condition)
97 HANDLE_DW_TAG(0x0040, shared_type)
98 HANDLE_DW_TAG(0x0041, type_unit)
99 HANDLE_DW_TAG(0x0042, rvalue_reference_type)
100 HANDLE_DW_TAG(0x0043, template_alias)
101
102 // New in DWARF v5.
103 HANDLE_DW_TAG(0x0044, coarray_type)
104 HANDLE_DW_TAG(0x0045, generic_subrange)
105 HANDLE_DW_TAG(0x0046, dynamic_type)
106
107 // User-defined tags.
108 HANDLE_DW_TAG(0x4081, MIPS_loop)
109 HANDLE_DW_TAG(0x4101, format_label)
110 HANDLE_DW_TAG(0x4102, function_template)
111 HANDLE_DW_TAG(0x4103, class_template)
112 HANDLE_DW_TAG(0x4106, GNU_template_template_param)
113 HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack)
114 HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack)
115 HANDLE_DW_TAG(0x4200, APPLE_property)
116 HANDLE_DW_TAG(0xb000, BORLAND_property)
117 HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string)
118 HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array)
119 HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set)
120 HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant)
121
122 HANDLE_DW_OP(0x03, addr)
123 HANDLE_DW_OP(0x06, deref)
124 HANDLE_DW_OP(0x08, const1u)
125 HANDLE_DW_OP(0x09, const1s)
126 HANDLE_DW_OP(0x0a, const2u)
127 HANDLE_DW_OP(0x0b, const2s)
128 HANDLE_DW_OP(0x0c, const4u)
129 HANDLE_DW_OP(0x0d, const4s)
130 HANDLE_DW_OP(0x0e, const8u)
131 HANDLE_DW_OP(0x0f, const8s)
132 HANDLE_DW_OP(0x10, constu)
133 HANDLE_DW_OP(0x11, consts)
134 HANDLE_DW_OP(0x12, dup)
135 HANDLE_DW_OP(0x13, drop)
136 HANDLE_DW_OP(0x14, over)
137 HANDLE_DW_OP(0x15, pick)
138 HANDLE_DW_OP(0x16, swap)
139 HANDLE_DW_OP(0x17, rot)
140 HANDLE_DW_OP(0x18, xderef)
141 HANDLE_DW_OP(0x19, abs)
142 HANDLE_DW_OP(0x1a, and)
143 HANDLE_DW_OP(0x1b, div)
144 HANDLE_DW_OP(0x1c, minus)
145 HANDLE_DW_OP(0x1d, mod)
146 HANDLE_DW_OP(0x1e, mul)
147 HANDLE_DW_OP(0x1f, neg)
148 HANDLE_DW_OP(0x20, not)
149 HANDLE_DW_OP(0x21, or )
150 HANDLE_DW_OP(0x22, plus)
151 HANDLE_DW_OP(0x23, plus_uconst)
152 HANDLE_DW_OP(0x24, shl)
153 HANDLE_DW_OP(0x25, shr)
154 HANDLE_DW_OP(0x26, shra)
155 HANDLE_DW_OP(0x27, xor)
156 HANDLE_DW_OP(0x2f, skip)
157 HANDLE_DW_OP(0x28, bra)
158 HANDLE_DW_OP(0x29, eq)
159 HANDLE_DW_OP(0x2a, ge)
160 HANDLE_DW_OP(0x2b, gt)
161 HANDLE_DW_OP(0x2c, le)
162 HANDLE_DW_OP(0x2d, lt)
163 HANDLE_DW_OP(0x2e, ne)
164 HANDLE_DW_OP(0x30, lit0)
165 HANDLE_DW_OP(0x31, lit1)
166 HANDLE_DW_OP(0x32, lit2)
167 HANDLE_DW_OP(0x33, lit3)
168 HANDLE_DW_OP(0x34, lit4)
169 HANDLE_DW_OP(0x35, lit5)
170 HANDLE_DW_OP(0x36, lit6)
171 HANDLE_DW_OP(0x37, lit7)
172 HANDLE_DW_OP(0x38, lit8)
173 HANDLE_DW_OP(0x39, lit9)
174 HANDLE_DW_OP(0x3a, lit10)
175 HANDLE_DW_OP(0x3b, lit11)
176 HANDLE_DW_OP(0x3c, lit12)
177 HANDLE_DW_OP(0x3d, lit13)
178 HANDLE_DW_OP(0x3e, lit14)
179 HANDLE_DW_OP(0x3f, lit15)
180 HANDLE_DW_OP(0x40, lit16)
181 HANDLE_DW_OP(0x41, lit17)
182 HANDLE_DW_OP(0x42, lit18)
183 HANDLE_DW_OP(0x43, lit19)
184 HANDLE_DW_OP(0x44, lit20)
185 HANDLE_DW_OP(0x45, lit21)
186 HANDLE_DW_OP(0x46, lit22)
187 HANDLE_DW_OP(0x47, lit23)
188 HANDLE_DW_OP(0x48, lit24)
189 HANDLE_DW_OP(0x49, lit25)
190 HANDLE_DW_OP(0x4a, lit26)
191 HANDLE_DW_OP(0x4b, lit27)
192 HANDLE_DW_OP(0x4c, lit28)
193 HANDLE_DW_OP(0x4d, lit29)
194 HANDLE_DW_OP(0x4e, lit30)
195 HANDLE_DW_OP(0x4f, lit31)
196 HANDLE_DW_OP(0x50, reg0)
197 HANDLE_DW_OP(0x51, reg1)
198 HANDLE_DW_OP(0x52, reg2)
199 HANDLE_DW_OP(0x53, reg3)
200 HANDLE_DW_OP(0x54, reg4)
201 HANDLE_DW_OP(0x55, reg5)
202 HANDLE_DW_OP(0x56, reg6)
203 HANDLE_DW_OP(0x57, reg7)
204 HANDLE_DW_OP(0x58, reg8)
205 HANDLE_DW_OP(0x59, reg9)
206 HANDLE_DW_OP(0x5a, reg10)
207 HANDLE_DW_OP(0x5b, reg11)
208 HANDLE_DW_OP(0x5c, reg12)
209 HANDLE_DW_OP(0x5d, reg13)
210 HANDLE_DW_OP(0x5e, reg14)
211 HANDLE_DW_OP(0x5f, reg15)
212 HANDLE_DW_OP(0x60, reg16)
213 HANDLE_DW_OP(0x61, reg17)
214 HANDLE_DW_OP(0x62, reg18)
215 HANDLE_DW_OP(0x63, reg19)
216 HANDLE_DW_OP(0x64, reg20)
217 HANDLE_DW_OP(0x65, reg21)
218 HANDLE_DW_OP(0x66, reg22)
219 HANDLE_DW_OP(0x67, reg23)
220 HANDLE_DW_OP(0x68, reg24)
221 HANDLE_DW_OP(0x69, reg25)
222 HANDLE_DW_OP(0x6a, reg26)
223 HANDLE_DW_OP(0x6b, reg27)
224 HANDLE_DW_OP(0x6c, reg28)
225 HANDLE_DW_OP(0x6d, reg29)
226 HANDLE_DW_OP(0x6e, reg30)
227 HANDLE_DW_OP(0x6f, reg31)
228 HANDLE_DW_OP(0x70, breg0)
229 HANDLE_DW_OP(0x71, breg1)
230 HANDLE_DW_OP(0x72, breg2)
231 HANDLE_DW_OP(0x73, breg3)
232 HANDLE_DW_OP(0x74, breg4)
233 HANDLE_DW_OP(0x75, breg5)
234 HANDLE_DW_OP(0x76, breg6)
235 HANDLE_DW_OP(0x77, breg7)
236 HANDLE_DW_OP(0x78, breg8)
237 HANDLE_DW_OP(0x79, breg9)
238 HANDLE_DW_OP(0x7a, breg10)
239 HANDLE_DW_OP(0x7b, breg11)
240 HANDLE_DW_OP(0x7c, breg12)
241 HANDLE_DW_OP(0x7d, breg13)
242 HANDLE_DW_OP(0x7e, breg14)
243 HANDLE_DW_OP(0x7f, breg15)
244 HANDLE_DW_OP(0x80, breg16)
245 HANDLE_DW_OP(0x81, breg17)
246 HANDLE_DW_OP(0x82, breg18)
247 HANDLE_DW_OP(0x83, breg19)
248 HANDLE_DW_OP(0x84, breg20)
249 HANDLE_DW_OP(0x85, breg21)
250 HANDLE_DW_OP(0x86, breg22)
251 HANDLE_DW_OP(0x87, breg23)
252 HANDLE_DW_OP(0x88, breg24)
253 HANDLE_DW_OP(0x89, breg25)
254 HANDLE_DW_OP(0x8a, breg26)
255 HANDLE_DW_OP(0x8b, breg27)
256 HANDLE_DW_OP(0x8c, breg28)
257 HANDLE_DW_OP(0x8d, breg29)
258 HANDLE_DW_OP(0x8e, breg30)
259 HANDLE_DW_OP(0x8f, breg31)
260 HANDLE_DW_OP(0x90, regx)
261 HANDLE_DW_OP(0x91, fbreg)
262 HANDLE_DW_OP(0x92, bregx)
263 HANDLE_DW_OP(0x93, piece)
264 HANDLE_DW_OP(0x94, deref_size)
265 HANDLE_DW_OP(0x95, xderef_size)
266 HANDLE_DW_OP(0x96, nop)
267 HANDLE_DW_OP(0x97, push_object_address)
268 HANDLE_DW_OP(0x98, call2)
269 HANDLE_DW_OP(0x99, call4)
270 HANDLE_DW_OP(0x9a, call_ref)
271 HANDLE_DW_OP(0x9b, form_tls_address)
272 HANDLE_DW_OP(0x9c, call_frame_cfa)
273 HANDLE_DW_OP(0x9d, bit_piece)
274 HANDLE_DW_OP(0x9e, implicit_value)
275 HANDLE_DW_OP(0x9f, stack_value)
276
277 // Extensions for GNU-style thread-local storage.
278 HANDLE_DW_OP(0xe0, GNU_push_tls_address)
279
280 // Extensions for Fission proposal.
281 HANDLE_DW_OP(0xfb, GNU_addr_index)
282 HANDLE_DW_OP(0xfc, GNU_const_index)
283
284 // DWARF languages.
285 HANDLE_DW_LANG(0x0001, C89)
286 HANDLE_DW_LANG(0x0002, C)
287 HANDLE_DW_LANG(0x0003, Ada83)
288 HANDLE_DW_LANG(0x0004, C_plus_plus)
289 HANDLE_DW_LANG(0x0005, Cobol74)
290 HANDLE_DW_LANG(0x0006, Cobol85)
291 HANDLE_DW_LANG(0x0007, Fortran77)
292 HANDLE_DW_LANG(0x0008, Fortran90)
293 HANDLE_DW_LANG(0x0009, Pascal83)
294 HANDLE_DW_LANG(0x000a, Modula2)
295 HANDLE_DW_LANG(0x000b, Java)
296 HANDLE_DW_LANG(0x000c, C99)
297 HANDLE_DW_LANG(0x000d, Ada95)
298 HANDLE_DW_LANG(0x000e, Fortran95)
299 HANDLE_DW_LANG(0x000f, PLI)
300 HANDLE_DW_LANG(0x0010, ObjC)
301 HANDLE_DW_LANG(0x0011, ObjC_plus_plus)
302 HANDLE_DW_LANG(0x0012, UPC)
303 HANDLE_DW_LANG(0x0013, D)
304
305 // New in DWARF 5:
306 HANDLE_DW_LANG(0x0014, Python)
307 HANDLE_DW_LANG(0x0015, OpenCL)
308 HANDLE_DW_LANG(0x0016, Go)
309 HANDLE_DW_LANG(0x0017, Modula3)
310 HANDLE_DW_LANG(0x0018, Haskell)
311 HANDLE_DW_LANG(0x0019, C_plus_plus_03)
312 HANDLE_DW_LANG(0x001a, C_plus_plus_11)
313 HANDLE_DW_LANG(0x001b, OCaml)
314 HANDLE_DW_LANG(0x001c, Rust)
315 HANDLE_DW_LANG(0x001d, C11)
316 HANDLE_DW_LANG(0x001e, Swift)
317 HANDLE_DW_LANG(0x001f, Julia)
318 HANDLE_DW_LANG(0x0020, Dylan)
319 HANDLE_DW_LANG(0x0021, C_plus_plus_14)
320 HANDLE_DW_LANG(0x0022, Fortran03)
321 HANDLE_DW_LANG(0x0023, Fortran08)
322 HANDLE_DW_LANG(0x8001, Mips_Assembler)
323 HANDLE_DW_LANG(0xb000, BORLAND_Delphi)
324
325 // DWARF attribute type encodings.
326 HANDLE_DW_ATE(0x01, address)
327 HANDLE_DW_ATE(0x02, boolean)
328 HANDLE_DW_ATE(0x03, complex_float)
329 HANDLE_DW_ATE(0x04, float)
330 HANDLE_DW_ATE(0x05, signed)
331 HANDLE_DW_ATE(0x06, signed_char)
332 HANDLE_DW_ATE(0x07, unsigned)
333 HANDLE_DW_ATE(0x08, unsigned_char)
334 HANDLE_DW_ATE(0x09, imaginary_float)
335 HANDLE_DW_ATE(0x0a, packed_decimal)
336 HANDLE_DW_ATE(0x0b, numeric_string)
337 HANDLE_DW_ATE(0x0c, edited)
338 HANDLE_DW_ATE(0x0d, signed_fixed)
339 HANDLE_DW_ATE(0x0e, unsigned_fixed)
340 HANDLE_DW_ATE(0x0f, decimal_float)
341 HANDLE_DW_ATE(0x10, UTF)
342
343 // DWARF virtuality codes.
344 HANDLE_DW_VIRTUALITY(0x00, none)
345 HANDLE_DW_VIRTUALITY(0x01, virtual)
346 HANDLE_DW_VIRTUALITY(0x02, pure_virtual)
347
348 #undef HANDLE_DW_TAG
349 #undef HANDLE_DW_OP
350 #undef HANDLE_DW_LANG
351 #undef HANDLE_DW_ATE
352 #undef HANDLE_DW_VIRTUALITY