summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorAndreas Klebinger <klebinger.andreas@gmx.at>2020-01-28 20:17:46 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-04-03 06:25:33 -0400
commit9462452a4843a2c42fe055a0a7e274d5164d1dc0 (patch)
tree38c148b865f883a7d29e0bc8cef1660a1dfb5e10 /rts
parentef7576c40f8de391ed8b1c81c38156202e6d17cf (diff)
downloadhaskell-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')
-rw-r--r--rts/StgMiscClosures.cmm2
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