multiple top level Main.main binders in STG
Csaba Hruska
csaba.hruska at gmail.com
Fri Nov 2 21:18:49 UTC 2018
Hello,
I added an STG exporter to my modified GHC to do experiments with the STG
representation of the program.
I noticed that there are multiple top-level binders for *Main.main*
function.
Is this a convention or a bug?
Regards,
Csaba Hruska
Here is an example code snippet of the exported STG of the Main module:
Main.main2 =
closure (F:) (B:) {
case Main.$wupto 1# 10000000#
of sat.s16537 {
DEFAULT ->
case Main.$wxsum 0# sat.s16537
of ww.s16538 {
DEFAULT ->
case GHC.Show.$wshowSignedInt
0# ww.s16538 GHC.Types.[]
of ww4.s16539 {
GHC.Prim.(#,#) ww5.s16540 ww6.s16541 ->
GHC.Types.:
ww5.s16540 ww6.s16541
}
}
}}
Main.main1 =
closure (F:) (B: void.040) {
GHC.IO.Handle.Text.hPutStr2
GHC.IO.Handle.FD.stdout
Main.main2
GHC.Types.True
GHC.Prim.void#}
*Main.main* =
closure (F:) (B: void.040) {
Main.main1 GHC.Prim.void#}
Main.main3 =
closure (F:) (B: void.040) {
GHC.TopHandler.runMainIO1
Main.main1 GHC.Prim.void#}
*Main.main* =
closure (F:) (B: void.040) {
Main.main3 GHC.Prim.void#}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20181102/d9f4598b/attachment.html>
More information about the ghc-devs
mailing list