Mark DataCon wrappers CONLIKE
Now that DataCon wrappers don’t inline until phase 0 (see commit b78cc64e), it’s important that case-of-known-constructor and RULE matching be able to see saturated applications of DataCon wrappers in unfoldings. Making them conlike is a natural way to do it, since they are, in fact, precisely the sort of thing the CONLIKE pragma exists to solve. Fixes #18012. This also bumps the version of the parsec submodule to incorporate a patch that avoids a metric increase on the haddock perf tests. The increase was not really a flaw in this patch, as parsec was implicitly relying on inlining heuristics. The patch to parsec just adds some INLINABLE pragmas, and we get a nice performance bump out of it (well beyond the performance we lost from this patch). Metric Decrease: T12234 WWRec haddock.Cabal haddock.base haddock.compiler
Showing
- compiler/GHC/Core/SimpleOpt.hs 60 additions, 1 deletioncompiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/Utils.hs 8 additions, 9 deletionscompiler/GHC/Core/Utils.hs
- compiler/GHC/Types/Id.hs 1 addition, 1 deletioncompiler/GHC/Types/Id.hs
- compiler/GHC/Types/Id/Make.hs 42 additions, 3 deletionscompiler/GHC/Types/Id/Make.hs
- libraries/parsec 1 addition, 1 deletionlibraries/parsec
- testsuite/tests/deSugar/should_compile/T2431.stderr 4 additions, 1 deletiontestsuite/tests/deSugar/should_compile/T2431.stderr
- testsuite/tests/simplCore/should_compile/T18013.stderr 2 additions, 2 deletionstestsuite/tests/simplCore/should_compile/T18013.stderr
- testsuite/tests/simplCore/should_compile/T7360.stderr 1 addition, 1 deletiontestsuite/tests/simplCore/should_compile/T7360.stderr
- testsuite/tests/simplCore/should_run/T18012.hs 41 additions, 0 deletionstestsuite/tests/simplCore/should_run/T18012.hs
- testsuite/tests/simplCore/should_run/T18012.stdout 1 addition, 0 deletionstestsuite/tests/simplCore/should_run/T18012.stdout
- testsuite/tests/simplCore/should_run/all.T 1 addition, 0 deletionstestsuite/tests/simplCore/should_run/all.T
- testsuite/tests/stranal/should_compile/T16029.stdout 1 addition, 1 deletiontestsuite/tests/stranal/should_compile/T16029.stdout
Loading
Please register or sign in to comment