• Andreas Klebinger's avatar
    Improve and refactor StgToCmm codegen for DataCons. · 9462452a
    Andreas Klebinger authored
    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.
    9462452a
StgMiscClosures.cmm 37.5 KB