[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 23 commits: ghc-prim: Turn some comments into haddocks

Marge Bot gitlab at gitlab.haskell.org
Tue Jul 7 17:27:32 UTC 2020



 Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC


Commits:
01067501 by Chaitanya Koparkar at 2020-07-07T13:27:06-04:00
ghc-prim: Turn some comments into haddocks

[ci skip]

- - - - -
d27c8bd8 by John Ericson at 2020-07-07T13:27:08-04:00
Support `timesInt2#` in LLVM backend

- - - - -
78815fd7 by John Ericson at 2020-07-07T13:27:08-04:00
`genericIntMul2Op`: Call `genericWordMul2Op` directly

This unblocks a refactor, and removes partiality. It might be a PowerPC
regression but that should be fixable.

- - - - -
861050c2 by John Ericson at 2020-07-07T13:27:08-04:00
Simplify `PrimopCmmEmit`

Follow @simonpj's suggestion of pushing the "into regs" logic into
`emitPrimOp`. With the previous commit getting rid of the recursion in
`genericIntMul2Op`, this is now an easy refactor.

- - - - -
3d91b786 by John Ericson at 2020-07-07T13:27:08-04:00
`opAllDone` -> `opIntoRegs`

The old name was and terrible and became worse after the previous
commit's refactor moved non-trivial funcationlity into its body.

- - - - -
ea1e892f by Sylvain Henry at 2020-07-07T13:27:08-04:00
Optimise genericIntMul2Op

We shouldn't directly call 'genericWordMul2Op' in genericIntMul2Op
because a target may provide a faster primop for 'WordMul2Op': we'd
better use it!

- - - - -
c462f952 by Moritz Angermann at 2020-07-07T13:27:09-04:00
[linker/rtsSymbols] More linker symbols

Mostly symbols needed for aarch64/armv7l
and in combination with musl, where we have
to rely on loading *all* objects/archives

- __stack_chk_* only when not DYNAMIC

- - - - -
69e6698a by Moritz Angermann at 2020-07-07T13:27:09-04:00
better if guards.

- - - - -
48f17014 by Moritz Angermann at 2020-07-07T13:27:09-04:00
Fix (1)

- - - - -
4127601d by Moritz Angermann at 2020-07-07T13:27:09-04:00
AArch32 symbols only on aarch32.

- - - - -
a0185596 by Adam Sandberg Ericsson at 2020-07-07T13:27:11-04:00
add -flink-rts flag to link the rts when linking a shared or static library #18072

By default we don't link the RTS when linking shared libraries because in the
most usual mode a shared library is an intermediary product, for example a
Haskell library, that will be linked into some executable in the end. So we
wish to defer the RTS flavour to link to the final link.

However sometimes the final product is the shared library, for example when
writing a plugin for some other system, so we do wish the shared library to
link the RTS.

For consistency we also make -staticlib honor this flag and its inversion.
-staticlib currently implies -flink-shared.

- - - - -
30ec7def by Stefan Schulze Frielinghaus at 2020-07-07T13:27:12-04:00
hadrian: link check-ppr against debugging RTS if ghcDebugged

- - - - -
f8e47d85 by Andreas Klebinger at 2020-07-07T13:27:13-04:00
Give Uniq[D]FM a phantom type for its key.

This fixes #17667 and should help to avoid such issues going forward.

The changes are mostly mechanical in nature. With two notable
exceptions.

* The register allocator.

  The register allocator references registers by distinct uniques.
  However they come from the types of VirtualReg, Reg or Unique in
  various places. As a result we sometimes cast the key type of the
  map and use functions which operate on the now typed map but take
  a raw Unique as actual key. The logic itself has not changed it
  just becomes obvious where we do so now.

* <Type>Env Modules.

As an example a ClassEnv is currently queried using the types `Class`,
`Name`, and `TyCon`. This is safe since for a distinct class value all
these expressions give the same unique.

    getUnique cls
    getUnique (classTyCon cls)
    getUnique (className cls)
    getUnique (tcName $ classTyCon cls)

This is for the most part contained within the modules defining the
interface. However it requires us to play dirty when we are given a
`Name` to lookup in a `UniqFM Class a` map. But again the logic did
not change and it's for the most part hidden behind the Env Module.

Some of these cases could be avoided by refactoring but this is left
for future work.

We also bump the haddock submodule as it uses UniqFM.

- - - - -
bc274996 by Adam Sandberg Ericsson at 2020-07-07T13:27:14-04:00
rts linker: teach the linker about GLIBC's special handling of *stat, mknod and atexit functions #7072

- - - - -
b48c5f2d by Adam Sandberg Ericsson at 2020-07-07T13:27:15-04:00
hadrian: make hadrian/ghci use the bootstrap compiler from configure #18190

- - - - -
2cac580c by Adam Sandberg Ericsson at 2020-07-07T13:27:17-04:00
hadrian: ignore cabal configure verbosity related flags #18131

- - - - -
153cf880 by Ben Gamari at 2020-07-07T13:27:17-04:00
testsuite: Widen T12234 acceptance window to 2%

Previously it wasn't uncommon to see +/-1% fluctuations in compiler
allocations on this test.

- - - - -
01c99258 by Gabor Greif at 2020-07-07T13:27:17-04:00
When running libtool, report it as such
- - - - -
ef66d340 by Sylvain Henry at 2020-07-07T13:27:21-04:00
BigNum: rename BigNat types

Before this patch BigNat names were confusing because we had:

* GHC.Num.BigNat.BigNat: unlifted type used everywhere else
* GHC.Num.BigNat.BigNatW: lifted type only used to share static constants
* GHC.Natural.BigNat: lifted type only used for backward compatibility

After this patch we have:

* GHC.Num.BigNat.BigNat#: unlifted type
* GHC.Num.BigNat.BigNat: lifted type (reexported from GHC.Natural)

Thanks to @RyanGlScott for spotting this.

- - - - -
6e9fa87d by Sylvain Henry at 2020-07-07T13:27:23-04:00
Bignum: don't build ghc-bignum with stage0

Noticed by @Ericson2314

- - - - -
a5d09c4b by Sylvain Henry at 2020-07-07T13:27:23-04:00
Hadrian: ghc-gmp.h shouldn't be a compiler dependency

- - - - -
72fe4277 by Sylvain Henry at 2020-07-07T13:27:24-04:00
DynFlags: factor out pprUnitId from "Outputable UnitId" instance

- - - - -
ba37d315 by Krzysztof Gogolewski at 2020-07-07T13:27:28-04:00
Remove unused function pprHsForAllExtra (#18423)

The function `pprHsForAllExtra` was called only on `Nothing`
since 2015 (1e041b7382b6aa).

- - - - -


30 changed files:

- compiler/GHC/Builtin/PrimOps.hs
- compiler/GHC/Builtin/Utils.hs
- compiler/GHC/Cmm/LayoutStack.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Sink.hs
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/BlockLayout.hs
- compiler/GHC/CmmToAsm/Monad.hs
- compiler/GHC/CmmToAsm/Reg/Graph.hs
- compiler/GHC/CmmToAsm/Reg/Graph/Coalesce.hs
- compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs
- compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs
- compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs
- compiler/GHC/CmmToAsm/Reg/Graph/Stats.hs
- compiler/GHC/CmmToAsm/Reg/Linear.hs
- compiler/GHC/CmmToAsm/Reg/Linear/Base.hs
- compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs
- compiler/GHC/CmmToAsm/Reg/Linear/StackMap.hs
- compiler/GHC/CmmToAsm/Reg/Linear/Stats.hs
- compiler/GHC/CmmToAsm/Reg/Liveness.hs
- + compiler/GHC/CmmToAsm/Reg/Utils.hs
- compiler/GHC/CmmToAsm/X86/RegInfo.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core/FamInstEnv.hs
- compiler/GHC/Core/InstEnv.hs
- compiler/GHC/Core/Opt/OccurAnal.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Tidy.hs
- compiler/GHC/Data/FastString/Env.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5ba6faf2acb86f873f70c9040c008e0b5fea747...ba37d3152c1a6843f96b1eb89994c06e43e69577

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5ba6faf2acb86f873f70c9040c008e0b5fea747...ba37d3152c1a6843f96b1eb89994c06e43e69577
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/20200707/742b8d74/attachment.html>


More information about the ghc-commits mailing list