Commits on Source (6)
-
Considering that the parser used to create a Bag of binds using a cons-based approach, it can be also done using lists. The operations in the compiler don't really require Bag. By using lists, there is no dependency on GHC.Data.Bag anymore from the AST. Progress towards #21592
1f6b54e0 -
This MR tackles #24623 and #23113 The main change is to give a clearer notion of "worker/wrapper arity", esp for join points. See GHC.Core.Opt.DmdAnal Note [Worker/wrapper arity and join points] This Note is a good summary of what this MR does: (1) The "worker/wrapper arity" of an Id is * For non-join-points: idArity * The join points: the join arity (Id part only of course) This is the number of args we will use in worker/wrapper. See `ww_arity` in `dmdAnalRhsSig`, and the function `workWrapArity`. (2) A join point's demand-signature arity may exceed the Id's worker/wrapper arity. See the `arity_ok` assertion in `mkWwBodies`. (3) In `finaliseArgBoxities`, do trimBoxity on any argument demands beyond the worker/wrapper arity. (4) In WorkWrap.splitFun, make sure we split based on the worker/wrapper arity (re)-computed by workWrapArity.
ebd1d165 -
51ba766c
-
Don't support parsing bswap8, since bswap8 is not really an operation and would have to be implemented as a no-op (and currently is not implemented at all). Fixes #25002
fd924003
Showing
- compiler/GHC/Cmm/Parser.y 5 additions, 2 deletionscompiler/GHC/Cmm/Parser.y
- compiler/GHC/Core/DataCon.hs 1 addition, 1 deletioncompiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/Opt/DmdAnal.hs 156 additions, 81 deletionscompiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/WorkWrap.hs 6 additions, 4 deletionscompiler/GHC/Core/Opt/WorkWrap.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs 15 additions, 3 deletionscompiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Hs/Binds.hs 8 additions, 9 deletionscompiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Decls.hs 4 additions, 5 deletionscompiler/GHC/Hs/Decls.hs
- compiler/GHC/Hs/Extension.hs 9 additions, 5 deletionscompiler/GHC/Hs/Extension.hs
- compiler/GHC/Hs/ImpExp.hs 7 additions, 8 deletionscompiler/GHC/Hs/ImpExp.hs
- compiler/GHC/Hs/Pat.hs 1 addition, 1 deletioncompiler/GHC/Hs/Pat.hs
- compiler/GHC/Hs/Stats.hs 2 additions, 3 deletionscompiler/GHC/Hs/Stats.hs
- compiler/GHC/Hs/Utils.hs 7 additions, 8 deletionscompiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore/Binds.hs 9 additions, 9 deletionscompiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Docs.hs 2 additions, 3 deletionscompiler/GHC/HsToCore/Docs.hs
- compiler/GHC/HsToCore/Expr.hs 5 additions, 6 deletionscompiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs 2 additions, 3 deletionscompiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Quote.hs 2 additions, 3 deletionscompiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs 1 addition, 2 deletionscompiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/Iface/Ext/Ast.hs 4 additions, 4 deletionscompiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Parser/Lexer.x 1 addition, 1 deletioncompiler/GHC/Parser/Lexer.x