1/* 2 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#ifndef LLVMAPIFunctions_h 27#define LLVMAPIFunctions_h 28 29#include "LLVMHeaders.h" 30 31#define FOR_EACH_LLVM_API_FUNCTION(macro) \ 32 macro(void, InitializeCore, (LLVMPassRegistryRef R)) \ 33 macro(void, Shutdown, ()) \ 34 macro(char *, CreateMessage, (const char *Message)) \ 35 macro(void, DisposeMessage, (char *Message)) \ 36 macro(void, InstallFatalErrorHandler, (LLVMFatalErrorHandler Handler)) \ 37 macro(LLVMContextRef, ContextCreate, (void)) \ 38 macro(LLVMContextRef, GetGlobalContext, (void)) \ 39 macro(void, ContextDispose, (LLVMContextRef C)) \ 40 macro(unsigned, GetMDKindIDInContext, (LLVMContextRef C, const char* Name, unsigned SLen)) \ 41 macro(unsigned, GetMDKindID, (const char* Name, unsigned SLen)) \ 42 macro(LLVMModuleRef, ModuleCreateWithName, (const char *ModuleID)) \ 43 macro(LLVMModuleRef, ModuleCreateWithNameInContext, (const char *ModuleID, LLVMContextRef C)) \ 44 macro(void, DisposeModule, (LLVMModuleRef M)) \ 45 macro(const char *, GetDataLayout, (LLVMModuleRef M)) \ 46 macro(void, SetDataLayout, (LLVMModuleRef M, const char *Triple)) \ 47 macro(const char *, GetTarget, (LLVMModuleRef M)) \ 48 macro(void, SetTarget, (LLVMModuleRef M, const char *Triple)) \ 49 macro(void, DumpModule, (LLVMModuleRef M)) \ 50 macro(LLVMBool, PrintModuleToFile, (LLVMModuleRef M, const char *Filename, char **ErrorMessage)) \ 51 macro(void, SetModuleInlineAsm, (LLVMModuleRef M, const char *Asm)) \ 52 macro(LLVMContextRef, GetModuleContext, (LLVMModuleRef M)) \ 53 macro(LLVMTypeRef, GetTypeByName, (LLVMModuleRef M, const char *Name)) \ 54 macro(unsigned, GetNamedMetadataNumOperands, (LLVMModuleRef M, const char* name)) \ 55 macro(void, GetNamedMetadataOperands, (LLVMModuleRef M, const char* name, LLVMValueRef *Dest)) \ 56 macro(void, AddNamedMetadataOperand, (LLVMModuleRef M, const char* name, LLVMValueRef Val)) \ 57 macro(LLVMValueRef, AddFunction, (LLVMModuleRef M, const char *Name, LLVMTypeRef FunctionTy)) \ 58 macro(LLVMValueRef, GetNamedFunction, (LLVMModuleRef M, const char *Name)) \ 59 macro(LLVMValueRef, GetFirstFunction, (LLVMModuleRef M)) \ 60 macro(LLVMValueRef, GetLastFunction, (LLVMModuleRef M)) \ 61 macro(LLVMValueRef, GetNextFunction, (LLVMValueRef Fn)) \ 62 macro(LLVMValueRef, GetPreviousFunction, (LLVMValueRef Fn)) \ 63 macro(LLVMTypeKind, GetTypeKind, (LLVMTypeRef Ty)) \ 64 macro(LLVMBool, TypeIsSized, (LLVMTypeRef Ty)) \ 65 macro(LLVMContextRef, GetTypeContext, (LLVMTypeRef Ty)) \ 66 macro(LLVMTypeRef, Int1TypeInContext, (LLVMContextRef C)) \ 67 macro(LLVMTypeRef, Int8TypeInContext, (LLVMContextRef C)) \ 68 macro(LLVMTypeRef, Int16TypeInContext, (LLVMContextRef C)) \ 69 macro(LLVMTypeRef, Int32TypeInContext, (LLVMContextRef C)) \ 70 macro(LLVMTypeRef, Int64TypeInContext, (LLVMContextRef C)) \ 71 macro(LLVMTypeRef, IntTypeInContext, (LLVMContextRef C, unsigned NumBits)) \ 72 macro(LLVMTypeRef, Int1Type, (void)) \ 73 macro(LLVMTypeRef, Int8Type, (void)) \ 74 macro(LLVMTypeRef, Int16Type, (void)) \ 75 macro(LLVMTypeRef, Int32Type, (void)) \ 76 macro(LLVMTypeRef, Int64Type, (void)) \ 77 macro(LLVMTypeRef, IntType, (unsigned NumBits)) \ 78 macro(unsigned, GetIntTypeWidth, (LLVMTypeRef IntegerTy)) \ 79 macro(LLVMTypeRef, HalfTypeInContext, (LLVMContextRef C)) \ 80 macro(LLVMTypeRef, FloatTypeInContext, (LLVMContextRef C)) \ 81 macro(LLVMTypeRef, DoubleTypeInContext, (LLVMContextRef C)) \ 82 macro(LLVMTypeRef, X86FP80TypeInContext, (LLVMContextRef C)) \ 83 macro(LLVMTypeRef, FP128TypeInContext, (LLVMContextRef C)) \ 84 macro(LLVMTypeRef, PPCFP128TypeInContext, (LLVMContextRef C)) \ 85 macro(LLVMTypeRef, HalfType, (void)) \ 86 macro(LLVMTypeRef, FloatType, (void)) \ 87 macro(LLVMTypeRef, DoubleType, (void)) \ 88 macro(LLVMTypeRef, X86FP80Type, (void)) \ 89 macro(LLVMTypeRef, FP128Type, (void)) \ 90 macro(LLVMTypeRef, PPCFP128Type, (void)) \ 91 macro(LLVMTypeRef, FunctionType, (LLVMTypeRef ReturnType, LLVMTypeRef *ParamTypes, unsigned ParamCount, LLVMBool IsVarArg)) \ 92 macro(LLVMBool, IsFunctionVarArg, (LLVMTypeRef FunctionTy)) \ 93 macro(LLVMTypeRef, GetReturnType, (LLVMTypeRef FunctionTy)) \ 94 macro(unsigned, CountParamTypes, (LLVMTypeRef FunctionTy)) \ 95 macro(void, GetParamTypes, (LLVMTypeRef FunctionTy, LLVMTypeRef *Dest)) \ 96 macro(LLVMTypeRef, StructTypeInContext, (LLVMContextRef C, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)) \ 97 macro(LLVMTypeRef, StructType, (LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)) \ 98 macro(LLVMTypeRef, StructCreateNamed, (LLVMContextRef C, const char *Name)) \ 99 macro(const char *, GetStructName, (LLVMTypeRef Ty)) \ 100 macro(void, StructSetBody, (LLVMTypeRef StructTy, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)) \ 101 macro(unsigned, CountStructElementTypes, (LLVMTypeRef StructTy)) \ 102 macro(void, GetStructElementTypes, (LLVMTypeRef StructTy, LLVMTypeRef *Dest)) \ 103 macro(LLVMBool, IsPackedStruct, (LLVMTypeRef StructTy)) \ 104 macro(LLVMBool, IsOpaqueStruct, (LLVMTypeRef StructTy)) \ 105 macro(LLVMTypeRef, GetElementType, (LLVMTypeRef Ty)) \ 106 macro(LLVMTypeRef, ArrayType, (LLVMTypeRef ElementType, unsigned ElementCount)) \ 107 macro(unsigned, GetArrayLength, (LLVMTypeRef ArrayTy)) \ 108 macro(LLVMTypeRef, PointerType, (LLVMTypeRef ElementType, unsigned AddressSpace)) \ 109 macro(unsigned, GetPointerAddressSpace, (LLVMTypeRef PointerTy)) \ 110 macro(LLVMTypeRef, VectorType, (LLVMTypeRef ElementType, unsigned ElementCount)) \ 111 macro(unsigned, GetVectorSize, (LLVMTypeRef VectorTy)) \ 112 macro(LLVMTypeRef, VoidTypeInContext, (LLVMContextRef C)) \ 113 macro(LLVMTypeRef, LabelTypeInContext, (LLVMContextRef C)) \ 114 macro(LLVMTypeRef, X86MMXTypeInContext, (LLVMContextRef C)) \ 115 macro(LLVMTypeRef, VoidType, (void)) \ 116 macro(LLVMTypeRef, LabelType, (void)) \ 117 macro(LLVMTypeRef, X86MMXType, (void)) \ 118 macro(LLVMTypeRef, TypeOf, (LLVMValueRef Val)) \ 119 macro(const char *, GetValueName, (LLVMValueRef Val)) \ 120 macro(void, SetValueName, (LLVMValueRef Val, const char *Name)) \ 121 macro(void, DumpValue, (LLVMValueRef Val)) \ 122 macro(void, ReplaceAllUsesWith, (LLVMValueRef OldVal, LLVMValueRef NewVal)) \ 123 macro(LLVMBool, IsConstant, (LLVMValueRef Val)) \ 124 macro(LLVMBool, IsUndef, (LLVMValueRef Val)) \ 125 macro(LLVMValueRef, IsAArgument, (LLVMValueRef Val)) \ 126 macro(LLVMValueRef, IsABasicBlock, (LLVMValueRef Val)) \ 127 macro(LLVMValueRef, IsAInlineAsm, (LLVMValueRef Val)) \ 128 macro(LLVMValueRef, IsAMDNode, (LLVMValueRef Val)) \ 129 macro(LLVMValueRef, IsAMDString, (LLVMValueRef Val)) \ 130 macro(LLVMValueRef, IsAUser, (LLVMValueRef Val)) \ 131 macro(LLVMValueRef, IsAConstant, (LLVMValueRef Val)) \ 132 macro(LLVMValueRef, IsABlockAddress, (LLVMValueRef Val)) \ 133 macro(LLVMValueRef, IsAConstantAggregateZero, (LLVMValueRef Val)) \ 134 macro(LLVMValueRef, IsAConstantArray, (LLVMValueRef Val)) \ 135 macro(LLVMValueRef, IsAConstantExpr, (LLVMValueRef Val)) \ 136 macro(LLVMValueRef, IsAConstantFP, (LLVMValueRef Val)) \ 137 macro(LLVMValueRef, IsAConstantInt, (LLVMValueRef Val)) \ 138 macro(LLVMValueRef, IsAConstantPointerNull, (LLVMValueRef Val)) \ 139 macro(LLVMValueRef, IsAConstantStruct, (LLVMValueRef Val)) \ 140 macro(LLVMValueRef, IsAConstantVector, (LLVMValueRef Val)) \ 141 macro(LLVMValueRef, IsAGlobalValue, (LLVMValueRef Val)) \ 142 macro(LLVMValueRef, IsAFunction, (LLVMValueRef Val)) \ 143 macro(LLVMValueRef, IsAGlobalAlias, (LLVMValueRef Val)) \ 144 macro(LLVMValueRef, IsAGlobalVariable, (LLVMValueRef Val)) \ 145 macro(LLVMValueRef, IsAUndefValue, (LLVMValueRef Val)) \ 146 macro(LLVMValueRef, IsAInstruction, (LLVMValueRef Val)) \ 147 macro(LLVMValueRef, IsABinaryOperator, (LLVMValueRef Val)) \ 148 macro(LLVMValueRef, IsACallInst, (LLVMValueRef Val)) \ 149 macro(LLVMValueRef, IsAIntrinsicInst, (LLVMValueRef Val)) \ 150 macro(LLVMValueRef, IsADbgInfoIntrinsic, (LLVMValueRef Val)) \ 151 macro(LLVMValueRef, IsADbgDeclareInst, (LLVMValueRef Val)) \ 152 macro(LLVMValueRef, IsAMemIntrinsic, (LLVMValueRef Val)) \ 153 macro(LLVMValueRef, IsAMemCpyInst, (LLVMValueRef Val)) \ 154 macro(LLVMValueRef, IsAMemMoveInst, (LLVMValueRef Val)) \ 155 macro(LLVMValueRef, IsAMemSetInst, (LLVMValueRef Val)) \ 156 macro(LLVMValueRef, IsACmpInst, (LLVMValueRef Val)) \ 157 macro(LLVMValueRef, IsAFCmpInst, (LLVMValueRef Val)) \ 158 macro(LLVMValueRef, IsAICmpInst, (LLVMValueRef Val)) \ 159 macro(LLVMValueRef, IsAExtractElementInst, (LLVMValueRef Val)) \ 160 macro(LLVMValueRef, IsAGetElementPtrInst, (LLVMValueRef Val)) \ 161 macro(LLVMValueRef, IsAInsertElementInst, (LLVMValueRef Val)) \ 162 macro(LLVMValueRef, IsAInsertValueInst, (LLVMValueRef Val)) \ 163 macro(LLVMValueRef, IsALandingPadInst, (LLVMValueRef Val)) \ 164 macro(LLVMValueRef, IsAPHINode, (LLVMValueRef Val)) \ 165 macro(LLVMValueRef, IsASelectInst, (LLVMValueRef Val)) \ 166 macro(LLVMValueRef, IsAShuffleVectorInst, (LLVMValueRef Val)) \ 167 macro(LLVMValueRef, IsAStoreInst, (LLVMValueRef Val)) \ 168 macro(LLVMValueRef, IsATerminatorInst, (LLVMValueRef Val)) \ 169 macro(LLVMValueRef, IsABranchInst, (LLVMValueRef Val)) \ 170 macro(LLVMValueRef, IsAIndirectBrInst, (LLVMValueRef Val)) \ 171 macro(LLVMValueRef, IsAInvokeInst, (LLVMValueRef Val)) \ 172 macro(LLVMValueRef, IsAReturnInst, (LLVMValueRef Val)) \ 173 macro(LLVMValueRef, IsASwitchInst, (LLVMValueRef Val)) \ 174 macro(LLVMValueRef, IsAUnreachableInst, (LLVMValueRef Val)) \ 175 macro(LLVMValueRef, IsAResumeInst, (LLVMValueRef Val)) \ 176 macro(LLVMValueRef, IsAUnaryInstruction, (LLVMValueRef Val)) \ 177 macro(LLVMValueRef, IsAAllocaInst, (LLVMValueRef Val)) \ 178 macro(LLVMValueRef, IsACastInst, (LLVMValueRef Val)) \ 179 macro(LLVMValueRef, IsABitCastInst, (LLVMValueRef Val)) \ 180 macro(LLVMValueRef, IsAFPExtInst, (LLVMValueRef Val)) \ 181 macro(LLVMValueRef, IsAFPToSIInst, (LLVMValueRef Val)) \ 182 macro(LLVMValueRef, IsAFPToUIInst, (LLVMValueRef Val)) \ 183 macro(LLVMValueRef, IsAFPTruncInst, (LLVMValueRef Val)) \ 184 macro(LLVMValueRef, IsAIntToPtrInst, (LLVMValueRef Val)) \ 185 macro(LLVMValueRef, IsAPtrToIntInst, (LLVMValueRef Val)) \ 186 macro(LLVMValueRef, IsASExtInst, (LLVMValueRef Val)) \ 187 macro(LLVMValueRef, IsASIToFPInst, (LLVMValueRef Val)) \ 188 macro(LLVMValueRef, IsATruncInst, (LLVMValueRef Val)) \ 189 macro(LLVMValueRef, IsAUIToFPInst, (LLVMValueRef Val)) \ 190 macro(LLVMValueRef, IsAZExtInst, (LLVMValueRef Val)) \ 191 macro(LLVMValueRef, IsAExtractValueInst, (LLVMValueRef Val)) \ 192 macro(LLVMValueRef, IsALoadInst, (LLVMValueRef Val)) \ 193 macro(LLVMValueRef, IsAVAArgInst, (LLVMValueRef Val)) \ 194 macro(LLVMUseRef, GetFirstUse, (LLVMValueRef Val)) \ 195 macro(LLVMUseRef, GetNextUse, (LLVMUseRef U)) \ 196 macro(LLVMValueRef, GetUser, (LLVMUseRef U)) \ 197 macro(LLVMValueRef, GetUsedValue, (LLVMUseRef U)) \ 198 macro(LLVMValueRef, GetOperand, (LLVMValueRef Val, unsigned Index)) \ 199 macro(void, SetOperand, (LLVMValueRef User, unsigned Index, LLVMValueRef Val)) \ 200 macro(int, GetNumOperands, (LLVMValueRef Val)) \ 201 macro(LLVMValueRef, ConstNull, (LLVMTypeRef Ty)) \ 202 macro(LLVMValueRef, ConstAllOnes, (LLVMTypeRef Ty)) \ 203 macro(LLVMValueRef, GetUndef, (LLVMTypeRef Ty)) \ 204 macro(LLVMBool, IsNull, (LLVMValueRef Val)) \ 205 macro(LLVMValueRef, ConstPointerNull, (LLVMTypeRef Ty)) \ 206 macro(LLVMValueRef, ConstInt, (LLVMTypeRef IntTy, unsigned long long N, LLVMBool SignExtend)) \ 207 macro(LLVMValueRef, ConstIntOfArbitraryPrecision, (LLVMTypeRef IntTy, unsigned NumWords, const uint64_t Words[])) \ 208 macro(LLVMValueRef, ConstIntOfString, (LLVMTypeRef IntTy, const char *Text, uint8_t Radix)) \ 209 macro(LLVMValueRef, ConstIntOfStringAndSize, (LLVMTypeRef IntTy, const char *Text, unsigned SLen, uint8_t Radix)) \ 210 macro(LLVMValueRef, ConstReal, (LLVMTypeRef RealTy, double N)) \ 211 macro(LLVMValueRef, ConstRealOfString, (LLVMTypeRef RealTy, const char *Text)) \ 212 macro(LLVMValueRef, ConstRealOfStringAndSize, (LLVMTypeRef RealTy, const char *Text, unsigned SLen)) \ 213 macro(unsigned long long, ConstIntGetZExtValue, (LLVMValueRef ConstantVal)) \ 214 macro(long long, ConstIntGetSExtValue, (LLVMValueRef ConstantVal)) \ 215 macro(LLVMValueRef, ConstStringInContext, (LLVMContextRef C, const char *Str, unsigned Length, LLVMBool DontNullTerminate)) \ 216 macro(LLVMValueRef, ConstString, (const char *Str, unsigned Length, LLVMBool DontNullTerminate)) \ 217 macro(LLVMValueRef, ConstStructInContext, (LLVMContextRef C, LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)) \ 218 macro(LLVMValueRef, ConstStruct, (LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)) \ 219 macro(LLVMValueRef, ConstArray, (LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, unsigned Length)) \ 220 macro(LLVMValueRef, ConstNamedStruct, (LLVMTypeRef StructTy, LLVMValueRef *ConstantVals, unsigned Count)) \ 221 macro(LLVMValueRef, ConstVector, (LLVMValueRef *ScalarConstantVals, unsigned Size)) \ 222 macro(LLVMOpcode, GetConstOpcode, (LLVMValueRef ConstantVal)) \ 223 macro(LLVMValueRef, AlignOf, (LLVMTypeRef Ty)) \ 224 macro(LLVMValueRef, SizeOf, (LLVMTypeRef Ty)) \ 225 macro(LLVMValueRef, ConstNeg, (LLVMValueRef ConstantVal)) \ 226 macro(LLVMValueRef, ConstNSWNeg, (LLVMValueRef ConstantVal)) \ 227 macro(LLVMValueRef, ConstNUWNeg, (LLVMValueRef ConstantVal)) \ 228 macro(LLVMValueRef, ConstFNeg, (LLVMValueRef ConstantVal)) \ 229 macro(LLVMValueRef, ConstNot, (LLVMValueRef ConstantVal)) \ 230 macro(LLVMValueRef, ConstAdd, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 231 macro(LLVMValueRef, ConstNSWAdd, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 232 macro(LLVMValueRef, ConstNUWAdd, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 233 macro(LLVMValueRef, ConstFAdd, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 234 macro(LLVMValueRef, ConstSub, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 235 macro(LLVMValueRef, ConstNSWSub, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 236 macro(LLVMValueRef, ConstNUWSub, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 237 macro(LLVMValueRef, ConstFSub, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 238 macro(LLVMValueRef, ConstMul, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 239 macro(LLVMValueRef, ConstNSWMul, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 240 macro(LLVMValueRef, ConstNUWMul, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 241 macro(LLVMValueRef, ConstFMul, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 242 macro(LLVMValueRef, ConstUDiv, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 243 macro(LLVMValueRef, ConstSDiv, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 244 macro(LLVMValueRef, ConstExactSDiv, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 245 macro(LLVMValueRef, ConstFDiv, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 246 macro(LLVMValueRef, ConstURem, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 247 macro(LLVMValueRef, ConstSRem, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 248 macro(LLVMValueRef, ConstFRem, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 249 macro(LLVMValueRef, ConstAnd, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 250 macro(LLVMValueRef, ConstOr, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 251 macro(LLVMValueRef, ConstXor, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 252 macro(LLVMValueRef, ConstICmp, (LLVMIntPredicate Predicate, LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 253 macro(LLVMValueRef, ConstFCmp, (LLVMRealPredicate Predicate, LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 254 macro(LLVMValueRef, ConstShl, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 255 macro(LLVMValueRef, ConstLShr, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 256 macro(LLVMValueRef, ConstAShr, (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)) \ 257 macro(LLVMValueRef, ConstGEP, (LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices)) \ 258 macro(LLVMValueRef, ConstInBoundsGEP, (LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices)) \ 259 macro(LLVMValueRef, ConstTrunc, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 260 macro(LLVMValueRef, ConstSExt, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 261 macro(LLVMValueRef, ConstZExt, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 262 macro(LLVMValueRef, ConstFPTrunc, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 263 macro(LLVMValueRef, ConstFPExt, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 264 macro(LLVMValueRef, ConstUIToFP, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 265 macro(LLVMValueRef, ConstSIToFP, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 266 macro(LLVMValueRef, ConstFPToUI, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 267 macro(LLVMValueRef, ConstFPToSI, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 268 macro(LLVMValueRef, ConstPtrToInt, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 269 macro(LLVMValueRef, ConstIntToPtr, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 270 macro(LLVMValueRef, ConstBitCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 271 macro(LLVMValueRef, ConstZExtOrBitCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 272 macro(LLVMValueRef, ConstSExtOrBitCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 273 macro(LLVMValueRef, ConstTruncOrBitCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 274 macro(LLVMValueRef, ConstPointerCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 275 macro(LLVMValueRef, ConstIntCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType, LLVMBool isSigned)) \ 276 macro(LLVMValueRef, ConstFPCast, (LLVMValueRef ConstantVal, LLVMTypeRef ToType)) \ 277 macro(LLVMValueRef, ConstSelect, (LLVMValueRef ConstantCondition, LLVMValueRef ConstantIfTrue, LLVMValueRef ConstantIfFalse)) \ 278 macro(LLVMValueRef, ConstExtractElement, (LLVMValueRef VectorConstant, LLVMValueRef IndexConstant)) \ 279 macro(LLVMValueRef, ConstInsertElement, (LLVMValueRef VectorConstant, LLVMValueRef ElementValueConstant, LLVMValueRef IndexConstant)) \ 280 macro(LLVMValueRef, ConstShuffleVector, (LLVMValueRef VectorAConstant, LLVMValueRef VectorBConstant, LLVMValueRef MaskConstant)) \ 281 macro(LLVMValueRef, ConstExtractValue, (LLVMValueRef AggConstant, unsigned *IdxList, unsigned NumIdx)) \ 282 macro(LLVMValueRef, ConstInsertValue, (LLVMValueRef AggConstant, LLVMValueRef ElementValueConstant, unsigned *IdxList, unsigned NumIdx)) \ 283 macro(LLVMValueRef, ConstInlineAsm, (LLVMTypeRef Ty, const char *AsmString, const char *Constraints, LLVMBool HasSideEffects, LLVMBool IsAlignStack)) \ 284 macro(LLVMValueRef, BlockAddress, (LLVMValueRef F, LLVMBasicBlockRef BB)) \ 285 macro(LLVMModuleRef, GetGlobalParent, (LLVMValueRef Global)) \ 286 macro(LLVMBool, IsDeclaration, (LLVMValueRef Global)) \ 287 macro(LLVMLinkage, GetLinkage, (LLVMValueRef Global)) \ 288 macro(void, SetLinkage, (LLVMValueRef Global, LLVMLinkage Linkage)) \ 289 macro(const char *, GetSection, (LLVMValueRef Global)) \ 290 macro(void, SetSection, (LLVMValueRef Global, const char *Section)) \ 291 macro(LLVMVisibility, GetVisibility, (LLVMValueRef Global)) \ 292 macro(void, SetVisibility, (LLVMValueRef Global, LLVMVisibility Viz)) \ 293 macro(unsigned, GetAlignment, (LLVMValueRef Global)) \ 294 macro(void, SetAlignment, (LLVMValueRef Global, unsigned Bytes)) \ 295 macro(LLVMValueRef, AddGlobal, (LLVMModuleRef M, LLVMTypeRef Ty, const char *Name)) \ 296 macro(LLVMValueRef, AddGlobalInAddressSpace, (LLVMModuleRef M, LLVMTypeRef Ty, const char *Name, unsigned AddressSpace)) \ 297 macro(LLVMValueRef, GetNamedGlobal, (LLVMModuleRef M, const char *Name)) \ 298 macro(LLVMValueRef, GetFirstGlobal, (LLVMModuleRef M)) \ 299 macro(LLVMValueRef, GetLastGlobal, (LLVMModuleRef M)) \ 300 macro(LLVMValueRef, GetNextGlobal, (LLVMValueRef GlobalVar)) \ 301 macro(LLVMValueRef, GetPreviousGlobal, (LLVMValueRef GlobalVar)) \ 302 macro(void, DeleteGlobal, (LLVMValueRef GlobalVar)) \ 303 macro(LLVMValueRef, GetInitializer, (LLVMValueRef GlobalVar)) \ 304 macro(void, SetInitializer, (LLVMValueRef GlobalVar, LLVMValueRef ConstantVal)) \ 305 macro(LLVMBool, IsThreadLocal, (LLVMValueRef GlobalVar)) \ 306 macro(void, SetThreadLocal, (LLVMValueRef GlobalVar, LLVMBool IsThreadLocal)) \ 307 macro(LLVMBool, IsGlobalConstant, (LLVMValueRef GlobalVar)) \ 308 macro(void, SetGlobalConstant, (LLVMValueRef GlobalVar, LLVMBool IsConstant)) \ 309 macro(LLVMThreadLocalMode, GetThreadLocalMode, (LLVMValueRef GlobalVar)) \ 310 macro(void, SetThreadLocalMode, (LLVMValueRef GlobalVar, LLVMThreadLocalMode Mode)) \ 311 macro(LLVMBool, IsExternallyInitialized, (LLVMValueRef GlobalVar)) \ 312 macro(void, SetExternallyInitialized, (LLVMValueRef GlobalVar, LLVMBool IsExtInit)) \ 313 macro(LLVMValueRef, AddAlias, (LLVMModuleRef M, LLVMTypeRef Ty, LLVMValueRef Aliasee, const char *Name)) \ 314 macro(void, DeleteFunction, (LLVMValueRef Fn)) \ 315 macro(unsigned, GetIntrinsicID, (LLVMValueRef Fn)) \ 316 macro(unsigned, GetFunctionCallConv, (LLVMValueRef Fn)) \ 317 macro(void, SetFunctionCallConv, (LLVMValueRef Fn, unsigned CC)) \ 318 macro(const char *, GetGC, (LLVMValueRef Fn)) \ 319 macro(void, SetGC, (LLVMValueRef Fn, const char *Name)) \ 320 macro(void, AddFunctionAttr, (LLVMValueRef Fn, LLVMAttribute PA)) \ 321 macro(void, AddTargetDependentFunctionAttr, (LLVMValueRef Fn, const char *A, const char *V)) \ 322 macro(LLVMAttribute, GetFunctionAttr, (LLVMValueRef Fn)) \ 323 macro(void, RemoveFunctionAttr, (LLVMValueRef Fn, LLVMAttribute PA)) \ 324 macro(unsigned, CountParams, (LLVMValueRef Fn)) \ 325 macro(void, GetParams, (LLVMValueRef Fn, LLVMValueRef *Params)) \ 326 macro(LLVMValueRef, GetParam, (LLVMValueRef Fn, unsigned Index)) \ 327 macro(LLVMValueRef, GetParamParent, (LLVMValueRef Inst)) \ 328 macro(LLVMValueRef, GetFirstParam, (LLVMValueRef Fn)) \ 329 macro(LLVMValueRef, GetLastParam, (LLVMValueRef Fn)) \ 330 macro(LLVMValueRef, GetNextParam, (LLVMValueRef Arg)) \ 331 macro(LLVMValueRef, GetPreviousParam, (LLVMValueRef Arg)) \ 332 macro(void, AddAttribute, (LLVMValueRef Arg, LLVMAttribute PA)) \ 333 macro(void, RemoveAttribute, (LLVMValueRef Arg, LLVMAttribute PA)) \ 334 macro(LLVMAttribute, GetAttribute, (LLVMValueRef Arg)) \ 335 macro(void, SetParamAlignment, (LLVMValueRef Arg, unsigned align)) \ 336 macro(LLVMValueRef, MDStringInContext, (LLVMContextRef C, const char *Str, unsigned SLen)) \ 337 macro(LLVMValueRef, MDString, (const char *Str, unsigned SLen)) \ 338 macro(LLVMValueRef, MDNodeInContext, (LLVMContextRef C, LLVMValueRef *Vals, unsigned Count)) \ 339 macro(LLVMValueRef, MDNode, (LLVMValueRef *Vals, unsigned Count)) \ 340 macro(const char *, GetMDString, (LLVMValueRef V, unsigned* Len)) \ 341 macro(unsigned, GetMDNodeNumOperands, (LLVMValueRef V)) \ 342 macro(void, GetMDNodeOperands, (LLVMValueRef V, LLVMValueRef *Dest)) \ 343 macro(LLVMValueRef, BasicBlockAsValue, (LLVMBasicBlockRef BB)) \ 344 macro(LLVMBool, ValueIsBasicBlock, (LLVMValueRef Val)) \ 345 macro(LLVMBasicBlockRef, ValueAsBasicBlock, (LLVMValueRef Val)) \ 346 macro(LLVMValueRef, GetBasicBlockParent, (LLVMBasicBlockRef BB)) \ 347 macro(LLVMValueRef, GetBasicBlockTerminator, (LLVMBasicBlockRef BB)) \ 348 macro(unsigned, CountBasicBlocks, (LLVMValueRef Fn)) \ 349 macro(void, GetBasicBlocks, (LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks)) \ 350 macro(LLVMBasicBlockRef, GetFirstBasicBlock, (LLVMValueRef Fn)) \ 351 macro(LLVMBasicBlockRef, GetLastBasicBlock, (LLVMValueRef Fn)) \ 352 macro(LLVMBasicBlockRef, GetNextBasicBlock, (LLVMBasicBlockRef BB)) \ 353 macro(LLVMBasicBlockRef, GetPreviousBasicBlock, (LLVMBasicBlockRef BB)) \ 354 macro(LLVMBasicBlockRef, GetEntryBasicBlock, (LLVMValueRef Fn)) \ 355 macro(LLVMBasicBlockRef, AppendBasicBlockInContext, (LLVMContextRef C, LLVMValueRef Fn, const char *Name)) \ 356 macro(LLVMBasicBlockRef, AppendBasicBlock, (LLVMValueRef Fn, const char *Name)) \ 357 macro(LLVMBasicBlockRef, InsertBasicBlockInContext, (LLVMContextRef C, LLVMBasicBlockRef BB, const char *Name)) \ 358 macro(LLVMBasicBlockRef, InsertBasicBlock, (LLVMBasicBlockRef InsertBeforeBB, const char *Name)) \ 359 macro(void, DeleteBasicBlock, (LLVMBasicBlockRef BB)) \ 360 macro(void, RemoveBasicBlockFromParent, (LLVMBasicBlockRef BB)) \ 361 macro(void, MoveBasicBlockBefore, (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)) \ 362 macro(void, MoveBasicBlockAfter, (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)) \ 363 macro(LLVMValueRef, GetFirstInstruction, (LLVMBasicBlockRef BB)) \ 364 macro(LLVMValueRef, GetLastInstruction, (LLVMBasicBlockRef BB)) \ 365 macro(int, HasMetadata, (LLVMValueRef Val)) \ 366 macro(LLVMValueRef, GetMetadata, (LLVMValueRef Val, unsigned KindID)) \ 367 macro(void, SetMetadata, (LLVMValueRef Val, unsigned KindID, LLVMValueRef Node)) \ 368 macro(LLVMBasicBlockRef, GetInstructionParent, (LLVMValueRef Inst)) \ 369 macro(LLVMValueRef, GetNextInstruction, (LLVMValueRef Inst)) \ 370 macro(LLVMValueRef, GetPreviousInstruction, (LLVMValueRef Inst)) \ 371 macro(void, InstructionEraseFromParent, (LLVMValueRef Inst)) \ 372 macro(LLVMOpcode, GetInstructionOpcode, (LLVMValueRef Inst)) \ 373 macro(LLVMIntPredicate, GetICmpPredicate, (LLVMValueRef Inst)) \ 374 macro(void, SetInstructionCallConv, (LLVMValueRef Instr, unsigned CC)) \ 375 macro(unsigned, GetInstructionCallConv, (LLVMValueRef Instr)) \ 376 macro(void, AddInstrAttribute, (LLVMValueRef Instr, unsigned index, LLVMAttribute)) \ 377 macro(void, RemoveInstrAttribute, (LLVMValueRef Instr, unsigned index, LLVMAttribute)) \ 378 macro(void, SetInstrParamAlignment, (LLVMValueRef Instr, unsigned index, unsigned align)) \ 379 macro(LLVMBool, IsTailCall, (LLVMValueRef CallInst)) \ 380 macro(void, SetTailCall, (LLVMValueRef CallInst, LLVMBool IsTailCall)) \ 381 macro(LLVMBasicBlockRef, GetSwitchDefaultDest, (LLVMValueRef SwitchInstr)) \ 382 macro(void, AddIncoming, (LLVMValueRef PhiNode, LLVMValueRef *IncomingValues, LLVMBasicBlockRef *IncomingBlocks, unsigned Count)) \ 383 macro(unsigned, CountIncoming, (LLVMValueRef PhiNode)) \ 384 macro(LLVMValueRef, GetIncomingValue, (LLVMValueRef PhiNode, unsigned Index)) \ 385 macro(LLVMBasicBlockRef, GetIncomingBlock, (LLVMValueRef PhiNode, unsigned Index)) \ 386 macro(LLVMBuilderRef, CreateBuilderInContext, (LLVMContextRef C)) \ 387 macro(LLVMBuilderRef, CreateBuilder, (void)) \ 388 macro(void, PositionBuilder, (LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Instr)) \ 389 macro(void, PositionBuilderBefore, (LLVMBuilderRef Builder, LLVMValueRef Instr)) \ 390 macro(void, PositionBuilderAtEnd, (LLVMBuilderRef Builder, LLVMBasicBlockRef Block)) \ 391 macro(LLVMBasicBlockRef, GetInsertBlock, (LLVMBuilderRef Builder)) \ 392 macro(void, ClearInsertionPosition, (LLVMBuilderRef Builder)) \ 393 macro(void, InsertIntoBuilder, (LLVMBuilderRef Builder, LLVMValueRef Instr)) \ 394 macro(void, InsertIntoBuilderWithName, (LLVMBuilderRef Builder, LLVMValueRef Instr, const char *Name)) \ 395 macro(void, DisposeBuilder, (LLVMBuilderRef Builder)) \ 396 macro(void, SetCurrentDebugLocation, (LLVMBuilderRef Builder, LLVMValueRef L)) \ 397 macro(LLVMValueRef, GetCurrentDebugLocation, (LLVMBuilderRef Builder)) \ 398 macro(void, SetInstDebugLocation, (LLVMBuilderRef Builder, LLVMValueRef Inst)) \ 399 macro(LLVMValueRef, BuildRetVoid, (LLVMBuilderRef)) \ 400 macro(LLVMValueRef, BuildRet, (LLVMBuilderRef, LLVMValueRef V)) \ 401 macro(LLVMValueRef, BuildAggregateRet, (LLVMBuilderRef, LLVMValueRef *RetVals, unsigned N)) \ 402 macro(LLVMValueRef, BuildBr, (LLVMBuilderRef, LLVMBasicBlockRef Dest)) \ 403 macro(LLVMValueRef, BuildCondBr, (LLVMBuilderRef, LLVMValueRef If, LLVMBasicBlockRef Then, LLVMBasicBlockRef Else)) \ 404 macro(LLVMValueRef, BuildSwitch, (LLVMBuilderRef, LLVMValueRef V, LLVMBasicBlockRef Else, unsigned NumCases)) \ 405 macro(LLVMValueRef, BuildIndirectBr, (LLVMBuilderRef B, LLVMValueRef Addr, unsigned NumDests)) \ 406 macro(LLVMValueRef, BuildInvoke, (LLVMBuilderRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, const char *Name)) \ 407 macro(LLVMValueRef, BuildLandingPad, (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef PersFn, unsigned NumClauses, const char *Name)) \ 408 macro(LLVMValueRef, BuildResume, (LLVMBuilderRef B, LLVMValueRef Exn)) \ 409 macro(LLVMValueRef, BuildUnreachable, (LLVMBuilderRef)) \ 410 macro(void, AddCase, (LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest)) \ 411 macro(void, AddDestination, (LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest)) \ 412 macro(void, AddClause, (LLVMValueRef LandingPad, LLVMValueRef ClauseVal)) \ 413 macro(void, SetCleanup, (LLVMValueRef LandingPad, LLVMBool Val)) \ 414 macro(LLVMValueRef, BuildAdd, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 415 macro(LLVMValueRef, BuildNSWAdd, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 416 macro(LLVMValueRef, BuildNUWAdd, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 417 macro(LLVMValueRef, BuildFAdd, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 418 macro(LLVMValueRef, BuildSub, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 419 macro(LLVMValueRef, BuildNSWSub, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 420 macro(LLVMValueRef, BuildNUWSub, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 421 macro(LLVMValueRef, BuildFSub, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 422 macro(LLVMValueRef, BuildMul, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 423 macro(LLVMValueRef, BuildNSWMul, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 424 macro(LLVMValueRef, BuildNUWMul, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 425 macro(LLVMValueRef, BuildFMul, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 426 macro(LLVMValueRef, BuildUDiv, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 427 macro(LLVMValueRef, BuildSDiv, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 428 macro(LLVMValueRef, BuildExactSDiv, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 429 macro(LLVMValueRef, BuildFDiv, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 430 macro(LLVMValueRef, BuildURem, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 431 macro(LLVMValueRef, BuildSRem, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 432 macro(LLVMValueRef, BuildFRem, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 433 macro(LLVMValueRef, BuildShl, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 434 macro(LLVMValueRef, BuildLShr, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 435 macro(LLVMValueRef, BuildAShr, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 436 macro(LLVMValueRef, BuildAnd, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 437 macro(LLVMValueRef, BuildOr, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 438 macro(LLVMValueRef, BuildXor, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 439 macro(LLVMValueRef, BuildBinOp, (LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 440 macro(LLVMValueRef, BuildNeg, (LLVMBuilderRef, LLVMValueRef V, const char *Name)) \ 441 macro(LLVMValueRef, BuildNSWNeg, (LLVMBuilderRef B, LLVMValueRef V, const char *Name)) \ 442 macro(LLVMValueRef, BuildNUWNeg, (LLVMBuilderRef B, LLVMValueRef V, const char *Name)) \ 443 macro(LLVMValueRef, BuildFNeg, (LLVMBuilderRef, LLVMValueRef V, const char *Name)) \ 444 macro(LLVMValueRef, BuildNot, (LLVMBuilderRef, LLVMValueRef V, const char *Name)) \ 445 macro(LLVMValueRef, BuildMalloc, (LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)) \ 446 macro(LLVMValueRef, BuildArrayMalloc, (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name)) \ 447 macro(LLVMValueRef, BuildAlloca, (LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)) \ 448 macro(LLVMValueRef, BuildArrayAlloca, (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name)) \ 449 macro(LLVMValueRef, BuildFree, (LLVMBuilderRef, LLVMValueRef PointerVal)) \ 450 macro(LLVMValueRef, BuildLoad, (LLVMBuilderRef, LLVMValueRef PointerVal, const char *Name)) \ 451 macro(LLVMValueRef, BuildStore, (LLVMBuilderRef, LLVMValueRef Val, LLVMValueRef Ptr)) \ 452 macro(LLVMValueRef, BuildGEP, (LLVMBuilderRef B, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name)) \ 453 macro(LLVMValueRef, BuildInBoundsGEP, (LLVMBuilderRef B, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name)) \ 454 macro(LLVMValueRef, BuildStructGEP, (LLVMBuilderRef B, LLVMValueRef Pointer, unsigned Idx, const char *Name)) \ 455 macro(LLVMValueRef, BuildGlobalString, (LLVMBuilderRef B, const char *Str, const char *Name)) \ 456 macro(LLVMValueRef, BuildGlobalStringPtr, (LLVMBuilderRef B, const char *Str, const char *Name)) \ 457 macro(LLVMBool, GetVolatile, (LLVMValueRef MemoryAccessInst)) \ 458 macro(void, SetVolatile, (LLVMValueRef MemoryAccessInst, LLVMBool IsVolatile)) \ 459 macro(LLVMValueRef, BuildTrunc, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 460 macro(LLVMValueRef, BuildZExt, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 461 macro(LLVMValueRef, BuildSExt, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 462 macro(LLVMValueRef, BuildFPToUI, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 463 macro(LLVMValueRef, BuildFPToSI, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 464 macro(LLVMValueRef, BuildUIToFP, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 465 macro(LLVMValueRef, BuildSIToFP, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 466 macro(LLVMValueRef, BuildFPTrunc, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 467 macro(LLVMValueRef, BuildFPExt, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 468 macro(LLVMValueRef, BuildPtrToInt, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 469 macro(LLVMValueRef, BuildIntToPtr, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 470 macro(LLVMValueRef, BuildBitCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 471 macro(LLVMValueRef, BuildZExtOrBitCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 472 macro(LLVMValueRef, BuildSExtOrBitCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 473 macro(LLVMValueRef, BuildTruncOrBitCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 474 macro(LLVMValueRef, BuildCast, (LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 475 macro(LLVMValueRef, BuildPointerCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 476 macro(LLVMValueRef, BuildIntCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 477 macro(LLVMValueRef, BuildFPCast, (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)) \ 478 macro(LLVMValueRef, BuildICmp, (LLVMBuilderRef, LLVMIntPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 479 macro(LLVMValueRef, BuildFCmp, (LLVMBuilderRef, LLVMRealPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 480 macro(LLVMValueRef, BuildPhi, (LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)) \ 481 macro(LLVMValueRef, BuildCall, (LLVMBuilderRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, const char *Name)) \ 482 macro(LLVMValueRef, BuildSelect, (LLVMBuilderRef, LLVMValueRef If, LLVMValueRef Then, LLVMValueRef Else, const char *Name)) \ 483 macro(LLVMValueRef, BuildVAArg, (LLVMBuilderRef, LLVMValueRef List, LLVMTypeRef Ty, const char *Name)) \ 484 macro(LLVMValueRef, BuildExtractElement, (LLVMBuilderRef, LLVMValueRef VecVal, LLVMValueRef Index, const char *Name)) \ 485 macro(LLVMValueRef, BuildInsertElement, (LLVMBuilderRef, LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, const char *Name)) \ 486 macro(LLVMValueRef, BuildShuffleVector, (LLVMBuilderRef, LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, const char *Name)) \ 487 macro(LLVMValueRef, BuildExtractValue, (LLVMBuilderRef, LLVMValueRef AggVal, unsigned Index, const char *Name)) \ 488 macro(LLVMValueRef, BuildInsertValue, (LLVMBuilderRef, LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned Index, const char *Name)) \ 489 macro(LLVMValueRef, BuildIsNull, (LLVMBuilderRef, LLVMValueRef Val, const char *Name)) \ 490 macro(LLVMValueRef, BuildIsNotNull, (LLVMBuilderRef, LLVMValueRef Val, const char *Name)) \ 491 macro(LLVMValueRef, BuildPtrDiff, (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)) \ 492 macro(LLVMValueRef, BuildFence, (LLVMBuilderRef B, LLVMAtomicOrdering Ordering, LLVMBool isSingleThread, const char *Name)) \ 493 macro(LLVMValueRef, BuildAtomicRMW, (LLVMBuilderRef B, LLVMAtomicRMWBinOp op, LLVMValueRef PTR, LLVMValueRef Val, LLVMAtomicOrdering ordering, LLVMBool singleThread)) \ 494 macro(LLVMModuleProviderRef, CreateModuleProviderForExistingModule, (LLVMModuleRef M)) \ 495 macro(void, DisposeModuleProvider, (LLVMModuleProviderRef M)) \ 496 macro(LLVMBool, CreateMemoryBufferWithContentsOfFile, (const char *Path, LLVMMemoryBufferRef *OutMemBuf, char **OutMessage)) \ 497 macro(LLVMBool, CreateMemoryBufferWithSTDIN, (LLVMMemoryBufferRef *OutMemBuf, char **OutMessage)) \ 498 macro(LLVMMemoryBufferRef, CreateMemoryBufferWithMemoryRange, (const char *InputData, size_t InputDataLength, const char *BufferName, LLVMBool RequiresNullTerminator)) \ 499 macro(LLVMMemoryBufferRef, CreateMemoryBufferWithMemoryRangeCopy, (const char *InputData, size_t InputDataLength, const char *BufferName)) \ 500 macro(const char *, GetBufferStart, (LLVMMemoryBufferRef MemBuf)) \ 501 macro(size_t, GetBufferSize, (LLVMMemoryBufferRef MemBuf)) \ 502 macro(void, DisposeMemoryBuffer, (LLVMMemoryBufferRef MemBuf)) \ 503 macro(LLVMPassRegistryRef, GetGlobalPassRegistry, (void)) \ 504 macro(LLVMPassManagerRef, CreatePassManager, (void)) \ 505 macro(LLVMPassManagerRef, CreateFunctionPassManagerForModule, (LLVMModuleRef M)) \ 506 macro(LLVMPassManagerRef, CreateFunctionPassManager, (LLVMModuleProviderRef MP)) \ 507 macro(LLVMBool, RunPassManager, (LLVMPassManagerRef PM, LLVMModuleRef M)) \ 508 macro(LLVMBool, InitializeFunctionPassManager, (LLVMPassManagerRef FPM)) \ 509 macro(LLVMBool, RunFunctionPassManager, (LLVMPassManagerRef FPM, LLVMValueRef F)) \ 510 macro(LLVMBool, FinalizeFunctionPassManager, (LLVMPassManagerRef FPM)) \ 511 macro(void, DisposePassManager, (LLVMPassManagerRef PM)) \ 512 macro(LLVMBool, StartMultithreaded, ()) \ 513 macro(void, StopMultithreaded, ()) \ 514 macro(LLVMBool, IsMultithreaded, ()) \ 515 macro(LLVMTargetDataRef, CreateTargetData, (const char *StringRep)) \ 516 macro(void, AddTargetData, (LLVMTargetDataRef, LLVMPassManagerRef)) \ 517 macro(void, AddTargetLibraryInfo, (LLVMTargetLibraryInfoRef, LLVMPassManagerRef)) \ 518 macro(char *, CopyStringRepOfTargetData, (LLVMTargetDataRef)) \ 519 macro(enum LLVMByteOrdering, ByteOrder, (LLVMTargetDataRef)) \ 520 macro(unsigned, PointerSize, (LLVMTargetDataRef)) \ 521 macro(LLVMTypeRef, IntPtrType, (LLVMTargetDataRef)) \ 522 macro(unsigned long long, SizeOfTypeInBits, (LLVMTargetDataRef, LLVMTypeRef)) \ 523 macro(unsigned long long, StoreSizeOfType, (LLVMTargetDataRef, LLVMTypeRef)) \ 524 macro(unsigned long long, ABISizeOfType, (LLVMTargetDataRef, LLVMTypeRef)) \ 525 macro(unsigned, ABIAlignmentOfType, (LLVMTargetDataRef, LLVMTypeRef)) \ 526 macro(unsigned, CallFrameAlignmentOfType, (LLVMTargetDataRef, LLVMTypeRef)) \ 527 macro(unsigned, PreferredAlignmentOfType, (LLVMTargetDataRef, LLVMTypeRef)) \ 528 macro(unsigned, PreferredAlignmentOfGlobal, (LLVMTargetDataRef, LLVMValueRef GlobalVar)) \ 529 macro(unsigned, ElementAtOffset, (LLVMTargetDataRef, LLVMTypeRef StructTy, unsigned long long Offset)) \ 530 macro(unsigned long long, OffsetOfElement, (LLVMTargetDataRef, LLVMTypeRef StructTy, unsigned Element)) \ 531 macro(void, DisposeTargetData, (LLVMTargetDataRef)) \ 532 macro(LLVMTargetRef, GetFirstTarget, ()) \ 533 macro(LLVMTargetRef, GetNextTarget, (LLVMTargetRef T)) \ 534 macro(const char *, GetTargetName, (LLVMTargetRef T)) \ 535 macro(const char *, GetTargetDescription, (LLVMTargetRef T)) \ 536 macro(LLVMBool, TargetHasJIT, (LLVMTargetRef T)) \ 537 macro(LLVMBool, TargetHasTargetMachine, (LLVMTargetRef T)) \ 538 macro(LLVMBool, TargetHasAsmBackend, (LLVMTargetRef T)) \ 539 macro(void, DisposeTargetMachine, (LLVMTargetMachineRef T)) \ 540 macro(LLVMTargetRef, GetTargetMachineTarget, (LLVMTargetMachineRef T)) \ 541 macro(char *, GetTargetMachineTriple, (LLVMTargetMachineRef T)) \ 542 macro(char *, GetTargetMachineCPU, (LLVMTargetMachineRef T)) \ 543 macro(char *, GetTargetMachineFeatureString, (LLVMTargetMachineRef T)) \ 544 macro(LLVMTargetDataRef, GetTargetMachineData, (LLVMTargetMachineRef T)) \ 545 macro(LLVMBool, TargetMachineEmitToFile, (LLVMTargetMachineRef T, LLVMModuleRef M, char *Filename, LLVMCodeGenFileType codegen, char **ErrorMessage)) \ 546 macro(void, LinkInJIT, (void)) \ 547 macro(void, LinkInMCJIT, (void)) \ 548 macro(void, LinkInInterpreter, (void)) \ 549 macro(LLVMGenericValueRef, CreateGenericValueOfInt, (LLVMTypeRef Ty, unsigned long long N, LLVMBool IsSigned)) \ 550 macro(LLVMGenericValueRef, CreateGenericValueOfPointer, (void *P)) \ 551 macro(LLVMGenericValueRef, CreateGenericValueOfFloat, (LLVMTypeRef Ty, double N)) \ 552 macro(unsigned, GenericValueIntWidth, (LLVMGenericValueRef GenValRef)) \ 553 macro(unsigned long long, GenericValueToInt, (LLVMGenericValueRef GenVal, LLVMBool IsSigned)) \ 554 macro(void *, GenericValueToPointer, (LLVMGenericValueRef GenVal)) \ 555 macro(double, GenericValueToFloat, (LLVMTypeRef TyRef, LLVMGenericValueRef GenVal)) \ 556 macro(void, DisposeGenericValue, (LLVMGenericValueRef GenVal)) \ 557 macro(LLVMBool, CreateExecutionEngineForModule, (LLVMExecutionEngineRef *OutEE, LLVMModuleRef M, char **OutError)) \ 558 macro(LLVMBool, CreateInterpreterForModule, (LLVMExecutionEngineRef *OutInterp, LLVMModuleRef M, char **OutError)) \ 559 macro(LLVMBool, CreateJITCompilerForModule, (LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M, unsigned OptLevel, char **OutError)) \ 560 macro(void, InitializeMCJITCompilerOptions, (struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions)) \ 561 macro(LLVMBool, CreateMCJITCompilerForModule, (LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M, struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions, char **OutError)) \ 562 macro(LLVMBool, CreateExecutionEngine, (LLVMExecutionEngineRef *OutEE, LLVMModuleProviderRef MP, char **OutError)) \ 563 macro(LLVMBool, CreateInterpreter, (LLVMExecutionEngineRef *OutInterp, LLVMModuleProviderRef MP, char **OutError)) \ 564 macro(LLVMBool, CreateJITCompiler, (LLVMExecutionEngineRef *OutJIT, LLVMModuleProviderRef MP, unsigned OptLevel, char **OutError)) \ 565 macro(void, DisposeExecutionEngine, (LLVMExecutionEngineRef EE)) \ 566 macro(void, RunStaticConstructors, (LLVMExecutionEngineRef EE)) \ 567 macro(void, RunStaticDestructors, (LLVMExecutionEngineRef EE)) \ 568 macro(int, RunFunctionAsMain, (LLVMExecutionEngineRef EE, LLVMValueRef F, unsigned ArgC, const char * const *ArgV, const char * const *EnvP)) \ 569 macro(LLVMGenericValueRef, RunFunction, (LLVMExecutionEngineRef EE, LLVMValueRef F, unsigned NumArgs, LLVMGenericValueRef *Args)) \ 570 macro(void, FreeMachineCodeForFunction, (LLVMExecutionEngineRef EE, LLVMValueRef F)) \ 571 macro(void, AddModule, (LLVMExecutionEngineRef EE, LLVMModuleRef M)) \ 572 macro(void, AddModuleProvider, (LLVMExecutionEngineRef EE, LLVMModuleProviderRef MP)) \ 573 macro(LLVMBool, RemoveModule, (LLVMExecutionEngineRef EE, LLVMModuleRef M, LLVMModuleRef *OutMod, char **OutError)) \ 574 macro(LLVMBool, RemoveModuleProvider, (LLVMExecutionEngineRef EE, LLVMModuleProviderRef MP, LLVMModuleRef *OutMod, char **OutError)) \ 575 macro(LLVMBool, FindFunction, (LLVMExecutionEngineRef EE, const char *Name, LLVMValueRef *OutFn)) \ 576 macro(void *, RecompileAndRelinkFunction, (LLVMExecutionEngineRef EE, LLVMValueRef Fn)) \ 577 macro(LLVMTargetDataRef, GetExecutionEngineTargetData, (LLVMExecutionEngineRef EE)) \ 578 macro(void, AddGlobalMapping, (LLVMExecutionEngineRef EE, LLVMValueRef Global, void* Addr)) \ 579 macro(void *, GetPointerToGlobal, (LLVMExecutionEngineRef EE, LLVMValueRef Global)) \ 580 macro(LLVMMCJITMemoryManagerRef, CreateSimpleMCJITMemoryManager, (void *Opaque, LLVMMemoryManagerAllocateCodeSectionCallback AllocateCodeSection, LLVMMemoryManagerAllocateDataSectionCallback AllocateDataSection, LLVMMemoryManagerFinalizeMemoryCallback FinalizeMemory, LLVMMemoryManagerDestroyCallback Destory)) \ 581 macro(void, DisposeMCJITMemoryManager, (LLVMMCJITMemoryManagerRef MM)) \ 582 macro(LLVMBool, VerifyModule, (LLVMModuleRef M, LLVMVerifierFailureAction Action, char **OutMessage)) \ 583 macro(LLVMBool, VerifyFunction, (LLVMValueRef Fn, LLVMVerifierFailureAction Action)) \ 584 macro(void, ViewFunctionCFG, (LLVMValueRef Fn)) \ 585 macro(void, ViewFunctionCFGOnly, (LLVMValueRef Fn)) \ 586 macro(LLVMDisasmContextRef, CreateDisasm, (const char *TripleName, void *DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)) \ 587 macro(LLVMDisasmContextRef, CreateDisasmCPU, (const char *Triple, const char *CPU, void *DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)) \ 588 macro(int, SetDisasmOptions, (LLVMDisasmContextRef DC, uint64_t Options)) \ 589 macro(void, DisasmDispose, (LLVMDisasmContextRef DC)) \ 590 macro(size_t, DisasmInstruction, (LLVMDisasmContextRef DC, uint8_t *Bytes, uint64_t BytesSize, uint64_t PC, char *OutString, size_t OutStringSize)) \ 591 macro(unsigned, PointerSizeForAS, (LLVMTargetDataRef, unsigned AS)) \ 592 macro(LLVMTypeRef, IntPtrTypeForAS, (LLVMTargetDataRef, unsigned AS)) \ 593 macro(LLVMPassManagerBuilderRef, PassManagerBuilderCreate, (void)) \ 594 macro(void, PassManagerBuilderDispose, (LLVMPassManagerBuilderRef PMB)) \ 595 macro(void, PassManagerBuilderSetOptLevel, (LLVMPassManagerBuilderRef PMB, unsigned OptLevel)) \ 596 macro(void, PassManagerBuilderSetSizeLevel, (LLVMPassManagerBuilderRef PMB, unsigned SizeLevel)) \ 597 macro(void, PassManagerBuilderSetDisableUnitAtATime, (LLVMPassManagerBuilderRef PMB, LLVMBool Value)) \ 598 macro(void, PassManagerBuilderSetDisableUnrollLoops, (LLVMPassManagerBuilderRef PMB, LLVMBool Value)) \ 599 macro(void, PassManagerBuilderSetDisableSimplifyLibCalls, (LLVMPassManagerBuilderRef PMB, LLVMBool Value)) \ 600 macro(void, PassManagerBuilderUseInlinerWithThreshold, (LLVMPassManagerBuilderRef PMB, unsigned Threshold)) \ 601 macro(void, PassManagerBuilderPopulateFunctionPassManager, (LLVMPassManagerBuilderRef PMB, LLVMPassManagerRef PM)) \ 602 macro(void, PassManagerBuilderPopulateModulePassManager, (LLVMPassManagerBuilderRef PMB, LLVMPassManagerRef PM)) \ 603 macro(void, PassManagerBuilderPopulateLTOPassManager, (LLVMPassManagerBuilderRef PMB, LLVMPassManagerRef PM, LLVMBool Internalize, LLVMBool RunInliner)) \ 604 macro(void, AddAggressiveDCEPass, (LLVMPassManagerRef PM)) \ 605 macro(void, AddCFGSimplificationPass, (LLVMPassManagerRef PM)) \ 606 macro(void, AddDeadStoreEliminationPass, (LLVMPassManagerRef PM)) \ 607 macro(void, AddGVNPass, (LLVMPassManagerRef PM)) \ 608 macro(void, AddIndVarSimplifyPass, (LLVMPassManagerRef PM)) \ 609 macro(void, AddInstructionCombiningPass, (LLVMPassManagerRef PM)) \ 610 macro(void, AddJumpThreadingPass, (LLVMPassManagerRef PM)) \ 611 macro(void, AddLICMPass, (LLVMPassManagerRef PM)) \ 612 macro(void, AddLoopDeletionPass, (LLVMPassManagerRef PM)) \ 613 macro(void, AddLoopIdiomPass, (LLVMPassManagerRef PM)) \ 614 macro(void, AddLoopRotatePass, (LLVMPassManagerRef PM)) \ 615 macro(void, AddLoopUnrollPass, (LLVMPassManagerRef PM)) \ 616 macro(void, AddLoopUnswitchPass, (LLVMPassManagerRef PM)) \ 617 macro(void, AddMemCpyOptPass, (LLVMPassManagerRef PM)) \ 618 macro(void, AddPartiallyInlineLibCallsPass, (LLVMPassManagerRef PM)) \ 619 macro(void, AddPromoteMemoryToRegisterPass, (LLVMPassManagerRef PM)) \ 620 macro(void, AddReassociatePass, (LLVMPassManagerRef PM)) \ 621 macro(void, AddSCCPPass, (LLVMPassManagerRef PM)) \ 622 macro(void, AddScalarReplAggregatesPass, (LLVMPassManagerRef PM)) \ 623 macro(void, AddScalarReplAggregatesPassSSA, (LLVMPassManagerRef PM)) \ 624 macro(void, AddScalarReplAggregatesPassWithThreshold, (LLVMPassManagerRef PM, int Threshold)) \ 625 macro(void, AddSimplifyLibCallsPass, (LLVMPassManagerRef PM)) \ 626 macro(void, AddTailCallEliminationPass, (LLVMPassManagerRef PM)) \ 627 macro(void, AddConstantPropagationPass, (LLVMPassManagerRef PM)) \ 628 macro(void, AddDemoteMemoryToRegisterPass, (LLVMPassManagerRef PM)) \ 629 macro(void, AddVerifierPass, (LLVMPassManagerRef PM)) \ 630 macro(void, AddCorrelatedValuePropagationPass, (LLVMPassManagerRef PM)) \ 631 macro(void, AddEarlyCSEPass, (LLVMPassManagerRef PM)) \ 632 macro(void, AddLowerExpectIntrinsicPass, (LLVMPassManagerRef PM)) \ 633 macro(void, AddTypeBasedAliasAnalysisPass, (LLVMPassManagerRef PM)) \ 634 macro(void, AddBasicAliasAnalysisPass, (LLVMPassManagerRef PM)) 635 636#endif // LLVMAPIFunctions_h 637 638