-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Apple array language compiler -- -- Compiler for a typed, APL-inspired array language. @package apple @version 0.2.0.0 module Bits cLog :: FiniteBits a => a -> Maybe Int64 module CF -- | Control-flow annotations data ControlAnn ControlAnn :: !Int -> [Int] -> !UD -> ControlAnn [node] :: ControlAnn -> !Int [conn] :: ControlAnn -> [Int] [ud] :: ControlAnn -> !UD data UD UD :: !IntSet -> !IntSet -> !IntSet -> !IntSet -> UD [usesNode] :: UD -> !IntSet [usesFNode] :: UD -> !IntSet [defsNode] :: UD -> !IntSet [defsFNode] :: UD -> !IntSet data Liveness Liveness :: !IntSet -> !IntSet -> !IntSet -> !IntSet -> Liveness [ins] :: Liveness -> !IntSet [out] :: Liveness -> !IntSet [fins] :: Liveness -> !IntSet [fout] :: Liveness -> !IntSet data NLiveness NLiveness :: Int -> !Liveness -> NLiveness [nx] :: NLiveness -> Int [liveness] :: NLiveness -> !Liveness data Live Live :: !IntSet -> !IntSet -> !IntSet -> !IntSet -> Live [new] :: Live -> !IntSet [done] :: Live -> !IntSet [fnew] :: Live -> !IntSet [fdone] :: Live -> !IntSet instance GHC.Classes.Eq CF.Liveness instance Prettyprinter.Internal.Pretty CF.Live instance Prettyprinter.Internal.Pretty CF.Liveness module CF.AL newtype AL AL :: Int -> AL insert :: AL -> a -> IntMap a -> IntMap a singleton :: AL -> IntSet sinsert :: AL -> IntSet -> IntSet module Data.Copointed class Functor p => Copointed (p :: Type -> Type) copoint :: Copointed p => p a -> a instance Data.Copointed.Copointed ((,) a) module Asm.BB data BB (arch :: Type -> Type -> Type -> Type) reg freg a b BB :: [arch reg freg a] -> b -> BB (arch :: Type -> Type -> Type -> Type) reg freg a b [unBB] :: BB (arch :: Type -> Type -> Type -> Type) reg freg a b -> [arch reg freg a] [caBB] :: BB (arch :: Type -> Type -> Type -> Type) reg freg a b -> b instance Data.Copointed.Copointed (Asm.BB.BB arch reg freg a) instance GHC.Internal.Base.Functor (Asm.BB.BB arch reg freg a) module Hs.FFI bsFp :: ByteString -> IO (FunPtr a, CSize) allocNear :: Int -> CSize -> IO (Ptr a) allocExec :: CSize -> IO (Ptr a) finish :: ByteString -> Ptr CChar -> IO (FunPtr a) freeFunPtr :: Int -> FunPtr a -> IO () module LI intervals :: Copointed p => [p NLiveness] -> [p Live] module LR reconstruct :: Copointed p => [Int] -> LivenessMap -> [p ControlAnn] -> [p NLiveness] reconstructFlat :: Copointed p => [p ControlAnn] -> [p NLiveness] module Op data FUn FSqrt :: FUn FLog :: FUn FSin :: FUn FCos :: FUn FAbs :: FUn data FBin FPlus :: FBin FMinus :: FBin FTimes :: FBin FDiv :: FBin FMax :: FBin FMin :: FBin FExp :: FBin data IUn IEven :: IUn IOdd :: IUn data BUn BNeg :: BUn data IBin IPlus :: IBin IMinus :: IBin ITimes :: IBin IAsr :: IBin IMax :: IBin IMin :: IBin IDiv :: IBin IAsl :: IBin IRem :: IBin BI :: !BBin -> IBin data BBin AndB :: BBin OrB :: BBin XorB :: BBin data IRel IEq :: IRel INeq :: IRel IGt :: IRel ILt :: IRel ILeq :: IRel IGeq :: IRel data FRel FEq :: FRel FNeq :: FRel FGt :: FRel FLt :: FRel FLeq :: FRel FGeq :: FRel instance Prettyprinter.Internal.Pretty Op.BBin instance Prettyprinter.Internal.Pretty Op.BUn instance Prettyprinter.Internal.Pretty Op.FBin instance Prettyprinter.Internal.Pretty Op.FRel instance Prettyprinter.Internal.Pretty Op.FUn instance Prettyprinter.Internal.Pretty Op.IBin instance Prettyprinter.Internal.Pretty Op.IRel instance Prettyprinter.Internal.Pretty Op.IUn module Prettyprinter.Ext (<#>) :: Doc a -> Doc a -> Doc a infixr 6 <#> class PS a ps :: PS a => Int -> a -> Doc ann parensp :: Bool -> Doc ann -> Doc ann prettyLines :: [Doc ann] -> Doc ann tupledBy :: Doc ann -> [Doc ann] -> Doc ann ptxt :: Pretty a => a -> Text aText :: Doc a -> Text prettyDumpBinds :: Pretty b => IntMap b -> Doc a pAD :: (Foldable t, Functor t) => IntMap (t Word64) -> Doc ann module IR data Exp ConstI :: Int64 -> Exp Reg :: Temp -> Exp IB :: IBin -> Exp -> Exp -> Exp FRel :: FRel -> FExp -> FExp -> Exp IRel :: IRel -> Exp -> Exp -> Exp Is :: Temp -> Exp IU :: IUn -> Exp -> Exp BU :: BUn -> Exp -> Exp IRFloor :: FExp -> Exp EAt :: AE -> Exp BAt :: AE -> Exp LA :: !Int -> Exp data FExp ConstF :: Double -> FExp FB :: FBin -> FExp -> FExp -> FExp FConv :: Exp -> FExp FReg :: FTemp -> FExp FU :: FUn -> FExp -> FExp FAt :: AE -> FExp data Stmt L :: Label -> Stmt MJ :: Exp -> Label -> Stmt J :: Label -> Stmt MT :: Temp -> Exp -> Stmt MX :: FTemp -> FExp -> Stmt Ma :: AL -> Temp -> Exp -> Stmt Free :: Temp -> Stmt RA :: !AL -> Stmt Wr :: AE -> Exp -> Stmt WrF :: AE -> FExp -> Stmt WrB :: AE -> Exp -> Stmt Cmov :: Exp -> Temp -> Exp -> Stmt Fcmov :: Exp -> FTemp -> FExp -> Stmt Cset :: Temp -> Exp -> Stmt Sa :: Temp -> Exp -> Stmt Pop :: Exp -> Stmt Cpy :: AE -> AE -> Exp -> Stmt Cpy1 :: AE -> AE -> Exp -> Stmt C :: Label -> Stmt R :: Label -> Stmt IRnd :: Temp -> Stmt FRnd :: FTemp -> Stmt data Temp ITemp :: !Int -> Temp ATemp :: !Int -> Temp C0 :: Temp C1 :: Temp C2 :: Temp C3 :: Temp C4 :: Temp C5 :: Temp CRet :: Temp data FTemp FTemp :: !Int -> FTemp F0 :: FTemp F1 :: FTemp F2 :: FTemp F3 :: FTemp F4 :: FTemp F5 :: FTemp FRet :: FTemp FRet1 :: FTemp type Label = Word type AsmData = IntMap [Word64] data AE AP :: Temp -> Maybe Exp -> Maybe AL -> AE data WSt WSt :: !Label -> !Int -> WSt [wlabel] :: WSt -> !Label [wtemps] :: WSt -> !Int prettyIR :: (AsmData, [Stmt]) -> Doc ann instance GHC.Classes.Eq IR.FTemp instance GHC.Classes.Eq IR.Temp instance GHC.Internal.Real.Fractional IR.FExp instance GHC.Internal.Num.Num IR.Exp instance GHC.Internal.Num.Num IR.FExp instance GHC.Classes.Ord IR.FTemp instance Prettyprinter.Internal.Pretty IR.AE instance Prettyprinter.Internal.Pretty IR.Exp instance Prettyprinter.Internal.Pretty IR.FExp instance Prettyprinter.Internal.Pretty IR.FTemp instance Prettyprinter.Internal.Pretty IR.Stmt instance Prettyprinter.Internal.Pretty IR.Temp instance GHC.Internal.Show.Show IR.Exp instance GHC.Internal.Show.Show IR.FExp instance GHC.Internal.Show.Show IR.Stmt instance GHC.Internal.Show.Show IR.Temp module IR.Opt optIR :: [Stmt] -> [Stmt] module IR.CF rToInt :: Temp -> Int fToInt :: FTemp -> Int mkControlFlow :: [Stmt] -> ([(Stmt, ControlAnn)], Int) module IR.Hoist loop :: [Stmt] -> ([Loop], [(Stmt, ControlAnn)], Array Int (Stmt, ControlAnn)) hoist :: [Stmt] -> (Graph, Tree N, [(Stmt, ControlAnn)], Array Int (Stmt, ControlAnn)) pall :: [Stmt] -> [Stmt] module Hs.A data Apple a AA :: !Int64 -> [Int64] -> [a] -> Apple a type U a = Ptr Apple a data AB F :: AB T :: AB type AI = Apple Int64 type AF = Apple Double data P2 a b P2 :: a -> b -> P2 a b data P3 a b c P3 :: a -> b -> c -> P3 a b c data P4 a b c d P4 :: a -> b -> c -> d -> P4 a b c d hs2 :: P2 a b -> (a, b) hs3 :: P3 a b c -> (a, b, c) hs4 :: P4 a b c d -> (a, b, c, d) instance GHC.Classes.Eq Hs.A.AB instance GHC.Internal.Base.Functor Hs.A.Apple instance Prettyprinter.Internal.Pretty Hs.A.AB instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (Hs.A.Apple a) instance (Prettyprinter.Internal.Pretty a, Prettyprinter.Internal.Pretty b) => Prettyprinter.Internal.Pretty (Hs.A.P2 a b) instance (Prettyprinter.Internal.Pretty a, Prettyprinter.Internal.Pretty b, Prettyprinter.Internal.Pretty c) => Prettyprinter.Internal.Pretty (Hs.A.P3 a b c) instance (Prettyprinter.Internal.Pretty a, Prettyprinter.Internal.Pretty b, Prettyprinter.Internal.Pretty c, Prettyprinter.Internal.Pretty d) => Prettyprinter.Internal.Pretty (Hs.A.P4 a b c d) instance GHC.Internal.Show.Show Hs.A.AB instance GHC.Internal.Foreign.Storable.Storable Hs.A.AB instance GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (Hs.A.Apple a) instance (GHC.Internal.Foreign.Storable.Storable a, GHC.Internal.Foreign.Storable.Storable b) => GHC.Internal.Foreign.Storable.Storable (Hs.A.P2 a b) instance (GHC.Internal.Foreign.Storable.Storable a, GHC.Internal.Foreign.Storable.Storable b, GHC.Internal.Foreign.Storable.Storable c) => GHC.Internal.Foreign.Storable.Storable (Hs.A.P3 a b c) instance (GHC.Internal.Foreign.Storable.Storable a, GHC.Internal.Foreign.Storable.Storable b, GHC.Internal.Foreign.Storable.Storable c, GHC.Internal.Foreign.Storable.Storable d) => GHC.Internal.Foreign.Storable.Storable (Hs.A.P4 a b c d) module C data Temp ITemp :: !Int -> Temp ATemp :: !Int -> Temp C0 :: Temp C1 :: Temp C2 :: Temp C3 :: Temp C4 :: Temp C5 :: Temp CRet :: Temp data FTemp FTemp :: !Int -> FTemp F0 :: FTemp F1 :: FTemp F2 :: FTemp F3 :: FTemp F4 :: FTemp F5 :: FTemp FRet0 :: FTemp FRet1 :: FTemp data BTemp BTemp :: !Int -> BTemp CBRet :: BTemp data ArrAcc AElem :: Temp -> CE -> CE -> Maybe AL -> Int64 -> ArrAcc ARnk :: Temp -> Maybe AL -> ArrAcc ADim :: Temp -> CE -> Maybe AL -> ArrAcc At :: Temp -> [CE] -> [CE] -> Maybe AL -> Int64 -> ArrAcc Raw :: Temp -> CE -> Maybe AL -> Int64 -> ArrAcc TupM :: Temp -> Maybe AL -> ArrAcc data CE EAt :: ArrAcc -> CE Bin :: IBin -> CE -> CE -> CE Tmp :: Temp -> CE ConstI :: !Int64 -> CE CFloor :: CFE -> CE LA :: !Int -> CE DP :: Temp -> CE -> CE data CFE FAt :: ArrAcc -> CFE FBin :: FBin -> CFE -> CFE -> CFE FUn :: FUn -> CFE -> CFE FTmp :: FTemp -> CFE ConstF :: !Double -> CFE IE :: CE -> CFE data PE IRel :: IRel -> CE -> CE -> PE FRel :: FRel -> CFE -> CFE -> PE Boo :: BBin -> PE -> PE -> PE BConst :: Bool -> PE IUn :: IUn -> CE -> PE Is :: BTemp -> PE PAt :: ArrAcc -> PE BU :: BUn -> PE -> PE data CS a For :: a -> Temp -> CE -> IRel -> CE -> [CS a] -> CS a [lann] :: CS a -> a [ixVar] :: CS a -> Temp [eLow] :: CS a -> CE [loopCond] :: CS a -> IRel [eUpper] :: CS a -> CE [body] :: CS a -> [CS a] For1 :: a -> Temp -> CE -> IRel -> CE -> [CS a] -> CS a [lann] :: CS a -> a [ixVar] :: CS a -> Temp [eLow] :: CS a -> CE [loopCond] :: CS a -> IRel [eUpper] :: CS a -> CE [body] :: CS a -> [CS a] While :: a -> Temp -> IRel -> CE -> [CS a] -> CS a [lann] :: CS a -> a [iVar] :: CS a -> Temp [loopCond] :: CS a -> IRel [eDone] :: CS a -> CE [body] :: CS a -> [CS a] MT :: a -> Temp -> CE -> CS a [lann] :: CS a -> a [tDest] :: CS a -> Temp [tSrc] :: CS a -> CE MX :: a -> FTemp -> CFE -> CS a [lann] :: CS a -> a [ftDest] :: CS a -> FTemp [ftSrc] :: CS a -> CFE MB :: a -> BTemp -> PE -> CS a [lann] :: CS a -> a [bDest] :: CS a -> BTemp [pSrc] :: CS a -> PE Wr :: a -> ArrAcc -> CE -> CS a [lann] :: CS a -> a [addr] :: CS a -> ArrAcc [wrE] :: CS a -> CE WrF :: a -> ArrAcc -> CFE -> CS a [lann] :: CS a -> a [addr] :: CS a -> ArrAcc [wrF] :: CS a -> CFE WrP :: a -> ArrAcc -> PE -> CS a [lann] :: CS a -> a [addr] :: CS a -> ArrAcc [wrB] :: CS a -> PE Ma :: a -> AL -> Temp -> CE -> CE -> !Int64 -> CS a [lann] :: CS a -> a [label] :: CS a -> AL [temp] :: CS a -> Temp [rank] :: CS a -> CE [nElem] :: CS a -> CE [elemSz] :: CS a -> !Int64 Free :: Temp -> CS a MaΠ :: a -> AL -> Temp -> CE -> CS a [lann] :: CS a -> a [label] :: CS a -> AL [temp] :: CS a -> Temp [aBytes] :: CS a -> CE RA :: a -> !AL -> CS a [lann] :: CS a -> a [label] :: CS a -> !AL CpyE :: a -> ArrAcc -> ArrAcc -> CE -> !Int64 -> CS a [lann] :: CS a -> a [aDest] :: CS a -> ArrAcc [aSrc] :: CS a -> ArrAcc [nElem] :: CS a -> CE [elemSz] :: CS a -> !Int64 CpyD :: a -> ArrAcc -> ArrAcc -> CE -> CS a [lann] :: CS a -> a [aDest] :: CS a -> ArrAcc [aSrc] :: CS a -> ArrAcc [nDims] :: CS a -> CE Ifn't :: a -> PE -> [CS a] -> CS a [lann] :: CS a -> a [scond] :: CS a -> PE [branch] :: CS a -> [CS a] If :: a -> PE -> [CS a] -> [CS a] -> CS a [lann] :: CS a -> a [scond] :: CS a -> PE [iBranch] :: CS a -> [CS a] [eBranch] :: CS a -> [CS a] Sa :: a -> Temp -> CE -> CS a [lann] :: CS a -> a [temp] :: CS a -> Temp [allocBytes] :: CS a -> CE Pop :: a -> CE -> CS a [lann] :: CS a -> a [aBytes] :: CS a -> CE Cmov :: a -> PE -> Temp -> CE -> CS a [lann] :: CS a -> a [scond] :: CS a -> PE [tdest] :: CS a -> Temp [src] :: CS a -> CE Fcmov :: a -> PE -> FTemp -> CFE -> CS a [lann] :: CS a -> a [scond] :: CS a -> PE [fdest] :: CS a -> FTemp [fsrc] :: CS a -> CFE Cset :: a -> PE -> BTemp -> CS a [lann] :: CS a -> a [scond] :: CS a -> PE [bdest] :: CS a -> BTemp SZ :: a -> Temp -> Temp -> CE -> Maybe AL -> CS a [lann] :: CS a -> a [szDest] :: CS a -> Temp [arr] :: CS a -> Temp [rank] :: CS a -> CE [mLabel] :: CS a -> Maybe AL PlProd :: a -> Temp -> [CE] -> CS a [lann] :: CS a -> a [nDest] :: CS a -> Temp [pdims] :: CS a -> [CE] Rnd :: a -> Temp -> CS a [lann] :: CS a -> a [rndDest] :: CS a -> Temp FRnd :: a -> FTemp -> CS a [lann] :: CS a -> a [frndDest] :: CS a -> FTemp Def :: a -> Label -> [CS a] -> CS a [lann] :: CS a -> a [fLabel] :: CS a -> Label [body] :: CS a -> [CS a] G :: a -> Label -> Label -> CS a [lann] :: CS a -> a [gt] :: CS a -> Label [retLabel] :: CS a -> Label (=:) :: Temp -> CE -> CS () infix 9 =: type Label = Word type AsmData = IntMap [Word64] data LSt LSt :: !Label -> !Int -> LSt [clabel] :: LSt -> !Label [ctemps] :: LSt -> !Int prettyCS :: (AsmData, [CS a]) -> Doc ann pL :: (a -> Doc ann) -> CS a -> Doc ann instance Data.Copointed.Copointed C.CS instance GHC.Classes.Eq C.BTemp instance GHC.Classes.Eq C.FTemp instance GHC.Classes.Eq C.Temp instance GHC.Internal.Real.Fractional C.CFE instance GHC.Internal.Base.Functor C.CS instance GHC.Internal.Num.Num C.CE instance GHC.Internal.Num.Num C.CFE instance Prettyprinter.Ext.PS C.CE instance Prettyprinter.Ext.PS C.CFE instance Prettyprinter.Internal.Pretty C.ArrAcc instance Prettyprinter.Internal.Pretty C.BTemp instance Prettyprinter.Internal.Pretty C.CE instance Prettyprinter.Internal.Pretty C.CFE instance Prettyprinter.Internal.Pretty (C.CS a) instance Prettyprinter.Internal.Pretty C.FTemp instance Prettyprinter.Internal.Pretty C.PE instance Prettyprinter.Internal.Pretty C.Temp instance GHC.Internal.Show.Show C.ArrAcc instance GHC.Internal.Show.Show C.BTemp instance GHC.Internal.Show.Show C.CE instance GHC.Internal.Show.Show C.CFE instance GHC.Internal.Show.Show (C.CS a) instance GHC.Internal.Show.Show C.FTemp instance GHC.Internal.Show.Show C.Temp module IR.C ctemp :: Temp -> Temp cToIR :: LSt -> [CS a] -> ([Stmt], WSt) module C.CF cfC :: [CS ()] -> ([N], [CS ControlAnn], IntMap (ControlAnn, Liveness)) module C.Alloc live :: [CS ()] -> [CS Liveness] frees :: IntMap Temp -> [CS ()] -> [CS Liveness] module Asm.M data CFunc Malloc :: CFunc Free :: CFunc JR :: CFunc DR :: CFunc Exp :: CFunc Log :: CFunc Pow :: CFunc type WM = State WSt type Label = Word nextI :: WM Int nextL :: WM Label foldMapA :: (Applicative f, Traversable t, Monoid m) => (a -> f m) -> t a -> f m prettyLabel :: Label -> Doc ann i4 :: Doc ann -> Doc ann pAsm :: Pretty isn => [isn] -> Doc ann prettyAsm :: Pretty isn => (AsmData, [isn]) -> Doc ann aArr :: IntMap [Word64] -> IO (IntMap (Ptr Word64)) mFree :: Maybe (Ptr a) -> IO () instance GHC.Internal.Generics.Generic Asm.M.CFunc instance Control.DeepSeq.NFData Asm.M.CFunc instance Prettyprinter.Internal.Pretty Asm.M.CFunc module Asm.X86 data X86 reg freg a Label :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [label] :: X86 reg freg a -> Label IAddRR :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rAdd1] :: X86 reg freg a -> reg [rAdd2] :: X86 reg freg a -> reg IAddRI :: a -> reg -> Int64 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rAdd1] :: X86 reg freg a -> reg [rAddI] :: X86 reg freg a -> Int64 ISubRR :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSub1] :: X86 reg freg a -> reg [rSub2] :: X86 reg freg a -> reg ISubRI :: a -> reg -> Int64 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSub] :: X86 reg freg a -> reg [rSubI] :: X86 reg freg a -> Int64 IMulRR :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rMul1] :: X86 reg freg a -> reg [rMul2] :: X86 reg freg a -> reg IMulRA :: a -> reg -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rMul] :: X86 reg freg a -> reg [aSrc] :: X86 reg freg a -> Addr reg XorRR :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rXor1] :: X86 reg freg a -> reg [rXor2] :: X86 reg freg a -> reg MovRR :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg MovRA :: a -> reg -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [aSrc] :: X86 reg freg a -> Addr reg MovAR :: a -> Addr reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [aDest] :: X86 reg freg a -> Addr reg [rSrc] :: X86 reg freg a -> reg MovRL :: a -> reg -> Int -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [lSrc] :: X86 reg freg a -> Int MovAI32 :: a -> Addr reg -> Int32 -> X86 reg freg a [ann] :: X86 reg freg a -> a [aDest] :: X86 reg freg a -> Addr reg [i32Src] :: X86 reg freg a -> Int32 MovRI :: a -> reg -> Int64 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [iSrc] :: X86 reg freg a -> Int64 MovqXR :: a -> freg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [rSrc] :: X86 reg freg a -> reg MovqXA :: a -> freg -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [aSrc] :: X86 reg freg a -> Addr reg MovqAX :: a -> Addr reg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [aDest] :: X86 reg freg a -> Addr reg [fSrc] :: X86 reg freg a -> freg MovqRX :: a -> reg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [fSrc] :: X86 reg freg a -> freg Fld :: a -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [a87] :: X86 reg freg a -> Addr reg FldS :: a -> ST -> X86 reg freg a [ann] :: X86 reg freg a -> a [stIsn] :: X86 reg freg a -> ST Fldl2e :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fldln2 :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fld1 :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fyl2x :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fsin :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fcos :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fstp :: a -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [a87] :: X86 reg freg a -> Addr reg F2xm1 :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fmulp :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fprem :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Faddp :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fscale :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fninit :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a Fxch :: a -> ST -> X86 reg freg a [ann] :: X86 reg freg a -> a [stIsn] :: X86 reg freg a -> ST J :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [label] :: X86 reg freg a -> Label Je :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [jLabel] :: X86 reg freg a -> Label Jne :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [jLabel] :: X86 reg freg a -> Label Jg :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [jLabel] :: X86 reg freg a -> Label Jge :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [jLabel] :: X86 reg freg a -> Label Jl :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [jLabel] :: X86 reg freg a -> Label Jle :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [jLabel] :: X86 reg freg a -> Label C :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [label] :: X86 reg freg a -> Label CmpRR :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rCmp] :: X86 reg freg a -> reg [rCmp'] :: X86 reg freg a -> reg CmpRI :: a -> reg -> Int32 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rCmp] :: X86 reg freg a -> reg [cmpI32] :: X86 reg freg a -> Int32 Vcmppd :: a -> freg -> freg -> freg -> Pred -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fCmp] :: X86 reg freg a -> freg [fCmp'] :: X86 reg freg a -> freg [cpred] :: X86 reg freg a -> Pred Test :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rCmp] :: X86 reg freg a -> reg [rCmp'] :: X86 reg freg a -> reg TestI :: a -> reg -> Int32 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rCmp] :: X86 reg freg a -> reg [cmpI32] :: X86 reg freg a -> Int32 Ret :: a -> X86 reg freg a [ann] :: X86 reg freg a -> a RetL :: a -> Label -> X86 reg freg a [ann] :: X86 reg freg a -> a [label] :: X86 reg freg a -> Label Vdivsd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Movapd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Roundsd :: a -> freg -> freg -> RoundMode -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg [mode] :: X86 reg freg a -> RoundMode Cvttsd2si :: a -> reg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [fSrc] :: X86 reg freg a -> freg Mulsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Addsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Subsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Divsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Vmulsd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vaddsd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vsubsd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg VaddsdA :: a -> freg -> freg -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg [aSrc] :: X86 reg freg a -> Addr reg Cvtsi2sd :: a -> freg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [rSrc] :: X86 reg freg a -> reg Vfmadd231sd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vfmadd213sd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vfmsub231sd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vfmsub213sd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vfmsub132sd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vfmnadd231sd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg Vfmadd231sdA :: a -> freg -> freg -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg [aSrc] :: X86 reg freg a -> Addr reg Push :: a -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSrc] :: X86 reg freg a -> reg Pop :: a -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg Call :: a -> CFunc -> X86 reg freg a [ann] :: X86 reg freg a -> a [cfunc] :: X86 reg freg a -> CFunc IDiv :: a -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSrc] :: X86 reg freg a -> reg Sal :: a -> reg -> Int8 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSrc] :: X86 reg freg a -> reg [iExp] :: X86 reg freg a -> Int8 Sar :: a -> reg -> Int8 -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSrc] :: X86 reg freg a -> reg [iExp] :: X86 reg freg a -> Int8 Sqrtsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Maxsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Vmaxsd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc1] :: X86 reg freg a -> freg [fSrc2] :: X86 reg freg a -> freg VmaxsdA :: a -> freg -> freg -> Addr reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg [aSrc] :: X86 reg freg a -> Addr reg Minsd :: a -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [fSrc] :: X86 reg freg a -> freg Vminsd :: a -> freg -> freg -> freg -> X86 reg freg a [ann] :: X86 reg freg a -> a [fDest] :: X86 reg freg a -> freg [rSrc1] :: X86 reg freg a -> freg [rSrc2] :: X86 reg freg a -> freg Not :: a -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rSrc] :: X86 reg freg a -> reg And :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Cmovnle :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Cmovnl :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Cmovne :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Cmove :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Cmovl :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Cmovle :: a -> reg -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg [rSrc] :: X86 reg freg a -> reg Rdrand :: a -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg Neg :: a -> reg -> X86 reg freg a [ann] :: X86 reg freg a -> a [rDest] :: X86 reg freg a -> reg data AbsReg IReg :: !Int -> AbsReg CArg0 :: AbsReg CArg1 :: AbsReg CArg2 :: AbsReg CArg3 :: AbsReg CArg4 :: AbsReg CArg5 :: AbsReg CRet :: AbsReg SP :: AbsReg BP :: AbsReg Quot :: AbsReg Rem :: AbsReg data FAbsReg FReg :: !Int -> FAbsReg FArg0 :: FAbsReg FArg1 :: FAbsReg FArg2 :: FAbsReg FArg3 :: FAbsReg FArg4 :: FAbsReg FArg5 :: FAbsReg FArg6 :: FAbsReg FArg7 :: FAbsReg FRet0 :: FAbsReg FRet1 :: FAbsReg data X86Reg Rcx :: X86Reg Rdx :: X86Reg Rsi :: X86Reg Rdi :: X86Reg R8 :: X86Reg R9 :: X86Reg R10 :: X86Reg R11 :: X86Reg R12 :: X86Reg R13 :: X86Reg R14 :: X86Reg R15 :: X86Reg Rbx :: X86Reg Rax :: X86Reg Rbp :: X86Reg Rsp :: X86Reg data FX86Reg XMM1 :: FX86Reg XMM2 :: FX86Reg XMM3 :: FX86Reg XMM4 :: FX86Reg XMM5 :: FX86Reg XMM6 :: FX86Reg XMM7 :: FX86Reg XMM8 :: FX86Reg XMM9 :: FX86Reg XMM10 :: FX86Reg XMM11 :: FX86Reg XMM12 :: FX86Reg XMM13 :: FX86Reg XMM14 :: FX86Reg XMM15 :: FX86Reg XMM0 :: FX86Reg data Addr reg R :: reg -> Addr reg RC :: reg -> Int8 -> Addr reg RC32 :: reg -> Int32 -> Addr reg RS :: reg -> Scale -> reg -> Addr reg RSD :: reg -> Scale -> reg -> Int8 -> Addr reg newtype ST ST :: Int8 -> ST data Scale One :: Scale Two :: Scale Four :: Scale Eight :: Scale data Pred Eqoq :: Pred Ltos :: Pred Leos :: Pred Unordq :: Pred Nequq :: Pred Nltus :: Pred Nleus :: Pred Ordq :: Pred data RoundMode RNearest :: RoundMode RDown :: RoundMode RUp :: RoundMode RZero :: RoundMode type Label = Word data CFunc Malloc :: CFunc Free :: CFunc JR :: CFunc DR :: CFunc Exp :: CFunc Log :: CFunc Pow :: CFunc prettyDebugX86 :: (Pretty freg, Pretty reg, Pretty o) => [X86 reg freg o] -> Doc ann toInt :: AbsReg -> Int fToInt :: FAbsReg -> Int imm8 :: Pred -> Int8 roundMode :: RoundMode -> Word8 mapR :: (areg -> reg) -> X86 areg afreg a -> X86 reg afreg a mapFR :: (afreg -> freg) -> X86 areg afreg a -> X86 areg freg a fR :: Monoid m => (reg -> m) -> X86 reg freg a -> m hasMa :: [X86 reg freg a] -> Bool instance Data.Copointed.Copointed (Asm.X86.X86 reg freg) instance GHC.Internal.Enum.Enum Asm.X86.FX86Reg instance GHC.Internal.Enum.Enum Asm.X86.X86Reg instance GHC.Classes.Eq Asm.X86.AbsReg instance GHC.Classes.Eq reg => GHC.Classes.Eq (Asm.X86.Addr reg) instance GHC.Classes.Eq Asm.X86.FAbsReg instance GHC.Classes.Eq Asm.X86.FX86Reg instance GHC.Classes.Eq Asm.X86.Scale instance GHC.Classes.Eq Asm.X86.X86Reg instance GHC.Internal.Data.Foldable.Foldable Asm.X86.Addr instance GHC.Internal.Base.Functor Asm.X86.Addr instance GHC.Internal.Base.Functor (Asm.X86.X86 reg freg) instance GHC.Internal.Generics.Generic (Asm.X86.Addr reg) instance GHC.Internal.Generics.Generic Asm.X86.FX86Reg instance GHC.Internal.Generics.Generic Asm.X86.Pred instance GHC.Internal.Generics.Generic Asm.X86.RoundMode instance GHC.Internal.Generics.Generic Asm.X86.Scale instance GHC.Internal.Generics.Generic (Asm.X86.X86 reg freg a) instance GHC.Internal.Generics.Generic Asm.X86.X86Reg instance Control.DeepSeq.NFData reg => Control.DeepSeq.NFData (Asm.X86.Addr reg) instance Control.DeepSeq.NFData Asm.X86.FX86Reg instance Control.DeepSeq.NFData Asm.X86.Pred instance Control.DeepSeq.NFData Asm.X86.RoundMode instance Control.DeepSeq.NFData Asm.X86.ST instance Control.DeepSeq.NFData Asm.X86.Scale instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData reg, Control.DeepSeq.NFData freg) => Control.DeepSeq.NFData (Asm.X86.X86 reg freg a) instance Control.DeepSeq.NFData Asm.X86.X86Reg instance GHC.Classes.Ord Asm.X86.AbsReg instance GHC.Classes.Ord Asm.X86.FAbsReg instance GHC.Classes.Ord Asm.X86.FX86Reg instance GHC.Classes.Ord Asm.X86.X86Reg instance Prettyprinter.Internal.Pretty Asm.X86.AbsReg instance Prettyprinter.Internal.Pretty reg => Prettyprinter.Internal.Pretty (Asm.X86.Addr reg) instance Prettyprinter.Internal.Pretty Asm.X86.FAbsReg instance Prettyprinter.Internal.Pretty Asm.X86.FX86Reg instance Prettyprinter.Internal.Pretty Asm.X86.Pred instance Prettyprinter.Internal.Pretty Asm.X86.RoundMode instance Prettyprinter.Internal.Pretty Asm.X86.ST instance Prettyprinter.Internal.Pretty Asm.X86.Scale instance (Prettyprinter.Internal.Pretty reg, Prettyprinter.Internal.Pretty freg) => Prettyprinter.Internal.Pretty (Asm.X86.X86 reg freg a) instance Prettyprinter.Internal.Pretty Asm.X86.X86Reg instance GHC.Internal.Show.Show Asm.X86.FX86Reg instance (Prettyprinter.Internal.Pretty reg, Prettyprinter.Internal.Pretty freg) => GHC.Internal.Show.Show (Asm.X86.X86 reg freg a) instance GHC.Internal.Show.Show Asm.X86.X86Reg module Asm.X86.Trans irToX86 :: WSt -> [Stmt] -> (Int, [X86 AbsReg FAbsReg ()]) module Asm.X86.Frame frameC :: [X86 X86Reg FX86Reg Live] -> [X86 X86Reg FX86Reg ()] module Asm.X86.B bb :: [X86 reg freg a] -> [BB X86 reg freg a ()] module Asm.Aarch64 data AArch64 reg freg a Label :: a -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [label] :: AArch64 reg freg a -> Label B :: a -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [label] :: AArch64 reg freg a -> Label Blr :: a -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg C :: a -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [label] :: AArch64 reg freg a -> Label Bl :: a -> CFunc -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [cfunc] :: AArch64 reg freg a -> CFunc Bc :: a -> Cond -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [cond] :: AArch64 reg freg a -> Cond [label] :: AArch64 reg freg a -> Label Ret :: a -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a RetL :: a -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [label] :: AArch64 reg freg a -> Label FMovXX :: a -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc] :: AArch64 reg freg a -> freg FMovDR :: a -> freg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [rSrc] :: AArch64 reg freg a -> reg MovRR :: a -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg MovRC :: a -> reg -> Word16 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [cSrc] :: AArch64 reg freg a -> Word16 MovZ :: a -> reg -> Word16 -> Int -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [cSrc] :: AArch64 reg freg a -> Word16 [lsl] :: AArch64 reg freg a -> Int MovRCf :: a -> reg -> CFunc -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [cfunc] :: AArch64 reg freg a -> CFunc LdrRL :: a -> reg -> Int -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [lSrc] :: AArch64 reg freg a -> Int MovK :: a -> reg -> Word16 -> Int -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [cSrc] :: AArch64 reg freg a -> Word16 [lsl] :: AArch64 reg freg a -> Int Ldr :: a -> reg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [aSrc] :: AArch64 reg freg a -> Addr reg LdrB :: a -> reg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [aSrc] :: AArch64 reg freg a -> Addr reg Str :: a -> reg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [aDest] :: AArch64 reg freg a -> Addr reg StrB :: a -> reg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [aDest] :: AArch64 reg freg a -> Addr reg LdrD :: a -> freg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [aSrc] :: AArch64 reg freg a -> Addr reg StrD :: a -> freg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dSrc] :: AArch64 reg freg a -> freg [aDest] :: AArch64 reg freg a -> Addr reg SubRR :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg AddRR :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg AddRRS :: a -> reg -> reg -> reg -> Word8 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg [sC] :: AArch64 reg freg a -> Word8 ZeroR :: a -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg Mvn :: a -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg AndRR :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg OrRR :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg Eor :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg MulRR :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg Madd :: a -> reg -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg [rSrc3] :: AArch64 reg freg a -> reg Msub :: a -> reg -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg [rSrc3] :: AArch64 reg freg a -> reg Sdiv :: a -> reg -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg AddRC :: a -> reg -> reg -> Word16 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg [rC] :: AArch64 reg freg a -> Word16 SubRC :: a -> reg -> reg -> Word16 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg [rC] :: AArch64 reg freg a -> Word16 Lsl :: a -> reg -> reg -> Word8 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg [sC] :: AArch64 reg freg a -> Word8 Asr :: a -> reg -> reg -> Word8 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg [sC] :: AArch64 reg freg a -> Word8 CmpRC :: a -> reg -> Word16 -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [cSrc] :: AArch64 reg freg a -> Word16 CmpRR :: a -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg Neg :: a -> reg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc] :: AArch64 reg freg a -> reg Fmul :: a -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg Fadd :: a -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg Fsub :: a -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg Fdiv :: a -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg FcmpZ :: a -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dSrc] :: AArch64 reg freg a -> freg Fcmp :: a -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg Fneg :: a -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc] :: AArch64 reg freg a -> freg Scvtf :: a -> freg -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [rSrc] :: AArch64 reg freg a -> reg Fcvtms :: a -> reg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [dSrc] :: AArch64 reg freg a -> freg Fcvtas :: a -> reg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [dSrc] :: AArch64 reg freg a -> freg Stp :: a -> reg -> reg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg [aDest] :: AArch64 reg freg a -> Addr reg Ldp :: a -> reg -> reg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest1] :: AArch64 reg freg a -> reg [rDest2] :: AArch64 reg freg a -> reg [aSrc] :: AArch64 reg freg a -> Addr reg StpD :: a -> freg -> freg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg [aDest] :: AArch64 reg freg a -> Addr reg LdpD :: a -> freg -> freg -> Addr reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest1] :: AArch64 reg freg a -> freg [dDest2] :: AArch64 reg freg a -> freg [aSrc] :: AArch64 reg freg a -> Addr reg Fmadd :: a -> freg -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg [dSrc3] :: AArch64 reg freg a -> freg Fmsub :: a -> freg -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg [dSrc3] :: AArch64 reg freg a -> freg Fsqrt :: a -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc] :: AArch64 reg freg a -> freg Frintm :: a -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc] :: AArch64 reg freg a -> freg MrsR :: a -> reg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg Fmax :: a -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg Fmin :: a -> freg -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg Fabs :: a -> freg -> freg -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc] :: AArch64 reg freg a -> freg Csel :: a -> reg -> reg -> reg -> Cond -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [rSrc1] :: AArch64 reg freg a -> reg [rSrc2] :: AArch64 reg freg a -> reg [cond] :: AArch64 reg freg a -> Cond Tbnz :: a -> reg -> Word8 -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [bit] :: AArch64 reg freg a -> Word8 [label] :: AArch64 reg freg a -> Label Tbz :: a -> reg -> Word8 -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [bit] :: AArch64 reg freg a -> Word8 [label] :: AArch64 reg freg a -> Label Cbnz :: a -> reg -> Label -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [label] :: AArch64 reg freg a -> Label Fcsel :: a -> freg -> freg -> freg -> Cond -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [dDest] :: AArch64 reg freg a -> freg [dSrc1] :: AArch64 reg freg a -> freg [dSrc2] :: AArch64 reg freg a -> freg [cond] :: AArch64 reg freg a -> Cond Cset :: a -> reg -> Cond -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rDest] :: AArch64 reg freg a -> reg [cond] :: AArch64 reg freg a -> Cond TstI :: a -> reg -> BM -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc1] :: AArch64 reg freg a -> reg [imm] :: AArch64 reg freg a -> BM EorI :: a -> reg -> reg -> BM -> AArch64 reg freg a [ann] :: AArch64 reg freg a -> a [rSrc] :: AArch64 reg freg a -> reg [rDesg] :: AArch64 reg freg a -> reg [imm] :: AArch64 reg freg a -> BM data Addr reg R :: reg -> Addr reg RP :: reg -> Word16 -> Addr reg BI :: reg -> reg -> Shift -> Addr reg data Cond Eq :: Cond Neq :: Cond Geq :: Cond Lt :: Cond Gt :: Cond Leq :: Cond data Shift Zero :: Shift Three :: Shift data BM BM :: !Word8 -> !Word8 -> BM [ims] :: BM -> !Word8 [left] :: BM -> !Word8 data AbsReg IReg :: !Int -> AbsReg CArg0 :: AbsReg CArg1 :: AbsReg CArg2 :: AbsReg CArg3 :: AbsReg CArg4 :: AbsReg CArg5 :: AbsReg CArg6 :: AbsReg CArg7 :: AbsReg LR :: AbsReg FP :: AbsReg ASP :: AbsReg data FAbsReg FReg :: !Int -> FAbsReg FArg0 :: FAbsReg FArg1 :: FAbsReg FArg2 :: FAbsReg FArg3 :: FAbsReg FArg4 :: FAbsReg FArg5 :: FAbsReg FArg6 :: FAbsReg FArg7 :: FAbsReg data AReg X0 :: AReg X1 :: AReg X2 :: AReg X3 :: AReg X4 :: AReg X5 :: AReg X6 :: AReg X7 :: AReg X8 :: AReg X9 :: AReg X10 :: AReg X11 :: AReg X12 :: AReg X13 :: AReg X14 :: AReg X15 :: AReg X16 :: AReg X17 :: AReg X18 :: AReg X19 :: AReg X20 :: AReg X21 :: AReg X22 :: AReg X23 :: AReg X24 :: AReg X25 :: AReg X26 :: AReg X27 :: AReg X28 :: AReg X29 :: AReg X30 :: AReg SP :: AReg data FAReg D0 :: FAReg D1 :: FAReg D2 :: FAReg D3 :: FAReg D4 :: FAReg D5 :: FAReg D6 :: FAReg D7 :: FAReg D8 :: FAReg D9 :: FAReg D10 :: FAReg D11 :: FAReg D12 :: FAReg D13 :: FAReg D14 :: FAReg D15 :: FAReg D16 :: FAReg D17 :: FAReg D18 :: FAReg D19 :: FAReg D20 :: FAReg D21 :: FAReg D22 :: FAReg D23 :: FAReg D24 :: FAReg D25 :: FAReg D26 :: FAReg D27 :: FAReg D28 :: FAReg D29 :: FAReg D30 :: FAReg D31 :: FAReg prettyDebug :: (Pretty freg, Pretty reg, Pretty o) => [AArch64 reg freg o] -> Doc ann mapR :: (areg -> reg) -> AArch64 areg afreg a -> AArch64 reg afreg a mapFR :: (afreg -> freg) -> AArch64 areg afreg a -> AArch64 areg freg a toInt :: AbsReg -> Int fToInt :: FAbsReg -> Int pus :: [AReg] -> [AArch64 AReg freg ()] pos :: [AReg] -> [AArch64 AReg freg ()] puds :: [freg] -> [AArch64 AReg freg ()] pods :: [freg] -> [AArch64 AReg freg ()] pSym :: Pretty a => a -> Doc ann instance Data.Copointed.Copointed (Asm.Aarch64.AArch64 reg freg) instance GHC.Internal.Enum.Enum Asm.Aarch64.AReg instance GHC.Internal.Enum.Enum Asm.Aarch64.FAReg instance GHC.Classes.Eq Asm.Aarch64.AReg instance GHC.Classes.Eq Asm.Aarch64.BM instance GHC.Classes.Eq Asm.Aarch64.FAReg instance GHC.Internal.Base.Functor (Asm.Aarch64.AArch64 reg freg) instance GHC.Internal.Base.Functor Asm.Aarch64.Addr instance GHC.Internal.Generics.Generic (Asm.Aarch64.AArch64 reg freg a) instance GHC.Internal.Generics.Generic Asm.Aarch64.AReg instance GHC.Internal.Generics.Generic (Asm.Aarch64.Addr reg) instance GHC.Internal.Generics.Generic Asm.Aarch64.FAReg instance (Control.DeepSeq.NFData r, Control.DeepSeq.NFData d, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Asm.Aarch64.AArch64 r d a) instance Control.DeepSeq.NFData Asm.Aarch64.AReg instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Asm.Aarch64.Addr a) instance Control.DeepSeq.NFData Asm.Aarch64.BM instance Control.DeepSeq.NFData Asm.Aarch64.Cond instance Control.DeepSeq.NFData Asm.Aarch64.FAReg instance Control.DeepSeq.NFData Asm.Aarch64.Shift instance GHC.Classes.Ord Asm.Aarch64.AReg instance GHC.Classes.Ord Asm.Aarch64.FAReg instance (Prettyprinter.Internal.Pretty reg, Prettyprinter.Internal.Pretty freg) => Prettyprinter.Internal.Pretty (Asm.Aarch64.AArch64 reg freg a) instance Prettyprinter.Internal.Pretty Asm.Aarch64.AReg instance Prettyprinter.Internal.Pretty Asm.Aarch64.AbsReg instance Prettyprinter.Internal.Pretty reg => Prettyprinter.Internal.Pretty (Asm.Aarch64.Addr reg) instance Prettyprinter.Internal.Pretty Asm.Aarch64.BM instance Prettyprinter.Internal.Pretty Asm.Aarch64.Cond instance Prettyprinter.Internal.Pretty Asm.Aarch64.FAReg instance Prettyprinter.Internal.Pretty Asm.Aarch64.FAbsReg instance Prettyprinter.Internal.Pretty Asm.Aarch64.Shift instance (Prettyprinter.Internal.Pretty reg, Prettyprinter.Internal.Pretty freg) => GHC.Internal.Show.Show (Asm.Aarch64.AArch64 reg freg a) instance GHC.Internal.Show.Show Asm.Aarch64.AReg instance GHC.Internal.Show.Show Asm.Aarch64.FAReg module Class.E class E a toInt :: E a => a -> Int instance Class.E.E Asm.Aarch64.AReg instance Class.E.E Asm.Aarch64.AbsReg instance Class.E.E Asm.X86.AbsReg instance Class.E.E Asm.Aarch64.FAReg instance Class.E.E Asm.Aarch64.FAbsReg instance Class.E.E Asm.X86.FAbsReg instance Class.E.E Asm.X86.FX86Reg instance Class.E.E Asm.X86.X86Reg module Asm.CF type N = Int type FreshM = State (N, Map Label N, Map Label [N]) runFreshM :: FreshM a -> a getFresh :: FreshM N fm :: Label -> FreshM N lookupLabel :: Label -> FreshM N lC :: Label -> FreshM [N] broadcast :: N -> Label -> FreshM () b3 :: N -> Label -> FreshM () singleton :: E reg => reg -> IntSet fromList :: E reg => [reg] -> IntSet -- | From the Kempe compiler with improvements. module Asm.X86.CF mkControlFlow :: (E reg, E freg) => [BB X86 reg freg () ()] -> [BB X86 reg freg () ControlAnn] expand :: (E reg, E freg) => BB X86 reg freg () Liveness -> [X86 reg freg Liveness] udd :: (E reg, E freg) => X86 reg freg ann -> UD uses :: E reg => X86 reg freg ann -> IntSet defs :: E reg => X86 reg freg ann -> IntSet defsF :: E freg => X86 reg freg ann -> IntSet module Asm.X86.Sp spill :: Int -> Int -> IntSet -> [X86 AbsReg FAbsReg a] -> (Int, Int, [X86 AbsReg FAbsReg ()]) module Asm.Aarch64.T irToAarch64 :: WSt -> [Stmt] -> (Int, [AArch64 AbsReg FAbsReg ()]) module Asm.Aarch64.Opt opt :: (Eq reg, Eq freg) => [AArch64 reg freg ()] -> [AArch64 reg freg ()] module Asm.Aarch64.Fr frameC :: [AArch64 AReg FAReg Live] -> [AArch64 AReg FAReg ()] module Asm.Aarch64.CF mkControlFlow :: (E reg, E freg) => [BB AArch64 reg freg () ()] -> [BB AArch64 reg freg () ControlAnn] expand :: (E reg, E freg) => BB AArch64 reg freg () Liveness -> [AArch64 reg freg Liveness] udd :: (E reg, E freg) => AArch64 reg freg ann -> UD module Asm.Aarch64.B bb :: [AArch64 reg freg a] -> [BB AArch64 reg freg a ()] module Asm.Ar class Arch (arch :: Type -> Type -> Type -> Type) reg freg cf :: Arch arch reg freg => [BB arch reg freg () ()] -> [BB arch reg freg () ControlAnn] -- | result: src, dest mI :: Arch arch reg freg => arch reg freg a -> Maybe (reg, reg) mf :: Arch arch reg freg => arch reg freg a -> Maybe (freg, freg) bb :: Arch arch reg freg => [arch reg freg a] -> [BB arch reg freg a ()] expand :: Arch arch reg freg => BB arch reg freg () Liveness -> [arch reg freg Liveness] udd :: Arch arch reg freg => arch reg freg a -> UD instance (Class.E.E reg, Class.E.E freg) => Asm.Ar.Arch Asm.Aarch64.AArch64 reg freg instance (Class.E.E reg, Class.E.E freg) => Asm.Ar.Arch Asm.X86.X86 reg freg module Asm.L mkLive :: Arch arch reg freg => [arch reg freg ()] -> [arch reg freg Liveness] liveBB :: Arch arch reg freg => [arch reg freg ()] -> [BB arch reg freg () Liveness] module Asm.X86.Opt optX86 :: (E reg, E freg, Eq reg, Eq freg) => [X86 reg freg ()] -> [X86 reg freg ()] module Asm.LI mkIntervals :: (Arch arch reg freg, Copointed (arch reg freg)) => [arch reg freg ()] -> [arch reg freg Live] -- | From Appel module Asm.G alloc :: (Ord reg, Arch arch areg afreg, Copointed (arch areg afreg)) => [arch areg afreg (UD, Liveness, Maybe (Int, Int))] -> [reg] -> IntSet -> IntMap reg -> Either IntSet (IntMap reg) allocF :: (Ord freg, Arch arch areg afreg, Copointed (arch areg afreg)) => [arch areg afreg (UD, Liveness, Maybe (Int, Int))] -> [freg] -> IntSet -> IntMap freg -> Either IntSet (IntMap freg) module Asm.Ar.P bundle :: (E reg, E freg, Copointed (arch reg freg), Arch arch reg freg) => [arch reg freg ()] -> ([arch reg freg (UD, Liveness, Maybe (Int, Int))], [arch reg freg (UD, Liveness, Maybe (Int, Int))]) module Asm.X86.P gallocFrame :: Int -> [X86 AbsReg FAbsReg ()] -> [X86 X86Reg FX86Reg ()] gallocOn :: Int -> [X86 AbsReg FAbsReg ()] -> (IntMap X86Reg, IntMap FX86Reg, [X86 AbsReg FAbsReg ()]) module Asm.Aarch64.P gallocFrame :: Int -> [AArch64 AbsReg FAbsReg ()] -> [AArch64 AReg FAReg ()] gallocOn :: Int -> [AArch64 AbsReg FAbsReg ()] -> (IntMap AReg, IntMap FAReg, [AArch64 AbsReg FAbsReg ()]) module Sys.DL type CCtx = (Int, Int, Int, Int) type MCtx = (Int, Int, Int) libc :: IO DL mem' :: IO CCtx math' :: IO MCtx module Asm.X86.Byte allFp :: (IntMap [Word64], [X86 X86Reg FX86Reg a]) -> IO ([ByteString], FunPtr b, Maybe (Ptr Word64)) assemble :: (IntMap [Word64], [X86 X86Reg FX86Reg a]) -> ByteString assembleCtx :: CCtx -> (IntMap [Word64], [X86 X86Reg FX86Reg a]) -> IO (ByteString, FunPtr b, Maybe (Ptr Word64)) dbgFp :: (IntMap [Word64], [X86 X86Reg FX86Reg a]) -> IO [ByteString] instance Asm.X86.Byte.RMB Asm.X86.FX86Reg instance Asm.X86.Byte.RMB Asm.X86.X86Reg module Asm.Aarch64.Byte allFp :: (IntMap [Word64], [AArch64 AReg FAReg ()]) -> IO ([ByteString], FunPtr b, Maybe (Ptr Word64)) assembleCtx :: (CCtx, MCtx) -> (IntMap [Word64], [AArch64 AReg FAReg ()]) -> IO (ByteString, FunPtr b, Maybe (Ptr Word64)) dbgFp :: (IntMap [Word64], [AArch64 AReg FAReg ()]) -> IO [ByteString] module U newtype U U :: Int -> U [unU] :: U -> Int instance GHC.Classes.Eq U.U instance GHC.Classes.Ord U.U module Nm data Nm a Nm :: Text -> !U -> a -> Nm a [name] :: Nm a -> Text [unique] :: Nm a -> !U [loc] :: Nm a -> a type TyNm a = Nm a instance GHC.Classes.Eq (Nm.Nm a) instance GHC.Internal.Base.Functor Nm.Nm instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Nm.Nm a) instance GHC.Classes.Ord (Nm.Nm a) instance Prettyprinter.Internal.Pretty (Nm.Nm a) instance GHC.Internal.Show.Show (Nm.Nm a) module R.M type RM = State Int runR :: Int -> RM x -> (x, Int) nextN :: a -> RM (Nm a) nextU :: Text -> a -> RM (Nm a) module Nm.IntMap insert :: Nm a -> b -> IntMap b -> IntMap b findWithDefault :: a1 -> Nm a2 -> IntMap a1 -> a1 -- | AST module A data T a Arr :: Sh a -> T a -> T a F :: T a -- | double I :: T a -- | int B :: T a -- | bool Li :: I a -> T a TVar :: Nm a -> T a -- | Kind <math> Arrow :: T a -> T a -> T a P :: [T a] -> T a Ρ :: TyNm a -> IntMap (T a) -> T a (~>) :: T a -> T a -> T a infixr 0 ~> data I a Ix :: a -> !Int -> I a [ia] :: I a -> a [ii] :: I a -> !Int IVar :: a -> Nm a -> I a [ia] :: I a -> a [ixn] :: I a -> Nm a IEVar :: a -> Nm a -> I a [ia] :: I a -> a [ie] :: I a -> Nm a StaPlus :: a -> I a -> I a -> I a [ia] :: I a -> a [ix0] :: I a -> I a [ix1] :: I a -> I a StaMul :: a -> I a -> I a -> I a [ia] :: I a -> a [ix0] :: I a -> I a [ix1] :: I a -> I a data Sh a Nil :: Sh a SVar :: Nm a -> Sh a Cons :: I a -> Sh a -> Sh a Rev :: Sh a -> Sh a Cat :: Sh a -> Sh a -> Sh a Π :: Sh a -> Sh a infixr 8 `Cons` data C IsNum :: C IsOrd :: C IsEq :: C HasBits :: C data E a ALit :: a -> [E a] -> E a [eAnn] :: E a -> a [arrLit] :: E a -> [E a] Var :: a -> Nm a -> E a [eAnn] :: E a -> a [eVar] :: E a -> Nm a Builtin :: a -> !Builtin -> E a [eAnn] :: E a -> a [eBuiltin] :: E a -> !Builtin EApp :: a -> E a -> E a -> E a [eAnn] :: E a -> a [eF] :: E a -> E a [eArg] :: E a -> E a Lam :: a -> Nm a -> E a -> E a [eAnn] :: E a -> a [eVar] :: E a -> Nm a [eIn] :: E a -> E a ILit :: a -> !Integer -> E a [eAnn] :: E a -> a [eILit] :: E a -> !Integer FLit :: a -> !Double -> E a [eAnn] :: E a -> a [eFLit] :: E a -> !Double BLit :: a -> !Bool -> E a [eAnn] :: E a -> a [eBLit] :: E a -> !Bool Cond :: a -> E a -> E a -> E a -> E a [eAnn] :: E a -> a [prop] :: E a -> E a [ifBranch] :: E a -> E a [elseBranch] :: E a -> E a Let :: a -> (Nm a, E a) -> E a -> E a [eAnn] :: E a -> a [eBnd] :: E a -> (Nm a, E a) [eIn] :: E a -> E a Def :: a -> (Nm a, E a) -> E a -> E a [eAnn] :: E a -> a [eBnd] :: E a -> (Nm a, E a) [eIn] :: E a -> E a LLet :: a -> (Nm a, E a) -> E a -> E a [eAnn] :: E a -> a [eBnd] :: E a -> (Nm a, E a) [eIn] :: E a -> E a Dfn :: a -> E a -> E a [eAnn] :: E a -> a [eIn] :: E a -> E a ResVar :: a -> ResVar -> E a [eAnn] :: E a -> a [eXY] :: E a -> ResVar Parens :: a -> E a -> E a [eAnn] :: E a -> a [eExp] :: E a -> E a Ann :: a -> E a -> T a -> E a [eAnn] :: E a -> a [eEe] :: E a -> E a [eTy] :: E a -> T a Tup :: a -> [E a] -> E a [eAnn] :: E a -> a [eEs] :: E a -> [E a] Id :: a -> Idiom -> E a [eAnn] :: E a -> a [eIdiom] :: E a -> Idiom data Idiom FoldSOfZip :: E (T ()) -> E (T ()) -> [E (T ())] -> Idiom [seedI] :: Idiom -> E (T ()) [opI] :: Idiom -> E (T ()) [esI] :: Idiom -> [E (T ())] FoldOfZip :: E (T ()) -> E (T ()) -> [E (T ())] -> Idiom [zopI] :: Idiom -> E (T ()) [opI] :: Idiom -> E (T ()) [esI] :: Idiom -> [E (T ())] FoldGen :: E (T ()) -> E (T ()) -> E (T ()) -> E (T ()) -> Idiom [seedG] :: Idiom -> E (T ()) [ufG] :: Idiom -> E (T ()) [fG] :: Idiom -> E (T ()) [nG] :: Idiom -> E (T ()) AShLit :: [Int] -> [E (T ())] -> Idiom [litSh] :: Idiom -> [Int] [esLit] :: Idiom -> [E (T ())] data Builtin Plus :: Builtin Minus :: Builtin Times :: Builtin Div :: Builtin IntExp :: Builtin Exp :: Builtin Log :: Builtin Eq :: Builtin Neq :: Builtin Gt :: Builtin Lt :: Builtin Gte :: Builtin Lte :: Builtin CatE :: Builtin IDiv :: Builtin Mod :: Builtin Max :: Builtin Min :: Builtin Neg :: Builtin Sqrt :: Builtin T :: Builtin Di :: Builtin Flat :: Builtin AddDim :: Builtin Ices :: Builtin Filt :: Builtin Eye :: Builtin IRange :: Builtin FRange :: Builtin Map :: Builtin FoldA :: Builtin Zip :: Builtin Rank :: [(Int, Maybe [Int])] -> Builtin Fold :: Builtin FoldS :: Builtin Foldl :: Builtin Floor :: Builtin ItoF :: Builtin Iter :: Builtin Scan :: Builtin ScanS :: Builtin Size :: Builtin Dim :: Builtin Re :: Builtin Gen :: Builtin Fib :: Builtin Succ :: Builtin DI :: !Int -> Builtin Conv :: [Int] -> Builtin TAt :: !Int -> Builtin Last :: Builtin LastM :: Builtin ConsE :: Builtin Snoc :: Builtin Mul :: Builtin VMul :: Builtin Outer :: Builtin R :: Builtin Head :: Builtin HeadM :: Builtin Tail :: Builtin Init :: Builtin RevE :: Builtin TailM :: Builtin InitM :: Builtin Sin :: Builtin Cos :: Builtin Rot :: Builtin Tan :: Builtin Cyc :: Builtin A1 :: Builtin Even :: Builtin Odd :: Builtin IOf :: Builtin Abs :: Builtin And :: Builtin Or :: Builtin Xor :: Builtin N :: Builtin Sr :: Builtin Sl :: Builtin data ResVar X :: ResVar Y :: ResVar prettyTyped :: E (T a) -> Doc ann prettyC :: (T (), [(Nm a, C)]) -> Doc ann rLi :: T a -> T a instance GHC.Classes.Eq A.C instance GHC.Internal.Base.Functor A.E instance GHC.Internal.Base.Functor A.I instance GHC.Internal.Base.Functor A.Sh instance GHC.Internal.Base.Functor A.T instance GHC.Internal.Generics.Generic A.Builtin instance GHC.Internal.Generics.Generic A.C instance GHC.Internal.Generics.Generic (A.E a) instance GHC.Internal.Generics.Generic (A.I a) instance GHC.Internal.Generics.Generic A.Idiom instance GHC.Internal.Generics.Generic A.ResVar instance GHC.Internal.Generics.Generic (A.Sh a) instance GHC.Internal.Generics.Generic (A.T a) instance Control.DeepSeq.NFData A.Builtin instance Control.DeepSeq.NFData A.C instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (A.E a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (A.I a) instance Control.DeepSeq.NFData A.Idiom instance Control.DeepSeq.NFData A.ResVar instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (A.Sh a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (A.T a) instance GHC.Classes.Ord A.C instance Prettyprinter.Ext.PS (A.E a) instance Prettyprinter.Ext.PS (A.I a) instance Prettyprinter.Ext.PS (A.Sh a) instance Prettyprinter.Ext.PS (A.T a) instance Prettyprinter.Internal.Pretty A.Builtin instance Prettyprinter.Internal.Pretty A.C instance Prettyprinter.Internal.Pretty (A.E a) instance Prettyprinter.Internal.Pretty (A.I a) instance Prettyprinter.Internal.Pretty A.Idiom instance Prettyprinter.Internal.Pretty A.ResVar instance Prettyprinter.Internal.Pretty (A.Sh a) instance Prettyprinter.Internal.Pretty (A.T a) instance GHC.Internal.Show.Show A.C instance GHC.Internal.Show.Show (A.E a) instance GHC.Internal.Show.Show (A.I a) instance GHC.Internal.Show.Show A.Idiom instance GHC.Internal.Show.Show (A.Sh a) instance GHC.Internal.Show.Show (A.T a) module Ty.M check :: E (T ()) -> Maybe RE data RE MR :: E (T ()) -> T () -> RE Unflat :: E (T ()) -> T () -> RE UT :: E (T ()) -> T () -> RE IS :: Sh () -> RE ES :: Sh () -> RE instance GHC.Internal.Generics.Generic Ty.M.RE instance Control.DeepSeq.NFData Ty.M.RE instance Prettyprinter.Internal.Pretty Ty.M.RE module Ty.Clone cloneT :: Int -> T a -> (Int, T a, IntMap Int) module Ty data TyE a tyClosed :: Int -> E a -> Either (TyE a) (E (T ()), [(Nm a, C)], Int) match :: (Typeable a, Pretty a) => T a -> T a -> Subst a aT :: Subst a -> T a -> T a rwArr :: T a -> T a instance (Prettyprinter.Internal.Pretty a, GHC.Internal.Data.Typeable.Internal.Typeable a) => GHC.Internal.Exception.Type.Exception (Ty.TyE a) instance GHC.Internal.Base.Functor Ty.Subst instance GHC.Internal.Generics.Generic (Ty.TyE a) instance GHC.Internal.Base.Monoid (Ty.Subst a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Ty.TyE a) instance Prettyprinter.Internal.Pretty Ty.Focus instance Prettyprinter.Internal.Pretty (Ty.Subst a) instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (Ty.TyE a) instance GHC.Internal.Base.Semigroup (Ty.Subst a) instance GHC.Internal.Show.Show (Ty.Subst a) instance Prettyprinter.Internal.Pretty a => GHC.Internal.Show.Show (Ty.TyE a) module R.Dfn dedfn :: Int -> E a -> (E a, Int) module R data Rs Rs :: Int -> IntMap Int -> Rs [max_] :: Rs -> Int [bound] :: Rs -> IntMap Int class HasRs a rename :: HasRs a => Lens' a Rs maxLens :: Lens' Rs Int rG :: Int -> E a -> (E a, Int) rE :: forall s (m :: Type -> Type) a. (HasRs s, Monad m) => E a -> StateT s m (E a) instance R.HasRs R.Rs module R.R type RM = State Rs nextU :: Text -> a -> RM (Nm a) runM :: Int -> RM a -> (a, Int) module Parser.Rw rewrite :: E a -> E a module CGen data CType CR :: CType CI :: CType CB :: CType Af :: CType Ai :: CType Ab :: CType data TTE HO :: TTE Poly :: TTE FArg :: TTE ArrFn :: TTE tCTy :: T a -> Either TTE ([CType], CType) pCty :: Text -> T a -> Either TTE (Doc ann) instance GHC.Internal.Exception.Type.Exception CGen.TTE instance Prettyprinter.Internal.Pretty CGen.CF instance Prettyprinter.Internal.Pretty CGen.CType instance Prettyprinter.Internal.Pretty CGen.TTE instance GHC.Internal.Show.Show CGen.TTE module C.Trans writeC :: E (T ()) -> ([CS ()], LSt, AsmData, IntMap Temp) instance (GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (C.Trans.RI a b) module A.Opt optA :: E (T ()) -> RM (E (T ())) module A.Eta η :: E (T ()) -> RM (E (T ())) module L alexMonadScan :: Alex (Token AlexPosn) alexInitUserState :: AlexUserState runAlex :: ByteString -> Alex a -> Either String a runAlexSt :: ByteString -> Alex a -> Either String (AlexUserState, a) withAlexSt :: ByteString -> AlexUserState -> Alex a -> Either String (AlexUserState, a) freshName :: Text -> Alex (Nm AlexPosn) newIdent :: AlexPosn -> Text -> AlexUserState -> (AlexUserState, Nm AlexPosn) data AlexPosn AlexPn :: !Int -> !Int -> !Int -> AlexPosn newtype Alex a Alex :: (AlexState -> Either String (AlexState, a)) -> Alex a [unAlex] :: Alex a -> AlexState -> Either String (AlexState, a) data Token a EOF :: a -> Token a [loc] :: Token a -> a TokSym :: a -> Sym -> Token a [loc] :: Token a -> a [sym] :: Token a -> Sym TokName :: a -> Nm a -> Token a [loc] :: Token a -> a [_name] :: Token a -> Nm a TokIx :: a -> Int -> Token a [loc] :: Token a -> a [six] :: Token a -> Int TokB :: a -> Builtin -> Token a [loc] :: Token a -> a [_builtin] :: Token a -> Builtin TokResVar :: a -> Var -> Token a [loc] :: Token a -> a [_var] :: Token a -> Var TokInt :: a -> Integer -> Token a [loc] :: Token a -> a [int] :: Token a -> Integer TokFloat :: a -> Double -> Token a [loc] :: Token a -> a [float] :: Token a -> Double data Sym Plus :: Sym Minus :: Sym Fold :: Sym Foldl :: Sym Percent :: Sym Times :: Sym Semicolon :: Sym Bind :: Sym Pow :: Sym LSqBracket :: Sym RSqBracket :: Sym LBrace :: Sym RBrace :: Sym IxTimes :: Sym LParen :: Sym RParen :: Sym Lam :: Sym Dot :: Sym Caret :: Sym Quot :: Sym Zip :: Sym Comma :: Sym Underscore :: Sym QuestionMark :: Sym Colon :: Sym CondSplit :: Sym Cor :: Sym ArrL :: Sym ArrR :: Sym SymLog :: Sym LBind :: Sym PolyBind :: Sym LRank :: Sym Compose :: Sym Arrow :: Sym Sig :: Sym MaxS :: Sym MinS :: Sym DIS :: Sym Succ :: Sym Conv :: Sym Access :: !Int -> Sym [iat] :: Sym -> !Int TSig :: Sym Cons :: Sym Snoc :: Sym Do :: Sym Tensor :: Sym Transp :: Sym PlusPlus :: Sym Rotate :: Sym Last :: Sym LastM :: Sym Head :: Sym HeadM :: Sym Tail :: Sym TailM :: Sym Init :: Sym InitM :: Sym Geq :: Sym Gt :: Sym Eq :: Sym Neq :: Sym Leq :: Sym Lt :: Sym FoldA :: Sym FoldS :: Sym Tilde :: Sym Cyc :: Sym A1 :: Sym Mod :: Sym AtDot :: Sym Eye :: Sym Para :: Sym Weier :: Sym Ice :: Sym B :: Sym Sharp :: Sym And :: Sym Or :: Sym Xor :: Sym Not :: Sym Sr :: Sym Sl :: Sym IDiv :: Sym data Builtin BuiltinFRange :: Builtin BuiltinIota :: Builtin BuiltinFloor :: Builtin BuiltinE :: Builtin BuiltinI :: Builtin BuiltinF :: Builtin BuiltinTrue :: Builtin BuiltinFalse :: Builtin BuiltinSqrt :: Builtin BuiltinPi :: Builtin BuiltinGen :: Builtin BuiltinRep :: Builtin BuiltinScan :: Builtin BuiltinCons :: Builtin BuiltinNil :: Builtin BuiltinMMul :: Builtin BuiltinArr :: Builtin BuiltinInt :: Builtin BuiltinFloat :: Builtin BuiltinT :: Builtin BuiltinR :: Builtin BuiltinSin :: Builtin BuiltinCos :: Builtin BuiltinScanS :: Builtin BuiltinTan :: Builtin BuiltinVMul :: Builtin BuiltinCyc :: Builtin BuiltinOdd :: Builtin BuiltinEven :: Builtin BuiltinAbs :: Builtin BuiltinD :: Builtin BuiltinVec :: Builtin BuiltinM :: Builtin BuiltinBool :: Builtin -- | Reserved/special variables data Var VarX :: Var VarY :: Var type AlexUserState = (Int, Map Text Int, IntMap Nm AlexPosn) instance GHC.Internal.Base.Applicative L.Alex instance GHC.Classes.Eq L.AlexPosn instance GHC.Internal.Base.Functor L.Alex instance GHC.Internal.Generics.Generic L.AlexPosn instance GHC.Internal.Generics.Generic L.Builtin instance GHC.Internal.Generics.Generic L.Sym instance GHC.Internal.Generics.Generic (L.Token a) instance GHC.Internal.Generics.Generic L.Var instance GHC.Internal.Base.Monad L.Alex instance Control.DeepSeq.NFData L.AlexPosn instance Control.DeepSeq.NFData L.Builtin instance Control.DeepSeq.NFData L.Sym instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (L.Token a) instance Control.DeepSeq.NFData L.Var instance GHC.Classes.Ord L.AlexPosn instance Prettyprinter.Internal.Pretty L.AlexPosn instance Prettyprinter.Internal.Pretty L.Builtin instance Prettyprinter.Internal.Pretty L.Sym instance Prettyprinter.Internal.Pretty (L.Token a) instance Prettyprinter.Internal.Pretty L.Var instance GHC.Internal.Show.Show L.AlexPosn module Parser parseWithMaxCtx :: AlexUserState -> ByteString -> Either (ParseE AlexPosn) (Int, E AlexPosn) data ParseE a Unexpected :: Token a -> ParseE a LexErr :: String -> ParseE a instance (Prettyprinter.Internal.Pretty a, GHC.Internal.Data.Typeable.Internal.Typeable a) => GHC.Internal.Exception.Type.Exception (Parser.ParseE a) instance GHC.Internal.Generics.Generic (Parser.ParseE a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Parser.ParseE a) instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (Parser.ParseE a) instance Prettyprinter.Internal.Pretty a => GHC.Internal.Show.Show (Parser.ParseE a) module I inline :: Int -> E (T ()) -> (E (T ()), Int) β :: Int -> E (T ()) -> (E (T ()), Int) instance R.HasRs (I.ISt a) module P data Err a PErr :: ParseE a -> Err a TyErr :: TyE a -> Err a RErr :: RE -> Err a type CCtx = (Int, Int, Int, Int) tyParse :: ByteString -> Either (Err AlexPosn) (E (T ()), Int) tyParseCtx :: AlexUserState -> ByteString -> Either (Err AlexPosn) (E (T ()), Int) tyExpr :: ByteString -> Either (Err AlexPosn) (Doc ann) tyOf :: ByteString -> Either (Err AlexPosn) (T (), [(Nm AlexPosn, C)]) tyC :: Int -> E a -> Either (Err a) (E (T ()), [(Nm a, C)], Int) getTy :: ByteString -> Either (Err AlexPosn) (T (), [(Nm AlexPosn, C)]) parseInline :: ByteString -> Either (Err AlexPosn) (E (T ()), Int) parseRename :: ByteString -> Either (ParseE AlexPosn) (E AlexPosn, Int) rwP :: AlexUserState -> ByteString -> Either (ParseE AlexPosn) (E AlexPosn, Int) opt :: ByteString -> Either (Err AlexPosn) (E (T ())) ir :: ByteString -> Either (Err AlexPosn) ([Stmt], AsmData, WSt) cmm :: ByteString -> Either (Err AlexPosn) ([CS Liveness], AsmData) eDumpC :: Int -> E a -> Either (Err a) (Doc ann) eDumpIR :: Int -> E a -> Either (Err a) (Doc ann) aarch64 :: ByteString -> Either (Err AlexPosn) (AsmData, [AArch64 AReg FAReg ()]) as :: Text -> ByteString -> Doc ann x86G :: ByteString -> Either (Err AlexPosn) (AsmData, [X86 X86Reg FX86Reg ()]) eDumpX86 :: Int -> E a -> Either (Err a) (Doc ann) eDumpAarch64 :: Int -> E a -> Either (Err a) (Doc ann) ex86G :: Int -> E a -> Either (Err a) (AsmData, [X86 X86Reg FX86Reg ()]) eAarch64 :: Int -> E a -> Either (Err a) (AsmData, [AArch64 AReg FAReg ()]) bytes :: ByteString -> Either (Err AlexPosn) ByteString funP :: ByteString -> IO (FunPtr a, Maybe (Ptr Word64)) aFunP :: ByteString -> IO (FunPtr a, Maybe (Ptr Word64)) eFunP :: (Pretty a, Typeable a) => Int -> CCtx -> E a -> IO (Int, FunPtr b, Maybe (Ptr Word64)) eAFunP :: (Pretty a, Typeable a) => Int -> (CCtx, MCtx) -> E a -> IO (Int, FunPtr b, Maybe (Ptr Word64)) ctxFunP :: CCtx -> ByteString -> IO (Int, FunPtr a, Maybe (Ptr Word64)) actxFunP :: (CCtx, MCtx) -> ByteString -> IO (Int, FunPtr a, Maybe (Ptr Word64)) instance (Prettyprinter.Internal.Pretty a, GHC.Internal.Data.Typeable.Internal.Typeable a) => GHC.Internal.Exception.Type.Exception (P.Err a) instance GHC.Internal.Generics.Generic (P.Err a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (P.Err a) instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (P.Err a) instance Prettyprinter.Internal.Pretty a => GHC.Internal.Show.Show (P.Err a) module Dbg dumpAAbs :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpAarch64 :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpAAss :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpX86G :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpX86Abs :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpX86Liveness :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpC :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpCI :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpIR :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpDomTree :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpLoop :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpX86Intervals :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpALiveness :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpAIntervals :: ByteString -> Either (Err AlexPosn) (Doc ann) dumpX86Ass :: ByteString -> Either (Err AlexPosn) (Doc ann) printParsed :: ByteString -> Doc ann printTypes :: ByteString -> Doc ann topt :: ByteString -> Either (Err AlexPosn) (Doc ann) nasm :: Text -> ByteString -> Doc ann pBIO :: ByteString -> IO () dtxt :: ByteString -> IO (Either (Err AlexPosn) Text) dAtxt :: ByteString -> IO (Either (Err AlexPosn) Text) edAtxt :: Int -> E a -> IO (Either (Err a) Text) eDtxt :: Int -> E a -> IO (Either (Err a) Text)