[Git][ghc/ghc][wip/tsan/codegen] 22 commits: cmm: Introduce MemoryOrderings

Ben Gamari (@bgamari) gitlab at gitlab.haskell.org
Thu Nov 10 15:25:37 UTC 2022



Ben Gamari pushed to branch wip/tsan/codegen at Glasgow Haskell Compiler / GHC


Commits:
1e025fb8 by Ben Gamari at 2022-11-10T09:28:42-05:00
cmm: Introduce MemoryOrderings

- - - - -
82739430 by Ben Gamari at 2022-11-10T09:28:42-05:00
llvm: Respect memory specified orderings

- - - - -
9281c802 by Ben Gamari at 2022-11-10T09:30:59-05:00
Codegen/x86: Eliminate barrier for relaxed accesses

- - - - -
4415c1ef by Ben Gamari at 2022-11-10T09:30:59-05:00
cmm/Parser: Reduce some repetition

- - - - -
86ded8b8 by Ben Gamari at 2022-11-10T09:30:59-05:00
cmm/Parser: Add syntax for ordered loads and stores

- - - - -
e95581e5 by Ben Gamari at 2022-11-10T09:42:58-05:00
cmm/Parser: Atomic load syntax

- - - - -
5569a9f6 by Ben Gamari at 2022-11-10T09:43:02-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.

- - - - -
b12d07cb by Ben Gamari at 2022-11-10T09:43:02-05:00
rts/Messages: Refactor

- - - - -
7ac21924 by Ben Gamari at 2022-11-10T09:43:02-05:00
Ordering fixes

- - - - -
d41c6a8c by Ben Gamari at 2022-11-10T09:43:02-05:00
eventlog: Silence spurious data race

- - - - -
2f896ba9 by Ben Gamari at 2022-11-10T09:43:02-05:00
Introduce SET_INFO_RELEASE for Cmm

- - - - -
7dabeb15 by Ben Gamari at 2022-11-10T09:43:02-05:00
unlockClosure

- - - - -
6970367a by Ben Gamari at 2022-11-10T09:43:02-05:00
Introduce and use GET_INFO_ACQUIRE

- - - - -
beddf374 by Ben Gamari at 2022-11-10T09:43:02-05:00
Fences

- - - - -
8965eebb by Ben Gamari at 2022-11-10T09:43:02-05:00
LOAD_INFO

- - - - -
eaf72829 by Ben Gamari at 2022-11-10T09:43:02-05:00
rts/stm: Fix memory ordering in readTVarIO#

See #22421.

- - - - -
8ece45a1 by Ben Gamari at 2022-11-10T09:43:02-05:00
Improve heap memory barrier note

- - - - -
37af3f28 by Ben Gamari at 2022-11-10T09:43:02-05:00
load_acquire_w

- - - - -
a3dac035 by Ben Gamari at 2022-11-10T09:43:02-05:00
rts: Introduce getNumCapabilities

- - - - -
24260401 by Ben Gamari at 2022-11-10T09:43:03-05:00
ghc: Fix data race in dump file handling

Previously the dump filename cache would use a non-atomic update which
could potentially result in lost dump contents. Note that this is still
a bit racy since the first writer may lag behind a later appending
writer.

- - - - -
ca2bbba1 by Ben Gamari at 2022-11-10T09:43:03-05:00
rts: Mark accesses to Capability.context_switch as relaxed

Also Capability.interrupt.

- - - - -
d883495c by Ben Gamari at 2022-11-10T10:11:05-05:00
Note

- - - - -


30 changed files:

- compiler/GHC/Cmm/Config.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/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.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/Utils/Logger.hs
- compiler/ghc.cabal.in
- docs/users_guide/debugging.rst
- rts/Apply.cmm
- rts/Capability.c
- rts/Capability.h
- rts/HeapStackCheck.cmm
- rts/Messages.c
- rts/Messages.h
- rts/PrimOps.cmm
- rts/Printer.c
- rts/ProfHeap.c
- rts/ProfilerReport.c
- rts/ProfilerReportJson.c


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a2751d716045c5ae511ff4091068601cd2566cde...d883495cd2d6c5370d5db83171355be9dc17a629

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a2751d716045c5ae511ff4091068601cd2566cde...d883495cd2d6c5370d5db83171355be9dc17a629
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/20221110/10063ecf/attachment-0001.html>


More information about the ghc-commits mailing list