Commits on Source (13)
-
a19e12c5
-
400dc74c
-
7c580c72
-
6ec02d22
-
fbf5cdb8
-
ffd7d35a
-
ba66864a
-
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.
e6f51cea -
This introduces a new Cmm pass which instruments the program with ThreadSanitizer annotations, allowing full tracking of mutator memory accesses via TSAN.
c3352183 -
This is redundant since the TSANUtils.h already defines it.
dc3b6cf0 -
596fc51e
-
This is in general unsafe as they may be clobbered if they are mapped to caller-saved machine registers. See Note [Register parameter passing].
25a0235d -
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.
490b79cb
Showing
- compiler/GHC/Cmm/Config.hs 1 addition, 0 deletionscompiler/GHC/Cmm/Config.hs
- compiler/GHC/Cmm/ContFlowOpt.hs 1 addition, 1 deletioncompiler/GHC/Cmm/ContFlowOpt.hs
- compiler/GHC/Cmm/Dataflow/Block.hs 3 additions, 0 deletionscompiler/GHC/Cmm/Dataflow/Block.hs
- compiler/GHC/Cmm/Lexer.x 8 additions, 0 deletionscompiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/MachOp.hs 14 additions, 3 deletionscompiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Parser.y 81 additions, 33 deletionscompiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Pipeline.hs 8 additions, 0 deletionscompiler/GHC/Cmm/Pipeline.hs
- compiler/GHC/Cmm/ThreadSanitizer.hs 285 additions, 0 deletionscompiler/GHC/Cmm/ThreadSanitizer.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs 2 additions, 2 deletionscompiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs 4 additions, 4 deletionscompiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs 2 additions, 2 deletionscompiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs 12 additions, 7 deletionscompiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs 3 additions, 2 deletionscompiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs 20 additions, 12 deletionscompiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Driver/Config/Cmm.hs 1 addition, 0 deletionscompiler/GHC/Driver/Config/Cmm.hs
- compiler/GHC/Driver/Flags.hs 2 additions, 0 deletionscompiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Session.hs 4 additions, 2 deletionscompiler/GHC/Driver/Session.hs
- compiler/GHC/StgToCmm/ExtCode.hs 6 additions, 2 deletionscompiler/GHC/StgToCmm/ExtCode.hs
- compiler/GHC/StgToCmm/Prim.hs 2 additions, 2 deletionscompiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/Tc/Validity.hs 29 additions, 2 deletionscompiler/GHC/Tc/Validity.hs
compiler/GHC/Cmm/ThreadSanitizer.hs
0 → 100644