- Feb 06, 2025
-
-
Cheng Shao authored
We used to have MIN_UPD_SIZE macro that describes the minimum reserved size for thunks, so that the thunk can be overwritten in place as indirections or blackholes. However, this macro has not been actually defined or used anywhere since a long time ago; StgThunkHeader already reserves a padding word for this purpose. Hence this patch which drops stale mentions of MIN_UPD_SIZE. (cherry picked from commit c1e3719c) (cherry picked from commit 8d9efe4d)
-
- Jan 27, 2025
-
-
Luite Stegeman authored
-
- Jan 16, 2025
-
-
Luite Stegeman authored
We found that speculative evaluation can increase the amount of allocations in some circumstances. This patch adds new flags for selectively disabling speculative evaluation, allowing us to test the effect of the optimization. The new flags are: -fspec-eval globally enable speculative evaluation -fspec-eval-dictfun enable speculative evaluation for dictionary functions (no effect if speculative evaluation is globally disabled) The new flags are on by default for all optimisation levels. See #25284 (cherry picked from commit 23099752)
-
With a recent LLVM, `llc -version` emits the version on the first line if the vendor is set. It emits the version on the second line otherwise. Therefore, we need to check the both lines to detect the version. GHC now emits a warning if it fails to detect the LLVM version, so we can notice if the output of `llc -version` changes in the future. Also, the warning for using LLVM < 10 on s390x is removed, because we assume LLVM >= 13 now. This fixes the definition of __GLASGOW_HASKELL_LLVM__ macro. Fixes #25606 (cherry picked from commit a928c326)
-
Previously the maximum number of capabilities supported by the RTS was statically capped at 256. However, this bound is uncomfortably low given the size of today's machine. While supporting unbounded, fully-dynamic adjustment would be nice, it is complex and so instead we do something simpler: Probe the logical core count at RTS startup and use this as the static bound for the rest of our execution. This should avoid users running into the capability limit on large machines while avoiding wasting memory on a large capabilities array for most users and keeping complexity at bay. Addresses #25560. (cherry picked from commit 71f050b7)
-
Addresses #25560. (cherry picked from commit 06265655)
-
Fixes ghc/ghc#23444 (cherry picked from commit 70526f5b)
-
- Jun 30, 2024
-
-
Zubin authored
-
- Jun 25, 2024
-
-
(cherry picked from commit 06f7db40)
-
- Apr 15, 2024
-
-
Zubin authored
Metric Increase: MultiLayerModulesTH_Make Metric Decrease: MultiLayerModulesTH_Make
-
- Apr 02, 2024
-
-
Resolves #24394 (cherry picked from commit 94ce031d)
-
- Jan 03, 2024
-
-
Zubin authored
Metric Decrease: MultiLayerModulesTH_Make
-
Zubin authored
Document the permissibility introduced by https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0170-unrestricted-overloadedlabels.rst (cherry picked from commit c247b6be)
-
- Dec 18, 2023
-
-
Zubin authored
Metric Decrease: T13701
-
- Sep 20, 2023
-
-
Zubin authored
-
- Sep 19, 2023
-
-
Zubin authored
Metric Decrease: MultiComponentModules MultiComponentModulesRecomp MultiLayerModules MultiLayerModulesRecomp T10421 T12150 T12234 T12425 T13035 T13701 T13719 T15164 T16875 T18140 T18304 T18698a T18698b T18923 T20049 T9198 T9961 hard_hole_fits Metric Decrease 'compile_time/bytes allocated': T21839r Metric Increase 'runtime/max_bytes_used': T21839r Metric Increase 'runtime/peak_megabytes_allocated': T21839r
-
Zubin authored
-
Zubin authored
-
The -fno-info-table-map-with-stack flag omits STACK info tables from the info table map, and the -fno-info-table-map-with-fallback flag omits info tables with defaulted source locations from the map. In a test on the Agda codebase the build results were about 7% smaller when both of those types of tables were omitted. Adds a test that verifies that passing each combination of these flags results in the correct output for -dipe-stats, which is disabled for the js backend since profiling is not implemented. This commit also refactors a lot of the logic around extracting info tables from the Cmm results and building the info table map. This commit also fixes some issues in the users guide rst source to fix warnings that were noticed while debugging the documentation for these flags. Fixes #23702 (cherry picked from commit 261c4acb)
-
This is useful for seeing which info tables have information. (cherry picked from commit cc52c358)
-
The semantics of the `extlinks` attribute annoyingly changed in Sphinx 4. Reflect this in our configuration. See #22690. Fixes #23807. (cherry picked from commit 1726db3f)
-
As noted in #23818, some old distributions (e.g. Debian 9) only include `distutils` while newer distributions only include `packaging`. Fixes #23818. (cherry picked from commit d814bda9)
-
- Sep 13, 2023
-
-
(cherry picked from commit 4457da2a)
-
Polymorphic specialisation has led to a number of hard to diagnose incorrect runtime result bugs (see #23469, #23109, #21229, #23445) so this commit introduces a flag `-fpolymorhphic-specialisation` which allows users to turn on this experimental optimisation if they are willing to buy into things going very wrong. Ticket #23469 (cherry picked from commit 9f01d14b)
-
- May 23, 2023
-
-
Ben Gamari authored
-
- May 16, 2023
- May 11, 2023
-
-
Ben Gamari authored
-
- Mar 10, 2023
-
-
Ben Gamari authored
-
- Mar 09, 2023
-
-
(cherry picked from commit c6e1f3cd)
-
- Mar 07, 2023
-
-
Ben Gamari authored
Thanks to David Christiansen for noticing this.
-
- Mar 02, 2023
-
-
Ben Gamari authored
Closes #23027.
-
Ben Gamari authored
Asm-shortcutting may produce relative references to symbols defined in other compilation units. This is not something that MachO relocations support (see #21972). For this reason we disable the optimisation on Darwin. We do so without a warning since this flag is enabled by `-O2`. Another way to address this issue would be to rather implement a PLT-relocatable jump-table strategy. However, this would only benefit Darwin and does not seem worth the effort. Closes #21972. (cherry picked from commit 8bed166b)
-
- Feb 22, 2023
-
-
This commit also adds a new -Dk RTS option to the debug RTS to assist debugging continuation captures. Currently, the printed information is quite minimal, but more can be added in the future if it proves to be useful when debugging future issues. fixes #23001 (cherry picked from commit e5794ede)
-
- Feb 20, 2023
-
-
Matthew Pickering authored
Fixes #23006
-
Fixes #22658 (cherry picked from commit 631c6c72)
-
Commit aed1974e completely re-engineered the treatment of loopy superclass dictionaries in instance declarations. Unfortunately, it has the potential to break (albeit in a rather minor way) user code. To alleviate migration concerns, this commit re-introduces the old behaviour. Any reliance on this old behaviour triggers a warning, controlled by `-Wloopy-superclass-solve`. The warning text explains that GHC might produce bottoming evidence, and provides a migration strategy. This allows us to provide a graceful migration period, alerting users when they are relying on this unsound behaviour. Fixes #22912 #22891 #20666 #22894 #22905 (cherry picked from commit 9fb4ca89)
-
Commit cfc8e2e2 introduced a mechanism for handling of exceptions that occur during Handle finalization, and 372cf730 set the default handler to print out the error to stderr. However, #21680 pointed out we might not want to set this by default, as it might pollute users' terminals with unwanted information. So, for the time being, the default handler discards the exception. Fixes #21680 (cherry picked from commit 681e0e8c)
-
Follow up from #21078 (cherry picked from commit 08c0822c)
-