Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#12988 closed feature request (fixed)

Join points

Reported by: lukemaurer Owned by: lukemaurer
Priority: normal Milestone: 8.2.1
Component: Compiler Version: 8.0.1
Keywords: JoinPoints Cc:
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

Description

Master ticket for the wip/join-points branch. For details, see SequentCore.

Change History (4)

comment:1 Changed 2 years ago by lukemaurer

Keywords: JoinPoints added
Status: newpatch

comment:2 Changed 2 years ago by trommler

Differential Rev(s): D2853Phab:D2853

Fix Phabricator link.

comment:3 Changed 2 years ago by dfeuer

Resolution: fixed
Status: patchclosed

Luke Maurer completed this in 8d5cf8bf584fd4849917c29d82dcf46ee75dd035.

comment:4 Changed 2 years ago 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@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(-)
Note: See TracTickets for help on using tickets.