| #===- enumerations.py - Python LLVM Enumerations -------------*- python -*--===# |
| # |
| # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| # |
| #===------------------------------------------------------------------------===# |
| |
| r""" |
| LLVM Enumerations |
| ================= |
| |
| This file defines enumerations from LLVM. |
| |
| Each enumeration is exposed as a list of 2-tuples. These lists are consumed by |
| dedicated types elsewhere in the package. The enumerations are centrally |
| defined in this file so they are easier to locate and maintain. |
| """ |
| |
| __all__ = [ |
| 'Attributes', |
| 'OpCodes', |
| 'TypeKinds', |
| 'Linkages', |
| 'Visibility', |
| 'CallConv', |
| 'IntPredicate', |
| 'RealPredicate', |
| 'LandingPadClauseTy', |
| ] |
| |
| Attributes = [ |
| ('ZExt', 1 << 0), |
| ('MSExt', 1 << 1), |
| ('NoReturn', 1 << 2), |
| ('InReg', 1 << 3), |
| ('StructRet', 1 << 4), |
| ('NoUnwind', 1 << 5), |
| ('NoAlias', 1 << 6), |
| ('ByVal', 1 << 7), |
| ('Nest', 1 << 8), |
| ('ReadNone', 1 << 9), |
| ('ReadOnly', 1 << 10), |
| ('NoInline', 1 << 11), |
| ('AlwaysInline', 1 << 12), |
| ('OptimizeForSize', 1 << 13), |
| ('StackProtect', 1 << 14), |
| ('StackProtectReq', 1 << 15), |
| ('Alignment', 31 << 16), |
| ('NoCapture', 1 << 21), |
| ('NoRedZone', 1 << 22), |
| ('ImplicitFloat', 1 << 23), |
| ('Naked', 1 << 24), |
| ('InlineHint', 1 << 25), |
| ('StackAlignment', 7 << 26), |
| ('ReturnsTwice', 1 << 29), |
| ('UWTable', 1 << 30), |
| ('NonLazyBind', 1 << 31), |
| ] |
| |
| OpCodes = [ |
| ('Ret', 1), |
| ('Br', 2), |
| ('Switch', 3), |
| ('IndirectBr', 4), |
| ('Invoke', 5), |
| ('Unreachable', 7), |
| ('Add', 8), |
| ('FAdd', 9), |
| ('Sub', 10), |
| ('FSub', 11), |
| ('Mul', 12), |
| ('FMul', 13), |
| ('UDiv', 14), |
| ('SDiv', 15), |
| ('FDiv', 16), |
| ('URem', 17), |
| ('SRem', 18), |
| ('FRem', 19), |
| ('Shl', 20), |
| ('LShr', 21), |
| ('AShr', 22), |
| ('And', 23), |
| ('Or', 24), |
| ('Xor', 25), |
| ('Alloca', 26), |
| ('Load', 27), |
| ('Store', 28), |
| ('GetElementPtr', 29), |
| ('Trunc', 30), |
| ('ZExt', 31), |
| ('SExt', 32), |
| ('FPToUI', 33), |
| ('FPToSI', 34), |
| ('UIToFP', 35), |
| ('SIToFP', 36), |
| ('FPTrunc', 37), |
| ('FPExt', 38), |
| ('PtrToInt', 39), |
| ('IntToPtr', 40), |
| ('BitCast', 41), |
| ('ICmp', 42), |
| ('FCmpl', 43), |
| ('PHI', 44), |
| ('Call', 45), |
| ('Select', 46), |
| ('UserOp1', 47), |
| ('UserOp2', 48), |
| ('AArg', 49), |
| ('ExtractElement', 50), |
| ('InsertElement', 51), |
| ('ShuffleVector', 52), |
| ('ExtractValue', 53), |
| ('InsertValue', 54), |
| ('Fence', 55), |
| ('AtomicCmpXchg', 56), |
| ('AtomicRMW', 57), |
| ('Resume', 58), |
| ('LandingPad', 59), |
| ] |
| |
| TypeKinds = [ |
| ('Void', 0), |
| ('Half', 1), |
| ('Float', 2), |
| ('Double', 3), |
| ('X86_FP80', 4), |
| ('FP128', 5), |
| ('PPC_FP128', 6), |
| ('Label', 7), |
| ('Integer', 8), |
| ('Function', 9), |
| ('Struct', 10), |
| ('Array', 11), |
| ('Pointer', 12), |
| ('Vector', 13), |
| ('Metadata', 14), |
| ('X86_MMX', 15), |
| ] |
| |
| Linkages = [ |
| ('External', 0), |
| ('AvailableExternally', 1), |
| ('LinkOnceAny', 2), |
| ('LinkOnceODR', 3), |
| ('WeakAny', 4), |
| ('WeakODR', 5), |
| ('Appending', 6), |
| ('Internal', 7), |
| ('Private', 8), |
| ('DLLImport', 9), |
| ('DLLExport', 10), |
| ('ExternalWeak', 11), |
| ('Ghost', 12), |
| ('Common', 13), |
| ('LinkerPrivate', 14), |
| ('LinkerPrivateWeak', 15), |
| ('LinkerPrivateWeakDefAuto', 16), |
| ] |
| |
| Visibility = [ |
| ('Default', 0), |
| ('Hidden', 1), |
| ('Protected', 2), |
| ] |
| |
| CallConv = [ |
| ('CCall', 0), |
| ('FastCall', 8), |
| ('ColdCall', 9), |
| ('X86StdcallCall', 64), |
| ('X86FastcallCall', 65), |
| ] |
| |
| IntPredicate = [ |
| ('EQ', 32), |
| ('NE', 33), |
| ('UGT', 34), |
| ('UGE', 35), |
| ('ULT', 36), |
| ('ULE', 37), |
| ('SGT', 38), |
| ('SGE', 39), |
| ('SLT', 40), |
| ('SLE', 41), |
| ] |
| |
| RealPredicate = [ |
| ('PredicateFalse', 0), |
| ('OEQ', 1), |
| ('OGT', 2), |
| ('OGE', 3), |
| ('OLT', 4), |
| ('OLE', 5), |
| ('ONE', 6), |
| ('ORD', 7), |
| ('UNO', 8), |
| ('UEQ', 9), |
| ('UGT', 10), |
| ('UGE', 11), |
| ('ULT', 12), |
| ('ULE', 13), |
| ('UNE', 14), |
| ('PredicateTrue', 15), |
| ] |
| |
| LandingPadClauseTy = [ |
| ('Catch', 0), |
| ('Filter', 1), |
| ] |