[commit: ghc] master: Hoopl: remove dependency on Hoopl package (42eee6e)

git at git.haskell.org git at git.haskell.org
Fri Jun 23 17:08:09 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/42eee6eac3d4bf4b2b557cdc13f2d5acae93d4e8/ghc

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

commit 42eee6eac3d4bf4b2b557cdc13f2d5acae93d4e8
Author: Michal Terepeta <michal.terepeta at gmail.com>
Date:   Fri Jun 23 11:41:50 2017 -0400

    Hoopl: remove dependency on Hoopl package
    
    This copies the subset of Hoopl's functionality needed by GHC to
    `cmm/Hoopl` and removes the dependency on the Hoopl package.
    
    The main motivation for this change is the confusing/noisy interface
    between GHC and Hoopl:
    - Hoopl has `Label` which is GHC's `BlockId` but different than
      GHC's `CLabel`
    - Hoopl has `Unique` which is different than GHC's `Unique`
    - Hoopl has `Unique{Map,Set}` which are different than GHC's
      `Uniq{FM,Set}`
    - GHC has its own specialized copy of `Dataflow`, so `cmm/Hoopl` is
      needed just to filter the exposed functions (filter out some of the
      Hoopl's and add the GHC ones)
    With this change, we'll be able to simplify this significantly.
    It'll also be much easier to do invasive changes (Hoopl is a public
    package on Hackage with users that depend on the current behavior)
    
    This should introduce no changes in functionality - it merely
    copies the relevant code.
    
    Signed-off-by: Michal Terepeta <michal.terepeta at gmail.com>
    
    Test Plan: ./validate
    
    Reviewers: austin, bgamari, simonmar
    
    Reviewed By: bgamari, simonmar
    
    Subscribers: simonpj, kavon, rwbarton, thomie
    
    Differential Revision: https://phabricator.haskell.org/D3616


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

42eee6eac3d4bf4b2b557cdc13f2d5acae93d4e8
 compiler/cmm/BlockId.hs                            |  13 +-
 compiler/cmm/Cmm.hs                                |   5 +-
 compiler/cmm/CmmBuildInfoTables.hs                 |   6 +-
 compiler/cmm/CmmCommonBlockElim.hs                 |   5 +-
 compiler/cmm/CmmContFlowOpt.hs                     |   5 +-
 compiler/cmm/CmmImplementSwitchPlans.hs            |   2 +-
 compiler/cmm/CmmInfo.hs                            |   2 +-
 compiler/cmm/CmmLayoutStack.hs                     |   6 +-
 compiler/cmm/CmmLint.hs                            |   5 +-
 compiler/cmm/CmmLive.hs                            |   5 +-
 compiler/cmm/CmmNode.hs                            |   4 +-
 compiler/cmm/CmmPipeline.hs                        |   2 +-
 compiler/cmm/CmmProcPoint.hs                       |   6 +-
 compiler/cmm/CmmSink.hs                            |   5 +-
 compiler/cmm/CmmSwitch.hs                          |   2 +-
 compiler/cmm/CmmUtils.hs                           |   5 +-
 compiler/cmm/Debug.hs                              |   5 +-
 compiler/cmm/Hoopl.hs                              |  29 --
 compiler/cmm/Hoopl/Block.hs                        | 327 +++++++++++++++++++++
 compiler/cmm/Hoopl/Collections.hs                  |  87 ++++++
 compiler/cmm/Hoopl/Dataflow.hs                     |  12 +-
 compiler/cmm/Hoopl/Graph.hs                        | 199 +++++++++++++
 compiler/cmm/Hoopl/Label.hs                        | 122 ++++++++
 compiler/cmm/Hoopl/Unique.hs                       |  91 ++++++
 compiler/cmm/MkGraph.hs                            |   4 +-
 compiler/cmm/PprC.hs                               |   4 +-
 compiler/cmm/PprCmm.hs                             |   3 +-
 compiler/codeGen/CgUtils.hs                        |   3 +-
 compiler/codeGen/StgCmmHeap.hs                     |   2 +-
 compiler/codeGen/StgCmmMonad.hs                    |   2 +-
 compiler/ghc.cabal.in                              |   9 +-
 compiler/llvmGen/LlvmCodeGen.hs                    |   3 +-
 compiler/llvmGen/LlvmCodeGen/CodeGen.hs            |   4 +-
 compiler/nativeGen/AsmCodeGen.hs                   |   4 +-
 compiler/nativeGen/Dwarf.hs                        |   3 +-
 compiler/nativeGen/Instruction.hs                  |   3 +-
 compiler/nativeGen/NCGMonad.hs                     |   5 +-
 compiler/nativeGen/PIC.hs                          |   2 +-
 compiler/nativeGen/PPC/CodeGen.hs                  |   3 +-
 compiler/nativeGen/PPC/Instr.hs                    |   3 +-
 compiler/nativeGen/PPC/Ppr.hs                      |   3 +-
 compiler/nativeGen/RegAlloc/Graph/Spill.hs         |   2 +-
 compiler/nativeGen/RegAlloc/Graph/SpillClean.hs    |   2 +-
 compiler/nativeGen/RegAlloc/Graph/SpillCost.hs     |   2 +-
 .../nativeGen/RegAlloc/Linear/JoinToTargets.hs     |   2 +-
 compiler/nativeGen/RegAlloc/Linear/Main.hs         |   2 +-
 compiler/nativeGen/RegAlloc/Liveness.hs            |   3 +-
 compiler/nativeGen/SPARC/CodeGen.hs                |   3 +-
 compiler/nativeGen/SPARC/Ppr.hs                    |   3 +-
 compiler/nativeGen/X86/CodeGen.hs                  |   3 +-
 compiler/nativeGen/X86/Instr.hs                    |   3 +-
 compiler/nativeGen/X86/Ppr.hs                      |   3 +-
 ghc.mk                                             |   3 +-
 libraries/hoopl                                    |   1 -
 packages                                           |   1 -
 55 files changed, 948 insertions(+), 95 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 42eee6eac3d4bf4b2b557cdc13f2d5acae93d4e8


More information about the ghc-commits mailing list