[Git][ghc/ghc][wip/andreask/ticked_joins] Allow join point Ids to occur below ticks & casts
sheaf pushed to branch wip/andreask/ticked_joins at Glasgow Haskell Compiler / GHC Commits: 871a1207 by sheaf at 2026-01-23T13:36:01+01:00 Allow join point Ids to occur below ticks & casts This commit classifies all join points into two categories: - true join points - quasi join points A quasi join point is a join point in which one of the binders occurs under more profiling ticks or casts than its binding site. The only operational difference is that, for quasi join points, we cannot perform the case-of-case transformation described in Note [Join points and case-of-case] in GHC.Core.Opt.Simplify.Iteration. All of this is explained in detail in Note [Quasi join points]. Fixes #26693 and #26642 Improves on #26157 and #26422, but doesn't entirely fix them because in an ideal world casts & profiling ticks should not inhibit optimisations. ------------------------- Metric Increase: T21839c T9961 ------------------------- - - - - - 13 changed files: - compiler/GHC/Core/Lint.hs - compiler/GHC/Core/Opt/Arity.hs - compiler/GHC/Core/Opt/OccurAnal.hs - compiler/GHC/Core/Opt/Simplify/Env.hs - compiler/GHC/Core/Opt/Simplify/Iteration.hs - compiler/GHC/Core/SimpleOpt.hs - compiler/GHC/Core/Utils.hs - compiler/GHC/CoreToStg/Prep.hs - compiler/GHC/Types/Basic.hs - compiler/GHC/Types/Tickish.hs - testsuite/tests/profiling/should_run/T2552.prof.sample - testsuite/tests/profiling/should_run/ioprof.prof.sample - testsuite/tests/profiling/should_run/scc001.prof.sample The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/871a1207c6f677988562b3df232bd3b4... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/871a1207c6f677988562b3df232bd3b4... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
sheaf (@sheaf)