diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2022-02-22 16:19:40 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-02-25 21:11:33 -0500 |
commit | cddb040ac178ee0a996ac83baef48710bf88e5b2 (patch) | |
tree | 23adf666193f17be79c601724472e4331f0c9b84 /docs | |
parent | f35aca4d0612063155792587482a7905981c7070 (diff) | |
download | haskell-cddb040ac178ee0a996ac83baef48710bf88e5b2.tar.gz |
Ticky: Gate tag-inference dummy ticky-counters behind a flag.
Tag inference included a way to collect stats about avoided tag-checks.
This was dony by emitting "dummy" ticky entries with counts corresponding
to predicted/unpredicated tag checks.
This behaviour for ticky is now gated behind -fticky-tag-checks.
I also documented ticky-LNE in the process.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/users_guide/expected-undocumented-flags.txt | 1 | ||||
-rw-r--r-- | docs/users_guide/profiling.rst | 25 |
2 files changed, 25 insertions, 1 deletions
diff --git a/docs/users_guide/expected-undocumented-flags.txt b/docs/users_guide/expected-undocumented-flags.txt index 7af6d42080..33958b1578 100644 --- a/docs/users_guide/expected-undocumented-flags.txt +++ b/docs/users_guide/expected-undocumented-flags.txt @@ -97,4 +97,3 @@ -rtsopts=some -syslib -this-component-id --ticky-LNE diff --git a/docs/users_guide/profiling.rst b/docs/users_guide/profiling.rst index d68c056946..dcfd42b84e 100644 --- a/docs/users_guide/profiling.rst +++ b/docs/users_guide/profiling.rst @@ -1740,6 +1740,31 @@ Using “ticky-ticky” profiling (for implementors) Track allocations of dynamic thunks. +.. ghc-flag:: -ticky-LNE + :shortdesc: Treat join point binders similar to thunks/functions. + :type: dynamic + :category: + + These are not allocated, and can be very performance sensitive so we usually don't + want to run ticky counters for these to avoid even worse performance for tickied builds. + + But sometimes having information about these binders is critical. So we have a flag to ticky them + anyway. + +.. ghc-flag:: -ticky-tag-checks + :shortdesc: Emit dummy ticky counters to record how many tag-inference checks tag inference avoided. + :type: dynamic + :category: + + These dummy counters contain: + * The number of avoided tag checks in the entry count. + * "infer" as the argument string to distinguish them from regular counters. + * The name of the variable we are casing on, as well as a unique to represent the inspection site as one variable might be cased on multiple times. + The unique comes first , with the variable coming at the end. Like this: `u10_s98c (Main) at nofib/spectral/simple/Main.hs:677:1 in u10` + where `u10` is the variable and `u10_s98c` the unique associated with the inspection site. + + Note that these counters are currently not processed well be eventlog2html. So if you want to check them you will have to use the text based interface. + GHC's ticky-ticky profiler provides a low-level facility for tracking entry and allocation counts of particular individual closures. Because ticky-ticky profiling requires a certain familiarity with GHC |