diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2020-01-28 20:17:46 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-04-03 06:25:33 -0400 |
commit | 9462452a4843a2c42fe055a0a7e274d5164d1dc0 (patch) | |
tree | 38c148b865f883a7d29e0bc8cef1660a1dfb5e10 /rts/StgMiscClosures.cmm | |
parent | ef7576c40f8de391ed8b1c81c38156202e6d17cf (diff) | |
download | haskell-9462452a4843a2c42fe055a0a7e274d5164d1dc0.tar.gz |
Improve and refactor StgToCmm codegen for DataCons.
We now differentiate three cases of constructor bindings:
1)Bindings which we can "replace" with a reference to
an existing closure. Reference the replacement closure
when accessing the binding.
2)Bindings which we can "replace" as above. But we still
generate a closure which will be referenced by modules
importing this binding.
3)For any other binding generate a closure. Then reference
it.
Before this patch 1) did only apply to local bindings and we
didn't do 2) at all.
Diffstat (limited to 'rts/StgMiscClosures.cmm')
-rw-r--r-- | rts/StgMiscClosures.cmm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/StgMiscClosures.cmm b/rts/StgMiscClosures.cmm index 40bc3e72bc..44ff9db6ce 100644 --- a/rts/StgMiscClosures.cmm +++ b/rts/StgMiscClosures.cmm @@ -695,7 +695,7 @@ INFO_TABLE( stg_COMPACT_NFDATA_DIRTY, 0, 8, COMPACT_NFDATA, "COMPACT_NFDATA", "C { foreign "C" barf("COMPACT_NFDATA_DIRTY object (%p) entered!", R1) never returns; } /* ---------------------------------------------------------------------------- - CHARLIKE and INTLIKE closures. + Note [CHARLIKE and INTLIKE closures.] These are static representations of Chars and small Ints, so that we can remove dynamic Chars and Ints during garbage collection and |