Last active
December 25, 2015 13:49
-
-
Save ntc2/6986500 to your computer and use it in GitHub Desktop.
GHC optimization confusion. See http://stackoverflow.com/a/19372414/470844.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Main where | |
import Unique | |
main = do | |
print $ newUnique () | |
print $ newUnique () |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
all: view-regular view-opt view-opt-no-cse view-opt-no-cse-no-full-laziness | |
regular: clean-hs | |
ghc -O0 Main.hs && ./Main | |
view-regular: clean-hs | |
ghc-core -- -O0 Main.hs | tee [email protected] | |
opt: clean-hs | |
ghc -O Main.hs && ./Main | |
view-opt: clean-hs | |
ghc-core -- -O Main.hs | tee [email protected] | |
opt-no-cse: clean-hs | |
ghc -O -fno-cse Main.hs && ./Main | |
# Important to put the -fno-cse after the -O! | |
view-opt-no-cse: clean-hs | |
ghc-core -- -O -fno-cse Main.hs | tee [email protected] | |
opt-no-cse-no-full-laziness: clean-hs | |
ghc -O -fno-cse -fno-full-laziness Main.hs && ./Main | |
view-opt-no-cse-no-full-laziness: clean-hs | |
ghc-core -- -O -fno-cse -fno-full-laziness Main.hs | tee [email protected] | |
clean-hs: | |
-rm *.hi *o Main | |
clean: clean-hs | |
-rm *.core | |
# I want the color, but it doesn't display correctly in on github. | |
remove-color: | |
ls *.core | xargs sed -i -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Unique (newUnique) where | |
import Data.IORef | |
import System.IO.Unsafe (unsafePerformIO) | |
-- Type to represent a unique thing. | |
-- Show is derived just for testing purposes. | |
newtype Unique = U Integer | |
deriving Show | |
{-# NOINLINE counter #-} | |
counter :: IORef Integer | |
counter = unsafePerformIO $ newIORef 0 | |
newUnique' :: IO Unique | |
newUnique' = do { x <- readIORef counter | |
; writeIORef counter (x+1) | |
; return $ U x } | |
{-# NOINLINE newUnique #-} | |
newUnique :: () -> Unique | |
newUnique () = unsafePerformIO newUnique' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1 of 2] Compiling Unique ( Unique.hs, Unique.o ) | |
==================== Tidy Core ==================== | |
Result size of Tidy Core = {terms: 100, types: 93, coercions: 16} | |
counter_rfj :: IORef Type.Integer | |
counter_rfj = | |
unsafeDupablePerformIO | |
@ (IORef Type.Integer) | |
((\ (s_as1 :: State# RealWorld) -> | |
case noDuplicate# s_as1 of s'_as2 { __DEFAULT -> | |
case newMutVar# | |
@ Type.Integer | |
@ RealWorld | |
(__integer 0) | |
s'_as2 | |
of _ { (# ipv_auo, ipv1_aup #) -> | |
(# ipv_auo, | |
(STRef | |
@ RealWorld @ Type.Integer ipv1_aup) | |
`cast` (Sym <(NTCo:IORef)> <Type.Integer> | |
:: STRef RealWorld Type.Integer | |
~# | |
IORef Type.Integer) #) | |
} | |
}) | |
`cast` (Sym | |
<(NTCo:IO <IORef Type.Integer>)> | |
:: (State# RealWorld | |
-> (# State# RealWorld, | |
IORef Type.Integer #)) | |
~# | |
IO (IORef Type.Integer))) | |
Unique.$w$cshowsPrec | |
:: Int# -> Unique.Unique -> ShowS | |
[GblId, | |
Arity=2, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=2, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=IF_ARGS [0 0] 251 120}] | |
Unique.$w$cshowsPrec = | |
\ (ww_sxN :: Int#) (w_sxP :: Unique.Unique) -> | |
let { | |
a_suD [Dmd=Just L] :: [Char] | |
a_suD = unpackCString# "U " } in | |
case >=# ww_sxN 11 of _ { | |
False -> | |
\ (x_asA :: String) -> | |
++ | |
@ Char | |
a_suD | |
($w$cshowsPrec | |
11 | |
(w_sxP | |
`cast` (<Unique.NTCo:Unique> | |
:: Unique.Unique ~# Type.Integer)) | |
x_asA); | |
True -> | |
\ (x_asb :: String) -> | |
: | |
@ Char | |
shows11 | |
(++ | |
@ Char | |
a_suD | |
($w$cshowsPrec | |
11 | |
(w_sxP | |
`cast` (<Unique.NTCo:Unique> | |
:: Unique.Unique ~# Type.Integer)) | |
(: @ Char shows10 x_asb))) | |
} | |
Unique.$fShowUnique_$cshowsPrec [InlPrag=INLINE[0]] | |
:: Int -> Unique.Unique -> ShowS | |
[GblId, | |
Arity=2, | |
Unf=Unf{Src=Worker=Unique.$w$cshowsPrec, TopLvl=True, Arity=2, | |
Value=True, ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) | |
Tmpl= \ (w_sxL [Occ=Once!] :: Int) | |
(w1_sxP [Occ=Once] :: Unique.Unique) -> | |
case w_sxL of _ { I# ww_sxN [Occ=Once] -> | |
Unique.$w$cshowsPrec ww_sxN w1_sxP | |
}}] | |
Unique.$fShowUnique_$cshowsPrec = | |
\ (w_sxL :: Int) (w1_sxP :: Unique.Unique) -> | |
case w_sxL of _ { I# ww_sxN -> | |
Unique.$w$cshowsPrec ww_sxN w1_sxP | |
} | |
Unique.$fShowUnique1 :: Unique.Unique -> ShowS | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=IF_ARGS [0] 30 0}] | |
Unique.$fShowUnique1 = | |
\ (w_sxP :: Unique.Unique) -> Unique.$w$cshowsPrec 0 w_sxP | |
Unique.$fShowUnique_$cshowList :: [Unique.Unique] -> ShowS | |
[GblId, | |
Arity=2, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=IF_ARGS [] 20 60}] | |
Unique.$fShowUnique_$cshowList = | |
showList__ @ Unique.Unique Unique.$fShowUnique1 | |
Unique.$fShowUnique_$cshow :: Unique.Unique -> String | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=IF_ARGS [0] 40 0}] | |
Unique.$fShowUnique_$cshow = | |
\ (x_atg :: Unique.Unique) -> | |
Unique.$w$cshowsPrec 0 x_atg ([] @ Char) | |
Unique.$fShowUnique [InlPrag=[ALWAYS] CONLIKE] | |
:: Show Unique.Unique | |
[GblId[DFunId], | |
Unf=DFun(arity=0) D:Show [{Unique.$fShowUnique_$cshowsPrec}, | |
{Unique.$fShowUnique_$cshow}, {Unique.$fShowUnique_$cshowList}]] | |
Unique.$fShowUnique = | |
D:Show | |
@ Unique.Unique | |
Unique.$fShowUnique_$cshowsPrec | |
Unique.$fShowUnique_$cshow | |
Unique.$fShowUnique_$cshowList | |
Unique.newUnique [InlPrag=NOINLINE] :: () -> Unique.Unique | |
Unique.newUnique = | |
\ (ds_drR :: ()) -> | |
case ds_drR of _ { () -> | |
unsafeDupablePerformIO | |
@ Unique.Unique | |
((\ (s_as1 :: State# RealWorld) -> | |
case noDuplicate# s_as1 of s'_as2 { __DEFAULT -> | |
case counter_rfj | |
`cast` (<NTCo:IORef> <Type.Integer> | |
:: IORef Type.Integer | |
~# | |
STRef RealWorld Type.Integer) | |
of _ { STRef var#_avI -> | |
case readMutVar# | |
@ RealWorld @ Type.Integer var#_avI s'_as2 | |
of _ { (# ipv_avz, ipv1_avA #) -> | |
case writeMutVar# | |
@ RealWorld | |
@ Type.Integer | |
var#_avI | |
(Type.plusInteger ipv1_avA (__integer 1)) | |
ipv_avz | |
of s2#_aw2 { __DEFAULT -> | |
(# s2#_aw2, | |
ipv1_avA | |
`cast` (Sym <(Unique.NTCo:Unique)> | |
:: Type.Integer ~# Unique.Unique) #) | |
} | |
} | |
} | |
}) | |
`cast` (Sym <(NTCo:IO <Unique.Unique>)> | |
:: (State# RealWorld | |
-> (# State# RealWorld, Unique.Unique #)) | |
~# | |
IO Unique.Unique)) | |
} | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_main:Unique | |
.type __stginit_main:Unique, @object | |
__stginit_main:Unique: | |
.data | |
.align 4 | |
.align 1 | |
sat_szi_closure: | |
.long sat_szi_info | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 32 | |
szA_info: | |
_czS: | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _czX | |
movl $STRef_con_info,-4(%edi) | |
movl %esi,0(%edi) | |
leal -3(%edi),%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
_czX: | |
movl $8,116(%ebx) | |
_czV: | |
movl $254,32(%ebx) | |
jmp stg_gc_ut | |
.size szA_info, .-szA_info | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 32 | |
syy_info: | |
_cA1: | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _cA5 | |
movl $Type.S#_con_info,-4(%edi) | |
movl $0,0(%edi) | |
leal -3(%edi),%esi | |
movl $szA_info,0(%ebp) | |
jmp stg_newMutVar# | |
_cA5: | |
movl $8,116(%ebx) | |
jmp stg_gc_noregs | |
.size syy_info, .-syy_info | |
.text | |
.align 4,0x90 | |
.long 65539 | |
.long 0 | |
.long 15 | |
sat_szi_info: | |
_cA9: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cAb | |
movl $syy_info,-4(%ebp) | |
addl $-4,%ebp | |
jmp stg_noDuplicate# | |
_cAb: | |
movl $sat_szi_closure,%esi | |
jmp *-4(%ebx) | |
.size sat_szi_info, .-sat_szi_info | |
.section .data | |
.align 4 | |
.align 1 | |
counter_rfj_srt: | |
.long sat_szi_closure | |
.data | |
.align 4 | |
.align 1 | |
counter_rfj_closure: | |
.long counter_rfj_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long counter_rfj_srt-(counter_rfj_info)+0 | |
.long 0 | |
.long 65558 | |
counter_rfj_info: | |
_cAq: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cAs | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _cAu | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je _cAv | |
_cAw: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $sat_szi_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp unsafeDupablePerformIO_info | |
_cAu: | |
movl $8,116(%ebx) | |
_cAs: | |
jmp *-8(%ebx) | |
_cAv: | |
jmp *(%esi) | |
.size counter_rfj_info, .-counter_rfj_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique.$w$cshowsPrec_srt: | |
.long $w$cshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.$w$cshowsPrec_closure | |
.type Unique.$w$cshowsPrec_closure, @object | |
Unique.$w$cshowsPrec_closure: | |
.long Unique.$w$cshowsPrec_info | |
.long 0 | |
.section .rodata | |
.align 4 | |
.align 1 | |
cAY_str: | |
.byte 85 | |
.byte 32 | |
.byte 0 | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 16 | |
a_syJ_info: | |
_cB2: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cB4 | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $cAY_str,-12(%ebp) | |
addl $-12,%ebp | |
jmp unpackCString#_info | |
_cB4: | |
jmp *-8(%ebx) | |
.size a_syJ_info, .-a_syJ_info | |
.text | |
.align 4,0x90 | |
.long Unique.$w$cshowsPrec_srt-(sat_syQ_info)+0 | |
.long 2 | |
.long 65555 | |
sat_syQ_info: | |
_cBh: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cBj | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl 12(%esi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $11,-20(%ebp) | |
addl $-20,%ebp | |
jmp $w$cshowsPrec_info | |
_cBj: | |
jmp *-8(%ebx) | |
.size sat_syQ_info, .-sat_syQ_info | |
.text | |
.align 4,0x90 | |
.long Unique.$w$cshowsPrec_srt-(sat_sAE_info)+0 | |
.long 65541 | |
.long 2 | |
.long 65548 | |
sat_sAE_info: | |
_cBq: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cBs | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja _cBu | |
movl $sat_syQ_info,-12(%edi) | |
movl 7(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 0(%ebp),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,0(%ebp) | |
movl 3(%esi),%eax | |
movl %eax,-4(%ebp) | |
addl $-4,%ebp | |
jmp ++_info | |
_cBu: | |
movl $16,116(%ebx) | |
_cBs: | |
jmp *-4(%ebx) | |
.size sat_sAE_info, .-sat_sAE_info | |
.text | |
.align 4,0x90 | |
.long Unique.$w$cshowsPrec_srt-(sat_syX_info)+0 | |
.long 2 | |
.long 65555 | |
sat_syX_info: | |
_cBM: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cBO | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja _cBQ | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $:_con_info,-8(%edi) | |
movl $shows10_closure,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $11,-20(%ebp) | |
addl $-20,%ebp | |
jmp $w$cshowsPrec_info | |
_cBQ: | |
movl $12,116(%ebx) | |
_cBO: | |
jmp *-8(%ebx) | |
.size sat_syX_info, .-sat_syX_info | |
.text | |
.align 4,0x90 | |
.long Unique.$w$cshowsPrec_srt-(sat_syZ_info)+0 | |
.long 3 | |
.long 65552 | |
sat_syZ_info: | |
_cBZ: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cC1 | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja _cC3 | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sat_syX_info,-12(%edi) | |
movl 12(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 16(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp ++_info | |
_cC3: | |
movl $16,116(%ebx) | |
_cC1: | |
jmp *-8(%ebx) | |
.size sat_syZ_info, .-sat_syZ_info | |
.text | |
.align 4,0x90 | |
.long Unique.$w$cshowsPrec_srt-(sat_sAF_info)+0 | |
.long 65541 | |
.long 2 | |
.long 65548 | |
sat_sAF_info: | |
_cCc: | |
addl $32,%edi | |
cmpl 92(%ebx),%edi | |
ja _cCg | |
movl $sat_syZ_info,-28(%edi) | |
movl 3(%esi),%eax | |
movl %eax,-20(%edi) | |
movl 7(%esi),%eax | |
movl %eax,-16(%edi) | |
movl 0(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $:_con_info,-8(%edi) | |
movl $shows11_closure,-4(%edi) | |
leal -28(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
_cCg: | |
movl $32,116(%ebx) | |
_cCe: | |
jmp *-4(%ebx) | |
.size sat_sAF_info, .-sat_sAF_info | |
.text | |
.align 4,0x90 | |
.long Unique.$w$cshowsPrec_srt-(Unique.$w$cshowsPrec_info)+0 | |
.long 131082 | |
.long 0 | |
.long 65551 | |
.globl Unique.$w$cshowsPrec_info | |
.type Unique.$w$cshowsPrec_info, @object | |
Unique.$w$cshowsPrec_info: | |
_cCo: | |
addl $20,%edi | |
cmpl 92(%ebx),%edi | |
ja _cCs | |
movl $a_syJ_info,-16(%edi) | |
cmpl $11,0(%ebp) | |
jge _cCu | |
movl $sat_sAE_info,-8(%edi) | |
leal -16(%edi),%eax | |
movl %eax,-4(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,0(%edi) | |
leal -7(%edi),%esi | |
addl $8,%ebp | |
jmp *0(%ebp) | |
_cCs: | |
movl $20,116(%ebx) | |
_cCq: | |
movl $Unique.$w$cshowsPrec_closure,%esi | |
jmp *-4(%ebx) | |
_cCu: | |
movl $sat_sAF_info,-8(%edi) | |
leal -16(%edi),%eax | |
movl %eax,-4(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,0(%edi) | |
leal -7(%edi),%esi | |
addl $8,%ebp | |
jmp *0(%ebp) | |
.size Unique.$w$cshowsPrec_info, .-Unique.$w$cshowsPrec_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique.$fShowUnique_$cshowsPrec_srt: | |
.long $w$cshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.$fShowUnique_$cshowsPrec_closure | |
.type Unique.$fShowUnique_$cshowsPrec_closure, @object | |
Unique.$fShowUnique_$cshowsPrec_closure: | |
.long Unique.$fShowUnique_$cshowsPrec_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique.$fShowUnique_$cshowsPrec_srt-(sCB_info)+0 | |
.long 1 | |
.long 65568 | |
sCB_info: | |
_cCP: | |
movl 3(%esi),%eax | |
movl %eax,0(%ebp) | |
jmp Unique.$w$cshowsPrec_info | |
.size sCB_info, .-sCB_info | |
.text | |
.align 4,0x90 | |
.long Unique.$fShowUnique_$cshowsPrec_srt-(Unique.$fShowUnique_$cshowsPrec_info)+0 | |
.long 131084 | |
.long 0 | |
.long 65551 | |
.globl Unique.$fShowUnique_$cshowsPrec_info | |
.type Unique.$fShowUnique_$cshowsPrec_info, @object | |
Unique.$fShowUnique_$cshowsPrec_info: | |
_cCU: | |
movl 0(%ebp),%esi | |
movl $sCB_info,0(%ebp) | |
testl $3,%esi | |
jne sCB_info | |
jmp *(%esi) | |
.size Unique.$fShowUnique_$cshowsPrec_info, .-Unique.$fShowUnique_$cshowsPrec_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique.$fShowUnique1_srt: | |
.long $w$cshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.$fShowUnique1_closure | |
.type Unique.$fShowUnique1_closure, @object | |
Unique.$fShowUnique1_closure: | |
.long Unique.$fShowUnique1_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique.$fShowUnique1_srt-(Unique.$fShowUnique1_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique.$fShowUnique1_info | |
.type Unique.$fShowUnique1_info, @object | |
Unique.$fShowUnique1_info: | |
_cD7: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cDa | |
movl $0,-4(%ebp) | |
addl $-4,%ebp | |
jmp Unique.$w$cshowsPrec_info | |
_cDa: | |
movl $Unique.$fShowUnique1_closure,%esi | |
jmp *-4(%ebx) | |
.size Unique.$fShowUnique1_info, .-Unique.$fShowUnique1_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique.$fShowUnique_$cshowList_srt: | |
.long $w$cshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.$fShowUnique_$cshowList_closure | |
.type Unique.$fShowUnique_$cshowList_closure, @object | |
Unique.$fShowUnique_$cshowList_closure: | |
.long Unique.$fShowUnique_$cshowList_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique.$fShowUnique_$cshowList_srt-(Unique.$fShowUnique_$cshowList_info)+0 | |
.long 131084 | |
.long 0 | |
.long 65551 | |
.globl Unique.$fShowUnique_$cshowList_info | |
.type Unique.$fShowUnique_$cshowList_info, @object | |
Unique.$fShowUnique_$cshowList_info: | |
_cDl: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cDo | |
movl $Unique.$fShowUnique1_closure+1,-4(%ebp) | |
addl $-4,%ebp | |
jmp showList___info | |
_cDo: | |
movl $Unique.$fShowUnique_$cshowList_closure,%esi | |
jmp *-4(%ebx) | |
.size Unique.$fShowUnique_$cshowList_info, .-Unique.$fShowUnique_$cshowList_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique.$fShowUnique_$cshow_srt: | |
.long $w$cshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.$fShowUnique_$cshow_closure | |
.type Unique.$fShowUnique_$cshow_closure, @object | |
Unique.$fShowUnique_$cshow_closure: | |
.long Unique.$fShowUnique_$cshow_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique.$fShowUnique_$cshow_srt-(Unique.$fShowUnique_$cshow_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique.$fShowUnique_$cshow_info | |
.type Unique.$fShowUnique_$cshow_info, @object | |
Unique.$fShowUnique_$cshow_info: | |
_cDz: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cDC | |
movl $stg_ap_p_info,-4(%ebp) | |
movl 0(%ebp),%eax | |
movl %eax,-8(%ebp) | |
movl $[]_closure+1,0(%ebp) | |
movl $0,-12(%ebp) | |
addl $-12,%ebp | |
jmp Unique.$w$cshowsPrec_info | |
_cDC: | |
movl $Unique.$fShowUnique_$cshow_closure,%esi | |
jmp *-4(%ebx) | |
.size Unique.$fShowUnique_$cshow_info, .-Unique.$fShowUnique_$cshow_info | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.$fShowUnique_closure | |
.type Unique.$fShowUnique_closure, @object | |
Unique.$fShowUnique_closure: | |
.long D:Show_static_info | |
.long Unique.$fShowUnique_$cshowsPrec_closure+2 | |
.long Unique.$fShowUnique_$cshow_closure+1 | |
.long Unique.$fShowUnique_$cshowList_closure+2 | |
.long 0 | |
.section .data | |
.align 4 | |
.align 1 | |
Unique.newUnique_srt: | |
.long counter_rfj_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique.newUnique_closure | |
.type Unique.newUnique_closure, @object | |
Unique.newUnique_closure: | |
.long Unique.newUnique_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long 1 | |
.long 17 | |
sat_sDJ_info: | |
_cEu: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cEw | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _cEy | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $Type.S#_con_info,-4(%edi) | |
movl $1,0(%edi) | |
leal -3(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp Type.plusInteger_info | |
_cEy: | |
movl $8,116(%ebx) | |
_cEw: | |
jmp *-8(%ebx) | |
.size sat_sDJ_info, .-sat_sDJ_info | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 32 | |
sDM_info: | |
_cEF: | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja _cEJ | |
movl 3(%esi),%eax | |
movl 4(%eax),%eax | |
movl $sat_sDJ_info,-8(%edi) | |
movl %eax,0(%edi) | |
leal -8(%edi),%ecx | |
movl 3(%esi),%edx | |
movl %ecx,4(%edx) | |
movl %ebx,%ecx | |
movl 3(%esi),%edx | |
subl $4,%esp | |
pushl %edx | |
pushl %ecx | |
movl %eax,76(%esp) | |
call dirty_MUT_VAR | |
addl $12,%esp | |
movl 64(%esp),%eax | |
movl %eax,%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
_cEJ: | |
movl $12,116(%ebx) | |
_cEH: | |
jmp *-8(%ebx) | |
.size sDM_info, .-sDM_info | |
.text | |
.align 4,0x90 | |
.long Unique.newUnique_srt-(szm_info)+0 | |
.long 0 | |
.long 65568 | |
szm_info: | |
_cEU: | |
movl $counter_rfj_closure,%esi | |
movl $sDM_info,0(%ebp) | |
testl $3,%esi | |
jne sDM_info | |
jmp *(%esi) | |
.size szm_info, .-szm_info | |
.text | |
.align 4,0x90 | |
.long Unique.newUnique_srt-(sat_sDK_info)+0 | |
.long 65539 | |
.long 65536 | |
.long 65547 | |
sat_sDK_info: | |
_cF1: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _cF3 | |
movl $szm_info,-4(%ebp) | |
addl $-4,%ebp | |
jmp stg_noDuplicate# | |
_cF3: | |
jmp *-4(%ebx) | |
.size sat_sDK_info, .-sat_sDK_info | |
.text | |
.align 4,0x90 | |
.long Unique.newUnique_srt-(sDN_info)+0 | |
.long 0 | |
.long 65568 | |
sDN_info: | |
_cF8: | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _cFc | |
movl $sat_sDK_info,-4(%edi) | |
leal -3(%edi),%eax | |
movl %eax,0(%ebp) | |
jmp unsafeDupablePerformIO_info | |
_cFc: | |
movl $8,116(%ebx) | |
_cFa: | |
jmp *-8(%ebx) | |
.size sDN_info, .-sDN_info | |
.text | |
.align 4,0x90 | |
.long Unique.newUnique_srt-(Unique.newUnique_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique.newUnique_info | |
.type Unique.newUnique_info, @object | |
Unique.newUnique_info: | |
_cFh: | |
movl 0(%ebp),%esi | |
movl $sDN_info,0(%ebp) | |
testl $3,%esi | |
jne sDN_info | |
jmp *(%esi) | |
.size Unique.newUnique_info, .-Unique.newUnique_info | |
[2 of 2] Compiling Main ( hs, o ) | |
==================== Tidy Core ==================== | |
Result size of Tidy Core = {terms: 32, types: 30, coercions: 9} | |
main1 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=IF_ARGS [0] 230 0}] | |
main1 = | |
\ (eta_B1 :: State# RealWorld) -> | |
case Handle.Text.hPutStr2 | |
Handle.FD.stdout | |
(Unique.$w$cshowsPrec | |
0 (Unique.newUnique ()) ([] @ Char)) | |
True | |
eta_B1 | |
of _ { (# ipv_avz, _ #) -> | |
Handle.Text.hPutStr2 | |
Handle.FD.stdout | |
(Unique.$w$cshowsPrec | |
0 (Unique.newUnique ()) ([] @ Char)) | |
True | |
ipv_avz | |
} | |
main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
main = | |
main1 | |
`cast` (Sym <(NTCo:IO <()>)> | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ()) | |
main2 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=IF_ARGS [0] 30 0}] | |
main2 = | |
\ (eta_Xb :: State# RealWorld) -> | |
runMainIO1 | |
@ () | |
(main1 | |
`cast` (Sym <(NTCo:IO <()>)> | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ())) | |
eta_Xb | |
:main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, WorkFree=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
:main = | |
main2 | |
`cast` (Sym <(NTCo:IO <()>)> | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ()) | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_main:Main | |
.type __stginit_main:Main, @object | |
__stginit_main:Main: | |
.globl __stginit_main::Main | |
.type __stginit_main::Main, @object | |
__stginit_main::Main: | |
.section .data | |
.align 4 | |
.align 1 | |
main1_srt: | |
.long Unique.$w$cshowsPrec_closure | |
.long Unique.newUnique_closure | |
.long Handle.FD.stdout_closure | |
.long Handle.Text.hPutStr2_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl main1_closure | |
.type main1_closure, @object | |
main1_closure: | |
.long main1_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long main1_srt-(sat_s1X1_info)+4 | |
.long 0 | |
.long 65552 | |
sat_s1X1_info: | |
_c1Xv: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _c1Xx | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $()_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp Unique.newUnique_info | |
_c1Xx: | |
jmp *-8(%ebx) | |
.size sat_s1X1_info, .-sat_s1X1_info | |
.text | |
.align 4,0x90 | |
.long main1_srt-(sat_s1Xe_info)+0 | |
.long 0 | |
.long 196624 | |
sat_s1Xe_info: | |
_c1XD: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _c1XF | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _c1XH | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sat_s1X1_info,-4(%edi) | |
movl $[]_closure+1,-12(%ebp) | |
movl $stg_ap_p_info,-16(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-20(%ebp) | |
movl $0,-24(%ebp) | |
addl $-24,%ebp | |
jmp Unique.$w$cshowsPrec_info | |
_c1XH: | |
movl $8,116(%ebx) | |
_c1XF: | |
jmp *-8(%ebx) | |
.size sat_s1Xe_info, .-sat_s1Xe_info | |
.text | |
.align 4,0x90 | |
.long main1_srt-(sat_s1X8_info)+4 | |
.long 0 | |
.long 65552 | |
sat_s1X8_info: | |
_c1XV: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _c1XX | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $()_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp Unique.newUnique_info | |
_c1XX: | |
jmp *-8(%ebx) | |
.size sat_s1X8_info, .-sat_s1X8_info | |
.text | |
.align 4,0x90 | |
.long main1_srt-(sat_s1Xd_info)+0 | |
.long 0 | |
.long 196624 | |
sat_s1Xd_info: | |
_c1Y3: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _c1Y5 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _c1Y7 | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sat_s1X8_info,-4(%edi) | |
movl $[]_closure+1,-12(%ebp) | |
movl $stg_ap_p_info,-16(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-20(%ebp) | |
movl $0,-24(%ebp) | |
addl $-24,%ebp | |
jmp Unique.$w$cshowsPrec_info | |
_c1Y7: | |
movl $8,116(%ebx) | |
_c1Y5: | |
jmp *-8(%ebx) | |
.size sat_s1Xd_info, .-sat_s1Xd_info | |
.text | |
.align 4,0x90 | |
.long main1_srt-(s1Xg_info)+0 | |
.long 0 | |
.long 983072 | |
s1Xg_info: | |
_c1Yd: | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _c1Yh | |
movl $sat_s1Xd_info,-4(%edi) | |
movl $True_closure+2,0(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $Handle.FD.stdout_closure,-8(%ebp) | |
addl $-8,%ebp | |
jmp Handle.Text.hPutStr2_info | |
_c1Yh: | |
movl $8,116(%ebx) | |
_c1Yf: | |
movl $254,32(%ebx) | |
jmp stg_gc_ut | |
.size s1Xg_info, .-s1Xg_info | |
.text | |
.align 4,0x90 | |
.long main1_srt-(main1_info)+0 | |
.long 65539 | |
.long 0 | |
.long 983055 | |
.globl main1_info | |
.type main1_info, @object | |
main1_info: | |
_c1Ym: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _c1Yo | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja _c1Yq | |
movl $sat_s1Xe_info,-4(%edi) | |
movl $True_closure+2,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl $Handle.FD.stdout_closure,-16(%ebp) | |
movl $s1Xg_info,-4(%ebp) | |
addl $-16,%ebp | |
jmp Handle.Text.hPutStr2_info | |
_c1Yq: | |
movl $8,116(%ebx) | |
_c1Yo: | |
movl $main1_closure,%esi | |
jmp *-4(%ebx) | |
.size main1_info, .-main1_info | |
.section .data | |
.align 4 | |
.align 1 | |
main_srt: | |
.long main1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl main_closure | |
.type main_closure, @object | |
main_closure: | |
.long main_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long main_srt-(main_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
.globl main_info | |
.type main_info, @object | |
main_info: | |
_c1YC: | |
jmp main1_info | |
.size main_info, .-main_info | |
.section .data | |
.align 4 | |
.align 1 | |
main2_srt: | |
.long runMainIO1_closure | |
.long main1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl main2_closure | |
.type main2_closure, @object | |
main2_closure: | |
.long main2_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long main2_srt-(main2_info)+0 | |
.long 65539 | |
.long 0 | |
.long 196623 | |
.globl main2_info | |
.type main2_info, @object | |
main2_info: | |
_c1YM: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb _c1YP | |
movl $main1_closure+1,-4(%ebp) | |
addl $-4,%ebp | |
jmp runMainIO1_info | |
_c1YP: | |
movl $main2_closure,%esi | |
jmp *-4(%ebx) | |
.size main2_info, .-main2_info | |
.section .data | |
.align 4 | |
.align 1 | |
:main_srt: | |
.long main2_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl :main_closure | |
.type :main_closure, @object | |
:main_closure: | |
.long :main_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long :main_srt-(:main_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
.globl :main_info | |
.type :main_info, @object | |
:main_info: | |
_c1Z0: | |
jmp main2_info | |
.size :main_info, .-:main_info | |
Linking Main ... | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1 of 2] Compiling Unique ( Unique.hs, Unique.o ) | |
==================== Tidy Core ==================== | |
Result size = 179 | |
lvl_rvf :: Type.Integer | |
[GblId] | |
lvl_rvf = __integer 0 | |
lvl1_rvg | |
:: State# RealWorld | |
-> (# State# RealWorld, | |
IORef Type.Integer #) | |
[GblId, Arity=1] | |
lvl1_rvg = | |
\ (s_aqi :: State# RealWorld) -> | |
case noDuplicate# s_aqi of s'_aqj { __DEFAULT -> | |
case newMutVar# | |
@ Type.Integer @ RealWorld lvl_rvf s'_aqj | |
of _ { (# s2#_asL, var#_asM #) -> | |
(# s2#_asL, | |
(STRef | |
@ RealWorld @ Type.Integer var#_asM) | |
`cast` (Sym (NTCo:IORef) <Type.Integer> | |
:: STRef RealWorld Type.Integer | |
~# | |
IORef Type.Integer) #) | |
} | |
} | |
counter_rag :: IORef Type.Integer | |
counter_rag = | |
unsafeDupablePerformIO | |
@ (IORef Type.Integer) | |
(lvl1_rvg | |
`cast` (Sym | |
(NTCo:IO <IORef Type.Integer>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, | |
IORef Type.Integer #)) | |
~# | |
IO (IORef Type.Integer))) | |
Unique.$fShowUnique1 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
Unique.$fShowUnique1 = unpackCString# "U " | |
Unique.$w$cshowsPrec | |
:: Int# | |
-> Unique.Unique -> String -> [Char] | |
[GblId, | |
Arity=3, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=3, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0 0 0] 181 120}] | |
Unique.$w$cshowsPrec = | |
\ (ww_suY :: Int#) | |
(w_sv0 :: Unique.Unique) | |
(w1_sv1 :: String) -> | |
case >=# ww_suY 11 of _ { | |
False -> | |
++ | |
@ Char | |
Unique.$fShowUnique1 | |
($w$cshowsPrec | |
11 | |
(w_sv0 | |
`cast` (Unique.NTCo:Unique | |
:: Unique.Unique ~# Type.Integer)) | |
w1_sv1); | |
True -> | |
: | |
@ Char | |
shows2 | |
(++ | |
@ Char | |
Unique.$fShowUnique1 | |
($w$cshowsPrec | |
11 | |
(w_sv0 | |
`cast` (Unique.NTCo:Unique | |
:: Unique.Unique ~# Type.Integer)) | |
(: @ Char shows1 w1_sv1))) | |
} | |
Unique.$fShowUnique_$cshowsPrec [InlPrag=INLINE[0]] | |
:: Int -> Unique.Unique -> ShowS | |
[GblId, | |
Arity=3, | |
Unf=Unf{Src=Worker=Unique.$w$cshowsPrec, TopLvl=True, Arity=3, | |
Value=True, ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) | |
Tmpl= \ (w_suW [Occ=Once!] :: Int) | |
(w1_sv0 [Occ=Once] :: Unique.Unique) | |
(w2_sv1 [Occ=Once] :: String) -> | |
case w_suW of _ { I# ww_suY [Occ=Once] -> | |
Unique.$w$cshowsPrec ww_suY w1_sv0 w2_sv1 | |
}}] | |
Unique.$fShowUnique_$cshowsPrec = | |
\ (w_suW :: Int) | |
(w1_sv0 :: Unique.Unique) | |
(w2_sv1 :: String) -> | |
case w_suW of _ { I# ww_suY -> | |
Unique.$w$cshowsPrec ww_suY w1_sv0 w2_sv1 | |
} | |
Unique.$fShowUnique_$cshowList :: [Unique.Unique] -> ShowS | |
[GblId, | |
Arity=2, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=2, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [80 0] 270 120}] | |
Unique.$fShowUnique_$cshowList = | |
\ (ds1_ar6 :: [Unique.Unique]) (s_ar7 :: String) -> | |
case ds1_ar6 of _ { | |
[] -> unpackAppendCString# "[]" s_ar7; | |
: x_arc xs_ard -> | |
: | |
@ Char | |
showList__3 | |
(Unique.$w$cshowsPrec | |
0 | |
x_arc | |
(let { | |
lvl22_arf :: [Char] | |
lvl22_arf = | |
: @ Char showList__2 s_ar7 } in | |
letrec { | |
showl_arg [Occ=LoopBreaker] :: [Unique.Unique] -> [Char] | |
showl_arg = | |
\ (ds2_arh :: [Unique.Unique]) -> | |
case ds2_arh of _ { | |
[] -> lvl22_arf; | |
: y_arm ys_arn -> | |
: | |
@ Char | |
showList__1 | |
(Unique.$w$cshowsPrec 0 y_arm (showl_arg ys_arn)) | |
}; } in | |
showl_arg xs_ard)) | |
} | |
Unique.$fShowUnique_$cshow :: Unique.Unique -> String | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 40 0}] | |
Unique.$fShowUnique_$cshow = | |
\ (x_arx :: Unique.Unique) -> | |
Unique.$w$cshowsPrec 0 x_arx ([] @ Char) | |
Unique.$fShowUnique [InlPrag=[ALWAYS] CONLIKE] | |
:: Show Unique.Unique | |
[GblId[DFunId], | |
Unf=DFun(arity=0) D:Show [Unique.$fShowUnique_$cshowsPrec, | |
Unique.$fShowUnique_$cshow, Unique.$fShowUnique_$cshowList]] | |
Unique.$fShowUnique = | |
D:Show | |
@ Unique.Unique | |
Unique.$fShowUnique_$cshowsPrec | |
Unique.$fShowUnique_$cshow | |
Unique.$fShowUnique_$cshowList | |
lvl2_rvh :: Type.Integer | |
[GblId] | |
lvl2_rvh = __integer 1 | |
lvl3_rvi | |
:: State# RealWorld | |
-> (# State# RealWorld, Unique.Unique #) | |
[GblId, Arity=1] | |
lvl3_rvi = | |
\ (s_aqi :: State# RealWorld) -> | |
case noDuplicate# s_aqi of s'_aqj { __DEFAULT -> | |
case counter_rag | |
`cast` (NTCo:IORef <Type.Integer> | |
:: IORef Type.Integer | |
~# | |
STRef RealWorld Type.Integer) | |
of _ { STRef var#_au4 -> | |
case readMutVar# | |
@ RealWorld @ Type.Integer var#_au4 s'_aqj | |
of _ { (# new_s_atV, a_atW #) -> | |
case writeMutVar# | |
@ RealWorld | |
@ Type.Integer | |
var#_au4 | |
(Type.plusInteger a_atW lvl2_rvh) | |
new_s_atV | |
of s2#_auo { __DEFAULT -> | |
(# s2#_auo, | |
a_atW | |
`cast` (Sym (Unique.NTCo:Unique) | |
:: Type.Integer ~# Unique.Unique) #) | |
} | |
} | |
} | |
} | |
lvl4_rvj :: Unique.Unique | |
lvl4_rvj = | |
unsafeDupablePerformIO | |
@ Unique.Unique | |
(lvl3_rvi | |
`cast` (Sym (NTCo:IO <Unique.Unique>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, Unique.Unique #)) | |
~# | |
IO Unique.Unique)) | |
Unique.newUnique [InlPrag=NOINLINE] :: () -> Unique.Unique | |
Unique.newUnique = | |
\ (ds_dq8 :: ()) -> case ds_dq8 of _ { () -> lvl4_rvj } | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_Unique | |
.type __stginit_Unique, @object | |
__stginit_Unique: | |
.data | |
.align 4 | |
.align 1 | |
rvf_closure: | |
.long integerzmgmp_GHCziIntegerziType_Szh_static_info | |
.long 0 | |
.section .data | |
.align 4 | |
.align 1 | |
rvg_srt: | |
.long rvf_closure | |
.data | |
.align 4 | |
.align 1 | |
rvg_closure: | |
.long rvg_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 32 | |
swN_info: | |
.Lcx6: | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcxb | |
movl $base_GHCziSTRef_STRef_con_info,-4(%edi) | |
movl %esi,0(%edi) | |
leal -3(%edi),%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
.Lcxb: | |
movl $8,116(%ebx) | |
.Lcx9: | |
movl $254,32(%ebx) | |
jmp stg_gc_ut | |
.size swN_info, .-swN_info | |
.text | |
.align 4,0x90 | |
.long rvg_srt-(svn_info)+0 | |
.long 0 | |
.long 65568 | |
svn_info: | |
.Lcxf: | |
movl $rvf_closure+1,%esi | |
movl $swN_info,0(%ebp) | |
jmp stg_newMutVarzh | |
.size svn_info, .-svn_info | |
.text | |
.align 4,0x90 | |
.long rvg_srt-(rvg_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
rvg_info: | |
.Lcxj: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcxl | |
movl $svn_info,-4(%ebp) | |
addl $-4,%ebp | |
jmp stg_noDuplicatezh | |
.Lcxl: | |
movl $rvg_closure,%esi | |
jmp *-4(%ebx) | |
.size rvg_info, .-rvg_info | |
.section .data | |
.align 4 | |
.align 1 | |
rag_srt: | |
.long rvf_closure | |
.data | |
.align 4 | |
.align 1 | |
rag_closure: | |
.long rag_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rag_srt-(rag_info)+0 | |
.long 0 | |
.long 65558 | |
rag_info: | |
.Lcxz: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcxB | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcxD | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcxE | |
.LcxF: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $rvg_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp base_GHCziIO_unsafeDupablePerformIO_info | |
.LcxD: | |
movl $8,116(%ebx) | |
.LcxB: | |
jmp *-8(%ebx) | |
.LcxE: | |
jmp *(%esi) | |
.size rag_info, .-rag_info | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUnique1_closure | |
.type Unique_zdfShowUnique1_closure, @object | |
Unique_zdfShowUnique1_closure: | |
.long Unique_zdfShowUnique1_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.section .rodata | |
.align 4 | |
.align 1 | |
cxV_str: | |
.byte 85 | |
.byte 32 | |
.byte 0 | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 22 | |
.globl Unique_zdfShowUnique1_info | |
.type Unique_zdfShowUnique1_info, @object | |
Unique_zdfShowUnique1_info: | |
.LcxZ: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcy1 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcy3 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lcy4 | |
.Lcy5: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $cxV_str,-12(%ebp) | |
addl $-12,%ebp | |
jmp ghczmprim_GHCziCString_unpackCStringzh_info | |
.Lcy3: | |
movl $8,116(%ebx) | |
.Lcy1: | |
jmp *-8(%ebx) | |
.Lcy4: | |
jmp *(%esi) | |
.size Unique_zdfShowUnique1_info, .-Unique_zdfShowUnique1_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdwzdcshowsPrec_srt: | |
.long base_GHCziShow_zdwzdcshowsPrec_closure | |
.long Unique_zdfShowUnique1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdwzdcshowsPrec_closure | |
.type Unique_zdwzdcshowsPrec_closure, @object | |
Unique_zdwzdcshowsPrec_closure: | |
.long Unique_zdwzdcshowsPrec_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(swE_info)+0 | |
.long 2 | |
.long 65555 | |
swE_info: | |
.Lcyq: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcys | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl 12(%esi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $11,-20(%ebp) | |
addl $-20,%ebp | |
jmp base_GHCziShow_zdwzdcshowsPrec_info | |
.Lcys: | |
jmp *-8(%ebx) | |
.size swE_info, .-swE_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(svF_info)+0 | |
.long 2 | |
.long 65555 | |
svF_info: | |
.LcyF: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcyH | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcyJ | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_shows1_closure,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $11,-20(%ebp) | |
addl $-20,%ebp | |
jmp base_GHCziShow_zdwzdcshowsPrec_info | |
.LcyJ: | |
movl $12,116(%ebx) | |
.LcyH: | |
jmp *-8(%ebx) | |
.size svF_info, .-svF_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(swL_info)+0 | |
.long 2 | |
.long 196627 | |
swL_info: | |
.LcyS: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcyU | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcyW | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $svF_info,-12(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl $Unique_zdfShowUnique1_closure,-16(%ebp) | |
addl $-16,%ebp | |
jmp base_GHCziBase_zpzp_info | |
.LcyW: | |
movl $16,116(%ebx) | |
.LcyU: | |
jmp *-8(%ebx) | |
.size swL_info, .-swL_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(Unique_zdwzdcshowsPrec_info)+0 | |
.long 196624 | |
.long 0 | |
.long 196623 | |
.globl Unique_zdwzdcshowsPrec_info | |
.type Unique_zdwzdcshowsPrec_info, @object | |
Unique_zdwzdcshowsPrec_info: | |
.Lcz4: | |
addl $28,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcz8 | |
cmpl $11,0(%ebp) | |
jge .Lcza | |
movl $swE_info,-24(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-16(%edi) | |
movl 8(%ebp),%eax | |
movl %eax,-12(%edi) | |
leal -24(%edi),%eax | |
movl %eax,8(%ebp) | |
movl $Unique_zdfShowUnique1_closure,4(%ebp) | |
addl $4,%ebp | |
addl $-12,%edi | |
jmp base_GHCziBase_zpzp_info | |
.Lcz8: | |
movl $28,116(%ebx) | |
.Lcz6: | |
movl $Unique_zdwzdcshowsPrec_closure,%esi | |
jmp *-4(%ebx) | |
.Lcza: | |
movl $swL_info,-24(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-16(%edi) | |
movl 8(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_shows2_closure,-4(%edi) | |
leal -24(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $12,%ebp | |
jmp *0(%ebp) | |
.size Unique_zdwzdcshowsPrec_info, .-Unique_zdwzdcshowsPrec_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdfShowUniquezuzdcshowsPrec_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUniquezuzdcshowsPrec_closure | |
.type Unique_zdfShowUniquezuzdcshowsPrec_closure, @object | |
Unique_zdfShowUniquezuzdcshowsPrec_closure: | |
.long Unique_zdfShowUniquezuzdcshowsPrec_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowsPrec_srt-(swJ_info)+0 | |
.long 2 | |
.long 65568 | |
swJ_info: | |
.Lczt: | |
movl 3(%esi),%eax | |
movl %eax,0(%ebp) | |
jmp Unique_zdwzdcshowsPrec_info | |
.size swJ_info, .-swJ_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowsPrec_srt-(Unique_zdfShowUniquezuzdcshowsPrec_info)+0 | |
.long 196628 | |
.long 0 | |
.long 65551 | |
.globl Unique_zdfShowUniquezuzdcshowsPrec_info | |
.type Unique_zdfShowUniquezuzdcshowsPrec_info, @object | |
Unique_zdfShowUniquezuzdcshowsPrec_info: | |
.Lczy: | |
movl 0(%ebp),%esi | |
movl $swJ_info,0(%ebp) | |
testl $3,%esi | |
jne swJ_info | |
jmp *(%esi) | |
.size Unique_zdfShowUniquezuzdcshowsPrec_info, .-Unique_zdfShowUniquezuzdcshowsPrec_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdfShowUniquezuzdcshowList_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUniquezuzdcshowList_closure | |
.type Unique_zdfShowUniquezuzdcshowList_closure, @object | |
Unique_zdfShowUniquezuzdcshowList_closure: | |
.long Unique_zdfShowUniquezuzdcshowList_info | |
.long 0 | |
.section .rodata | |
.align 4 | |
.align 1 | |
czP_str: | |
.byte 91 | |
.byte 93 | |
.byte 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swG_info)+0 | |
.long 3 | |
.long 65552 | |
swG_info: | |
.LcA9: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAb | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAd | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $stg_ap_2_upd_info,-12(%edi) | |
movl 16(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.LcAd: | |
movl $16,116(%ebx) | |
.LcAb: | |
jmp *-8(%ebx) | |
.size swG_info, .-swG_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swI_info)+0 | |
.long 2 | |
.long 65568 | |
swI_info: | |
.LcAo: | |
movl %esi,%eax | |
andl $3,%eax | |
cmpl $2,%eax | |
jae .LcAp | |
movl 8(%ebp),%esi | |
addl $12,%ebp | |
jmp *0(%ebp) | |
.LcAp: | |
addl $32,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAt | |
movl $swG_info,-28(%edi) | |
movl 2(%esi),%eax | |
movl %eax,-20(%edi) | |
movl 6(%esi),%eax | |
movl %eax,-16(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_showListzuzu1_closure,-4(%edi) | |
leal -28(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $12,%ebp | |
jmp *0(%ebp) | |
.LcAt: | |
movl $32,116(%ebx) | |
.LcAr: | |
jmp *-8(%ebx) | |
.size swI_info, .-swI_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(sw8_info)+0 | |
.long 65541 | |
.long 1 | |
.long 65546 | |
sw8_info: | |
.LcAE: | |
leal -8(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAG | |
movl %esi,-4(%ebp) | |
movl 0(%ebp),%eax | |
movl 3(%esi),%ecx | |
movl %ecx,0(%ebp) | |
movl %eax,%esi | |
movl $swI_info,-8(%ebp) | |
addl $-8,%ebp | |
testl $3,%esi | |
jne swI_info | |
jmp *(%esi) | |
.LcAG: | |
jmp *-4(%ebx) | |
.size sw8_info, .-sw8_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swe_info)+0 | |
.long 2 | |
.long 65555 | |
swe_info: | |
.LcAS: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAU | |
addl $20,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAW | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-16(%edi) | |
movl $base_GHCziShow_showListzuzu2_closure,-12(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-8(%edi) | |
movl $sw8_info,-4(%edi) | |
leal -14(%edi),%eax | |
movl %eax,0(%edi) | |
movl 12(%esi),%eax | |
movl %eax,-12(%ebp) | |
leal -3(%edi),%esi | |
addl $-12,%ebp | |
jmp sw8_info | |
.LcAW: | |
movl $20,116(%ebx) | |
.LcAU: | |
jmp *-8(%ebx) | |
.size swe_info, .-swe_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swH_info)+0 | |
.long 3 | |
.long 65552 | |
swH_info: | |
.LcB5: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcB7 | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcB9 | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $swe_info,-12(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 16(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 12(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.LcB9: | |
movl $16,116(%ebx) | |
.LcB7: | |
jmp *-8(%ebx) | |
.size swH_info, .-swH_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swF_info)+0 | |
.long 1 | |
.long 65568 | |
swF_info: | |
.LcBk: | |
movl %esi,%eax | |
andl $3,%eax | |
cmpl $2,%eax | |
jae .LcBl | |
movl $czP_str,0(%ebp) | |
jmp ghczmprim_GHCziCString_unpackAppendCStringzh_info | |
.LcBl: | |
addl $32,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcBp | |
movl $swH_info,-28(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-20(%edi) | |
movl 2(%esi),%eax | |
movl %eax,-16(%edi) | |
movl 6(%esi),%eax | |
movl %eax,-12(%edi) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_showListzuzu3_closure,-4(%edi) | |
leal -28(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $8,%ebp | |
jmp *0(%ebp) | |
.LcBp: | |
movl $32,116(%ebx) | |
.LcBn: | |
jmp *-8(%ebx) | |
.size swF_info, .-swF_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(Unique_zdfShowUniquezuzdcshowList_info)+0 | |
.long 131084 | |
.long 0 | |
.long 65551 | |
.globl Unique_zdfShowUniquezuzdcshowList_info | |
.type Unique_zdfShowUniquezuzdcshowList_info, @object | |
Unique_zdfShowUniquezuzdcshowList_info: | |
.LcBA: | |
movl 0(%ebp),%esi | |
movl $swF_info,0(%ebp) | |
testl $3,%esi | |
jne swF_info | |
jmp *(%esi) | |
.size Unique_zdfShowUniquezuzdcshowList_info, .-Unique_zdfShowUniquezuzdcshowList_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdfShowUniquezuzdcshow_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUniquezuzdcshow_closure | |
.type Unique_zdfShowUniquezuzdcshow_closure, @object | |
Unique_zdfShowUniquezuzdcshow_closure: | |
.long Unique_zdfShowUniquezuzdcshow_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshow_srt-(Unique_zdfShowUniquezuzdcshow_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique_zdfShowUniquezuzdcshow_info | |
.type Unique_zdfShowUniquezuzdcshow_info, @object | |
Unique_zdfShowUniquezuzdcshow_info: | |
.LcBM: | |
leal -8(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcBP | |
movl 0(%ebp),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,0(%ebp) | |
movl $0,-8(%ebp) | |
addl $-8,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.LcBP: | |
movl $Unique_zdfShowUniquezuzdcshow_closure,%esi | |
jmp *-4(%ebx) | |
.size Unique_zdfShowUniquezuzdcshow_info, .-Unique_zdfShowUniquezuzdcshow_info | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUnique_closure | |
.type Unique_zdfShowUnique_closure, @object | |
Unique_zdfShowUnique_closure: | |
.long base_GHCziShow_DZCShow_static_info | |
.long Unique_zdfShowUniquezuzdcshowsPrec_closure+3 | |
.long Unique_zdfShowUniquezuzdcshow_closure+1 | |
.long Unique_zdfShowUniquezuzdcshowList_closure+2 | |
.long 0 | |
.data | |
.align 4 | |
.align 1 | |
rvh_closure: | |
.long integerzmgmp_GHCziIntegerziType_Szh_static_info | |
.long 1 | |
.section .data | |
.align 4 | |
.align 1 | |
rvi_srt: | |
.long rag_closure | |
.long rvh_closure | |
.data | |
.align 4 | |
.align 1 | |
rvi_closure: | |
.long rvi_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(swB_info)+4 | |
.long 1 | |
.long 65553 | |
swB_info: | |
.LcCh: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcCj | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $rvh_closure+1,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp integerzmgmp_GHCziIntegerziType_plusInteger_info | |
.LcCj: | |
jmp *-8(%ebx) | |
.size swB_info, .-swB_info | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(swD_info)+4 | |
.long 0 | |
.long 65568 | |
swD_info: | |
.LcCp: | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcCt | |
movl 3(%esi),%eax | |
movl 4(%eax),%eax | |
movl $swB_info,-8(%edi) | |
movl %eax,0(%edi) | |
leal -8(%edi),%ecx | |
movl 3(%esi),%edx | |
movl %ecx,4(%edx) | |
movl %ebx,%ecx | |
movl 3(%esi),%edx | |
subl $4,%esp | |
pushl %edx | |
pushl %ecx | |
movl %eax,76(%esp) | |
call dirty_MUT_VAR | |
addl $12,%esp | |
movl 64(%esp),%eax | |
movl %eax,%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
.LcCt: | |
movl $12,116(%ebx) | |
.LcCr: | |
jmp *-8(%ebx) | |
.size swD_info, .-swD_info | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(swo_info)+0 | |
.long 0 | |
.long 196640 | |
swo_info: | |
.LcCE: | |
movl $rag_closure,%esi | |
movl $swD_info,0(%ebp) | |
testl $3,%esi | |
jne swD_info | |
jmp *(%esi) | |
.size swo_info, .-swo_info | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(rvi_info)+0 | |
.long 65539 | |
.long 0 | |
.long 196623 | |
rvi_info: | |
.LcCL: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcCN | |
movl $swo_info,-4(%ebp) | |
addl $-4,%ebp | |
jmp stg_noDuplicatezh | |
.LcCN: | |
movl $rvi_closure,%esi | |
jmp *-4(%ebx) | |
.size rvi_info, .-rvi_info | |
.section .data | |
.align 4 | |
.align 1 | |
rvj_srt: | |
.long rvi_closure | |
.data | |
.align 4 | |
.align 1 | |
rvj_closure: | |
.long rvj_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rvj_srt-(rvj_info)+0 | |
.long 0 | |
.long 65558 | |
rvj_info: | |
.LcD1: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcD3 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcD5 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcD6 | |
.LcD7: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $rvi_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp base_GHCziIO_unsafeDupablePerformIO_info | |
.LcD5: | |
movl $8,116(%ebx) | |
.LcD3: | |
jmp *-8(%ebx) | |
.LcD6: | |
jmp *(%esi) | |
.size rvj_info, .-rvj_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_newUnique_srt: | |
.long rvj_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_newUnique_closure | |
.type Unique_newUnique_closure, @object | |
Unique_newUnique_closure: | |
.long Unique_newUnique_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_newUnique_srt-(swA_info)+0 | |
.long 0 | |
.long 65568 | |
swA_info: | |
.LcDo: | |
movl $rvj_closure,%esi | |
addl $4,%ebp | |
andl $-4,%esi | |
jmp *(%esi) | |
.size swA_info, .-swA_info | |
.text | |
.align 4,0x90 | |
.long Unique_newUnique_srt-(Unique_newUnique_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique_newUnique_info | |
.type Unique_newUnique_info, @object | |
Unique_newUnique_info: | |
.LcDt: | |
movl 0(%ebp),%esi | |
movl $swA_info,0(%ebp) | |
testl $3,%esi | |
jne swA_info | |
jmp *(%esi) | |
.size Unique_newUnique_info, .-Unique_newUnique_info | |
[2 of 2] Compiling Main ( hs, o ) | |
==================== Tidy Core ==================== | |
Result size = 47 | |
main3 :: Unique.Unique | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 20 0}] | |
main3 = Unique.newUnique () | |
main2 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
main2 = | |
Unique.$w$cshowsPrec 0 main3 ([] @ Char) | |
main5 :: Unique.Unique | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 20 0}] | |
main5 = Unique.newUnique () | |
main4 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
main4 = | |
Unique.$w$cshowsPrec 0 main5 ([] @ Char) | |
main1 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 110 0}] | |
main1 = | |
\ (eta_B1 :: State# RealWorld) -> | |
case Handle.Text.hPutStr2 | |
Handle.FD.stdout main4 True eta_B1 | |
of _ { (# new_s_atV, _ #) -> | |
Handle.Text.hPutStr2 | |
Handle.FD.stdout main2 True new_s_atV | |
} | |
main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
main = | |
main1 | |
`cast` (Sym (NTCo:IO <()>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ()) | |
main6 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 30 0}] | |
main6 = | |
\ (eta_Xb :: State# RealWorld) -> | |
runMainIO1 | |
@ () | |
(main1 | |
`cast` (Sym (NTCo:IO <()>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ())) | |
eta_Xb | |
:main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
:main = | |
main6 | |
`cast` (Sym (NTCo:IO <()>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ()) | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_Main | |
.type __stginit_Main, @object | |
__stginit_Main: | |
.globl __stginit_ZCMain | |
.type __stginit_ZCMain, @object | |
__stginit_ZCMain: | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main3_srt: | |
.long Unique_newUnique_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main3_closure | |
.type Main_main3_closure, @object | |
Main_main3_closure: | |
.long Main_main3_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main3_srt-(Main_main3_info)+0 | |
.long 0 | |
.long 65558 | |
.globl Main_main3_info | |
.type Main_main3_info, @object | |
Main_main3_info: | |
.Lc1Ye: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1Yg | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1Yi | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1Yj | |
.Lc1Yk: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTuple_Z0T_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp Unique_newUnique_info | |
.Lc1Yi: | |
movl $8,116(%ebx) | |
.Lc1Yg: | |
jmp *-8(%ebx) | |
.Lc1Yj: | |
jmp *(%esi) | |
.size Main_main3_info, .-Main_main3_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main2_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.long Main_main3_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main2_closure | |
.type Main_main2_closure, @object | |
Main_main2_closure: | |
.long Main_main2_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main2_srt-(Main_main2_info)+0 | |
.long 0 | |
.long 196630 | |
.globl Main_main2_info | |
.type Main_main2_info, @object | |
Main_main2_info: | |
.Lc1YC: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1YE | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1YG | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1YH | |
.Lc1YI: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,-12(%ebp) | |
movl $Main_main3_closure,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.Lc1YG: | |
movl $8,116(%ebx) | |
.Lc1YE: | |
jmp *-8(%ebx) | |
.Lc1YH: | |
jmp *(%esi) | |
.size Main_main2_info, .-Main_main2_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main5_srt: | |
.long Unique_newUnique_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main5_closure | |
.type Main_main5_closure, @object | |
Main_main5_closure: | |
.long Main_main5_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main5_srt-(Main_main5_info)+0 | |
.long 0 | |
.long 65558 | |
.globl Main_main5_info | |
.type Main_main5_info, @object | |
Main_main5_info: | |
.Lc1Z0: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1Z2 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1Z4 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1Z5 | |
.Lc1Z6: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTuple_Z0T_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp Unique_newUnique_info | |
.Lc1Z4: | |
movl $8,116(%ebx) | |
.Lc1Z2: | |
jmp *-8(%ebx) | |
.Lc1Z5: | |
jmp *(%esi) | |
.size Main_main5_info, .-Main_main5_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main4_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.long Main_main5_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main4_closure | |
.type Main_main4_closure, @object | |
Main_main4_closure: | |
.long Main_main4_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main4_srt-(Main_main4_info)+0 | |
.long 0 | |
.long 196630 | |
.globl Main_main4_info | |
.type Main_main4_info, @object | |
Main_main4_info: | |
.Lc1Zo: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1Zq | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1Zs | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1Zt | |
.Lc1Zu: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,-12(%ebp) | |
movl $Main_main5_closure,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.Lc1Zs: | |
movl $8,116(%ebx) | |
.Lc1Zq: | |
jmp *-8(%ebx) | |
.Lc1Zt: | |
jmp *(%esi) | |
.size Main_main4_info, .-Main_main4_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main1_srt: | |
.long Main_main2_closure | |
.long Main_main4_closure | |
.long base_GHCziIOziHandleziFD_stdout_closure | |
.long base_GHCziIOziHandleziText_hPutStr2_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main1_closure | |
.type Main_main1_closure, @object | |
Main_main1_closure: | |
.long Main_main1_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main1_srt-(s1XZ_info)+0 | |
.long 0 | |
.long 852000 | |
s1XZ_info: | |
.Lc1ZL: | |
movl $ghczmprim_GHCziTypes_True_closure+2,0(%ebp) | |
movl $Main_main2_closure,-4(%ebp) | |
movl $base_GHCziIOziHandleziFD_stdout_closure,-8(%ebp) | |
addl $-8,%ebp | |
jmp base_GHCziIOziHandleziText_hPutStr2_info | |
.size s1XZ_info, .-s1XZ_info | |
.text | |
.align 4,0x90 | |
.long Main_main1_srt-(Main_main1_info)+0 | |
.long 65539 | |
.long 0 | |
.long 983055 | |
.globl Main_main1_info | |
.type Main_main1_info, @object | |
Main_main1_info: | |
.Lc1ZP: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1ZR | |
movl $ghczmprim_GHCziTypes_True_closure+2,-8(%ebp) | |
movl $Main_main4_closure,-12(%ebp) | |
movl $base_GHCziIOziHandleziFD_stdout_closure,-16(%ebp) | |
movl $s1XZ_info,-4(%ebp) | |
addl $-16,%ebp | |
jmp base_GHCziIOziHandleziText_hPutStr2_info | |
.Lc1ZR: | |
movl $Main_main1_closure,%esi | |
jmp *-4(%ebx) | |
.size Main_main1_info, .-Main_main1_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main_srt: | |
.long Main_main1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main_closure | |
.type Main_main_closure, @object | |
Main_main_closure: | |
.long Main_main_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main_srt-(Main_main_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
.globl Main_main_info | |
.type Main_main_info, @object | |
Main_main_info: | |
.Lc201: | |
jmp Main_main1_info | |
.size Main_main_info, .-Main_main_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main6_srt: | |
.long base_GHCziTopHandler_runMainIO1_closure | |
.long Main_main1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main6_closure | |
.type Main_main6_closure, @object | |
Main_main6_closure: | |
.long Main_main6_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main6_srt-(Main_main6_info)+0 | |
.long 65539 | |
.long 0 | |
.long 196623 | |
.globl Main_main6_info | |
.type Main_main6_info, @object | |
Main_main6_info: | |
.Lc20a: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc20d | |
movl $Main_main1_closure+1,-4(%ebp) | |
addl $-4,%ebp | |
jmp base_GHCziTopHandler_runMainIO1_info | |
.Lc20d: | |
movl $Main_main6_closure,%esi | |
jmp *-4(%ebx) | |
.size Main_main6_info, .-Main_main6_info | |
.section .data | |
.align 4 | |
.align 1 | |
ZCMain_main_srt: | |
.long Main_main6_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl ZCMain_main_closure | |
.type ZCMain_main_closure, @object | |
ZCMain_main_closure: | |
.long ZCMain_main_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long ZCMain_main_srt-(ZCMain_main_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
.globl ZCMain_main_info | |
.type ZCMain_main_info, @object | |
ZCMain_main_info: | |
.Lc20n: | |
jmp Main_main6_info | |
.size ZCMain_main_info, .-ZCMain_main_info | |
Linking Main ... | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1 of 2] Compiling Unique ( Unique.hs, Unique.o ) | |
==================== Tidy Core ==================== | |
Result size = 179 | |
lvl_rvf :: Type.Integer | |
[GblId] | |
lvl_rvf = __integer 0 | |
lvl1_rvg | |
:: State# RealWorld | |
-> (# State# RealWorld, | |
IORef Type.Integer #) | |
[GblId, Arity=1] | |
lvl1_rvg = | |
\ (s_aqi :: State# RealWorld) -> | |
case noDuplicate# s_aqi of s'_aqj { __DEFAULT -> | |
case newMutVar# | |
@ Type.Integer @ RealWorld lvl_rvf s'_aqj | |
of _ { (# s2#_asL, var#_asM #) -> | |
(# s2#_asL, | |
(STRef | |
@ RealWorld @ Type.Integer var#_asM) | |
`cast` (Sym (NTCo:IORef) <Type.Integer> | |
:: STRef RealWorld Type.Integer | |
~# | |
IORef Type.Integer) #) | |
} | |
} | |
counter_rag :: IORef Type.Integer | |
counter_rag = | |
unsafeDupablePerformIO | |
@ (IORef Type.Integer) | |
(lvl1_rvg | |
`cast` (Sym | |
(NTCo:IO <IORef Type.Integer>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, | |
IORef Type.Integer #)) | |
~# | |
IO (IORef Type.Integer))) | |
Unique.$fShowUnique1 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
Unique.$fShowUnique1 = unpackCString# "U " | |
Unique.$w$cshowsPrec | |
:: Int# | |
-> Unique.Unique -> String -> [Char] | |
[GblId, | |
Arity=3, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=3, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0 0 0] 181 120}] | |
Unique.$w$cshowsPrec = | |
\ (ww_suY :: Int#) | |
(w_sv0 :: Unique.Unique) | |
(w1_sv1 :: String) -> | |
case >=# ww_suY 11 of _ { | |
False -> | |
++ | |
@ Char | |
Unique.$fShowUnique1 | |
($w$cshowsPrec | |
11 | |
(w_sv0 | |
`cast` (Unique.NTCo:Unique | |
:: Unique.Unique ~# Type.Integer)) | |
w1_sv1); | |
True -> | |
: | |
@ Char | |
shows2 | |
(++ | |
@ Char | |
Unique.$fShowUnique1 | |
($w$cshowsPrec | |
11 | |
(w_sv0 | |
`cast` (Unique.NTCo:Unique | |
:: Unique.Unique ~# Type.Integer)) | |
(: @ Char shows1 w1_sv1))) | |
} | |
Unique.$fShowUnique_$cshowsPrec [InlPrag=INLINE[0]] | |
:: Int -> Unique.Unique -> ShowS | |
[GblId, | |
Arity=3, | |
Unf=Unf{Src=Worker=Unique.$w$cshowsPrec, TopLvl=True, Arity=3, | |
Value=True, ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) | |
Tmpl= \ (w_suW [Occ=Once!] :: Int) | |
(w1_sv0 [Occ=Once] :: Unique.Unique) | |
(w2_sv1 [Occ=Once] :: String) -> | |
case w_suW of _ { I# ww_suY [Occ=Once] -> | |
Unique.$w$cshowsPrec ww_suY w1_sv0 w2_sv1 | |
}}] | |
Unique.$fShowUnique_$cshowsPrec = | |
\ (w_suW :: Int) | |
(w1_sv0 :: Unique.Unique) | |
(w2_sv1 :: String) -> | |
case w_suW of _ { I# ww_suY -> | |
Unique.$w$cshowsPrec ww_suY w1_sv0 w2_sv1 | |
} | |
Unique.$fShowUnique_$cshowList :: [Unique.Unique] -> ShowS | |
[GblId, | |
Arity=2, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=2, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [80 0] 270 120}] | |
Unique.$fShowUnique_$cshowList = | |
\ (ds1_ar6 :: [Unique.Unique]) (s_ar7 :: String) -> | |
case ds1_ar6 of _ { | |
[] -> unpackAppendCString# "[]" s_ar7; | |
: x_arc xs_ard -> | |
: | |
@ Char | |
showList__3 | |
(Unique.$w$cshowsPrec | |
0 | |
x_arc | |
(let { | |
lvl22_arf :: [Char] | |
lvl22_arf = | |
: @ Char showList__2 s_ar7 } in | |
letrec { | |
showl_arg [Occ=LoopBreaker] :: [Unique.Unique] -> [Char] | |
showl_arg = | |
\ (ds2_arh :: [Unique.Unique]) -> | |
case ds2_arh of _ { | |
[] -> lvl22_arf; | |
: y_arm ys_arn -> | |
: | |
@ Char | |
showList__1 | |
(Unique.$w$cshowsPrec 0 y_arm (showl_arg ys_arn)) | |
}; } in | |
showl_arg xs_ard)) | |
} | |
Unique.$fShowUnique_$cshow :: Unique.Unique -> String | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 40 0}] | |
Unique.$fShowUnique_$cshow = | |
\ (x_arx :: Unique.Unique) -> | |
Unique.$w$cshowsPrec 0 x_arx ([] @ Char) | |
Unique.$fShowUnique [InlPrag=[ALWAYS] CONLIKE] | |
:: Show Unique.Unique | |
[GblId[DFunId], | |
Unf=DFun(arity=0) D:Show [Unique.$fShowUnique_$cshowsPrec, | |
Unique.$fShowUnique_$cshow, Unique.$fShowUnique_$cshowList]] | |
Unique.$fShowUnique = | |
D:Show | |
@ Unique.Unique | |
Unique.$fShowUnique_$cshowsPrec | |
Unique.$fShowUnique_$cshow | |
Unique.$fShowUnique_$cshowList | |
lvl2_rvh :: Type.Integer | |
[GblId] | |
lvl2_rvh = __integer 1 | |
lvl3_rvi | |
:: State# RealWorld | |
-> (# State# RealWorld, Unique.Unique #) | |
[GblId, Arity=1] | |
lvl3_rvi = | |
\ (s_aqi :: State# RealWorld) -> | |
case noDuplicate# s_aqi of s'_aqj { __DEFAULT -> | |
case counter_rag | |
`cast` (NTCo:IORef <Type.Integer> | |
:: IORef Type.Integer | |
~# | |
STRef RealWorld Type.Integer) | |
of _ { STRef var#_au4 -> | |
case readMutVar# | |
@ RealWorld @ Type.Integer var#_au4 s'_aqj | |
of _ { (# new_s_atV, a_atW #) -> | |
case writeMutVar# | |
@ RealWorld | |
@ Type.Integer | |
var#_au4 | |
(Type.plusInteger a_atW lvl2_rvh) | |
new_s_atV | |
of s2#_auo { __DEFAULT -> | |
(# s2#_auo, | |
a_atW | |
`cast` (Sym (Unique.NTCo:Unique) | |
:: Type.Integer ~# Unique.Unique) #) | |
} | |
} | |
} | |
} | |
lvl4_rvj :: Unique.Unique | |
lvl4_rvj = | |
unsafeDupablePerformIO | |
@ Unique.Unique | |
(lvl3_rvi | |
`cast` (Sym (NTCo:IO <Unique.Unique>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, Unique.Unique #)) | |
~# | |
IO Unique.Unique)) | |
Unique.newUnique [InlPrag=NOINLINE] :: () -> Unique.Unique | |
Unique.newUnique = | |
\ (ds_dq8 :: ()) -> case ds_dq8 of _ { () -> lvl4_rvj } | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_Unique | |
.type __stginit_Unique, @object | |
__stginit_Unique: | |
.data | |
.align 4 | |
.align 1 | |
rvf_closure: | |
.long integerzmgmp_GHCziIntegerziType_Szh_static_info | |
.long 0 | |
.section .data | |
.align 4 | |
.align 1 | |
rvg_srt: | |
.long rvf_closure | |
.data | |
.align 4 | |
.align 1 | |
rvg_closure: | |
.long rvg_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 32 | |
swN_info: | |
.Lcx6: | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcxb | |
movl $base_GHCziSTRef_STRef_con_info,-4(%edi) | |
movl %esi,0(%edi) | |
leal -3(%edi),%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
.Lcxb: | |
movl $8,116(%ebx) | |
.Lcx9: | |
movl $254,32(%ebx) | |
jmp stg_gc_ut | |
.size swN_info, .-swN_info | |
.text | |
.align 4,0x90 | |
.long rvg_srt-(svn_info)+0 | |
.long 0 | |
.long 65568 | |
svn_info: | |
.Lcxf: | |
movl $rvf_closure+1,%esi | |
movl $swN_info,0(%ebp) | |
jmp stg_newMutVarzh | |
.size svn_info, .-svn_info | |
.text | |
.align 4,0x90 | |
.long rvg_srt-(rvg_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
rvg_info: | |
.Lcxj: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcxl | |
movl $svn_info,-4(%ebp) | |
addl $-4,%ebp | |
jmp stg_noDuplicatezh | |
.Lcxl: | |
movl $rvg_closure,%esi | |
jmp *-4(%ebx) | |
.size rvg_info, .-rvg_info | |
.section .data | |
.align 4 | |
.align 1 | |
rag_srt: | |
.long rvf_closure | |
.data | |
.align 4 | |
.align 1 | |
rag_closure: | |
.long rag_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rag_srt-(rag_info)+0 | |
.long 0 | |
.long 65558 | |
rag_info: | |
.Lcxz: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcxB | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcxD | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcxE | |
.LcxF: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $rvg_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp base_GHCziIO_unsafeDupablePerformIO_info | |
.LcxD: | |
movl $8,116(%ebx) | |
.LcxB: | |
jmp *-8(%ebx) | |
.LcxE: | |
jmp *(%esi) | |
.size rag_info, .-rag_info | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUnique1_closure | |
.type Unique_zdfShowUnique1_closure, @object | |
Unique_zdfShowUnique1_closure: | |
.long Unique_zdfShowUnique1_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.section .rodata | |
.align 4 | |
.align 1 | |
cxV_str: | |
.byte 85 | |
.byte 32 | |
.byte 0 | |
.text | |
.align 4,0x90 | |
.long 0 | |
.long 22 | |
.globl Unique_zdfShowUnique1_info | |
.type Unique_zdfShowUnique1_info, @object | |
Unique_zdfShowUnique1_info: | |
.LcxZ: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcy1 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcy3 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lcy4 | |
.Lcy5: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $cxV_str,-12(%ebp) | |
addl $-12,%ebp | |
jmp ghczmprim_GHCziCString_unpackCStringzh_info | |
.Lcy3: | |
movl $8,116(%ebx) | |
.Lcy1: | |
jmp *-8(%ebx) | |
.Lcy4: | |
jmp *(%esi) | |
.size Unique_zdfShowUnique1_info, .-Unique_zdfShowUnique1_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdwzdcshowsPrec_srt: | |
.long base_GHCziShow_zdwzdcshowsPrec_closure | |
.long Unique_zdfShowUnique1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdwzdcshowsPrec_closure | |
.type Unique_zdwzdcshowsPrec_closure, @object | |
Unique_zdwzdcshowsPrec_closure: | |
.long Unique_zdwzdcshowsPrec_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(swE_info)+0 | |
.long 2 | |
.long 65555 | |
swE_info: | |
.Lcyq: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcys | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl 12(%esi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $11,-20(%ebp) | |
addl $-20,%ebp | |
jmp base_GHCziShow_zdwzdcshowsPrec_info | |
.Lcys: | |
jmp *-8(%ebx) | |
.size swE_info, .-swE_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(svF_info)+0 | |
.long 2 | |
.long 65555 | |
svF_info: | |
.LcyF: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcyH | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcyJ | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_shows1_closure,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $11,-20(%ebp) | |
addl $-20,%ebp | |
jmp base_GHCziShow_zdwzdcshowsPrec_info | |
.LcyJ: | |
movl $12,116(%ebx) | |
.LcyH: | |
jmp *-8(%ebx) | |
.size svF_info, .-svF_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(swL_info)+0 | |
.long 2 | |
.long 196627 | |
swL_info: | |
.LcyS: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcyU | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcyW | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $svF_info,-12(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl $Unique_zdfShowUnique1_closure,-16(%ebp) | |
addl $-16,%ebp | |
jmp base_GHCziBase_zpzp_info | |
.LcyW: | |
movl $16,116(%ebx) | |
.LcyU: | |
jmp *-8(%ebx) | |
.size swL_info, .-swL_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdwzdcshowsPrec_srt-(Unique_zdwzdcshowsPrec_info)+0 | |
.long 196624 | |
.long 0 | |
.long 196623 | |
.globl Unique_zdwzdcshowsPrec_info | |
.type Unique_zdwzdcshowsPrec_info, @object | |
Unique_zdwzdcshowsPrec_info: | |
.Lcz4: | |
addl $28,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcz8 | |
cmpl $11,0(%ebp) | |
jge .Lcza | |
movl $swE_info,-24(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-16(%edi) | |
movl 8(%ebp),%eax | |
movl %eax,-12(%edi) | |
leal -24(%edi),%eax | |
movl %eax,8(%ebp) | |
movl $Unique_zdfShowUnique1_closure,4(%ebp) | |
addl $4,%ebp | |
addl $-12,%edi | |
jmp base_GHCziBase_zpzp_info | |
.Lcz8: | |
movl $28,116(%ebx) | |
.Lcz6: | |
movl $Unique_zdwzdcshowsPrec_closure,%esi | |
jmp *-4(%ebx) | |
.Lcza: | |
movl $swL_info,-24(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-16(%edi) | |
movl 8(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_shows2_closure,-4(%edi) | |
leal -24(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $12,%ebp | |
jmp *0(%ebp) | |
.size Unique_zdwzdcshowsPrec_info, .-Unique_zdwzdcshowsPrec_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdfShowUniquezuzdcshowsPrec_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUniquezuzdcshowsPrec_closure | |
.type Unique_zdfShowUniquezuzdcshowsPrec_closure, @object | |
Unique_zdfShowUniquezuzdcshowsPrec_closure: | |
.long Unique_zdfShowUniquezuzdcshowsPrec_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowsPrec_srt-(swJ_info)+0 | |
.long 2 | |
.long 65568 | |
swJ_info: | |
.Lczt: | |
movl 3(%esi),%eax | |
movl %eax,0(%ebp) | |
jmp Unique_zdwzdcshowsPrec_info | |
.size swJ_info, .-swJ_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowsPrec_srt-(Unique_zdfShowUniquezuzdcshowsPrec_info)+0 | |
.long 196628 | |
.long 0 | |
.long 65551 | |
.globl Unique_zdfShowUniquezuzdcshowsPrec_info | |
.type Unique_zdfShowUniquezuzdcshowsPrec_info, @object | |
Unique_zdfShowUniquezuzdcshowsPrec_info: | |
.Lczy: | |
movl 0(%ebp),%esi | |
movl $swJ_info,0(%ebp) | |
testl $3,%esi | |
jne swJ_info | |
jmp *(%esi) | |
.size Unique_zdfShowUniquezuzdcshowsPrec_info, .-Unique_zdfShowUniquezuzdcshowsPrec_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdfShowUniquezuzdcshowList_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUniquezuzdcshowList_closure | |
.type Unique_zdfShowUniquezuzdcshowList_closure, @object | |
Unique_zdfShowUniquezuzdcshowList_closure: | |
.long Unique_zdfShowUniquezuzdcshowList_info | |
.long 0 | |
.section .rodata | |
.align 4 | |
.align 1 | |
czP_str: | |
.byte 91 | |
.byte 93 | |
.byte 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swG_info)+0 | |
.long 3 | |
.long 65552 | |
swG_info: | |
.LcA9: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAb | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAd | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $stg_ap_2_upd_info,-12(%edi) | |
movl 16(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 12(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.LcAd: | |
movl $16,116(%ebx) | |
.LcAb: | |
jmp *-8(%ebx) | |
.size swG_info, .-swG_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swI_info)+0 | |
.long 2 | |
.long 65568 | |
swI_info: | |
.LcAo: | |
movl %esi,%eax | |
andl $3,%eax | |
cmpl $2,%eax | |
jae .LcAp | |
movl 8(%ebp),%esi | |
addl $12,%ebp | |
jmp *0(%ebp) | |
.LcAp: | |
addl $32,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAt | |
movl $swG_info,-28(%edi) | |
movl 2(%esi),%eax | |
movl %eax,-20(%edi) | |
movl 6(%esi),%eax | |
movl %eax,-16(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_showListzuzu1_closure,-4(%edi) | |
leal -28(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $12,%ebp | |
jmp *0(%ebp) | |
.LcAt: | |
movl $32,116(%ebx) | |
.LcAr: | |
jmp *-8(%ebx) | |
.size swI_info, .-swI_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(sw8_info)+0 | |
.long 65541 | |
.long 1 | |
.long 65546 | |
sw8_info: | |
.LcAE: | |
leal -8(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAG | |
movl %esi,-4(%ebp) | |
movl 0(%ebp),%eax | |
movl 3(%esi),%ecx | |
movl %ecx,0(%ebp) | |
movl %eax,%esi | |
movl $swI_info,-8(%ebp) | |
addl $-8,%ebp | |
testl $3,%esi | |
jne swI_info | |
jmp *(%esi) | |
.LcAG: | |
jmp *-4(%ebx) | |
.size sw8_info, .-sw8_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swe_info)+0 | |
.long 2 | |
.long 65555 | |
swe_info: | |
.LcAS: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAU | |
addl $20,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAW | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-16(%edi) | |
movl $base_GHCziShow_showListzuzu2_closure,-12(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-8(%edi) | |
movl $sw8_info,-4(%edi) | |
leal -14(%edi),%eax | |
movl %eax,0(%edi) | |
movl 12(%esi),%eax | |
movl %eax,-12(%ebp) | |
leal -3(%edi),%esi | |
addl $-12,%ebp | |
jmp sw8_info | |
.LcAW: | |
movl $20,116(%ebx) | |
.LcAU: | |
jmp *-8(%ebx) | |
.size swe_info, .-swe_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swH_info)+0 | |
.long 3 | |
.long 65552 | |
swH_info: | |
.LcB5: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcB7 | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcB9 | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $swe_info,-12(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-4(%edi) | |
movl 16(%esi),%eax | |
movl %eax,0(%edi) | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 12(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.LcB9: | |
movl $16,116(%ebx) | |
.LcB7: | |
jmp *-8(%ebx) | |
.size swH_info, .-swH_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(swF_info)+0 | |
.long 1 | |
.long 65568 | |
swF_info: | |
.LcBk: | |
movl %esi,%eax | |
andl $3,%eax | |
cmpl $2,%eax | |
jae .LcBl | |
movl $czP_str,0(%ebp) | |
jmp ghczmprim_GHCziCString_unpackAppendCStringzh_info | |
.LcBl: | |
addl $32,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcBp | |
movl $swH_info,-28(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-20(%edi) | |
movl 2(%esi),%eax | |
movl %eax,-16(%edi) | |
movl 6(%esi),%eax | |
movl %eax,-12(%edi) | |
movl $ghczmprim_GHCziTypes_ZC_con_info,-8(%edi) | |
movl $base_GHCziShow_showListzuzu3_closure,-4(%edi) | |
leal -28(%edi),%eax | |
movl %eax,0(%edi) | |
leal -6(%edi),%esi | |
addl $8,%ebp | |
jmp *0(%ebp) | |
.LcBp: | |
movl $32,116(%ebx) | |
.LcBn: | |
jmp *-8(%ebx) | |
.size swF_info, .-swF_info | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshowList_srt-(Unique_zdfShowUniquezuzdcshowList_info)+0 | |
.long 131084 | |
.long 0 | |
.long 65551 | |
.globl Unique_zdfShowUniquezuzdcshowList_info | |
.type Unique_zdfShowUniquezuzdcshowList_info, @object | |
Unique_zdfShowUniquezuzdcshowList_info: | |
.LcBA: | |
movl 0(%ebp),%esi | |
movl $swF_info,0(%ebp) | |
testl $3,%esi | |
jne swF_info | |
jmp *(%esi) | |
.size Unique_zdfShowUniquezuzdcshowList_info, .-Unique_zdfShowUniquezuzdcshowList_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_zdfShowUniquezuzdcshow_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUniquezuzdcshow_closure | |
.type Unique_zdfShowUniquezuzdcshow_closure, @object | |
Unique_zdfShowUniquezuzdcshow_closure: | |
.long Unique_zdfShowUniquezuzdcshow_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_zdfShowUniquezuzdcshow_srt-(Unique_zdfShowUniquezuzdcshow_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique_zdfShowUniquezuzdcshow_info | |
.type Unique_zdfShowUniquezuzdcshow_info, @object | |
Unique_zdfShowUniquezuzdcshow_info: | |
.LcBM: | |
leal -8(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcBP | |
movl 0(%ebp),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,0(%ebp) | |
movl $0,-8(%ebp) | |
addl $-8,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.LcBP: | |
movl $Unique_zdfShowUniquezuzdcshow_closure,%esi | |
jmp *-4(%ebx) | |
.size Unique_zdfShowUniquezuzdcshow_info, .-Unique_zdfShowUniquezuzdcshow_info | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUnique_closure | |
.type Unique_zdfShowUnique_closure, @object | |
Unique_zdfShowUnique_closure: | |
.long base_GHCziShow_DZCShow_static_info | |
.long Unique_zdfShowUniquezuzdcshowsPrec_closure+3 | |
.long Unique_zdfShowUniquezuzdcshow_closure+1 | |
.long Unique_zdfShowUniquezuzdcshowList_closure+2 | |
.long 0 | |
.data | |
.align 4 | |
.align 1 | |
rvh_closure: | |
.long integerzmgmp_GHCziIntegerziType_Szh_static_info | |
.long 1 | |
.section .data | |
.align 4 | |
.align 1 | |
rvi_srt: | |
.long rag_closure | |
.long rvh_closure | |
.data | |
.align 4 | |
.align 1 | |
rvi_closure: | |
.long rvi_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(swB_info)+4 | |
.long 1 | |
.long 65553 | |
swB_info: | |
.LcCh: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcCj | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $rvh_closure+1,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp integerzmgmp_GHCziIntegerziType_plusInteger_info | |
.LcCj: | |
jmp *-8(%ebx) | |
.size swB_info, .-swB_info | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(swD_info)+4 | |
.long 0 | |
.long 65568 | |
swD_info: | |
.LcCp: | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcCt | |
movl 3(%esi),%eax | |
movl 4(%eax),%eax | |
movl $swB_info,-8(%edi) | |
movl %eax,0(%edi) | |
leal -8(%edi),%ecx | |
movl 3(%esi),%edx | |
movl %ecx,4(%edx) | |
movl %ebx,%ecx | |
movl 3(%esi),%edx | |
subl $4,%esp | |
pushl %edx | |
pushl %ecx | |
movl %eax,76(%esp) | |
call dirty_MUT_VAR | |
addl $12,%esp | |
movl 64(%esp),%eax | |
movl %eax,%esi | |
addl $4,%ebp | |
jmp *0(%ebp) | |
.LcCt: | |
movl $12,116(%ebx) | |
.LcCr: | |
jmp *-8(%ebx) | |
.size swD_info, .-swD_info | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(swo_info)+0 | |
.long 0 | |
.long 196640 | |
swo_info: | |
.LcCE: | |
movl $rag_closure,%esi | |
movl $swD_info,0(%ebp) | |
testl $3,%esi | |
jne swD_info | |
jmp *(%esi) | |
.size swo_info, .-swo_info | |
.text | |
.align 4,0x90 | |
.long rvi_srt-(rvi_info)+0 | |
.long 65539 | |
.long 0 | |
.long 196623 | |
rvi_info: | |
.LcCL: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcCN | |
movl $swo_info,-4(%ebp) | |
addl $-4,%ebp | |
jmp stg_noDuplicatezh | |
.LcCN: | |
movl $rvi_closure,%esi | |
jmp *-4(%ebx) | |
.size rvi_info, .-rvi_info | |
.section .data | |
.align 4 | |
.align 1 | |
rvj_srt: | |
.long rvi_closure | |
.data | |
.align 4 | |
.align 1 | |
rvj_closure: | |
.long rvj_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rvj_srt-(rvj_info)+0 | |
.long 0 | |
.long 65558 | |
rvj_info: | |
.LcD1: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcD3 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcD5 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcD6 | |
.LcD7: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $rvi_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp base_GHCziIO_unsafeDupablePerformIO_info | |
.LcD5: | |
movl $8,116(%ebx) | |
.LcD3: | |
jmp *-8(%ebx) | |
.LcD6: | |
jmp *(%esi) | |
.size rvj_info, .-rvj_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_newUnique_srt: | |
.long rvj_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_newUnique_closure | |
.type Unique_newUnique_closure, @object | |
Unique_newUnique_closure: | |
.long Unique_newUnique_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_newUnique_srt-(swA_info)+0 | |
.long 0 | |
.long 65568 | |
swA_info: | |
.LcDo: | |
movl $rvj_closure,%esi | |
addl $4,%ebp | |
andl $-4,%esi | |
jmp *(%esi) | |
.size swA_info, .-swA_info | |
.text | |
.align 4,0x90 | |
.long Unique_newUnique_srt-(Unique_newUnique_info)+0 | |
.long 65541 | |
.long 0 | |
.long 65551 | |
.globl Unique_newUnique_info | |
.type Unique_newUnique_info, @object | |
Unique_newUnique_info: | |
.LcDt: | |
movl 0(%ebp),%esi | |
movl $swA_info,0(%ebp) | |
testl $3,%esi | |
jne swA_info | |
jmp *(%esi) | |
.size Unique_newUnique_info, .-Unique_newUnique_info | |
[2 of 2] Compiling Main ( hs, o ) | |
==================== Tidy Core ==================== | |
Result size = 44 | |
main3 :: Unique.Unique | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 20 0}] | |
main3 = Unique.newUnique () | |
main2 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
main2 = | |
Unique.$w$cshowsPrec 0 main3 ([] @ Char) | |
main4 :: [Char] | |
[GblId, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False, | |
ConLike=False, Cheap=False, Expandable=False, | |
Guidance=IF_ARGS [] 40 0}] | |
main4 = | |
Unique.$w$cshowsPrec 0 main3 ([] @ Char) | |
main1 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 110 0}] | |
main1 = | |
\ (eta_B1 :: State# RealWorld) -> | |
case Handle.Text.hPutStr2 | |
Handle.FD.stdout main4 True eta_B1 | |
of _ { (# new_s_atV, _ #) -> | |
Handle.Text.hPutStr2 | |
Handle.FD.stdout main2 True new_s_atV | |
} | |
main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
main = | |
main1 | |
`cast` (Sym (NTCo:IO <()>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ()) | |
main5 | |
:: State# RealWorld | |
-> (# State# RealWorld, () #) | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=1, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=IF_ARGS [0] 30 0}] | |
main5 = | |
\ (eta_Xb :: State# RealWorld) -> | |
runMainIO1 | |
@ () | |
(main1 | |
`cast` (Sym (NTCo:IO <()>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ())) | |
eta_Xb | |
:main :: IO () | |
[GblId, | |
Arity=1, | |
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=True, | |
ConLike=True, Cheap=True, Expandable=True, | |
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}] | |
:main = | |
main5 | |
`cast` (Sym (NTCo:IO <()>) | |
:: (State# RealWorld | |
-> (# State# RealWorld, () #)) | |
~# | |
IO ()) | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_Main | |
.type __stginit_Main, @object | |
__stginit_Main: | |
.globl __stginit_ZCMain | |
.type __stginit_ZCMain, @object | |
__stginit_ZCMain: | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main3_srt: | |
.long Unique_newUnique_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main3_closure | |
.type Main_main3_closure, @object | |
Main_main3_closure: | |
.long Main_main3_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main3_srt-(Main_main3_info)+0 | |
.long 0 | |
.long 65558 | |
.globl Main_main3_info | |
.type Main_main3_info, @object | |
Main_main3_info: | |
.Lc1Yd: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1Yf | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1Yh | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1Yi | |
.Lc1Yj: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTuple_Z0T_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp Unique_newUnique_info | |
.Lc1Yh: | |
movl $8,116(%ebx) | |
.Lc1Yf: | |
jmp *-8(%ebx) | |
.Lc1Yi: | |
jmp *(%esi) | |
.size Main_main3_info, .-Main_main3_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main2_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.long Main_main3_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main2_closure | |
.type Main_main2_closure, @object | |
Main_main2_closure: | |
.long Main_main2_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main2_srt-(Main_main2_info)+0 | |
.long 0 | |
.long 196630 | |
.globl Main_main2_info | |
.type Main_main2_info, @object | |
Main_main2_info: | |
.Lc1YB: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1YD | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1YF | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1YG | |
.Lc1YH: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,-12(%ebp) | |
movl $Main_main3_closure,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.Lc1YF: | |
movl $8,116(%ebx) | |
.Lc1YD: | |
jmp *-8(%ebx) | |
.Lc1YG: | |
jmp *(%esi) | |
.size Main_main2_info, .-Main_main2_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main4_srt: | |
.long Unique_zdwzdcshowsPrec_closure | |
.long Main_main3_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main4_closure | |
.type Main_main4_closure, @object | |
Main_main4_closure: | |
.long Main_main4_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main4_srt-(Main_main4_info)+0 | |
.long 0 | |
.long 196630 | |
.globl Main_main4_info | |
.type Main_main4_info, @object | |
Main_main4_info: | |
.Lc1YZ: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1Z1 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lc1Z3 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lc1Z4 | |
.Lc1Z5: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,-12(%ebp) | |
movl $Main_main3_closure,-16(%ebp) | |
movl $0,-20(%ebp) | |
addl $-20,%ebp | |
jmp Unique_zdwzdcshowsPrec_info | |
.Lc1Z3: | |
movl $8,116(%ebx) | |
.Lc1Z1: | |
jmp *-8(%ebx) | |
.Lc1Z4: | |
jmp *(%esi) | |
.size Main_main4_info, .-Main_main4_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main1_srt: | |
.long Main_main2_closure | |
.long Main_main4_closure | |
.long base_GHCziIOziHandleziFD_stdout_closure | |
.long base_GHCziIOziHandleziText_hPutStr2_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main1_closure | |
.type Main_main1_closure, @object | |
Main_main1_closure: | |
.long Main_main1_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main1_srt-(s1XY_info)+0 | |
.long 0 | |
.long 852000 | |
s1XY_info: | |
.Lc1Zm: | |
movl $ghczmprim_GHCziTypes_True_closure+2,0(%ebp) | |
movl $Main_main2_closure,-4(%ebp) | |
movl $base_GHCziIOziHandleziFD_stdout_closure,-8(%ebp) | |
addl $-8,%ebp | |
jmp base_GHCziIOziHandleziText_hPutStr2_info | |
.size s1XY_info, .-s1XY_info | |
.text | |
.align 4,0x90 | |
.long Main_main1_srt-(Main_main1_info)+0 | |
.long 65539 | |
.long 0 | |
.long 983055 | |
.globl Main_main1_info | |
.type Main_main1_info, @object | |
Main_main1_info: | |
.Lc1Zq: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1Zs | |
movl $ghczmprim_GHCziTypes_True_closure+2,-8(%ebp) | |
movl $Main_main4_closure,-12(%ebp) | |
movl $base_GHCziIOziHandleziFD_stdout_closure,-16(%ebp) | |
movl $s1XY_info,-4(%ebp) | |
addl $-16,%ebp | |
jmp base_GHCziIOziHandleziText_hPutStr2_info | |
.Lc1Zs: | |
movl $Main_main1_closure,%esi | |
jmp *-4(%ebx) | |
.size Main_main1_info, .-Main_main1_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main_srt: | |
.long Main_main1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main_closure | |
.type Main_main_closure, @object | |
Main_main_closure: | |
.long Main_main_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main_srt-(Main_main_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
.globl Main_main_info | |
.type Main_main_info, @object | |
Main_main_info: | |
.Lc1ZC: | |
jmp Main_main1_info | |
.size Main_main_info, .-Main_main_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main5_srt: | |
.long base_GHCziTopHandler_runMainIO1_closure | |
.long Main_main1_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main5_closure | |
.type Main_main5_closure, @object | |
Main_main5_closure: | |
.long Main_main5_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main5_srt-(Main_main5_info)+0 | |
.long 65539 | |
.long 0 | |
.long 196623 | |
.globl Main_main5_info | |
.type Main_main5_info, @object | |
Main_main5_info: | |
.Lc1ZL: | |
leal -4(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lc1ZO | |
movl $Main_main1_closure+1,-4(%ebp) | |
addl $-4,%ebp | |
jmp base_GHCziTopHandler_runMainIO1_info | |
.Lc1ZO: | |
movl $Main_main5_closure,%esi | |
jmp *-4(%ebx) | |
.size Main_main5_info, .-Main_main5_info | |
.section .data | |
.align 4 | |
.align 1 | |
ZCMain_main_srt: | |
.long Main_main5_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl ZCMain_main_closure | |
.type ZCMain_main_closure, @object | |
ZCMain_main_closure: | |
.long ZCMain_main_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long ZCMain_main_srt-(ZCMain_main_info)+0 | |
.long 65539 | |
.long 0 | |
.long 65551 | |
.globl ZCMain_main_info | |
.type ZCMain_main_info, @object | |
ZCMain_main_info: | |
.Lc1ZY: | |
jmp Main_main5_info | |
.size ZCMain_main_info, .-ZCMain_main_info | |
Linking Main ... | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1 of 2] Compiling Unique ( Unique.hs, Unique.o ) | |
==================== Tidy Core ==================== | |
Result size = 91 | |
counter_ra4 :: IORef Type.Integer | |
[GblId] | |
counter_ra4 = | |
$ | |
@ (IO (IORef Type.Integer)) | |
@ (IORef Type.Integer) | |
(unsafePerformIO | |
@ (IORef Type.Integer)) | |
(newIORef @ Type.Integer (__integer 0)) | |
$cshowsPrec_rq9 :: Int -> Unique.Unique -> ShowS | |
[GblId, Arity=2] | |
$cshowsPrec_rq9 = | |
\ (a_afc :: Int) (ds_dq5 :: Unique.Unique) -> | |
showParen | |
(>= | |
@ Int $fOrdInt a_afc (I# 11)) | |
(. | |
@ String | |
@ String | |
@ String | |
(showString (unpackCString# "U ")) | |
(showsPrec | |
@ Type.Integer | |
$fShowInteger | |
(I# 11) | |
(ds_dq5 | |
`cast` (Unique.NTCo:Unique | |
:: Unique.Unique ~# Type.Integer)))) | |
Unique.$fShowUnique [InlPrag=[ALWAYS] CONLIKE] | |
:: Show Unique.Unique | |
[GblId[DFunId]] | |
Unique.$fShowUnique = | |
D:Show | |
@ Unique.Unique $cshowsPrec_rq9 $cshow_rqb $cshowList_rqa | |
$cshowList_rqa :: [Unique.Unique] -> ShowS | |
[GblId] | |
$cshowList_rqa = | |
showList__ | |
@ Unique.Unique | |
(showsPrec | |
@ Unique.Unique Unique.$fShowUnique (I# 0)) | |
$cshow_rqb :: Unique.Unique -> String | |
[GblId] | |
$cshow_rqb = $dmshow @ Unique.Unique Unique.$fShowUnique | |
newUnique'_ra5 :: IO Unique.Unique | |
[GblId] | |
newUnique'_ra5 = | |
>>= | |
@ IO | |
$fMonadIO | |
@ Type.Integer | |
@ Unique.Unique | |
(readIORef @ Type.Integer counter_ra4) | |
(\ (x_aa7 :: Type.Integer) -> | |
>> | |
@ IO | |
$fMonadIO | |
@ () | |
@ Unique.Unique | |
(writeIORef | |
@ Type.Integer | |
counter_ra4 | |
(+ | |
@ Type.Integer | |
$fNumInteger | |
x_aa7 | |
(__integer 1))) | |
($ | |
@ Unique.Unique | |
@ (IO Unique.Unique) | |
(return @ IO $fMonadIO @ Unique.Unique) | |
(x_aa7 | |
`cast` (Sym (Unique.NTCo:Unique) | |
:: Type.Integer ~# Unique.Unique)))) | |
Unique.newUnique [InlPrag=NOINLINE] :: () -> Unique.Unique | |
[GblId, Arity=1] | |
Unique.newUnique = | |
\ (ds_dq3 :: ()) -> | |
case ds_dq3 of _ { () -> | |
unsafePerformIO @ Unique.Unique newUnique'_ra5 | |
} | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_Unique | |
.type __stginit_Unique, @object | |
__stginit_Unique: | |
.section .data | |
.align 4 | |
.align 1 | |
sqy_srt: | |
.long base_GHCziIORef_newIORef_closure | |
.data | |
.align 4 | |
.align 1 | |
sqy_closure: | |
.long sqy_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long sqy_srt-(sqy_info)+0 | |
.long 0 | |
.long 65558 | |
sqy_info: | |
.Lcrk: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcrm | |
addl $16,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcro | |
movl $stg_CAF_BLACKHOLE_info,-12(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,-8(%edi) | |
leal -12(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lcrp | |
.Lcrq: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -12(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $integerzmgmp_GHCziIntegerziType_Szh_con_info,-4(%edi) | |
movl $0,0(%edi) | |
movl $base_GHCziIORef_newIORef_closure,%esi | |
leal -3(%edi),%eax | |
movl %eax,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.Lcro: | |
movl $16,116(%ebx) | |
.Lcrm: | |
jmp *-8(%ebx) | |
.Lcrp: | |
jmp *(%esi) | |
.size sqy_info, .-sqy_info | |
.section .data | |
.align 4 | |
.align 1 | |
ra4_srt: | |
.long base_GHCziBase_zd_closure | |
.long base_GHCziIO_unsafePerformIO_closure | |
.long sqy_closure | |
.data | |
.align 4 | |
.align 1 | |
ra4_closure: | |
.long ra4_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long ra4_srt-(ra4_info)+0 | |
.long 0 | |
.long 458774 | |
ra4_info: | |
.LcrJ: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcrL | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcrN | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcrO | |
.LcrP: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $base_GHCziBase_zd_closure,%esi | |
movl $sqy_closure,-12(%ebp) | |
movl $base_GHCziIO_unsafePerformIO_closure,-16(%ebp) | |
addl $-16,%ebp | |
jmp stg_ap_pp_fast | |
.LcrN: | |
movl $8,116(%ebx) | |
.LcrL: | |
jmp *-8(%ebx) | |
.LcrO: | |
jmp *(%esi) | |
.size ra4_info, .-ra4_info | |
.section .data | |
.align 4 | |
.align 1 | |
rq9_srt: | |
.long ghczmprim_GHCziCString_unpackCStringzh_closure | |
.long base_GHCziShow_showString_closure | |
.long base_GHCziShow_showParen_closure | |
.long base_GHCziBase_zi_closure | |
.long base_GHCziShow_zdfShowInteger_closure | |
.long ghczmprim_GHCziClasses_zdfOrdInt_closure | |
.data | |
.align 4 | |
.align 1 | |
rq9_closure: | |
.long rq9_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rq9_srt-(sqs_info)+16 | |
.long 1 | |
.long 65553 | |
sqs_info: | |
.Lcs9: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcsb | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-12(%ebp) | |
movl $stg_INTLIKE_closure+217,-16(%ebp) | |
movl $stg_ap_pp_info,-20(%ebp) | |
movl $base_GHCziShow_zdfShowInteger_closure,-24(%ebp) | |
addl $-24,%ebp | |
jmp base_GHCziShow_showsPrec_info | |
.Lcsb: | |
jmp *-8(%ebx) | |
.size sqs_info, .-sqs_info | |
.section .rodata | |
.align 4 | |
.align 1 | |
csl_str: | |
.byte 85 | |
.byte 32 | |
.byte 0 | |
.text | |
.align 4,0x90 | |
.long rq9_srt-(sqm_info)+0 | |
.long 0 | |
.long 65552 | |
sqm_info: | |
.Lcsp: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcsr | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $ghczmprim_GHCziCString_unpackCStringzh_closure,%esi | |
movl $csl_str,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_n_fast | |
.Lcsr: | |
jmp *-8(%ebx) | |
.size sqm_info, .-sqm_info | |
.text | |
.align 4,0x90 | |
.long rq9_srt-(sqt_info)+0 | |
.long 0 | |
.long 196624 | |
sqt_info: | |
.Lcsx: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcsz | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcsB | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sqm_info,-4(%edi) | |
movl $base_GHCziShow_showString_closure,%esi | |
leal -4(%edi),%eax | |
movl %eax,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcsB: | |
movl $8,116(%ebx) | |
.Lcsz: | |
jmp *-8(%ebx) | |
.size sqt_info, .-sqt_info | |
.text | |
.align 4,0x90 | |
.long rq9_srt-(sqU_info)+0 | |
.long 1 | |
.long 1769489 | |
sqU_info: | |
.LcsI: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcsK | |
addl $20,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcsM | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sqs_info,-16(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-8(%edi) | |
movl $sqt_info,-4(%edi) | |
movl $base_GHCziBase_zi_closure,%esi | |
leal -16(%edi),%eax | |
movl %eax,-12(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp stg_ap_pp_fast | |
.LcsM: | |
movl $20,116(%ebx) | |
.LcsK: | |
jmp *-8(%ebx) | |
.size sqU_info, .-sqU_info | |
.text | |
.align 4,0x90 | |
.long rq9_srt-(sqV_info)+20 | |
.long 1 | |
.long 65553 | |
sqV_info: | |
.LcsX: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcsZ | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $stg_INTLIKE_closure+217,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $stg_ap_pp_info,-20(%ebp) | |
movl $ghczmprim_GHCziClasses_zdfOrdInt_closure,-24(%ebp) | |
addl $-24,%ebp | |
jmp ghczmprim_GHCziClasses_zgze_info | |
.LcsZ: | |
jmp *-8(%ebx) | |
.size sqV_info, .-sqV_info | |
.text | |
.align 4,0x90 | |
.long rq9_srt-(rq9_info)+0 | |
.long 131084 | |
.long 0 | |
.long 4128783 | |
rq9_info: | |
.Lct5: | |
addl $24,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lct9 | |
movl $sqU_info,-20(%edi) | |
movl 4(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $sqV_info,-8(%edi) | |
movl 0(%ebp),%eax | |
movl %eax,0(%edi) | |
movl $base_GHCziShow_showParen_closure,%esi | |
leal -20(%edi),%eax | |
movl %eax,4(%ebp) | |
leal -8(%edi),%eax | |
movl %eax,0(%ebp) | |
jmp stg_ap_pp_fast | |
.Lct9: | |
movl $24,116(%ebx) | |
.Lct7: | |
movl $rq9_closure,%esi | |
jmp *-4(%ebx) | |
.size rq9_info, .-rq9_info | |
.section .data | |
.align 4 | |
.align 1 | |
sqR_srt: | |
.long Unique_zdfShowUnique_closure | |
.section .data | |
.align 4 | |
.align 1 | |
rqa_srt: | |
.long base_GHCziShow_showListzuzu_closure | |
.long sqR_closure | |
.section .data | |
.align 4 | |
.align 1 | |
rqb_srt: | |
.long base_GHCziShow_zddmshow_closure | |
.long Unique_zdfShowUnique_closure | |
.data | |
.align 4 | |
.align 1 | |
sqR_closure: | |
.long sqR_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long sqR_srt-(sqR_info)+0 | |
.long 0 | |
.long 65558 | |
sqR_info: | |
.Lcts: | |
leal -20(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lctu | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lctw | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lctx | |
.Lcty: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $stg_INTLIKE_closure+129,-12(%ebp) | |
movl $stg_ap_p_info,-16(%ebp) | |
movl $Unique_zdfShowUnique_closure+1,-20(%ebp) | |
addl $-20,%ebp | |
jmp base_GHCziShow_showsPrec_info | |
.Lctw: | |
movl $8,116(%ebx) | |
.Lctu: | |
jmp *-8(%ebx) | |
.Lctx: | |
jmp *(%esi) | |
.size sqR_info, .-sqR_info | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_zdfShowUnique_closure | |
.type Unique_zdfShowUnique_closure, @object | |
Unique_zdfShowUnique_closure: | |
.long base_GHCziShow_DZCShow_static_info | |
.long rq9_closure+2 | |
.long rqb_closure | |
.long rqa_closure | |
.long 0 | |
.data | |
.align 4 | |
.align 1 | |
rqa_closure: | |
.long rqa_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rqa_srt-(rqa_info)+0 | |
.long 0 | |
.long 196630 | |
rqa_info: | |
.LctR: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LctT | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LctV | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LctW | |
.LctX: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $base_GHCziShow_showListzuzu_closure,%esi | |
movl $sqR_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LctV: | |
movl $8,116(%ebx) | |
.LctT: | |
jmp *-8(%ebx) | |
.LctW: | |
jmp *(%esi) | |
.size rqa_info, .-rqa_info | |
.data | |
.align 4 | |
.align 1 | |
rqb_closure: | |
.long rqb_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long rqb_srt-(rqb_info)+0 | |
.long 0 | |
.long 196630 | |
rqb_info: | |
.Lcue: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcug | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcui | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lcuj | |
.Lcuk: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $base_GHCziShow_zddmshow_closure,%esi | |
movl $Unique_zdfShowUnique_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.Lcui: | |
movl $8,116(%ebx) | |
.Lcug: | |
jmp *-8(%ebx) | |
.Lcuj: | |
jmp *(%esi) | |
.size rqb_info, .-rqb_info | |
.section .data | |
.align 4 | |
.align 1 | |
sqO_srt: | |
.long base_GHCziBase_zd_closure | |
.long base_GHCziIORef_writeIORef_closure | |
.long base_GHCziBase_zdfMonadIO_closure | |
.long ra4_closure | |
.long base_GHCziNum_zdfNumInteger_closure | |
.data | |
.align 4 | |
.align 1 | |
sqO_closure: | |
.long sqO_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long sqO_srt-(sqI_info)+8 | |
.long 0 | |
.long 65552 | |
sqI_info: | |
.LcuE: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcuG | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $base_GHCziBase_zdfMonadIO_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp base_GHCziBase_return_info | |
.LcuG: | |
jmp *-8(%ebx) | |
.size sqI_info, .-sqI_info | |
.text | |
.align 4,0x90 | |
.long sqO_srt-(sqS_info)+0 | |
.long 1 | |
.long 327697 | |
sqS_info: | |
.LcuM: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcuO | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcuQ | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sqI_info,-4(%edi) | |
movl 8(%esi),%eax | |
movl %eax,-12(%ebp) | |
movl $base_GHCziBase_zd_closure,%esi | |
leal -4(%edi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp stg_ap_pp_fast | |
.LcuQ: | |
movl $8,116(%ebx) | |
.LcuO: | |
jmp *-8(%ebx) | |
.size sqS_info, .-sqS_info | |
.text | |
.align 4,0x90 | |
.long sqO_srt-(sqF_info)+16 | |
.long 1 | |
.long 65553 | |
sqF_info: | |
.Lcv2: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcv4 | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcv6 | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $integerzmgmp_GHCziIntegerziType_Szh_con_info,-4(%edi) | |
movl $1,0(%edi) | |
leal -3(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl 8(%esi),%eax | |
movl %eax,-16(%ebp) | |
movl $stg_ap_pp_info,-20(%ebp) | |
movl $base_GHCziNum_zdfNumInteger_closure,-24(%ebp) | |
addl $-24,%ebp | |
jmp base_GHCziNum_zp_info | |
.Lcv6: | |
movl $8,116(%ebx) | |
.Lcv4: | |
jmp *-8(%ebx) | |
.size sqF_info, .-sqF_info | |
.text | |
.align 4,0x90 | |
.long sqO_srt-(sqT_info)+4 | |
.long 1 | |
.long 851985 | |
sqT_info: | |
.Lcve: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcvg | |
addl $12,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcvi | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $sqF_info,-8(%edi) | |
movl 8(%esi),%eax | |
movl %eax,0(%edi) | |
movl $base_GHCziIORef_writeIORef_closure,%esi | |
leal -8(%edi),%eax | |
movl %eax,-12(%ebp) | |
movl $ra4_closure,-16(%ebp) | |
addl $-16,%ebp | |
jmp stg_ap_pp_fast | |
.Lcvi: | |
movl $12,116(%ebx) | |
.Lcvg: | |
jmp *-8(%ebx) | |
.size sqT_info, .-sqT_info | |
.text | |
.align 4,0x90 | |
.long sqO_srt-(sqO_info)+0 | |
.long 65541 | |
.long 0 | |
.long 2031631 | |
sqO_info: | |
.Lcvp: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcvr | |
addl $24,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcvt | |
movl $sqS_info,-20(%edi) | |
movl 0(%ebp),%eax | |
movl %eax,-12(%edi) | |
movl $sqT_info,-8(%edi) | |
movl 0(%ebp),%eax | |
movl %eax,0(%edi) | |
leal -20(%edi),%eax | |
movl %eax,0(%ebp) | |
leal -8(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $stg_ap_pp_info,-8(%ebp) | |
movl $base_GHCziBase_zdfMonadIO_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp base_GHCziBase_zgzg_info | |
.Lcvt: | |
movl $24,116(%ebx) | |
.Lcvr: | |
movl $sqO_closure,%esi | |
jmp *-4(%ebx) | |
.size sqO_info, .-sqO_info | |
.section .data | |
.align 4 | |
.align 1 | |
sqP_srt: | |
.long base_GHCziIORef_readIORef_closure | |
.long ra4_closure | |
.data | |
.align 4 | |
.align 1 | |
sqP_closure: | |
.long sqP_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long sqP_srt-(sqP_info)+0 | |
.long 0 | |
.long 196630 | |
sqP_info: | |
.LcvL: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcvN | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcvP | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcvQ | |
.LcvR: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $base_GHCziIORef_readIORef_closure,%esi | |
movl $ra4_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcvP: | |
movl $8,116(%ebx) | |
.LcvN: | |
jmp *-8(%ebx) | |
.LcvQ: | |
jmp *(%esi) | |
.size sqP_info, .-sqP_info | |
.section .data | |
.align 4 | |
.align 1 | |
ra5_srt: | |
.long base_GHCziBase_zdfMonadIO_closure | |
.long sqO_closure | |
.long sqP_closure | |
.data | |
.align 4 | |
.align 1 | |
ra5_closure: | |
.long ra5_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long ra5_srt-(ra5_info)+0 | |
.long 0 | |
.long 458774 | |
ra5_info: | |
.Lcw9: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .Lcwb | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .Lcwd | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .Lcwe | |
.Lcwf: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $sqO_closure+1,-12(%ebp) | |
movl $sqP_closure,-16(%ebp) | |
movl $stg_ap_pp_info,-20(%ebp) | |
movl $base_GHCziBase_zdfMonadIO_closure,-24(%ebp) | |
addl $-24,%ebp | |
jmp base_GHCziBase_zgzgze_info | |
.Lcwd: | |
movl $8,116(%ebx) | |
.Lcwb: | |
jmp *-8(%ebx) | |
.Lcwe: | |
jmp *(%esi) | |
.size ra5_info, .-ra5_info | |
.section .data | |
.align 4 | |
.align 1 | |
Unique_newUnique_srt: | |
.long base_GHCziIO_unsafePerformIO_closure | |
.long ra5_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Unique_newUnique_closure | |
.type Unique_newUnique_closure, @object | |
Unique_newUnique_closure: | |
.long Unique_newUnique_info | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Unique_newUnique_srt-(sqQ_info)+0 | |
.long 0 | |
.long 196640 | |
sqQ_info: | |
.Lcww: | |
movl $base_GHCziIO_unsafePerformIO_closure,%esi | |
movl $ra5_closure,0(%ebp) | |
jmp stg_ap_p_fast | |
.size sqQ_info, .-sqQ_info | |
.text | |
.align 4,0x90 | |
.long Unique_newUnique_srt-(Unique_newUnique_info)+0 | |
.long 65541 | |
.long 0 | |
.long 196623 | |
.globl Unique_newUnique_info | |
.type Unique_newUnique_info, @object | |
Unique_newUnique_info: | |
.LcwA: | |
movl 0(%ebp),%esi | |
movl $sqQ_info,0(%ebp) | |
testl $3,%esi | |
jne .LcwD | |
jmp *(%esi) | |
.LcwD: | |
jmp sqQ_info | |
.size Unique_newUnique_info, .-Unique_newUnique_info | |
[2 of 2] Compiling Main ( hs, o ) | |
==================== Tidy Core ==================== | |
Result size = 26 | |
main :: IO () | |
[GblId] | |
main = | |
>> | |
@ IO | |
$fMonadIO | |
@ () | |
@ () | |
($ | |
@ Unique.Unique | |
@ (IO ()) | |
(System.IO.print @ Unique.Unique Unique.$fShowUnique) | |
(Unique.newUnique ())) | |
($ | |
@ Unique.Unique | |
@ (IO ()) | |
(System.IO.print @ Unique.Unique Unique.$fShowUnique) | |
(Unique.newUnique ())) | |
:main :: IO () | |
[GblId] | |
:main = runMainIO @ () main | |
==================== Asm code ==================== | |
.data | |
.align 4 | |
.align 1 | |
.globl __stginit_Main | |
.type __stginit_Main, @object | |
__stginit_Main: | |
.globl __stginit_ZCMain | |
.type __stginit_ZCMain, @object | |
__stginit_ZCMain: | |
.section .data | |
.align 4 | |
.align 1 | |
sAd_srt: | |
.long base_SystemziIO_print_closure | |
.long base_GHCziBase_zd_closure | |
.long Unique_newUnique_closure | |
.long Unique_zdfShowUnique_closure | |
.data | |
.align 4 | |
.align 1 | |
sAd_closure: | |
.long sAd_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long sAd_srt-(sAa_info)+8 | |
.long 0 | |
.long 65552 | |
sAa_info: | |
.LcAu: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAw | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $Unique_newUnique_closure,%esi | |
movl $ghczmprim_GHCziTuple_Z0T_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcAw: | |
jmp *-8(%ebx) | |
.size sAa_info, .-sAa_info | |
.text | |
.align 4,0x90 | |
.long sAd_srt-(sAb_info)+0 | |
.long 0 | |
.long 589840 | |
sAb_info: | |
.LcAE: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAG | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $base_SystemziIO_print_closure,%esi | |
movl $Unique_zdfShowUnique_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcAG: | |
jmp *-8(%ebx) | |
.size sAb_info, .-sAb_info | |
.text | |
.align 4,0x90 | |
.long sAd_srt-(sAd_info)+0 | |
.long 0 | |
.long 983062 | |
sAd_info: | |
.LcAM: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcAO | |
addl $24,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcAQ | |
movl $stg_CAF_BLACKHOLE_info,-20(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,-16(%edi) | |
leal -20(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcAR | |
.LcAS: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -20(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $sAa_info,-12(%edi) | |
movl $sAb_info,-4(%edi) | |
movl $base_GHCziBase_zd_closure,%esi | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp stg_ap_pp_fast | |
.LcAQ: | |
movl $24,116(%ebx) | |
.LcAO: | |
jmp *-8(%ebx) | |
.LcAR: | |
jmp *(%esi) | |
.size sAd_info, .-sAd_info | |
.section .data | |
.align 4 | |
.align 1 | |
sAe_srt: | |
.long base_SystemziIO_print_closure | |
.long base_GHCziBase_zd_closure | |
.long Unique_newUnique_closure | |
.long Unique_zdfShowUnique_closure | |
.data | |
.align 4 | |
.align 1 | |
sAe_closure: | |
.long sAe_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long sAe_srt-(sA5_info)+8 | |
.long 0 | |
.long 65552 | |
sA5_info: | |
.LcBe: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcBg | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $Unique_newUnique_closure,%esi | |
movl $ghczmprim_GHCziTuple_Z0T_closure+1,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcBg: | |
jmp *-8(%ebx) | |
.size sA5_info, .-sA5_info | |
.text | |
.align 4,0x90 | |
.long sAe_srt-(sA6_info)+0 | |
.long 0 | |
.long 589840 | |
sA6_info: | |
.LcBo: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcBq | |
movl $stg_upd_frame_info,-8(%ebp) | |
movl %esi,-4(%ebp) | |
movl $base_SystemziIO_print_closure,%esi | |
movl $Unique_zdfShowUnique_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcBq: | |
jmp *-8(%ebx) | |
.size sA6_info, .-sA6_info | |
.text | |
.align 4,0x90 | |
.long sAe_srt-(sAe_info)+0 | |
.long 0 | |
.long 983062 | |
sAe_info: | |
.LcBw: | |
leal -16(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcBy | |
addl $24,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcBA | |
movl $stg_CAF_BLACKHOLE_info,-20(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,-16(%edi) | |
leal -20(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcBB | |
.LcBC: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -20(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $sA5_info,-12(%edi) | |
movl $sA6_info,-4(%edi) | |
movl $base_GHCziBase_zd_closure,%esi | |
leal -12(%edi),%eax | |
movl %eax,-12(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-16(%ebp) | |
addl $-16,%ebp | |
jmp stg_ap_pp_fast | |
.LcBA: | |
movl $24,116(%ebx) | |
.LcBy: | |
jmp *-8(%ebx) | |
.LcBB: | |
jmp *(%esi) | |
.size sAe_info, .-sAe_info | |
.section .data | |
.align 4 | |
.align 1 | |
Main_main_srt: | |
.long base_GHCziBase_zdfMonadIO_closure | |
.long sAd_closure | |
.long sAe_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl Main_main_closure | |
.type Main_main_closure, @object | |
Main_main_closure: | |
.long Main_main_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long Main_main_srt-(Main_main_info)+0 | |
.long 0 | |
.long 458774 | |
.globl Main_main_info | |
.type Main_main_info, @object | |
Main_main_info: | |
.LcBW: | |
leal -24(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcBY | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcC0 | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcC1 | |
.LcC2: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $sAd_closure,-12(%ebp) | |
movl $sAe_closure,-16(%ebp) | |
movl $stg_ap_pp_info,-20(%ebp) | |
movl $base_GHCziBase_zdfMonadIO_closure,-24(%ebp) | |
addl $-24,%ebp | |
jmp base_GHCziBase_zgzg_info | |
.LcC0: | |
movl $8,116(%ebx) | |
.LcBY: | |
jmp *-8(%ebx) | |
.LcC1: | |
jmp *(%esi) | |
.size Main_main_info, .-Main_main_info | |
.section .data | |
.align 4 | |
.align 1 | |
ZCMain_main_srt: | |
.long base_GHCziTopHandler_runMainIO_closure | |
.long Main_main_closure | |
.data | |
.align 4 | |
.align 1 | |
.globl ZCMain_main_closure | |
.type ZCMain_main_closure, @object | |
ZCMain_main_closure: | |
.long ZCMain_main_info | |
.long 0 | |
.long 0 | |
.long 0 | |
.text | |
.align 4,0x90 | |
.long ZCMain_main_srt-(ZCMain_main_info)+0 | |
.long 0 | |
.long 196630 | |
.globl ZCMain_main_info | |
.type ZCMain_main_info, @object | |
ZCMain_main_info: | |
.LcCk: | |
leal -12(%ebp),%eax | |
cmpl 84(%ebx),%eax | |
jb .LcCm | |
addl $8,%edi | |
cmpl 92(%ebx),%edi | |
ja .LcCo | |
movl $stg_CAF_BLACKHOLE_info,-4(%edi) | |
movl 100(%ebx),%eax | |
movl %eax,0(%edi) | |
leal -4(%edi),%eax | |
pushl %eax | |
pushl %esi | |
pushl %ebx | |
call newCAF | |
addl $12,%esp | |
testl %eax,%eax | |
je .LcCp | |
.LcCq: | |
movl $stg_bh_upd_frame_info,-8(%ebp) | |
leal -4(%edi),%eax | |
movl %eax,-4(%ebp) | |
movl $base_GHCziTopHandler_runMainIO_closure,%esi | |
movl $Main_main_closure,-12(%ebp) | |
addl $-12,%ebp | |
jmp stg_ap_p_fast | |
.LcCo: | |
movl $8,116(%ebx) | |
.LcCm: | |
jmp *-8(%ebx) | |
.LcCp: | |
jmp *(%esi) | |
.size ZCMain_main_info, .-ZCMain_main_info | |
Linking Main ... | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment