- Feb 01, 2024
-
-
This commit enables the generic cmm optimizations in other NCGs to be run in the wasm backend as well, followed by a late cmm control-flow optimization pass. The added optimizations do catch some corner cases not handled by the pre-NCG cmm pipeline and are useful in generating smaller CFGs.
-
This commit explicitly disables the ncgPIC flag for the wasm32 target. The wasm backend doesn't support PIC for the time being.
-
This commit moves GHC.CmmToAsm.cmmToCmm to a standalone module, GHC.Cmm.GenericOpt. The main motivation is enabling this logic to be run in the wasm backend NCG code, which is defined in other modules that's imported by GHC.CmmToAsm, causing a cyclic dependency issue.
-
-
-
Previously we would use an atomic load to ensure acquire ordering. However, we now have `ACQUIRE_FENCE_ON`, which allows us to express this more directly.
-
Full sequential consistency is not needed here.
-
-
When changing the dirty/clean state of a mutable object we needn't have any particular ordering.
-
-
-
-
-
This only affects an assertion in the debug RTS and only needs relaxed ordering.
-
We now use a release barrier whenever we update a thread's blocking state. This required widening StgTSO.why_blocked as AArch64 does not support atomic writes on 16-bit values.
-
This is a semantics-preserving refactoring.
-
-
-
-
-
In hand-written Cmm it can sometimes be necessary to atomically load from memory deep within an expression (e.g. see the `CHECK_GC` macro). This MachOp provides a convenient way to do so without breaking the expression into multiple statements.
-
Resolves #24394
-
- Jan 31, 2024
-
-
Simon Peyton Jones authored
This fixes #24370 by making decomposeRuleLhs undertand dictionary /functions/ as well as plain /dictionaries/
-
-
-
A test *сс018* is attached (not sure about the naming convention though). Note that without the fix, the test fails with the *dodgy-foreign-imports* warning passed to stderr. The warning disappears after the fix. GHC shouldn't warn on imports of natural function pointers from C by value (which is feasible with CApiFFI), such as ```haskell foreign import capi "cc018.h value f" f :: FunPtr (Int -> IO ()) ``` where ```c void (*f)(int); ``` See a related real-world use-case [here](https://gitlab.com/daniel-casanueva/pcre-light/-/merge_requests/17). There, GHC warns on import of C function pointer `pcre_free`.
-
- Jan 29, 2024
- Jan 26, 2024
-
-
-
-
Matt Walker authored
Add tests for semicolon separated where clauses
-
- Jan 25, 2024
-
-
-
The GHC.Linker module is empty and unused, other than as a hack for the make build system. We can remove it now that make is long gone; the note is moved to GHC.Linker.Loader instead.
-
- Jan 24, 2024
-
-
-
We were emitting the wrong instructions for fused multiply-add operations on LLVM: - the instruction name is "llvm.fma.f32" or "llvm.fma.f64", not "fmadd" - LLVM does not support other instructions such as "fmsub"; instead we implement these by flipping signs of some arguments - the instruction is an LLVM intrinsic, which requires handling it like a normal function call instead of a machine instruction Fixes #24223
-
Otherwise spurious "Killed: 9" messages to stderr may cause the test to fail. Fixes #24361.
-
Bump hpc to 0.7.0.1 Bump hpc-bin to commit d1780eb2
-
They don't make it through readFile' without explicitly setting the encoding. See ghc/ghc#17755
-