[GHC] #12988: Join points

GHC ghc-devs at haskell.org
Thu Feb 2 08:30:45 UTC 2017


#12988: Join points
-------------------------------------+-------------------------------------
        Reporter:  lukemaurer        |                Owner:  lukemaurer
            Type:  feature request   |               Status:  closed
        Priority:  normal            |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:  fixed             |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D2853
       Wiki Page:  SequentCore       |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 PS: there are a bunch of open tickets, listed on wiki:SequentCore, but the
 main commit is done:
 {{{

 commit 8d5cf8bf584fd4849917c29d82dcf46ee75dd035
 Author: Luke Maurer <maurerl at cs.uoregon.edu>
 Date:   Wed Feb 1 11:56:01 2017 -0500

     Join points

     This major patch implements Join Points, as described in
     https://ghc.haskell.org/trac/ghc/wiki/SequentCore.  You have
     to read that page, and especially the paper it links to, to
     understand what's going on; but it is very cool.

     It's Luke Maurer's work, but done in close collaboration with Simon
 PJ.

     This Phab is a squash-merge of wip/join-points branch of
     https://github.com/lukemaurer/ghc.
     There are many, many interdependent changes.

     Reviewers: goldfire, mpickering, bgamari, simonmar, dfeuer, austin

     Subscribers: simonpj, dfeuer, mpickering, Mikolaj, thomie

     Differential Revision: https://phabricator.haskell.org/D2853


 >---------------------------------------------------------------

 8d5cf8bf584fd4849917c29d82dcf46ee75dd035
  compiler/backpack/RnModIface.hs                    |   4 +-
  compiler/basicTypes/BasicTypes.hs                  | 126 ++-
  compiler/basicTypes/Demand.hs                      |   8 +-
  compiler/basicTypes/Id.hs                          |  62 +-
  compiler/basicTypes/IdInfo.hs                      |  34 +-
  compiler/basicTypes/IdInfo.hs-boot                 |   2 +
  compiler/basicTypes/Var.hs                         |  18 +-
  compiler/basicTypes/VarEnv.hs                      |  10 +-
  compiler/coreSyn/CoreArity.hs                      | 158 +++-
  compiler/coreSyn/CoreArity.hs-boot                 |   6 +
  compiler/coreSyn/CoreLint.hs                       | 337 ++++++--
  compiler/coreSyn/CorePrep.hs                       | 120 ++-
  compiler/coreSyn/CoreStats.hs                      |  44 +-
  compiler/coreSyn/CoreSubst.hs                      |  33 +-
  compiler/coreSyn/CoreSyn.hs                        | 223 ++++-
  compiler/coreSyn/CoreUnfold.hs                     |  47 +-
  compiler/coreSyn/CoreUtils.hs                      |  19 +-
  compiler/coreSyn/MkCore.hs                         |   1 +
  compiler/coreSyn/PprCore.hs                        |  33 +-
  compiler/deSugar/DsUtils.hs                        |  14 +
  compiler/iface/IfaceSyn.hs                         |  36 +-
  compiler/iface/TcIface.hs                          |  13 +-
  compiler/iface/ToIface.hs                          |   5 +
  compiler/simplCore/CSE.hs                          |  16 +-
  compiler/simplCore/CoreMonad.hs                    |   2 +
  compiler/simplCore/FloatIn.hs                      |  79 +-
  compiler/simplCore/FloatOut.hs                     | 261 ++++--
  compiler/simplCore/LiberateCase.hs                 |  24 +-
  compiler/simplCore/OccurAnal.hs                    | 956
 ++++++++++++++++-----
  compiler/simplCore/SetLevels.hs                    | 363 ++++++--
  compiler/simplCore/SimplCore.hs                    |  17 +-
  compiler/simplCore/SimplEnv.hs                     | 204 ++++-
  compiler/simplCore/SimplUtils.hs                   |  29 +-
  compiler/simplCore/Simplify.hs                     | 554 ++++++++----
  compiler/specialise/Rules.hs                       |   6 +-
  compiler/specialise/SpecConstr.hs                  |  23 +-
  compiler/specialise/Specialise.hs                  |  23 +-
  compiler/stgSyn/CoreToStg.hs                       | 286 +++---
  compiler/stranal/DmdAnal.hs                        |  16 +-
  compiler/stranal/WorkWrap.hs                       |  74 +-
  compiler/stranal/WwLib.hs                          |  96 ++-
  compiler/types/Type.hs                             |  66 ++
  compiler/utils/Outputable.hs                       |  13 +
  compiler/utils/UniqFM.hs                           |  10 +
  .../tests/deSugar/should_compile/T2431.stderr      |  29 +-
  testsuite/tests/deriving/perf/all.T                |   4 +-
  .../tests/numeric/should_compile/T7116.stdout      |  21 +-
  testsuite/tests/perf/compiler/all.T                |  18 +-
  testsuite/tests/perf/haddock/all.T                 |   6 +-
  .../should_compile => perf/join_points}/Makefile   |   0
  testsuite/tests/perf/join_points/all.T             |  28 +
  testsuite/tests/perf/join_points/join001.hs        |  16 +
  testsuite/tests/perf/join_points/join002.hs        |  51 ++
  .../tests/perf/join_points/join002.stdout          |   0
  testsuite/tests/perf/join_points/join003.hs        |  69 ++
  .../tests/perf/join_points/join003.stdout          |   0
  testsuite/tests/perf/join_points/join004.hs        |  30 +
  testsuite/tests/perf/join_points/join004.stdout    |   1 +
  testsuite/tests/perf/join_points/join005.hs        |  23 +
  testsuite/tests/perf/join_points/join006.hs        |  22 +
  testsuite/tests/perf/join_points/join007.hs        |  42 +
  testsuite/tests/perf/join_points/join007.stdout    |   1 +
  testsuite/tests/perf/should_run/all.T              |   6 +-
  .../tests/roles/should_compile/Roles13.stderr      |  41 +-
  testsuite/tests/simplCore/should_compile/Makefile  |   3 +-
  testsuite/tests/simplCore/should_compile/T13156.hs |  37 +-
  .../tests/simplCore/should_compile/T13156.stdout   |   4 +-
  .../tests/simplCore/should_compile/T3717.stderr    |  17 +-
  .../tests/simplCore/should_compile/T3772.stdout    |  17 +-
  .../tests/simplCore/should_compile/T4908.stderr    |  19 +-
  .../tests/simplCore/should_compile/T4930.stderr    |  28 +-
  .../tests/simplCore/should_compile/T5658b.stdout   |   2 +-
  .../tests/simplCore/should_compile/T7360.stderr    |  47 +-
  .../tests/simplCore/should_compile/T9400.stderr    |  15 +-
  testsuite/tests/simplCore/should_compile/all.T     |   3 +-
  .../tests/simplCore/should_compile/par01.stderr    |  15 +-
  .../simplCore/should_compile/spec-inline.stderr    |  29 +-
  77 files changed, 3964 insertions(+), 1151 deletions(-)
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12988#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list