|[k      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; <=>?@ABCDEFGHI JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                              !"#$%&'()*+,-./0123456789:;<=>?@ABC D E F G H I J K L M N OPQRSTUVWXYZ[\]^_`abcdefghij(klmmmnopppqrssstuvvvwxyyyz{|||}~(Initialize jitter to the native target.  The operation is idempotent. requires GHC 6.8, LLVM experimentalbos@serpentine.com  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~insert before this one name for label  function name for label  function  function array to fill out  function  basic block       !"#$%&'()*+,-./0123456789:;< function = function > function ? function array to fill out @ function offset into array A function B function Cmodule name type Dmodule name  function (nullPtr if not found) EFGHIJKLMNOPQRSTUVWXY!Get the type of a sequential type' s elements. Z[\ element type element count ]pointed-to type address space ^ element type element count _.Fill out an array with the types of a function's fixed  parameters. `;Give the number of fixed parameters that a function takes. aGive a function's return type. b+Indicate whether a function takes varargs. cCreate a function type.  return type array of argument types number of elements in array  non-zero if function is varargs defghij$An integer type of the given width. width in bits klmnopqrstuvwxyz{|}~=An enumeration for the kinds of visibility of global values. The GV is protected The GV is hidden The GV is visible ;An enumeration for the kinds of linkage for global values. "Like Private, but linker removes. Tentative definitions 7Stand-in functions for streaming fns from BC files !ExternalWeak linkage description #Function to be accessible from DLL !Function to be imported from DLL *Like Internal, but omit from symbol table 2Rename collisions when linking (static functions) /Special purpose, only applies to global arrays 1Same, but only replaced by something equivalent. 4Keep one copy of named function when linking (weak) 1Same, but only replaced by something equivalent. 0Keep one copy of function when linking (inline) Externally visible function   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~vutsrqp[Zonmlkjihgfecba`_d^]\YONMLIKGHFE874396521XUWTVSRQPCDBA?@>;:}=<0/J.-,+*)('fedcba&%$#"!      &%$#"! 5wvutxs3210/.-lhgjkyrqponmi}~@~||{xw{`_^]\[ZYXNKCzLRSWVUTQPOJIHGFEDBA?>=M<;:9,+*)(' 8764zy  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~"argv envp      !     !     !       !"#$ !"#$$#"!  !"#$ %&'()*+,-./0123456789:;%&'()*+,-./0123456789:;;:9876543210/.-,+*)('&%%&'()*+,-./0123456789:; A<Manage compile passes. =KA module provider is used by the code generator to get access to a module. >Type of top level modules. ?YFree all storage related to a module. *Note*, this is a dangerous call, since referring V to the module after this call is an error. The reason for the explicit call to free O the module instead of an automatic lifetime management is that modules have a P somewhat complicated ownership. Handing a module to a module provider changes [ the ownership of the module, and the module provider will free the module when necessary. @Write a module to a file. ARead a module from a file. B&Turn a module into a module provider. CCreate a pass manager. D$Create a pass manager for a module. =Add a control flow graph simplification pass to the manager. 0Add a constant propagation pass to the manager. 2Add a global value numbering pass to the manager. ?<=>?@ABCD=<=>?@ABCD!EFGHGet a list created by calls to staticFunction ,that must be passed to the execution engine via &LLVM.ExecutionEngine.addGlobalMappings. EFGHEFGH ICResult tells whether the module was modified by any of the passes. III"JKL8Struct types; a list (nested tuple) of component types. MN'Label type, produced by a basic block. O5Fixed sized vector, the array size is encoded in the n parameter. PQ5Fixed sized arrays, the array size is encoded in the n parameter. RS128 bit floating point. TU!Variable sized unsigned integer.  The n parameter should belong to PosI. VWVariable sized signed integer.  The n parameter should belong to PosI. XJKLMNOPQRSTUVWXJKKLMMNOPPQRRSTTUVVWXX#(Y*Define what vararg types are permissible. ZThe Z$ type is a placeholder for the real  type that  can be obtained with  castVarArgs. [\]Function type. ^Types with a fixed size. _IFirst class types, i.e., the types that can be passed as arguments, etc. `PNumber of elements for instructions that handle both primitive and vector types aPrimitive types. bFloating types. cIntegral or pointer type. dIntegral types. efgh5Arithmetic types, i.e., integral and floating types. ijGType descriptor, used to convey type information through the LLVM API. klmnopqrstuvThe v> class classifies all types that have an LLVM representation. wx The argument is never evaluated yz{|&YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|$YZ[\]^_`abcdegffghiij utsrqponmlkklmnopqrstuvwwxyz{|$I}~eA basic block is a sequence of non-branching instructions, terminated by a control flow instruction. )This class is just to simplify contexts. 0A function is simply a pointer to the function. Create a new module. 'Create a new explicitely named module.  module name Give the body for a module. module that is defined  module body )Create a new module with the given body.  module body  Create a new named function. Function name Create a new function. Use 3 to create a function with external linkage, since  it needs a known name. _Define a function body. The basic block returned by the function is the function entry point. Function to define (created by ). Function body. +Create a new function with the given body. Function body. +Create a new function with the given body. Function body. ?Set the calling convention of a function. By default it is the  C calling convention. KAdd attributes to a value. Beware, what attributes are allowed depends on  what kind of value it is.  QCreate a reference to an external function while code generating for a function. 3 If LLVM cannot resolve its name, then you may try . JMake an external C function with a fixed address callable from LLVM code. 7This callback function can also be a Haskell function, that was imported like  % foreign import ccall "&nextElement" J nextElementFunPtr :: FunPtr (StablePtr (IORef [Word32]) -> IO Word32) See examples/List.hs. When you only use %, then LLVM cannot resolve the name. (However, I do not know why.) Thus % manages a list of static functions. (This list is automatically installed by ExecutionEngine.simpleFunction  and can be manually obtained by H and installed by !ExecutionEngine.addGlobalMappings. " Installing" means calling LLVM's addGlobalMapping according to  @http://old.nabble.com/jit-with-external-functions-td7769793.html.  $Create a new named global variable.  Constant?  Visibility Name Create a new global variable. +Give a global variable a (constant) value. %Create and define a global variable. +Create and define a named global variable.   HMake a constant vector. Replicates or truncates the list to get length n. GMake a constant array. Replicates or truncates the list to get length n. Make a constant struct. Make a constant packed struct. c}~}~ :}~ %"3Get all the information needed to free a function. T Freeing code might have to be done from a (C) finalizer, so it has to done from C. \ The function c_freeFunctionObject take these pointers as arguments and frees the function. MThe LLVM execution engine is encapsulated so it cannot be accessed directly. D The reason is that (currently) there must only ever be one engine, ( so access to it is wrapped in a monad. In contrast to generateFunction this compiles a function once. 7Thus it is faster for many calls to the same function. See examples/ Vector.hs. .If the function calls back into Haskell code, ,you also have to set the function addresses using  or . .Tell LLVM the address of an external function +if it cannot resolve a name automatically. +Alternatively you may declare the function with staticFunction instead of externFunction. 'Pass a list of global mappings to LLVM that can be obtained from LLVM.Core.getGlobalMappings.  !"#$% ! !&&'( ')*+HMake a constant vector. Replicates or truncates the list to get length n. + This behaviour is consistent with that of LLVM.Core.CodeGen.constVector. ,-))(./0Acceptable single index to getElementPointer. 1Acceptable arguments to getElementPointer. 20Acceptable argument to array memory allocation. 3Acceptable arguments to 0. 4560Acceptable operands to comparison instructions. 7Always true (always folded) True if unordered or not equal 'True if unordered, less than, or equal True if unordered or less than *True if unordered, greater than, or equal "True if unordered or greater than True if unordered or equal 'True if unordered: isnan(X) | isnan(Y) True if ordered (no nans) )True if ordered and operands are unequal 'True if ordered and less than or equal True if ordered and less than *True if ordered and greater than or equal !True if ordered and greater than True if ordered and equal Always false (always folded) signed less or equal signed less than signed greater or equal signed greater than unsigned less or equal unsigned less than unsigned greater or equal unsigned greater than  not equal equal less or equal  less than greater or equal  greater than  not equal equal 8Acceptable arguments to  and . 9:8Acceptable arguments to arithmetic binary instructions. ;<=Acceptable arguments to the  instruction. >?{Return from the current function with the given value. Use () as the return value for what would be a void function is C. @]Branch to the first basic block if the boolean is true, otherwise to the second basic block. Boolean to branch upon. Target for true. Target for false. 1Unconditionally branch to the given basic block. Branch target. Branch table instruction. Value to branch upon. Default branch target. )Labels and corresponding branch targets. ;Unwind the call stack until a function call performed with 1 is reached. $ I.e., throw a non-local exception. ?Inform the code generator that this code can never be reached. A:signed or unsigned integer division depending on the type 3signed or unsigned remainder depending on the type      Floating point division. Floating point remainder. BCGet a value from a vector. Vector Index into the vector .Insert a value into a vector, nondestructive. Vector Value to insert Index into the vector Permute vector. Get a value from an aggregate.  Aggregate Index into the aggregate 2Insert a value into an aggregate, nondestructive.  Aggregate Value to insert Index into the aggregate )Truncate a value to a shorter bit width. &Zero extend a value to a wider width.  $Sign extend a value to wider width. !!Truncate a floating point value. "Extend a floating point value. #7Convert a floating point value to an unsigned integer. $4Convert a floating point value to a signed integer. %7Convert an unsigned integer to a floating point value. &4Convert a signed integer to a floating point value. '!Convert a pointer to an integer. (!Convert an integer to a pointer. )LConvert between to values of the same size by just copying the bit pattern. *#Same as bitcast but instead of the '(:==:)'& type class it uses type unification. B This way, properties like reflexivity, symmetry and transitivity & are obvious to the Haskell compiler. DEFGHI+ Compare values of ordered types 7and choose predicates according to the compared types. 'Floating point numbers are compared in "ordered" mode, that is NaN operands yields J as result.  Pointers are compared unsigned. ?These choices are consistent with comparison in plain Haskell. KLMNO,-Compare integers. .Compare floating point values. /2Select between two values depending on a boolean. P0/Call a function with the given arguments. The 08 instruction is variadic, i.e., the number of arguments ! it takes depends on the type of f. 1)Call a function with exception handling. Normal return point. Exception return point. Function to call. 2/Call a function with the given arguments. The 0 instruction D is variadic, i.e., the number of arguments it takes depends on the  type of f. D This also sets the calling convention of the call to the function. C As LLVM itself defines, if the calling conventions of the calling   instruction and the function being called are different, undefined  behavior results. 3)Call a function with exception handling. D This also sets the calling convention of the call to the function. C As LLVM itself defines, if the calling conventions of the calling   instruction and the function being called are different, undefined  behavior results. Calling convention Normal return point. Exception return point. Function to call. 4QJoin several variables (virtual registers) from different basic blocks into one. 8 All of the variables in the list are joined. See also 5. 5/Add additional inputs to an existing phi node. M The reason for this instruction is that sometimes the structure of the code ^ makes it impossible to have all variables in scope at the point where you need the phi node. "Must be a variable from a call to 4. Variables to add. 6Allocate heap memory. 7Allocate heap (array) memory. 8Allocate stack memory. 9Allocate stack (array) memory. :Free heap memory. Q;If we want to export that, then we should have a Size type & This is the official implementation, , but it suffers from the ptrtoint(gep) bug. RST;Load a value from memory. Address to load from. <Store a value in memory Value to store. Address to store to. U=+Address arithmetic. See LLVM description. ) The index is a nested tuple of the form (i1,(i2,( ... ()))). T (This is without a doubt the most confusing LLVM instruction, but the types help.) >9Like getElementPtr, but with an initial index that is 0. Z This is useful since any pointer first need to be indexed off the pointer, and then into 9 its actual value. This first indexing is often with 0. w      !"#$%&'()*+,-./0123456789:;<=>t       !"#$%&'()*+,-./0123456789:;<=>?Print a value. @Print a type. AGet the name of a . B2Convert a varargs function to a regular function. }~<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@AB>?=B<CD@A13     6789:;<=> !"#$%&'()*+,-./4502vwhiegfdcba_^]`[\|jutsrqponmlk{zxyZYWXUVSTQROPNLMJKFG~EH}}~B?@A?@AB CDGRemove the IO from a function return type. This is unsafe in general. EIClass of LLVM function types that can be translated to the corresponding  Haskell type. VF3Generate a Haskell function from an LLVM function. NNote that the function is compiled for every call (Just-In-Time compilation). E If you want to compile the function once and call it a lot of times  then you should better use . GITranslate a function to Haskell code. This is a simplified interface to , the execution engine and module mechanism.  It is based on F , so see there for limitations. HCombine G and D. CDEFGHEFCDGHCDDEFGH IJKLMNIJKLMNIJKLMNIJKJKLMN'OWXPYZ[\]^Q_RST Synonym for CodeGenFunction r (Value a). `aUVComparison functions. WXYZ[ Lazy and. \ Lazy or. ]YConditional, returns first element of the pair when condition is true, otherwise second. ^_Return a value from an a. `Use x < - set $ ... to make a binding. bcdeaUnlift a function with TValue to have Value arguments. bLift a function from having Value arguments to having TValue arguments. cDefine a recursive a,, gets passed itself as the first argument. fghOPQRSTUVWXYZ[\]^_`abcTRSUVYZWX[\]^_`QaPbcOOPQRSSTUVWXYZ[\]^_`abcdiejfdefdefdefgkhlimjghijhijgghijn)*+,-.,-/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@AB C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h    i  j  !k!l!m!n o"p"p"q"q"r"s"s"t"t"u"u"v"v"w"w#x#y#z#{#|#}#~#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y$w$Z$%%%%%5%%%%'%& & &&&&&&&&&&&&'''((((((((((((((((((((((((((((((((((((((((((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(@(A(B(C(D(E(1(F(G(H(I(J(KyL{M N O P Q R S T U V W X YZ[\]9^_`abcdefghijklmnopqrstuvwxywz{w|}w~wwwwwwwwww                       + ( . p m   [          h g f e d c b  Y w Z ))2!k!!!!!!!!!!!!!!!!!!!!!!!!*!   ####$$$$$$$$$$$$$$$$$$$$$$%%%A%A%%%%%%%%?%%+%%%%%6%%%%%&&&'''''(((((((((((( ( ( ( ( (((((e((((((((((((( (!("(#(($ %&'()*+,-./0123456789:;< llvm-0.9.1.2 LLVM.CoreLLVM.Util.Foreign LLVM.FFI.CoreLLVM.FFI.AnalysisLLVM.FFI.BitReaderLLVM.FFI.BitWriterLLVM.FFI.TargetLLVM.FFI.ExecutionEngineLLVM.FFI.Transforms.IPOLLVM.FFI.Transforms.ScalarLLVM.Util.OptimizeLLVM.ExecutionEngineLLVM.Util.LoopLLVM.Util.ArithmeticLLVM.Util.FileLLVM.Util.MemoryLLVM.Target.XCoreLLVM.Target.SystemZLLVM.Target.SparcLLVM.Target.PowerPCLLVM.Target.PIC16LLVM.Target.X86LLVM.Target.MipsLLVM.Target.MSP430LLVM.Target.CppBackendLLVM.Target.CellSPULLVM.Target.CBackendLLVM.Target.BlackfinLLVM.Target.AlphaLLVM.Target.ARMLLVM.Target.NativeLLVM.Core.UtilLLVM.Core.CodeGenMonadLLVM.Core.DataLLVM.Core.TypeLLVM.Core.CodeGenLLVM.ExecutionEngine.EngineLLVM.ExecutionEngine.TargetLLVM.Core.VectorLLVM.Core.InstructionsbaseGHC.PtrPtrtype-level-0.2.4Data.TypeLevel.Num.SetsNatPoswithalloca withArrayLeninitializeNativeTarget setMetadatasetInstDebugLocationsetCurrentDebugLocationreplaceAllUsesWithmDStringInContextmDStringmDNodeInContextmDNodeinsertIntoBuilder hasMetadatagetUser getUsedValue getOperand getNextUse getMetadatagetMDKindIDInContext getMDKindIDgetGlobalContextgetFunctionAttr getFirstUsegetCurrentDebugLocationgetConstOpcode getAttribute"createFunctionPassManagerForModule contextCreate constNUWSub constNUWNeg constNUWMul constNUWAdd constNSWSub constNSWNeg constNSWMulconstIntGetZExtValueconstIntGetSExtValueconstInsertValueconstInlineAsmconstExtractValueclearInsertionPosition buildNUWSub buildNUWNeg buildNUWMul buildNUWAdd buildNSWSub buildNSWNeg buildNSWMulbuildInsertValuebuildIndirectBrbuildExtractValue buildCast buildBinOp blockAddressaddGlobalInAddressSpaceaddDestinationaddAliasx86FP80TypeInContextvoidTypeInContextstructTypeInContextremoveFunctionAttrpPCFP128TypeInContextopaqueTypeInContextmoduleCreateWithNameInContextlabelTypeInContextintTypeInContextint8TypeInContextint64TypeInContextint32TypeInContextint1TypeInContextint16TypeInContextinsertIntoBuilderWithNameinsertBasicBlockInContextgetTypeContext getTypeByNamefloatTypeInContextfP128TypeInContextdoubleTypeInContextcreateBuilderInContextcontextDisposeconstZExtOrBitCastconstTruncOrBitCastconstStructInContextconstStringInContextconstSExtOrBitCastconstRealOfStringAndSizeconstPointerNullconstPointerCast constNSWAddconstIntOfStringAndSizeconstIntOfString constIntCastconstInBoundsGEP constFSub constFPCast constFNeg constFMul constFAddconstExactSDivbuildZExtOrBitCastbuildTruncOrBitCastbuildStructGEPbuildSExtOrBitCast buildPtrDiffbuildPointerCast buildNSWAdd buildIsNullbuildIsNotNullbuildInBoundsGEPbuildGlobalStringPtrbuildGlobalString buildFNeg buildFSub buildFPCast buildFMul buildFAddbuildExactSDivbuildAggregateRetappendBasicBlockInContextalignOfaddFunctionAttr setTailCallremoveInstrAttributeremoveAttribute isTailCalladdInstrAttribute addAttributesetParamAlignmentsetInstrParamAlignmentrunPassManagerrunFunctionPassManagerpositionBuilder opaqueType labelTypeinitializeFunctionPassManagergetPreviousParamgetPreviousInstructiongetPreviousGlobalgetPreviousFunctiongetPreviousBasicBlockgetParamParent getNextParamgetNextInstruction getNextGlobalgetNextFunctiongetNextBasicBlock getLastParamgetLastInstruction getLastGlobalgetLastFunctiongetLastBasicBlockgetInstructionParentgetInsertBlockgetGlobalParent getFirstParamgetFirstInstructiongetFirstGlobalgetFirstFunctiongetFirstBasicBlockgetBasicBlockParentfinalizeFunctionPassManager dumpModuleptrDisposePassManagerdisposePassManagercreatePassManagercreateFunctionPassManagerconstRealOfStringsizeOf setTargetresolveTypeHandle refineType getVectorSize getTargetgetPointerAddressSpacegetIntTypeWidthgetArrayLengthdisposeTypeHandledisposeMessagedisposeMemoryBuffercreateTypeHandlecreateMemoryBufferWithSTDIN$createMemoryBufferWithContentsOfFileisPackedStructgetStructElementTypescountStructElementTypes structTypesetInstructionCallConvgetInstructionCallConvgetIncomingBlockgetIncomingValue addIncoming countIncomingaddCasebuildShuffleVectorbuildInsertElementbuildExtractElement buildVAArg buildSelect buildCallbuildPhi buildFCmp buildICmp buildBitCast buildIntToPtr buildPtrToInt buildFPExt buildFPTrunc buildSIToFP buildUIToFP buildFPToSI buildFPToUI buildSExt buildZExt buildTruncbuildGEP buildStore buildLoad buildFreebuildArrayAlloca buildAllocabuildArrayMalloc buildMallocbuildNotbuildNegbuildXorbuildOrbuildAnd buildAShr buildLShrbuildShl buildFRem buildSRem buildURem buildFDiv buildSDiv buildUDivbuildMulbuildSubbuildAddbuildUnreachable buildUnwind buildInvoke buildSwitch buildCondBrbuildBrbuildRet buildRetVoid positionAtEndpositionBeforeptrDisposeBuilder createBuilderdeleteBasicBlockinsertBasicBlockappendBasicBlockgetEntryBasicBlockgetBasicBlockscountBasicBlocksvalueAsBasicBlockvalueIsBasicBlockbasicBlockAsValueconstShuffleVectorconstInsertElementconstExtractElement constSelect constBitCast constIntToPtr constPtrToInt constFPToSI constFPToUI constSIToFP constUIToFP constFPExt constFPTrunc constZExt constSExt constTruncconstGEP constAShr constLShrconstShl constFCmp constICmpconstXorconstOrconstAnd constFRem constSRem constURem constFDiv constSDiv constUDivconstMulconstSubconstAddconstNotconstNeg constVector constStruct constString constRealconstInt setAlignment getAlignment setVisibility getVisibility setSection getSection setLinkage getLinkage isDeclarationsetGCgetGCsetFunctionCallConvgetFunctionCallConvgetIntrinsicID getParamsgetParam countParamsdeleteFunction addFunctiongetNamedFunctionisUndefisNullgetUndef isConstant constNull constArray constAllOnes dumpValue setValueName getValueNametypeOfsetGlobalConstantisGlobalConstantsetThreadLocal isThreadLocalgetInitializergetNamedGlobalsetInitializer deleteGlobal addGlobalgetElementTypedeleteTypeName addTypeName vectorType pointerType arrayType getParamTypescountParamTypes getReturnTypeisFunctionVarArg functionTypevoidType ppcFP128Type fp128Type x86FP80Type doubleType floatType integerType int64Type int32Type int16Typeint8Typeint1TypeptrDisposeModuleProvider%createModuleProviderForExistingModule setDataLayout getDataLayoutptrDisposeModule disposeModulemoduleCreateWithName ContextRefContextUseRef OpaqueUsePassManagerRef PassManager AttributeNakedAttributeNoImplicitFloatAttributeNoRedZoneAttributeNoCaptureAttributeStackProtectReqAttributeStackProtectAttributeOptimizeForSizeAttributeAlwaysInlineAttributeNoInlineAttributeReadOnlyAttributeReadNoneAttribute NestAttributeByValAttributeNoAliasAttributeNoUnwindAttributeStructRetAttributeInRegAttributeNoReturnAttribute SExtAttribute ZExtAttributeTypeKindVectorTypeKindOpaqueTypeKindPointerTypeKind ArrayTypeKindStructTypeKindFunctionTypeKindIntegerTypeKind LabelTypeKindPPC_FP128TypeKind FP128TypeKindX86_FP80TypeKindDoubleTypeKind FloatTypeKind VoidTypeKindMemoryBufferRef MemoryBuffer BuilderRefBuilder BasicBlockRef BasicBlock VisibilityProtectedVisibilityHiddenVisibilityDefaultVisibilityLinkageLinkerPrivateLinkage CommonLinkage GhostLinkageExternalWeakLinkageDLLExportLinkageDLLImportLinkagePrivateLinkageInternalLinkageAppendingLinkageWeakODRLinkageWeakAnyLinkageLinkOnceODRLinkageLinkOnceAnyLinkageAvailableExternallyLinkageExternalLinkageCallingConventionGHC X86FastCall X86StdCallColdFastCValueRefValueTypeRefTypeModuleProviderRefModuleProvider ModuleRefModulefromCallingConventiontoCallingConvention fromLinkage toLinkagefromVisibility toVisibility getTypeKind fromAttribute toAttributeviewFunctionCFGOnlyviewFunctionCFG verifyModuleverifyFunctionVerifierFailureActiongetBitcodeModuleInContextgetBitcodeModuleparseBitcodeInContext!getBitcodeModuleProviderInContext parseBitcodegetBitcodeModuleProviderwriteBitcodeToFDwriteBitcodeToFileHandlewriteBitcodeToFilestoreSizeOfTypesizeOfTypeInBitspreferredAlignmentOfTypepreferredAlignmentOfGlobal pointerSizeoffsetOfElementinvalidateStructLayout intPtrTypeelementAtOffsetdisposeTargetDatacreateTargetDatacopyStringRepOfTargetDatacallFrameAlignmentOfType byteOrder addTargetData aBISizeOfTypeaBIAlignmentOfType TargetDataRef TargetData ByteOrdering removeModuledisposeExecutionEnginecreateJITCompilerForModulecreateInterpreterForModulecreateExecutionEngineForModule addModule linkInJITgetPointerToGlobaladdGlobalMappinggetExecutionEngineTargetDatarunFunctionAsMainremoveModuleProvidergenericValueToPointergenericValueIntWidthfreeMachineCodeForFunction findFunctioncreateJITCompilercreateInterpretercreateGenericValueOfPointeraddModuleProvider runFunctionptrDisposeGenericValuegenericValueToFloatcreateGenericValueOfFloatgenericValueToIntcreateGenericValueOfIntrunStaticDestructorsrunStaticConstructorsptrDisposeExecutionEnginecreateExecutionEngineGenericValueRef GenericValueExecutionEngineaddStripSymbolsPassaddStripDeadPrototypesPassaddRaiseAllocationsPass addIPSCCPPassaddPruneEHPassaddLowerSetJmpPassaddIPConstantPropagationPassaddGlobalOptimizerPassaddGlobalDCEPassaddFunctionInliningPassaddFunctionAttrsPassaddDeadTypeEliminationPassaddDeadArgEliminationPassaddConstantMergePassaddArgumentPromotionPassaddVerifierPassaddTailCallEliminationPassaddSimplifyLibCallsPassaddScalarReplAggregatesPass addSCCPPassaddMemCpyOptPassaddLoopUnswitchPassaddLoopUnrollPassaddLoopRotatePassaddLoopIndexSplitPassaddLoopDeletionPass addLICMPassaddJumpThreadingPassaddIndVarSimplifyPassaddDeadStoreEliminationPassaddAggressiveDCEPassaddReassociatePassaddPromoteMemoryToRegisterPassaddInstructionCombiningPass addGVNPassaddDemoteMemoryToRegisterPassaddConstantPropagationPassaddCFGSimplificationPass destroyModulereadBitcodeFromFileGlobalMappingsCodeGenFunction CodeGenModulegetGlobalMappingsoptimizeModule PackedStructStructLabelVectorArrayFP128WordNIntN CastVarArgsVarArgs UnknownSize:& IsFunctionIsSized IsFirstClassNumberOfElements IsPrimitive IsFloatingIsIntegerOrPointer IsIntegerArithmeticType FloatingType IntegerType IsArithmeticarithmeticTypeTypeDescTDStructTDLabel TDFunctionTDPtrTDVectorTDArrayTDIntTDVoidTDFP128TDDoubleTDFloatIsTypetypeDesctypeReftypeNameisSigned isFloating&TGlobal TFunctionGlobal FunctionRet FunctionArgsFunctionIsConst ConstValue ModuleValue newModulenewNamedModule defineModule createModulegetModuleValuescastModuleValuevalueOfvaluezeroallOnesundefnewNamedFunction newFunctiondefineFunctioncreateFunctioncreateNamedFunctionsetFuncCallConv addAttributescreateBasicBlock newBasicBlocknewNamedBasicBlockdefineBasicBlockgetCurrentBasicBlocktoLabel fromLabelexternFunctionstaticFunctionnewNamedGlobal newGlobal defineGlobal createGlobalcreateNamedGlobal createStringcreateStringNul withString withStringNulconstPackedStructGeneric FreePointers EngineAccessrunEngineAccessgetPointerToFunctionaddFunctionValueaddGlobalMappingsgetFreePointers littleEndianwithIntPtrType getTargetDatatargetDataFromStringtoVector fromVectorvector IsIndexArg GetElementPtrAllocArgCallArgsCmpRetCmpOp FPPredicateFPTFPUNEFPULEFPULTFPUGEFPUGTFPUEQFPUNOFPORDFPONEFPOLEFPOLTFPOGEFPOGTFPOEQFPFalse IntPredicateIntSLEIntSLTIntSGEIntSGTIntULEIntULTIntUGEIntUGTIntNEIntEQ CmpPredicateCmpLECmpLTCmpGECmpGTCmpNECmpEQGetValueABinOpRet TerminateretcondBrbrswitchunwind unreachableaddsubmuliaddisubimulidiviremudivsdivuremsremfaddfsubfmulfdivfremshllshrashrandorxorneginegfneginvextractelement insertelement shufflevector extractvalue insertvaluetrunczextsextfptruncfpextfptouifptosiuitofpsitofpptrtointinttoptrbitcast bitcastUnifycmppcmpicmpfcmpselectcallinvoke callWithConvinvokeWithConvphi addPhiInputsmalloc arrayMalloc arrayAllocafreeloadstore getElementPtrgetElementPtr0dumpType castVarArgsUnsafe unsafePurify TranslatablegenerateFunctionsimpleFunctionunsafeGenerateFunctionPhiphisaddPhisforLoop mapVector mapVector2 CallIntrinsic UnwrapArgs ArithFunctionCmpTValue%==%/=%>%>=%<%<=%&&%||???retrnset arithFunctiontoArithFunctionrecursiveFunctionwriteCodeGenModuleoptimizeFunctionoptimizeFunctionCG IsLengthTypememcpymemmovememsetinitializeXCoreTargetinitializeXCoreTargetInfoinitializeTargetinitializeSystemZTargetinitializeSystemZTargetInfoinitializeSparcTargetinitializeSparcTargetInfoinitializePowerPCTargetinitializePowerPCTargetInfoinitializePIC16TargetinitializePIC16TargetInfoinitializeX86TargetinitializeX86TargetInfoinitializeMipsTargetinitializeMipsTargetInfoinitializeMSP430TargetinitializeMSP430TargetInfoinitializeCppBackendTargetinitializeCppBackendTargetInfoinitializeCellSPUTargetinitializeCellSPUTargetInfoinitializeCBackendTargetinitializeCBackendTargetInfoinitializeBlackfinTargetinitializeBlackfinTargetInfoinitializeAlphaTargetinitializeAlphaTargetInfoinitializeARMTargetinitializeARMTargetInforefDonegetTypeKindCUInt CAttribute TypeHandleRef TypeHandleExecutionEngineReffromPassManager fromBuilderfromModuleProvider fromModule withModule valueHasType showTypeOf showType'withModuleProvider withBuilderconstStringInternalconstStringNulmakeCallmakeCallWithCc makeInvokemakeInvokeWithCc buildEmptyPhiwithEmptyCString addPhiInswithPassManager getValueNameUForeign.C.StringCStringForeign.Marshal.ArrayCGFCGFState cgf_module cgf_builder cgf_functioncgf_nextCGMCGMState cgm_module cgm_externscgm_global_mappingscgm_nextgenMSym getModulerunCodeGenModulegenFSym getFunction getBuildergetFunctionModule getExterns putExternsrunCodeGenFunctiontransformers-0.2.2.0Control.Monad.IO.ClassliftIOaddOptimizationPassescreateStandardFunctionPassescreateStandardModulePassesghc-prim GHC.TypesIOPtrSize StructFields fieldTypesfuncType IsConstStructconstValueFieldsOfFAapArgs FunctionRef IsConstFields constFieldsOfconstOf unConstValueunValue constOfPtr constEnumconstIconstF applyArgswithCurrentBuilder fixArraySizestring toGeneric fromGenericfromGenericValueEAEAState ea_engine ea_providers theEngine getTheEngineaddFunctionValueCorewithGenericValuecreateGenericValueWithwithAllgetRunFunction toGenericIntfromGenericInt toGenericRealfromGenericRealgetEngineTargetDataRefmakeTargetDataMkVector ourTargetDataunVectorbinopunop alignedFree alignedMallocGetFieldgetArg getIxList getAllocArgdoCallCallercmpBldcmpop FFIConvertgetIxFFIUnOpabinop FFIConstBinOpFFIBinOpret' terminatewithCurrentBuilder_withArithmeticType buildUnOpconvertuintFromCmpPredicatesintFromCmpPredicatefpFromCmpPredicatefromIntPredicatefromFPPredicateGHC.BoolFalseucmpBldscmpBldfcmpBld_ucmp_scmp doCallDef_sizeOf_alignOf sizeOfArrayunConst translatecallIntrinsic1'callIntrinsic2' unwrapArgs LiftTuple liftTupleUncurryNuncurryNcurryNarithFunction' adjSignedadjFloat addReadNonecallIntrinsicP1callIntrinsicP2macOScallIntrinsic1callIntrinsic2optimizeoptimizeFunction' memcpyFunc memmoveFunc memsetFunc