Don't eta-expand unsaturated primops
Previously, as described in Note [Primop wrappers], `hasNoBinding` would return False in the case of `PrimOpId`s. This would result in eta expansion of unsaturated primop applications during CorePrep. Not only did this expansion result in unnecessary allocations, but it also meant lead to rather nasty inconsistencies between the CAFfy-ness determinations made by TidyPgm and CorePrep. This fixes #16846.
Showing
- compiler/basicTypes/Id.hs 9 additions, 14 deletionscompiler/basicTypes/Id.hs
- compiler/basicTypes/Unique.hs 5 additions, 2 deletionscompiler/basicTypes/Unique.hs
- compiler/coreSyn/CorePrep.hs 16 additions, 3 deletionscompiler/coreSyn/CorePrep.hs
- compiler/main/TidyPgm.hs 42 additions, 1 deletioncompiler/main/TidyPgm.hs
- compiler/prelude/PrelInfo.hs 1 addition, 0 deletionscompiler/prelude/PrelInfo.hs
- compiler/prelude/PrelNames.hs 3 additions, 1 deletioncompiler/prelude/PrelNames.hs
- compiler/prelude/PrimOp.hs 48 additions, 2 deletionscompiler/prelude/PrimOp.hs
- compiler/stgSyn/CoreToStg.hs 7 additions, 3 deletionscompiler/stgSyn/CoreToStg.hs
- testsuite/tests/codeGen/should_fail/T13233.hs 3 additions, 0 deletionstestsuite/tests/codeGen/should_fail/T13233.hs
- testsuite/tests/codeGen/should_fail/T13233.stderr 0 additions, 9 deletionstestsuite/tests/codeGen/should_fail/T13233.stderr
Loading
Please register or sign in to comment