| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
Update submodule: haddock
|
| | |
|
| |
|
|
| |
Update haddock submodule
|
| | |
|
| | |
|
| |
|
|
|
| |
This moves all URL references to Trac tickets to their corresponding
GitLab counterparts.
|
| |
|
|
|
| |
This refactoring was provoked by our conversation on
Trac #14152. No change in behaviour.
|
| | |
|
| |
|
|
|
|
| |
No change in behaviour here, just some modest
refactoring as I tried to understand the code
better.
|
| |
|
|
|
|
|
| |
because `captured :: [Var]` is always in dependency order.
I added a comment in the crucial point so that this does not trip us up
again.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
as helpfully outlined by SPJ.
This commit copies a small bit code from `SetLevels` which could
reasonably be put in `Id` as `zapAllIdinfo`; I did not do this to make
merging this commmit into `ghc-8.4` easier.
If this commit gets merged, then presumably after commit
3f59d3802170f495702674b4f8e4e80247803654 (test case) and
ae0cff0a1834d8b041b06d0e1ab6ce969aac44c8 (other fixes to Exitify.hs).
Differential Revision: https://phabricator.haskell.org/D4582
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
based on a thorough review by Simon in comments
https://ghc.haskell.org/trac/ghc/ticket/14152#comment:33
through 37.
The changes are:
* `isExitJoinId` is moved to `SimplUtils`, because
it is only valid when occurrence information is up-to-date.
* Abstracted variables are properly sorted using `sortQuantVars`
* Exitification does not set occ info.
And then minor quibles to notes and avoiding some unhelpful shadowing
of local names.
Differential Revision: https://phabricator.haskell.org/D4576
|
| | |
|
|
|
The idea is described in #14152, and can be summarized: Float the exit
path out of a joinrec, so that the simplifier can do more with it.
See the test case for a nice example.
The floating goes against what the simplifier usually does, hence we
need to be careful not inline them back.
The position of exitification in the pipeline was chosen after a small
amount of experimentation, but may need to be improved. For example,
exitification can allow rewrite rules to fire, but for that it would
have to happen before the `simpl_phases`.
Perf.haskell.org reports these nice performance wins:
Nofib allocations
fannkuch-redux 78446640 - 99.92% 64560
k-nucleotide 109466384 - 91.32% 9502040
simple 72424696 - 5.96% 68109560
Nofib instruction counts
fannkuch-redux 1744331636 - 3.86% 1676999519
k-nucleotide 2318221965 - 6.30% 2172067260
scs 1978470869 - 3.35% 1912263779
simple 669858104 - 3.38% 647206739
spectral-norm 186423292 - 5.37% 176411536
Differential Revision: https://phabricator.haskell.org/D3903
|