[Git][ghc/ghc][wip/21611-move-corem] 71 commits: Recognize file-header pragmas in GHCi (#21507)

Dominik Peteler (@mmhat) gitlab at gitlab.haskell.org
Tue Aug 30 10:59:20 UTC 2022



Dominik Peteler pushed to branch wip/21611-move-corem at Glasgow Haskell Compiler / GHC


Commits:
9939e95f by MorrowM at 2022-08-21T16:51:38-04:00
Recognize file-header pragmas in GHCi (#21507)

- - - - -
fb7c2d99 by Matthew Pickering at 2022-08-21T16:52:13-04:00
hadrian: Fix bootstrapping with ghc-9.4

The error was that we were trying to link together

    containers from boot package library (which depends template-haskell in boot package library)
    template-haskell from in-tree package database

So the fix is to build containers in stage0 (and link against template-haskell built in stage0).

Fixes #21981

- - - - -
b946232c by Mario Blažević at 2022-08-22T22:06:21-04:00
Added pprType with precedence argument, as a prerequisite to fix issues #21723 and #21942.

* refines the precedence levels, adding `qualPrec` and `funPrec` to better control parenthesization
* `pprParendType`, `pprFunArgType`, and `instance Ppr Type` all just call `pprType` with proper precedence
* `ParensT` constructor is now always printed parenthesized
* adds the precedence argument to `pprTyApp` as well, as it needs to keep track and pass it down
* using `>=` instead of former `>` to match the Core type printing logic
* some test outputs have changed, losing extraneous parentheses

- - - - -
fe4ff0f7 by Mario Blažević at 2022-08-22T22:06:21-04:00
Fix and test for issue #21723

- - - - -
33968354 by Mario Blažević at 2022-08-22T22:06:21-04:00
Test for issue #21942

- - - - -
c9655251 by Mario Blažević at 2022-08-22T22:06:21-04:00
Updated the changelog

- - - - -
80102356 by Ben Gamari at 2022-08-22T22:06:57-04:00
hadrian: Don't duplicate binaries on installation

Previously we used `install` on symbolic links, which ended up
copying the target file rather than installing a symbolic link.

Fixes #22062.

- - - - -
b929063e by M Farkas-Dyck at 2022-08-24T02:37:01-04:00
Unbreak Haddock comments in `GHC.Core.Opt.WorkWrap.Utils`.

Closes #22092.

- - - - -
112e4f9c by Cheng Shao at 2022-08-24T02:37:38-04:00
driver: don't actually merge objects when ar -L works

- - - - -
a9f0e68e by Ben Gamari at 2022-08-24T02:38:13-04:00
rts: Consistently use MiB in stats output

Previously we would say `MB` even where we
meant `MiB`.
- - - - -
a90298cc by Simon Peyton Jones at 2022-08-25T08:38:16+01:00
Fix arityType: -fpedantic-bottoms, join points, etc

This MR fixes #21694, #21755.  It also makes sure that #21948 and
fix to #21694.

* For #21694 the underlying problem was that we were calling arityType
  on an expression that had free join points.  This is a Bad Bad Idea.
  See Note [No free join points in arityType].

* To make "no free join points in arityType" work out I had to avoid
  trying to use eta-expansion for runRW#. This entailed a few changes
  in the Simplifier's treatment of runRW#.  See
  GHC.Core.Opt.Simplify.Iteration Note [No eta-expansion in runRW#]

* I also made andArityType work correctly with -fpedantic-bottoms;
  see Note [Combining case branches: andWithTail].

* Rewrote Note [Combining case branches: optimistic one-shot-ness]

* arityType previously treated join points differently to other
  let-bindings. This patch makes them unform; arityType analyses
  the RHS of all bindings to get its ArityType, and extends am_sigs.

  I realised that, now we have am_sigs giving the ArityType for
  let-bound Ids, we don't need the (pre-dating) special code in
  arityType for join points. But instead we need to extend the env for
  Rec bindings, which weren't doing before.  More uniform now.  See
  Note [arityType for let-bindings].

  This meant we could get rid of ae_joins, and in fact get rid of
  EtaExpandArity altogether.  Simpler.

* And finally, it was the strange treatment of join-point Ids in
  arityType (involving a fake ABot type) that led to a serious bug:
  #21755.  Fixed by this refactoring, which treats them uniformly;
  but without breaking #18328.

  In fact, the arity for recursive join bindings is pretty tricky;
  see the long Note [Arity for recursive join bindings]
  in GHC.Core.Opt.Simplify.Utils.  That led to more refactoring,
  including deciding that an Id could have an Arity that is bigger
  than its JoinArity; see Note [Invariants on join points], item
  2(b) in GHC.Core

* Make sure that the "demand threshold" for join points in DmdAnal
  is no bigger than the join-arity.  In GHC.Core.Opt.DmdAnal see
  Note [Demand signatures are computed for a threshold arity based on idArity]

* I moved GHC.Core.Utils.exprIsDeadEnd into GHC.Core.Opt.Arity,
  where it more properly belongs.

* Remove an old, redundant hack in FloatOut.  The old Note was
  Note [Bottoming floats: eta expansion] in GHC.Core.Opt.SetLevels.

Compile time improves very slightly on average:

Metrics: compile_time/bytes allocated
---------------------------------------------------------------------------------------
  T18223(normal) ghc/alloc    725,808,720    747,839,216  +3.0%  BAD
  T6048(optasm)  ghc/alloc    105,006,104    101,599,472  -3.2% GOOD
  geo. mean                                          -0.2%
  minimum                                            -3.2%
  maximum                                            +3.0%

For some reason Windows was better

   T10421(normal) ghc/alloc    125,888,360    124,129,168  -1.4% GOOD
   T18140(normal) ghc/alloc     85,974,520     83,884,224  -2.4% GOOD
  T18698b(normal) ghc/alloc    236,764,568    234,077,288  -1.1% GOOD
   T18923(normal) ghc/alloc     75,660,528     73,994,512  -2.2% GOOD
    T6048(optasm) ghc/alloc    112,232,512    108,182,520  -3.6% GOOD
  geo. mean                                          -0.6%

I had a quick look at T18223 but it is knee deep in coercions and
the size of everything looks similar before and after.  I decided
to accept that 3% increase in exchange for goodness elsewhere.

Metric Decrease:
    T10421
    T18140
    T18698b
    T18923
    T6048

Metric Increase:
    T18223

- - - - -
909edcfc by Ben Gamari at 2022-08-25T10:03:34-04:00
upload_ghc_libs: Add means of passing Hackage credentials

- - - - -
28402eed by M Farkas-Dyck at 2022-08-25T10:04:17-04:00
Scrub some partiality in `CommonBlockElim`.

- - - - -
54affbfa by Ben Gamari at 2022-08-25T20:05:31-04:00
hadrian: Fix whitespace

Previously this region of Settings.Packages was incorrectly indented.

- - - - -
c4bba0f0 by Ben Gamari at 2022-08-25T20:05:31-04:00
validate: Drop --legacy flag

In preparation for removal of the legacy `make`-based build system.

- - - - -
822b0302 by Ben Gamari at 2022-08-25T20:05:31-04:00
gitlab-ci: Drop make build validation jobs

In preparation for removal of the `make`-based build system

- - - - -
6fd9b0a1 by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop make build system

Here we at long last remove the `make`-based build system, it having
been replaced with the Shake-based Hadrian build system. Users are
encouraged to refer to the documentation in `hadrian/doc` and this [1]
blog post for details on using Hadrian.

Closes #17527.

[1] https://www.haskell.org/ghc/blog/20220805-make-to-hadrian.html

- - - - -
dbb004b0 by Ben Gamari at 2022-08-25T20:05:31-04:00
Remove testsuite/tests/perf/haddock/.gitignore

As noted in #16802, this is no longer needed.

Closes #16802.

- - - - -
fe9d824d by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop hc-build script

This has not worked for many, many years and relied on the now-removed
`make`-based build system.

- - - - -
659502bc by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop mkdirhier

This is only used by nofib's dead `dist` target

- - - - -
4a426924 by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop mk/{build,install,config}.mk.in

- - - - -
46924b75 by Ben Gamari at 2022-08-25T20:05:31-04:00
compiler: Drop comment references to make

- - - - -
d387f687 by Harry Garrood at 2022-08-25T20:06:10-04:00
Add inits1 and tails1 to Data.List.NonEmpty

See https://github.com/haskell/core-libraries-committee/issues/67

- - - - -
8603c921 by Harry Garrood at 2022-08-25T20:06:10-04:00
Add since annotations and changelog entries

- - - - -
6b47aa1c by Krzysztof Gogolewski at 2022-08-25T20:06:46-04:00
Fix redundant import

This fixes a build error on x86_64-linux-alpine3_12-validate.
See the function 'loadExternalPlugins' defined in this file.

- - - - -
4786acf7 by sheaf at 2022-08-26T15:05:23-04:00
Pmc: consider any 2 dicts of the same type equal

This patch massages the keys used in the `TmOracle` `CoreMap` to ensure
that dictionaries of coherent classes give the same key.
That is, whenever we have an expression we want to insert or lookup in
the `TmOracle` `CoreMap`, we first replace any dictionary
`$dict_abcd :: ct` with a value of the form `error @ct`.

This allows us to common-up view pattern functions with required
constraints whose arguments differed only in the uniques of the
dictionaries they were provided, thus fixing #21662.

This is a rather ad-hoc change to the keys used in the
`TmOracle` `CoreMap`. In the long run, we would probably want to use
a different representation for the keys instead of simply using
`CoreExpr` as-is. This more ambitious plan is outlined in #19272.

Fixes #21662
Updates unix submodule

- - - - -
f5e0f086 by Krzysztof Gogolewski at 2022-08-26T15:06:01-04:00
Remove label style from printing context

Previously, the SDocContext used for code generation contained
information whether the labels should use Asm or C style.
However, at every individual call site, this is known statically.
This removes the parameter to 'PprCode' and replaces every 'pdoc'
used to print a label in code style with 'pprCLabel' or 'pprAsmLabel'.
The OutputableP instance is now used only for dumps.

The output of T15155 changes, it now uses the Asm style
(which is faithful to what actually happens).

- - - - -
1007829b by Cheng Shao at 2022-08-26T15:06:40-04:00
boot: cleanup legacy args

Cleanup legacy boot script args, following removal of the legacy make
build system.

- - - - -
95fe09da by Simon Peyton Jones at 2022-08-27T00:29:02-04:00
Improve SpecConstr for evals

As #21763 showed, we were over-specialising in some cases, when
the function involved was doing a simple 'eval', but not taking
the value apart, or branching on it.

This MR fixes the problem.  See Note [Do not specialise evals].

Nofib barely budges, except that spectral/cichelli allocates about
3% less.

Compiler bytes-allocated improves a bit
   geo. mean                                          -0.1%
   minimum                                            -0.5%
   maximum                                            +0.0%

The -0.5% is on T11303b, for what it's worth.

- - - - -
565a8ec8 by Matthew Pickering at 2022-08-27T00:29:39-04:00
Revert "Revert "Refactor SpecConstr to use treat bindings uniformly""

This reverts commit 851d8dd89a7955864b66a3da8b25f1dd88a503f8.

This commit was originally reverted due to an increase in space usage.
This was diagnosed as because the SCE increased in size and that was
being retained by another leak. See #22102

- - - - -
82ce1654 by Matthew Pickering at 2022-08-27T00:29:39-04:00
Avoid retaining bindings via ModGuts held on the stack

It's better to overwrite the bindings fields of the ModGuts before
starting an iteration as then all the old bindings can be collected as
soon as the simplifier has processed them. Otherwise we end up with the
old bindings being alive until right at the end of the simplifier pass
as the mg_binds field is only modified right at the end.

- - - - -
64779dcd by Matthew Pickering at 2022-08-27T00:29:39-04:00
Force imposs_deflt_cons in filterAlts

This fixes a pretty serious space leak as the forced thunk would retain
`Alt b` values which would then contain reference to a lot of old
bindings and other simplifier gunk.

The OtherCon unfolding was not forced on subsequent simplifier runs so
more and more old stuff would be retained until the end of
simplification.

Fixing this has a drastic effect on maximum residency for the mmark
package which goes from

```
  45,005,401,056 bytes allocated in the heap
  17,227,721,856 bytes copied during GC
     818,281,720 bytes maximum residency (33 sample(s))
       9,659,144 bytes maximum slop
            2245 MiB total memory in use (0 MB lost due to fragmentation)
```

to

```
  45,039,453,304 bytes allocated in the heap
  13,128,181,400 bytes copied during GC
     331,546,608 bytes maximum residency (40 sample(s))
       7,471,120 bytes maximum slop
             916 MiB total memory in use (0 MB lost due to fragmentation)
```

See #21993 for some more discussion.

- - - - -
a3b23a33 by Matthew Pickering at 2022-08-27T00:29:39-04:00
Use Solo to avoid retaining the SCE but to avoid performing the substitution

The use of Solo here allows us to force the selection into the SCE to obtain
the Subst but without forcing the substitution to be applied. The resulting thunk
is placed into a lazy field which is rarely forced, so forcing it regresses
peformance.

- - - - -
161a6f1f by Simon Peyton Jones at 2022-08-27T00:30:14-04:00
Fix a nasty loop in Tidy

As the remarkably-simple #22112 showed, we were making a black hole
in the unfolding of a self-recursive binding.  Boo!

It's a bit tricky.  Documented in GHC.Iface.Tidy,
   Note [tidyTopUnfolding: avoiding black holes]

- - - - -
68e6786f by Giles Anderson at 2022-08-29T00:01:35+02:00
Use TcRnDiagnostic in GHC.Tc.TyCl.Class (#20117)

The following `TcRnDiagnostic` messages have been introduced:

TcRnIllegalHsigDefaultMethods
TcRnBadGenericMethod
TcRnWarningMinimalDefIncomplete
TcRnDefaultMethodForPragmaLacksBinding
TcRnIgnoreSpecialisePragmaOnDefMethod
TcRnBadMethodErr
TcRnNoExplicitAssocTypeOrDefaultDeclaration

- - - - -
cbe51ac5 by Simon Peyton Jones at 2022-08-29T04:18:57-04:00
Fix a bug in anyInRnEnvR

This bug was a subtle error in anyInRnEnvR, introduced by

    commit d4d3fe6e02c0eb2117dbbc9df72ae394edf50f06
    Author: Andreas Klebinger <klebinger.andreas at gmx.at>
    Date:   Sat Jul 9 01:19:52 2022 +0200

    Rule matching: Don't compute the FVs if we don't look at them.

The net result was #22028, where a rewrite rule would wrongly
match on a lambda.

The fix to that function is easy.

- - - - -
0940934e by Dominik Peteler at 2022-08-30T00:40:39+02:00
Move CoreM to GHC.Plugins.Monad

Removes the uses of CoreM in the Specialise, SpecConstr and CallerCC
pass. Since CoreM is now only used by Core2core plugins within the Core
pipeline the monad got moved to an own module.

Additionally CoreToDo and related types got moved to an own module
GHC.Core.Opt.Pipeline.Types.

Moved the remaining code from GHC.Core.Opt.Monad to GHC.Core.Opt.Utils.

GHC.Core.Opt.{SpecConstr,CallerCC} got proper configs / the usual treatment.

Split out GHC.Core.Opt.CallerCC.Filter to avoid hs-boot.

Removed explicit PrintUnqualified argument from `endPassIO`

Removed `CoreToDo` from GHC.Core.Lint and GHC.CoreToStg.Prep

Fixes #21611.

- - - - -
e2f8c741 by Dominik Peteler at 2022-08-30T00:51:51+02:00
Removed CoreM uses from GHC.Core.Lint

- - - - -
ae1e7267 by Dominik Peteler at 2022-08-30T00:51:59+02:00
Purified GHC.Core.LateCC.addLateCostCentres

 * GHC.Driver.Config.Core.Lint:
    * Removed: endPass
    * Renamed: endPassHscEnvIO -> endPass
 * Moved GHC.Core.Opt.Pipeline.initLintAnnotationsConfig to
   GHC.Driver.Config.Core.Lint

- - - - -
f5086867 by Dominik Peteler at 2022-08-30T00:58:20+02:00
Run the CoreToDo interpreter in an own monad `SimplCountM`

This monad is just `StateT SimplCount IO` wrapped in a newtype.
This way we get rid of some `Core.Opt.Pipeline` boilerplate.

It lives in GHC.Core.Opt.Counting and `Tick` and `SimplCount` got moved
there as well.

Also:
 * GHC.Core.Opt.Pipeline.runCorePasses: Take logger service as an
   argument

- - - - -
e3b0bf46 by Dominik Peteler at 2022-08-30T00:58:22+02:00
Removed references to driver from Specialise pass

- - - - -
1c2aaca5 by Dominik Peteler at 2022-08-30T00:58:23+02:00
Split `Core.EndPass` from `Core.Lint`

This better sepates concerns (linting is domain layer, end pass
diagnostics is application later), and `Core.Lint` is a huge module to
boot.

- - - - -
73596153 by Dominik Peteler at 2022-08-30T00:58:23+02:00
Get rid of `CoreDesugar`, `CoreDesugarOpt`, `CoreTidy`, `CorePrep`

Those are not Core -> Core passes and so they don't belong in that sum type.

Also cleaned up a bit:

 * Removed 'GHC.Driver.Config.Core.Lint.lintCoreBindings'
   It was dead code.

 * Removed 'GHC.Driver.Config.Core.Lint.lintPassResult'
   It run the actual linting and therefore it didn't belong to the
   GHC.Driver.Config namespace. As it was used only once the definition
   got inlined.

 * GHC.Core.Lint: Renamed lintPassResult' to lintPassResult.
   Also renamed lintCoreBindings' to lintCoreBindings.

 * GHC.Driver.Config.Core.Lint: Stick to the defaults when initializing
   the config records.

 * GHC.Driver.Config.Core.EndPass: Inlined `endPass`

 * GHC.Driver.Config.Core.EndPass: Removed `endPassLintFlags` as it was never used

- - - - -
1725aa40 by Dominik Peteler at 2022-08-30T00:58:24+02:00
Simplified initSimplifyOpts

- - - - -
a0bdfad0 by Dominik Peteler at 2022-08-30T00:58:24+02:00
Adjusted tests

- - - - -
a8d7ffbd by Dominik Peteler at 2022-08-30T00:58:25+02:00
Removed RuleBase from getCoreToDo

- - - - -
e7520a12 by Dominik Peteler at 2022-08-30T00:58:25+02:00
Purified initSpecialiseOpts

Also pass the rule bases and the visible orphan modules as arguments to
the Specialise pass.

- - - - -
204a098c by Dominik Peteler at 2022-08-30T00:58:26+02:00
Simplified CoreToDo interpreter a bit

- - - - -
617431b8 by Dominik Peteler at 2022-08-30T01:03:47+02:00
Config records of some Core passes are now provided by CoreToDo

 * CoreAddCallerCcs
 * CoreAddLateCcs
 * CoreDoFloatInwards
 * CoreLiberateCase
 * CoreDoSpecConstr

- - - - -
a4fb7117 by Dominik Peteler at 2022-08-30T01:03:50+02:00
Move Core pipeline to the driver

 * Moved `getCoreToDo` to an own module GHC.Driver.Config.Core.Opt
 * Moved the remaining part of GHC.Core.Opt.Pipeline to a new module GHC.Driver.Core.Opt
 * Renamed GHC.Core.Opt.Pipeline.Types to GHC.Core.Opt.Config

- - - - -
35044900 by Dominik Peteler at 2022-08-30T01:03:50+02:00
Fixed tests

- - - - -
b92341c2 by Dominik Peteler at 2022-08-30T01:03:51+02:00
Fixed note

- - - - -
642037e5 by John Ericson at 2022-08-30T01:03:51+02:00
Add some haddocks

- - - - -
a822191d by John Ericson at 2022-08-30T01:03:52+02:00
Move `core2core` to `GHC.Driver.Main`

This "pushes up" the planning vs execution split, by not combining the
two until a further downstream module. That helps encourage this
separation we are very much fans of.

Also deduplicate some logic with `liftCoreMToSimplCountM`, which
abstracts over a number of details to eliminate a `CoreM` to a
`SimpleCountM`. It might be a bit too opinionated at the moment, in
which case we will think about how to shuffle some things around.

In addition, deduplicate `simplMask`, which is indeed sketchy thing to
export, but we can deal with that later.

- - - - -
fa48e8c2 by John Ericson at 2022-08-30T01:03:52+02:00
Factor out `readRuleEnv` into its own module nad give haddocks

Might end up up recombining this but its good separation of concerns for
now.

- - - - -
ebb65378 by John Ericson at 2022-08-30T01:03:53+02:00
Quick and dirty chop up modules once again

I decided my earlier recommendation to mmhat was not quite write. It was
the one I implemented too. So through this together real quick and
dirty. We can make it nicer afterwords

Things that are not yet nice:

 - `CoreOptEnv` is a grab bag of junk. Of course, it is merely reifying
   how was were accessing `HscEnv` before --- also rather junky! So
   maybe it cannot totally be improved. But it would be good to go over
   bits and ask / make issues (like #21926) that would help us clean up
   later.

 - Logging tricks for annotations linting is broken from the planning vs
   execution separation. We'll need to "delay that part of planning too.
   Can hack it up with more higher order function tricks, might be also
   a good oppertunity to rethink what should go in which config.

 - Some of the per-pass config records require info that isn't available
   at planning time. I hacked up up with functions in `CoreToDo` but we
   could do better.

   Conversely, per #21926, perhaps we *should* include the module name
   in the config after all, since we know it from downsweep before
   upsweep begins.

 - `GHC.Driver.Core.Rules` could just go inside `GHC.Driver.Core.Opt`.

- - - - -
cc32e4bd by John Ericson at 2022-08-30T01:05:29+02:00
Split `GHC.Core.Opt.Utils`

Half of it was domain layer (float out switches) but the other half was
infrastructure / driver (annotations).

- - - - -
edccda6d by Dominik Peteler at 2022-08-30T01:05:31+02:00
Fixed tests

- - - - -
0d69713b by Dominik Peteler at 2022-08-30T01:07:51+02:00
Better configuration of Core lint debug options

- - - - -
98628d29 by Dominik Peteler at 2022-08-30T01:07:54+02:00
Configuration record for rule check pass

- - - - -
a117b814 by Dominik Peteler at 2022-08-30T01:07:54+02:00
Renamed dmdAnal to demandAnalysis and moved it to GHC.Core.Opt.DmdAnal

- - - - -
a24934c7 by Dominik Peteler at 2022-08-30T01:07:55+02:00
Fix tests

- - - - -
2c8aae26 by Dominik Peteler at 2022-08-30T11:12:55+02:00
Added environment for worker/wrapper pass

- - - - -
1fbade41 by Dominik Peteler at 2022-08-30T11:13:03+02:00
Refactored configuration of Specialise pass again

Also removed GHC.Core.Opt.Specialise.Config again. We may introduce separate
*.Config modules for the passes once we had a look at the module graph
and decide whether the addition of these modules is justified.

- - - - -
b44226f2 by Dominik Peteler at 2022-08-30T11:13:03+02:00
Removed GHC.Driver.Core.Rules

- - - - -
ef2fb759 by Dominik Peteler at 2022-08-30T11:13:04+02:00
Removed CoreDoNothing and CoreDoPasses

Rewrote the getCoreToDo function using a Writer monad. This makes these
data constructors superfluous.

- - - - -
1c809fa1 by Dominik Peteler at 2022-08-30T11:13:04+02:00
Renamed endPassIO to endPass

- - - - -
6d2037ae by Dominik Peteler at 2022-08-30T11:13:05+02:00
Renamed hscSimplify/hscSimplify' to optimizeCoreIO/optimizeCoreHsc

- - - - -
e9363ca9 by Dominik Peteler at 2022-08-30T11:13:05+02:00
Run simplifyPgm in SimplCountM

- - - - -
675fb87d by Dominik Peteler at 2022-08-30T11:13:06+02:00
Added note on the architecture of the Core optimizer

- - - - -
78c3cf49 by Dominik Peteler at 2022-08-30T12:59:02+02:00
Merged GHC.Driver.Config.Core.Opt.* modules in GHC.Driver.Config.Core.Opt

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/upload_ghc_libs.py
- − MAKEHELP.md
- − Makefile
- − bindisttest/ghc.mk
- boot
- compiler/GHC.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/CommonBlockElim.hs
- compiler/GHC/Cmm/DebugBlock.hs
- compiler/GHC/Cmm/Lint.hs
- compiler/GHC/Cmm/Node.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs
- compiler/GHC/CmmToAsm/Dwarf.hs
- compiler/GHC/CmmToAsm/Dwarf/Types.hs
- compiler/GHC/CmmToAsm/PIC.hs
- compiler/GHC/CmmToAsm/PPC/Ppr.hs
- compiler/GHC/CmmToAsm/Ppr.hs
- compiler/GHC/CmmToAsm/X86/Ppr.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core.hs
- + compiler/GHC/Core/EndPass.hs
- compiler/GHC/Core/LateCC.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Lint/Interactive.hs
- + compiler/GHC/Core/Opt.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/ffd58d021b5c6c0574b5d013365e1500d40a9fbc...78c3cf49346ab211b9c20db978c73d4ddf9b7b4f

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/ffd58d021b5c6c0574b5d013365e1500d40a9fbc...78c3cf49346ab211b9c20db978c73d4ddf9b7b4f
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20220830/f6cbde23/attachment-0001.html>


More information about the ghc-commits mailing list