!eB /      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()* + , - . Nonesllvm-tfPrint a value.tllvm-tf Print a type.ullvm-tfGet the name of a g.vllvm-tf1Convert a varargs function to a regular function. /0123456789:;<=>?@ABCDEFGHIJKL !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_MNO`abcdefgPhQRSTUVWXYZ[\]^_`abcdeijfghijklmnopqrstuklmvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdnopqrstuvw*JN@8lQO+)(Fd.g^XbW[-Vac;<YZ4/1032rqponhj_HL>69PDem"`IM?7:ARTBSikf ]GK=5ECU !&$%#',\vstuNoneFwxyz{|}~Fwxyz{|}~ Noneefghijklmnopqrstuvwxyz{NoneHV'[llvm-tfWClass of LLVM function types that can be translated to the corresponding Haskell type.llvm-tf2Generate a Haskell function from an LLVM function.Note that the function is compiled for every call (Just-In-Time compilation). If you want to compile the function once and call it a lot of times then you should better use .llvm-tfTranslate a function to Haskell code. This is a simplified interface to the execution engine and module mechanism. It is based on , so see there for limitations.llvm-tfCombine  and .llvm-tfFRemove the IO from a function return type. This is unsafe in general.4|}~%None(None+;llvm-tfAvailable since LLVM-8.llvm-tfAvailable since LLVM-8.llvm-tfAvailable since LLVM-8.llvm-tfAvailable since LLVM-8. None =>?HUVX,None =?@AHVX9llvm-tfTurn (a -> b -> CodeGenFunction r c) into  (a -> b -> CodeGenFunction r ()) for  r ~ Result cllvm-tf Synonym for CodeGenFunction r (Value a).llvm-tfComparison functions.llvm-tfComparison functions.llvm-tfComparison functions.llvm-tfComparison functions.llvm-tfComparison functions.llvm-tfComparison functions.llvm-tf Lazy and.llvm-tfLazy or. llvm-tfXConditional, returns first element of the pair when condition is true, otherwise second. llvm-tfReturn a value from an  . llvm-tfUse x <- set $ ... to make a binding. llvm-tfUnlift a function with TValue to have Value arguments.llvm-tfLift a function from having Value arguments to having TValue arguments.llvm-tfDefine a recursive  +, gets passed itself as the first argument.           44444432 0 0NoneX:#$%&$%&# NoneAQ*llvm-tfBResult tells whether the module was modified by any of the passes.It is very important that you set target triple and target data layout before optimizing. Otherwise the optimizer will make wrong assumptions and e.g. corrupt your record offsets. See e.g. example/Array for how this can be achieved.[In the future I might enforce via types that you set target parameters before optimization.** SafeA NoneXA+,-.+,-.                  ! " # $% $& $' $'()*()+(),()-().()/()0()1()2()3()4()5()6()7()8()9():();()<()=(>?(>@(>A(>B(>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(>q(>r(>s(>t(>u(>v(>w(>x(>y(>z({|({}({~({({({((((((((((((((((((((((((((((((((((((      !"#$%&'()*+,-./0123456789:;<=>? @ A B 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(fg(fh(fi(fj(kl(kl(fm(fn(ko(ko(kp(kp(kq(kq(kr(kr(fs(kt(kt(ku(ku(vw(fx(fy(fz(f{(f|(f}(f~(f(f(f(f(f(f(f(f(k(k(k(k(k((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?@(?A(?B(?C(?D(?E(?F(?G(?H(?I(?J(?K(?L(?M(fN(fO(fP(fQ(fR(fS(fT(fU(fV(fW(fX(fY(fZ(f[(f(f\(f](f^(f_(f`(fa(fb(fc(fd(fe(ff(fg(fh(fi(fj(fk(fl(fm(fn(fo(fp(fq(f(fr(fs(ft(u(u(u(u(uv(u(u(u(u(u(u(u(u(u(u(u(u(uw(u(u(u(u(ux(yz(y{(y|(y}(y~(y(y(y(y(y(y(y(y(y(y((((llvm-tf-9.2-inplace LLVM.CoreLLVM.Core.AttributeLLVM.ExecutionEngineLLVM.Util.FileLLVM.Util.IntrinsicLLVM.Util.LoopLLVM.Util.ArithmeticLLVM.Util.MemoryLLVM.Util.OptimizeLLVM.Util.ForeignLLVM.Core.GuidedLLVM.Util.ProxyQllvm-ffi-9.1.0.1-0096bdf14744f90ecacfda4a344cabfbc87205e89b22cde11fe0dc4316eb0fdeLLVM.Target.NativeinitializeNativeTarget LLVM.FFI.Core hostTripleLinkerPrivateWeakLinkageLinkerPrivateLinkage CommonLinkage GhostLinkageExternalWeakLinkageDLLExportLinkageDLLImportLinkagePrivateLinkageInternalLinkageAppendingLinkageWeakODRLinkageWeakAnyLinkageLinkOnceODRAutoHideLinkageLinkOnceODRLinkageLinkOnceAnyLinkageAvailableExternallyLinkageExternalLinkageLinkage LLVM.Raw.CoreattributeFunctionIndexattributeReturnIndexAttributeIndexllvm-tf-9.2-inplace-privateLLVM.Core.UtilannotateValueListcreateFunctionPassManagercreatePassManager destroyModulegetBasicBlocksgetDep getFunctionsgetGlobalVariablesgetInstructions getOperands getParamsgetUsergetUsersgetUseshasUsers isChildOfreadBitcodeFromFilewriteBitcodeToFileModule PassManagerLLVM.Core.CodeGen addAttributesallOnescastModuleValue constArrayconstCyclicArrayconstCyclicVectorconstPackedStruct constStruct constVectorcreateBasicBlockcreateFunction createGlobal createModulecreateNamedFunctioncreateNamedGlobal createStringcreateStringNuldefineBasicBlockdefineFunction defineGlobal defineModuleexternFunction externGlobal fromLabelfunctionParametergetCurrentBasicBlockgetModuleValues newBasicBlock newFunction newGlobal newModulenewNamedBasicBlocknewNamedFunctionnewNamedGlobalnewNamedModule setDataLayoutsetFuncCallConv setTargetstaticFunction staticGlobalstaticNamedFunctiontoLabelundefvaluevalueOf withString withStringNulzero Attribute BasicBlock ConstValueFunctionGlobalIsConstconstOf IsConstFields ModuleValue TFunctionTGlobalValueLLVM.Core.CodeGenMonadCodeGenFunctionGlobalMappings CodeGenModulegetGlobalMappings getModuleliftCodeGenModuleLLVM.Core.Vector consVector cyclicVectorvector fromVectortoVector dumpValuedumpType getValueName castVarArgszeroextsignextinregbyvalsretalignnoalias nocapturenestreturnednonnulldereferenceabledereferenceableOrNull swiftself swifterrorimmarg alignstack allocsize alwaysinlinebuiltincold convergentinaccessiblememonlyinaccessiblememOrArgmemonly inlinehint jumptableminsizenaked noJumpTables nobuiltin noduplicatenofreenoimplicitfloatnoinline nonlazybind noredzoneindirectTlsSegRefsnoreturn norecurse willreturnnosyncnounwindnullPointerIsValid optforfuzzingoptnoneoptsizepatchableFunction probeStackreadnonereadonlystackProbeSizenoStackArgProbe writeonly argmemonly returnsTwice safestacksanitizeAddresssanitizeMemorysanitizeThreadsanitizeHwaddresssanitizeMemtagspeculativeLoadHardening speculatablesspsspreq sspstrongstrictfpuwtable nocfCheckshadowcallstackLLVM.ExecutionEngine.Marshal alignmentallocacastFromStoredPtrcastToStoredPtrpokeListsizeOf sizeOfArraywithMarshalpeekpoke MarshalVector peekVector pokeVectorStored getStored StructFieldsLLVM.ExecutionEngine.EngineaddFunctionValueaddGlobalMappings addModule getEnginegetExecutionFunctiongetPointerToFunctionrunEngineAccessrunEngineAccessWithModule EngineAccessExecutionEngineExecutionFunctionGenericImporterUnsafeunsafeRemoveIO TranslatablegenerateFunctionsimpleFunctionunsafeGenerateFunction$fTranslatableIO$fTranslatable-> $fUnsafeIO $fUnsafe->writeCodeGenModulecall1call2minmaxabstruncatefloor maybeUAddSat maybeSAddSat maybeUSubSat maybeSSubSatPhiphisaddPhisforLoop mapVector mapVector2 $fPhi(,,)$fPhi(,) $fPhiValue$fPhi() CallIntrinsicToArithFunction ArithFunctionReturnTValue%==%/=%>%>=%<%<=%&&%||???retrnset arithFunctiontoArithFunctionrecursiveFunction$fRealFracCodeGenFunction$fFractionalCodeGenFunction$fIntegralCodeGenFunction$fRealCodeGenFunction$fEnumCodeGenFunction$fNumCodeGenFunction$fOrdCodeGenFunction$fEqCodeGenFunction $fReturnz->->'$fReturnzCodeGenFunctionCodeGenFunction$fArithFunctionr->->.$fArithFunctionrCodeGenFunctionCodeGenFunction$fToArithFunctionr->->#$fToArithFunctionrIOCodeGenFunction$fCallIntrinsicVector$fCallIntrinsicDouble$fCallIntrinsicFloat$fRealFloatCodeGenFunction$fFloatingCodeGenFunction IsLengthTypememcpymemmovememset$fIsLengthTypeWord64$fIsLengthTypeWord32$fIsLengthTypeWordoptimizeModule withArrayLen proxyFromList IntPredicateIntEQIntNEIntUGTIntUGEIntULTIntULEIntSGTIntSGEIntSLTIntSLE FPPredicateFPFalseFPOEQFPOGTFPOGEFPOLTFPOLEFPONEFPORDFPUNOFPUEQFPUGTFPUGEFPULTFPULEFPUNEFPTrueLtfp-1.0.1.1-36e65907eb56635d3c52da7a19eaf57f8c5091da3700d0f0f106499fb15d1accType.Data.Num.Decimal.NumberNaturalPositive FunctionArgsFunctionCodeGenFunctionResultLLVM.Core.Type IsFirstClass IsFunctionIsSizedSizeOfLLVM.Core.DataArrayIsTypetypeDescIntN PackedStructPtrStruct IsPrimitiveVectorWordNLLVM.Core.UnaryVector FixedList IsIntegerSignedTypeDescTDDoubleTDFloatTDPtrTDIntTDLabelTDVoid TDFunctionTDArrayTDFP128 TDInvalidTypeTDStructTDVectorLabeluncheckedFromPtruncheckedToPtrFP128LLVM.Core.Instructionsadaptadd addPhiInputsand applyCall arrayAlloca arrayMallocashrbitcastbrcallcallFromFunction callWithConvcallWithConvFromFunctioncmpcondBrextextractelement extractvaluefaddfcmpfdivfmulfnegfpextfptointfptosifptouifptruncfreefremfsub getElementPtrgetElementPtr0 getInstrDesciadd iaddNoWrapicmpidivimul imulNoWrapineg inegNoWrap insertelement insertvalueinttofpinttoptrinvinvokeinvokeFromFunctioninvokeWithConvinvokeWithConvFromFunctioniremisub isubNoWraploadlshrmallocmulnegorpcmpphiptrtointretrunCallsadaptsdivselect setFastMathsetHasAllowReciprocal setHasNoInfs setHasNoNaNssetHasNoSignedZerossextshlshr shufflevectorsitofpsremstoresubswitchtruncudivuitofp unreachableuremxorzadaptzextAllocArgArgDescAEAIALAV BinOpDescBOAShRBOAddBOAddNswBOAddNuw BOAddNuwNswBOAndBOFAddBOFDivBOFMulBOFRemBOFSubBOLShRBOMulBOMulNswBOMulNuw BOMulNuwNswBOOrBOSDiv BOSDivExactBOSRemBOShLBOSubBOSubNswBOSubNuw BOSubNuwNswBOUDivBOURemBOXorCallCallArgs CmpResultCmpRetCmpValueResultGetValue ValueType InstrDescIDAllocaIDBinOp IDBitcastIDBrCond IDBrUncondIDCallIDExtractElementIDExtractValueIDFCmpIDFPExt IDFPTruncIDFPtoSIIDFPtoUIIDGetElementPtrIDICmp IDIndirectBrIDInsertElement IDInsertValue IDIntToPtr IDInvalidOpIDInvokeIDLoadIDPhi IDPtrToIntIDRet IDRetVoidIDSExtIDSItoFPIDSelectIDShuffleVectorIDStoreIDSwitchIDTruncIDUItoFP IDUnreachableIDUnwind IDUserOp1 IDUserOp2IDVAArgIDZExtRetResult Terminate ValueCons2 BinOpValueLLVM.Core.Instructions.Private CmpPredicateCmpEQCmpGECmpGTCmpLECmpLTCmpNE GetElementPtrElementPtrTypeGetField FieldType IsIndexArg IsIndexType ValueCons IsFloating IsArithmeticarithmeticTypeArithmeticType FloatingType IntegerTypeIsIntegerOrPointer& consStruct curryStructfromPtrintrinsicTypeName isFloatingisSignedtoPtr typeDesc2typeNametypeRef uncurryStruct unsafeTypeRef:& CastVarArgs ConsStruct ConsResult PartialStructcurryConsStruct CurryStructCurriedIntSizeIsScalarOrVectorShapeOfPtrSize ScalarShapeShape ShapedTypeStorable UnknownSizeVarArgs VectorShapeLLVM.Core.Instructions.GuidedextBoolscalarGuideLLVM.ExecutionEngine.Target TargetDataabiAlignmentOfType abiSizeOfTypecallFrameAlignmentOfType dataLayoutStr getTargetData intPtrType littleEndianoffsetOfElement pointerSizepreferredAlignmentOfTypesizeOfTypeInBitsstoreSizeOfTypetargetDataFromStringwithIntPtrTypeLLVM.Core.ProxyProxyelement fromValue