[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 15 commits: hadrian: Don't enable TSAN in stage0 build

Marge Bot (@marge-bot) gitlab at gitlab.haskell.org
Wed Dec 14 19:33:05 UTC 2022



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


Commits:
15982af8 by Ben Gamari at 2022-12-14T14:32:56-05:00
hadrian: Don't enable TSAN in stage0 build

- - - - -
91c679e7 by Ben Gamari at 2022-12-14T14:32:56-05:00
cmm: Introduce blockConcat

- - - - -
638e5219 by Ben Gamari at 2022-12-14T14:32:56-05:00
cmm: Introduce MemoryOrderings

- - - - -
afe3c969 by Ben Gamari at 2022-12-14T14:32:56-05:00
llvm: Respect memory specified orderings

- - - - -
5e28d1a7 by Ben Gamari at 2022-12-14T14:32:56-05:00
Codegen/x86: Eliminate barrier for relaxed accesses

- - - - -
b18c288d by Ben Gamari at 2022-12-14T14:32:56-05:00
cmm/Parser: Reduce some repetition

- - - - -
81fda5c2 by Ben Gamari at 2022-12-14T14:32:56-05:00
cmm/Parser: Add syntax for ordered loads and stores

- - - - -
36d94c96 by Ben Gamari at 2022-12-14T14:32:56-05:00
cmm/Parser: Atomic load syntax

Originally I had thought I would just use the `prim` call syntax instead
of introducing new syntax for atomic loads. However, it turns out that
`prim` call syntax tends to make things quite unreadable. This new
syntax seems quite natural.

- - - - -
469351aa by Ben Gamari at 2022-12-14T14:32:56-05:00
codeGen: Introduce ThreadSanitizer instrumentation

This introduces a new Cmm pass which instruments the program with
ThreadSanitizer annotations, allowing full tracking of mutator memory
accesses via TSAN.

- - - - -
7b303230 by Ben Gamari at 2022-12-14T14:32:56-05:00
Hadrian: Drop TSAN_ENABLED define from flavour

This is redundant since the TSANUtils.h already defines it.

- - - - -
ea8824da by Ben Gamari at 2022-12-14T14:32:56-05:00
hadrian: Enable Cmm instrumentation in TSAN flavour

- - - - -
e2fa3045 by Ben Gamari at 2022-12-14T14:32:56-05:00
rts: Ensure that global regs are never passed as fun call args

This is in general unsafe as they may be clobbered if they are mapped to
caller-saved machine registers. See Note [Register parameter passing].

- - - - -
45922e95 by Matthew Pickering at 2022-12-14T14:32:56-05:00
Package Imports: Get candidate packages also from re-exported modules

Previously we were just looking at the direct imports to try and work
out what a package qualifier could apply to but #22333 pointed out we
also needed to look for reexported modules.

Fixes #22333

- - - - -
dd3c1cb7 by Simon Peyton Jones at 2022-12-14T14:32:57-05:00
Fix bogus test in Lint

The Lint check for branch compatiblity within an axiom, in
GHC.Core.Lint.compatible_branches was subtly different to the
check made when contructing an axiom, in
GHC.Core.FamInstEnv.compatibleBranches.

The latter is correct, so I killed the former and am now using the
latter.

On the way I did some improvements to pretty-printing and documentation.

- - - - -
969c3c03 by Ryan Scott at 2022-12-14T14:32:57-05:00
checkValidInst: Don't expand synonyms when splitting sigma types

Previously, the `checkValidInst` function (used when checking that an instance
declaration is headed by an actual type class, not a type synonym) was using
`tcSplitSigmaTy` to split apart the `forall`s and instance context. This is
incorrect, however, as `tcSplitSigmaTy` expands type synonyms, which can cause
instances headed by quantified constraint type synonyms to be accepted
erroneously.

This patch introduces `splitInstTyForValidity`, a variant of `tcSplitSigmaTy`
specialized for validity checking that does _not_ expand type synonyms, and
uses it in `checkValidInst`.

Fixes #22570.

- - - - -


30 changed files:

- compiler/GHC/Cmm/Config.hs
- compiler/GHC/Cmm/ContFlowOpt.hs
- compiler/GHC/Cmm/Dataflow/Block.hs
- compiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Pipeline.hs
- + compiler/GHC/Cmm/ThreadSanitizer.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion/Axiom.hs
- compiler/GHC/Core/FamInstEnv.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Driver/Config/Cmm.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/StgToCmm/ExtCode.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/Tc/Validity.hs
- compiler/GHC/Unit/Finder.hs
- compiler/GHC/Unit/State.hs
- compiler/ghc.cabal.in
- docs/users_guide/debugging.rst
- hadrian/src/Flavour.hs
- rts/HeapStackCheck.cmm


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/43bdca74d2b22a78409e36f9fdbc1726dee2296a...969c3c0360818d6d728575ce24b39ac571b24e55

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/43bdca74d2b22a78409e36f9fdbc1726dee2296a...969c3c0360818d6d728575ce24b39ac571b24e55
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/20221214/cee3b5c1/attachment.html>


More information about the ghc-commits mailing list