1b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc#===- enumerations.py - Python LLVM Enumerations -------------*- python -*--===#
2b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc#
3b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc#                     The LLVM Compiler Infrastructure
4b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc#
5b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc# This file is distributed under the University of Illinois Open Source
6b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc# License. See LICENSE.TXT for details.
7b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc#
8b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc#===------------------------------------------------------------------------===#
9b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
10b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorcr"""
11b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcLLVM Enumerations
12b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc=================
13b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
14b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcThis file defines enumerations from LLVM.
15b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
16b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcEach enumeration is exposed as a list of 2-tuples. These lists are consumed by
17b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorcdedicated types elsewhere in the package. The enumerations are centrally
18b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorcdefined in this file so they are easier to locate and maintain.
19b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc"""
20b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
21b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc__all__ = [
22b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'Attributes',
23b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'OpCodes',
24b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'TypeKinds',
25b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'Linkages',
26b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'Visibility',
27b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'CallConv',
28b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'IntPredicate',
29b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'RealPredicate',
30b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    'LandingPadClauseTy',
31b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
32b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
33b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcAttributes = [
34b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ZExt', 1 << 0),
35b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('MSExt', 1 << 1),
36b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NoReturn', 1 << 2),
37b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('InReg', 1 << 3),
38b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('StructRet', 1 << 4),
39b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NoUnwind', 1 << 5),
40b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NoAlias', 1 << 6),
41b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ByVal', 1 << 7),
42b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Nest', 1 << 8),
43b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ReadNone', 1 << 9),
44b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ReadOnly', 1 << 10),
45b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NoInline', 1 << 11),
46b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('AlwaysInline', 1 << 12),
47b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('OptimizeForSize', 1 << 13),
48b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('StackProtect', 1 << 14),
49b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('StackProtectReq', 1 << 15),
50b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Alignment', 31 << 16),
51b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NoCapture', 1 << 21),
52b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NoRedZone', 1 << 22),
53b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ImplicitFloat', 1 << 23),
54b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Naked', 1 << 24),
55b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('InlineHint', 1 << 25),
56b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('StackAlignment', 7 << 26),
57b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ReturnsTwice', 1 << 29),
58b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UWTable', 1 << 30),
59b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NonLazyBind', 1 << 31),
60b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
61b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
62b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcOpCodes = [
63b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Ret', 1),
64b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Br', 2),
65b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Switch', 3),
66b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('IndirectBr', 4),
67b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Invoke', 5),
68b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Unreachable', 7),
69b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Add', 8),
70b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FAdd', 9),
71b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Sub', 10),
72b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FSub', 11),
73b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Mul', 12),
74b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FMul', 13),
75b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UDiv', 14),
76b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SDiv', 15),
77b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FDiv', 16),
78b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('URem', 17),
79b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SRem', 18),
80b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FRem', 19),
81b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Shl', 20),
82b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LShr', 21),
83b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('AShr', 22),
84b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('And', 23),
85b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Or', 24),
86b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Xor', 25),
87b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Alloca', 26),
88b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Load', 27),
89b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Store', 28),
90b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('GetElementPtr', 29),
91b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Trunc', 30),
92b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ZExt', 31),
93b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SExt', 32),
94b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FPToUI', 33),
95b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FPToSI', 34),
96b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UIToFP', 35),
97b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SIToFP', 36),
98b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FPTrunc', 37),
99b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FPExt', 38),
100b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('PtrToInt', 39),
101b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('IntToPtr', 40),
102b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('BitCast', 41),
103b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ICmp', 42),
104b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FCmpl', 43),
105b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('PHI', 44),
106b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Call', 45),
107b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Select', 46),
108b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UserOp1', 47),
109b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UserOp2', 48),
110b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('AArg', 49),
111b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ExtractElement', 50),
112b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('InsertElement', 51),
113b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ShuffleVector', 52),
114b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ExtractValue', 53),
115b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('InsertValue', 54),
116b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Fence', 55),
117b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('AtomicCmpXchg', 56),
118b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('AtomicRMW', 57),
119b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Resume', 58),
120b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LandingPad', 59),
121b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
122b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
123b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcTypeKinds = [
124b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Void', 0),
125b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Half', 1),
126b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Float', 2),
127b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Double', 3),
128b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('X86_FP80', 4),
129b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FP128', 5),
130b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('PPC_FP128', 6),
131b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Label', 7),
132b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Integer', 8),
133b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Function', 9),
134b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Struct', 10),
135b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Array', 11),
136b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Pointer', 12),
137b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Vector', 13),
138b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Metadata', 14),
139b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('X86_MMX', 15),
140b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
141b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
142b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcLinkages = [
143b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('External', 0),
144b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('AvailableExternally', 1),
145b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LinkOnceAny', 2),
146b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LinkOnceODR', 3),
147b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('WeakAny', 4),
148b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('WeakODR', 5),
149b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Appending', 6),
150b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Internal', 7),
151b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Private', 8),
152b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('DLLImport', 9),
153b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('DLLExport', 10),
154b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ExternalWeak', 11),
155b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Ghost', 12),
156b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Common', 13),
157b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LinkerPrivate', 14),
158b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LinkerPrivateWeak', 15),
159b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('LinkerPrivateWeakDefAuto', 16),
160b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
161b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
162b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcVisibility = [
163b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Default', 0),
164b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Hidden', 1),
165b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Protected', 2),
166b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
167b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
168b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcCallConv = [
169b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('CCall', 0),
170b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('FastCall', 8),
171b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ColdCall', 9),
172b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('X86StdcallCall', 64),
173b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('X86FastcallCall', 65),
174b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
175b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
176b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcIntPredicate = [
177b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('EQ', 32),
178b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('NE', 33),
179b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UGT', 34),
180b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UGE', 35),
181b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ULT', 36),
182b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ULE', 37),
183b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SGT', 38),
184b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SGE', 39),
185b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SLT', 40),
186b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('SLE', 41),
187b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
188b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
189b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcRealPredicate = [
190b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('PredicateFalse', 0),
191b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('OEQ', 1),
192b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('OGT', 2),
193b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('OGE', 3),
194b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('OLT', 4),
195b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('OLE', 5),
196b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ONE', 6),
197b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ORD', 7),
198b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UNO', 8),
199b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UEQ', 9),
200b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UGT', 10),
201b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UGE', 11),
202b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ULT', 12),
203b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('ULE', 13),
204b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('UNE', 14),
205b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('PredicateTrue', 15),
206b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
207b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc
208b7487d4edc34fa22b697d0874331c163ed2c6847Gregory SzorcLandingPadClauseTy = [
209b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Catch', 0),
210b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc    ('Filter', 1),
211b7487d4edc34fa22b697d0874331c163ed2c6847Gregory Szorc]
212