[commit: ghc] wip/T12618: Introduce ConApp to Core (dead code as of yet) (e320acb)
git at git.haskell.org
git at git.haskell.org
Thu Sep 29 21:06:34 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/T12618
Link : http://ghc.haskell.org/trac/ghc/changeset/e320acb126d4783561ecbcb347e205a4ebc7e206/ghc
>---------------------------------------------------------------
commit e320acb126d4783561ecbcb347e205a4ebc7e206
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Thu Sep 29 16:56:56 2016 -0400
Introduce ConApp to Core (dead code as of yet)
This is the first step towards #12618: It adds the data constructor and
then fixes all problems due to incomplete patterns, essentially
preparing the complete compiler for the eventual use of this variant.
Because no where a ConApp is created, this should not yet have any
effect.
Care is taken to not take shortcuts via the data con worker id, as
eventually, there will be no data con worker any more.
There are a few unclear spots, marked with "TODO #12618". Input is
appreciated. These are currently:
* CoreLint: Remove a check from the App case that will only be relevant
occurring in the ConApp case later
* Interface files. I need input as to how to properly serialize and
deserialize the reference to the DataCon.
* simplExprF1: This case became very easy. I might have overlooked
something else happening to arguments, as I read and simplified the
code that handled App. Second pairs of eyes welcome.
* ruleCheck: There can be no rules attached to data constructors, can
there?
* scExp: Can a datacon be in scSubstId?
* dmdAnal: How to get the idStrictness equivalent of the worker?
Or is there never something useful to be said about the strictness
signature of an constructor? (Because strictness annotations are
taken care of by the wrapper?
>---------------------------------------------------------------
e320acb126d4783561ecbcb347e205a4ebc7e206
compiler/codeGen/StgCmmEnv.hs | 1 -
compiler/coreSyn/CoreFVs.hs | 14 +++++++
compiler/coreSyn/CoreLint.hs | 11 +++++
compiler/coreSyn/CorePrep.hs | 17 ++++++++
compiler/coreSyn/CoreSeq.hs | 1 +
compiler/coreSyn/CoreStats.hs | 2 +
compiler/coreSyn/CoreSubst.hs | 40 ++++++++++--------
compiler/coreSyn/CoreSyn.hs | 4 ++
compiler/coreSyn/CoreTidy.hs | 15 +++----
compiler/coreSyn/CoreUnfold.hs | 5 +++
compiler/coreSyn/CoreUtils.hs | 1 +
compiler/coreSyn/PprCore.hs | 4 ++
compiler/coreSyn/TrieMap.hs | 68 ++++++++++++++++++++-----------
compiler/iface/IfaceSyn.hs | 46 +++++++++++++--------
compiler/iface/MkIface.hs | 21 +++++-----
compiler/iface/TcIface.hs | 3 ++
compiler/main/TidyPgm.hs | 1 +
compiler/nativeGen/RegAlloc/Graph/Main.hs | 3 ++
compiler/nativeGen/RegAlloc/Liveness.hs | 10 ++---
compiler/simplCore/CSE.hs | 1 +
compiler/simplCore/CallArity.hs | 26 +++++++++---
compiler/simplCore/FloatIn.hs | 19 +++++++++
compiler/simplCore/FloatOut.hs | 8 ++++
compiler/simplCore/LiberateCase.hs | 1 +
compiler/simplCore/OccurAnal.hs | 7 ++++
compiler/simplCore/SAT.hs | 12 ++++++
compiler/simplCore/SetLevels.hs | 6 ++-
compiler/simplCore/SimplUtils.hs | 1 +
compiler/simplCore/Simplify.hs | 4 ++
compiler/specialise/Rules.hs | 2 +
compiler/specialise/SpecConstr.hs | 4 ++
compiler/specialise/Specialise.hs | 3 ++
compiler/stranal/DmdAnal.hs | 25 ++++++++++++
compiler/stranal/WorkWrap.hs | 3 ++
compiler/vectorise/Vectorise/Exp.hs | 13 ++++++
35 files changed, 312 insertions(+), 90 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 e320acb126d4783561ecbcb347e205a4ebc7e206
More information about the ghc-commits
mailing list