[Git][ghc/ghc][wip/romes/12935] 14 commits: Haddock: Add no-compilation flag

Rodrigo Mesquita (@alt-romes) gitlab at gitlab.haskell.org
Wed Sep 4 10:10:41 UTC 2024



Rodrigo Mesquita pushed to branch wip/romes/12935 at Glasgow Haskell Compiler / GHC


Commits:
1499764f by Sjoerd Visscher at 2024-08-29T16:52:56+02:00
Haddock: Add no-compilation flag

This flag makes sure to avoid recompilation of the code when generating documentation by only reading the .hi and .hie files, and throw an error if it can't find them.

- - - - -
768fe644 by Andreas Klebinger at 2024-09-03T13:15:20-04:00
Add functions to check for weakly pinned arrays.

This commit adds `isByteArrayWeaklyPinned#` and `isMutableByteArrayWeaklyPinned#` primops.
These check if a bytearray is *weakly* pinned. Which means it can still be explicitly moved
by the user via compaction but won't be moved by the RTS.

This moves us one more stop closer to nailing down #22255.

- - - - -
b16605e7 by Arsen Arsenović at 2024-09-03T13:16:05-04:00
ghc-toolchain: Don't leave stranded a.outs when testing for -g0

This happened because, when ghc-toolchain tests for -g0, it does so by
compiling an empty program.  This compilation creates an a.out.

Since we create a temporary directory, lets place the test program
compilation in it also, so that it gets cleaned up.

Fixes: 25b0b40467d0a12601497117c0ad14e1fcab0b74
Closes: https://gitlab.haskell.org/ghc/ghc/-/issues/25203

- - - - -
83e70b14 by Torsten Schmits at 2024-09-03T13:16:41-04:00
Build foreign objects for TH with interpreter's way when loading from iface

Fixes #25211

When linking bytecode for TH from interface core bindings with
`-fprefer-byte-code`, foreign sources are loaded from the interface as
well and compiled to object code in an ad-hoc manner.

The results are then loaded by the interpreter, whose way may differ
from the current build's target way.

This patch ensures that foreign objects are compiled with the
interpreter's way.

- - - - -
aa4fd2b0 by Matthew Pickering at 2024-09-04T09:33:10+01:00
Run on test-abi label

- - - - -
d47bc1fd by Rodrigo Mesquita at 2024-09-04T11:00:19+01:00
Write a test for object determinism

Extend abi_test with object determinism check

Standalone run abi test

Disable local test on CI

Update abi test with decrementing uniques

Twekas to script check

- - - - -
89d83218 by Rodrigo Mesquita at 2024-09-04T11:10:19+01:00
UniqDSM det uniques + use in Cmm.Info

Now for SRTs

SRT generation using deterministic uniq supply

Back LabelMap with deterministic UDFM

TSAN uniq rename hard

Revert "TSAN uniq rename hard"

This reverts commit 7ca5ab3036c15f38c6d4cbcb616d415958c6bcda.

improvements to uniqdsm

UniqDSM ProcPoint

CmmLayoutStack UniqDet

90% of cpsTop UniqDSM

Major progress in using UniqDSM in CmmToAsm and Ncg backends

Fix imports

Un-back label map with udfm

Revert "Un-back label map with udfm"

This reverts commit f5d2e4257214a3f7b7d845651e6662c5babfd6a3.

Make UDSM oneshot deriving via state

Fix -fllvm hang

- - - - -
bab7730b by Rodrigo Mesquita at 2024-09-04T11:10:19+01:00
Remame uniques straight off stgtocmm, before cmm pipeline

WIP

Progress

Work around LLVM assembler bug!

In a really stupid way)

Fix ordering of CLabels for IdLabels

Local test script tweaks

Do uniq renaming before SRTs

Revert "Do uniq renaming before SRTs"

This reverts commit db38b635d626106e40b3ab18091e0a24046c30c5.

Do on CmmGroup

Do uniq-renaming pass right at `codeGen`

not better

Revert "Do uniq-renaming pass right at `codeGen`"

This reverts commit 74e9068aaaf736bf815a36bf74a0dde19a074a7a.

Reapply "Do uniq renaming before SRTs"

This reverts commit 682f89732fc2a95fa011f530c0c6922bf576d229.

Try ALSO after SRT

Revert "Try ALSO after SRT"

This reverts commit c5dd7b426cde768126402aac3f39617ccb99f5c5.

Renaming before and after SRTs bc of procs and srts and ...

Wait no that was way too slow...

cleaner approach, same idea

Put deterministic renaming behind a flag

Fix Ord CLabel only compare externalNames

UniqRnem fixes external names

DCmmDecl UniqRenam

- - - - -
413f8737 by Rodrigo Mesquita at 2024-09-04T11:10:20+01:00
cmm: Back LabelMap with UDFM

Use a deterministic unique map to back the implementation of `LabelMap`.

This is necessary towards the goal of object code determinism in #12935.

Our intended solution requires renaming uniques in a deterministic
order (which will be the order in which they were created), but storing
them label map makes us lose this order. Backing it with a UDFM fixes
this issue.

Introduce back LabelMap non deterministic

Use NonDeterministic Label map in multiple passes

(TODO: More could be available. Look through Det LabelMap uses again)

Use NonDet for CFG

More NonDet

More explicit

Introduce DCmmDecl, start

Removing more maps

Fix warnings

tests

Fix tests

undo

undo

- - - - -
38132851 by Rodrigo Mesquita at 2024-09-04T11:10:20+01:00
Refactor ProfilingInfo to preserve Unique information before rendering it

Rename Profiling Info now that names are preserved

Revert "Rename Profiling Info now that names are preserved"

This reverts commit 2dd3da96b7e771ae272791a00d7fb55313401c9e.

Revert "Refactor ProfilingInfo to preserve Unique information before rendering it"

This reverts commit 8aba0515bb744ca5add6a4c3c9c7760e226e0b31.

Performance tweaks

Get rid of UniqRenamable class, do it directly

Make sure graph is renamed first, info table last

Turns out it does matter!

Whitespace

- - - - -
0adbf0c2 by Rodrigo Mesquita at 2024-09-04T11:10:20+01:00
Don't print unique in pprFullName

This unique was leaking as part of the profiling description in info tables when profiling was enabled

- - - - -
7eb50739 by Rodrigo Mesquita at 2024-09-04T11:10:20+01:00
distinct-constructor-tables determinism

- - - - -
f5cb9ac9 by Rodrigo Mesquita at 2024-09-04T11:10:20+01:00
Rename deterministically CmmGroups in generateCgIPEStub

- - - - -
8c244e4d by Rodrigo Mesquita at 2024-09-04T11:10:20+01:00
Writing Notes and Cleaning up v1

Fix linters

MP entries

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/Cmm.hs
- compiler/GHC/Cmm/BlockId.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/Dataflow.hs
- compiler/GHC/Cmm/Dataflow/Graph.hs
- compiler/GHC/Cmm/Graph.hs
- compiler/GHC/Cmm/Info.hs
- compiler/GHC/Cmm/Info/Build.hs
- compiler/GHC/Cmm/LayoutStack.hs
- compiler/GHC/Cmm/Opt.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Pipeline.hs
- compiler/GHC/Cmm/ProcPoint.hs
- compiler/GHC/Cmm/Reducibility.hs
- compiler/GHC/Cmm/Sink.hs
- compiler/GHC/Cmm/Switch.hs
- compiler/GHC/Cmm/Switch/Implement.hs
- compiler/GHC/Cmm/ThreadSanitizer.hs
- + compiler/GHC/Cmm/UniqueRenamer.hs
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/BlockLayout.hs
- compiler/GHC/CmmToAsm/Dwarf.hs
- compiler/GHC/CmmToAsm/Monad.hs
- compiler/GHC/CmmToAsm/PPC/Instr.hs
- compiler/GHC/CmmToAsm/Reg/Graph.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/5f85ad9fafd3fa885ab888c6b4ea160794cdf0b9...8c244e4d5376adb99df1eb2008b01a7078193e29

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/5f85ad9fafd3fa885ab888c6b4ea160794cdf0b9...8c244e4d5376adb99df1eb2008b01a7078193e29
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/20240904/a68e8947/attachment-0001.html>


More information about the ghc-commits mailing list