JS: support levity-polymorphic datatypes (#22360,#22291)
- thread knowledge about levity into PrimRep instead of panicking - JS: remove assumption that unlifted heap objects are rts objects (TVar#, etc.) Doing this also fixes #22291 (test added). There is a small performance hit (~1% more allocations). Metric Increase: T18698a T18698b (cherry picked from commit 8d6574bc)
Showing
- compiler/GHC/Builtin/Types.hs 5 additions, 4 deletionscompiler/GHC/Builtin/Types.hs
- compiler/GHC/Cmm/Utils.hs 2 additions, 4 deletionscompiler/GHC/Cmm/Utils.hs
- compiler/GHC/Core/TyCon.hs 43 additions, 41 deletionscompiler/GHC/Core/TyCon.hs
- compiler/GHC/Stg/Syntax.hs 3 additions, 4 deletionscompiler/GHC/Stg/Syntax.hs
- compiler/GHC/StgToByteCode.hs 3 additions, 5 deletionscompiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/ArgRep.hs 1 addition, 2 deletionscompiler/GHC/StgToCmm/ArgRep.hs
- compiler/GHC/StgToCmm/Lit.hs 1 addition, 2 deletionscompiler/GHC/StgToCmm/Lit.hs
- compiler/GHC/StgToJS/Apply.hs 2 additions, 1 deletioncompiler/GHC/StgToJS/Apply.hs
- compiler/GHC/StgToJS/Expr.hs 0 additions, 1 deletioncompiler/GHC/StgToJS/Expr.hs
- compiler/GHC/StgToJS/Rts/Rts.hs 0 additions, 1 deletioncompiler/GHC/StgToJS/Rts/Rts.hs
- compiler/GHC/StgToJS/Types.hs 2 additions, 2 deletionscompiler/GHC/StgToJS/Types.hs
- compiler/GHC/StgToJS/Utils.hs 13 additions, 26 deletionscompiler/GHC/StgToJS/Utils.hs
- compiler/GHC/Types/Basic.hs 10 additions, 1 deletioncompiler/GHC/Types/Basic.hs
- compiler/GHC/Types/RepType.hs 11 additions, 7 deletionscompiler/GHC/Types/RepType.hs
- rts/js/rts.js 1 addition, 5 deletionsrts/js/rts.js
- rts/js/verify.js 1 addition, 1 deletionrts/js/verify.js
- testsuite/tests/primops/should_run/all.T 1 addition, 1 deletiontestsuite/tests/primops/should_run/all.T
- testsuite/tests/rep-poly/T22291.hs 13 additions, 0 deletionstestsuite/tests/rep-poly/T22291.hs
- testsuite/tests/rep-poly/T22291b.hs 8 additions, 0 deletionstestsuite/tests/rep-poly/T22291b.hs
- testsuite/tests/rep-poly/all.T 7 additions, 5 deletionstestsuite/tests/rep-poly/all.T
Loading
Please register or sign in to comment