[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: 63687228 by sheaf at 2026-02-02T11:22:19+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 for which a jump is enclosed within a profiling tick or a cast. 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 #14610, #26157 and #26422, as it means casts/profiling ticks don't prevent join points, but it doesn't entirely fix these issues because we are still inhibiting optimisations (lack of case-of-case). - - - - - 31 changed files: - compiler/GHC/Core/Lint.hs - compiler/GHC/Core/Opt/Arity.hs - compiler/GHC/Core/Opt/CSE.hs - compiler/GHC/Core/Opt/Exitify.hs - compiler/GHC/Core/Opt/FloatIn.hs - compiler/GHC/Core/Opt/FloatOut.hs - compiler/GHC/Core/Opt/OccurAnal.hs - compiler/GHC/Core/Opt/SetLevels.hs - compiler/GHC/Core/Opt/Simplify/Env.hs - compiler/GHC/Core/Opt/Simplify/Iteration.hs - compiler/GHC/Core/Opt/Simplify/Monad.hs - compiler/GHC/Core/Opt/SpecConstr.hs - compiler/GHC/Core/Opt/Specialise.hs - compiler/GHC/Core/Opt/WorkWrap.hs - compiler/GHC/Core/Opt/WorkWrap/Utils.hs - compiler/GHC/Core/Ppr.hs - compiler/GHC/Core/Rules.hs - compiler/GHC/Core/SimpleOpt.hs - compiler/GHC/Core/Tidy.hs - compiler/GHC/Core/Unfold.hs - compiler/GHC/Core/Utils.hs - compiler/GHC/CoreToStg/Prep.hs - compiler/GHC/Types/Basic.hs - compiler/GHC/Types/Id.hs - compiler/GHC/Types/Id/Info.hs - compiler/GHC/Types/Tickish.hs - compiler/GHC/Utils/Binary.hs - compiler/GHC/Utils/Outputable.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/636872281a8faa2ec9e6b141ae29dddf... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/636872281a8faa2ec9e6b141ae29dddf... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
sheaf (@sheaf)