Skip to content

Commit

Permalink
Merge pull request #49140 from topolarity/tracy-experimental
Browse files Browse the repository at this point in the history
profiling: add Task/GC/Inference/Codegen signposts for Tracy
  • Loading branch information
staticfloat committed Apr 17, 2023
2 parents e3ad0dd + 6ac57e6 commit 386b09f
Show file tree
Hide file tree
Showing 31 changed files with 907 additions and 305 deletions.
12 changes: 10 additions & 2 deletions Make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ WITH_ITTAPI := 0
# Enable Tracy support
WITH_TRACY := 0

# Enable Timing Counts support
WITH_TIMING_COUNTS := 0

# Prevent picking up $ARCH from the environment variables
ARCH:=

Expand Down Expand Up @@ -738,11 +741,16 @@ LIBITTAPI:=-littnotify
endif

ifeq ($(WITH_TRACY), 1)
JCXXFLAGS += -DUSE_TRACY -DTRACY_ENABLE
JCFLAGS += -DUSE_TRACY -DTRACY_ENABLE
JCXXFLAGS += -DUSE_TRACY -DTRACY_ENABLE -DTRACY_FIBERS
JCFLAGS += -DUSE_TRACY -DTRACY_ENABLE -DTRACY_FIBERS
LIBTRACYCLIENT:=-lTracyClient
endif

ifeq ($(WITH_TIMING_COUNTS), 1)
JCXXFLAGS += -DUSE_TIMING_COUNTS
JCFLAGS += -DUSE_TIMING_COUNTS
endif

# ===========================================================================

# Select the cpu architecture to target, or automatically detects the user's compiler
Expand Down
1 change: 1 addition & 0 deletions base/loading.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2102,6 +2102,7 @@ function create_expr_cache(pkg::PkgId, input::String, output::String, output_o::
$trace
-`,
"OPENBLAS_NUM_THREADS" => 1,
"JULIA_WAIT_FOR_TRACY" => nothing,
"JULIA_NUM_THREADS" => 1),
stderr = internal_stderr, stdout = internal_stdout),
"w", stdout)
Expand Down
66 changes: 32 additions & 34 deletions deps/checksums/libtracyclient
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
LibTracyClient.v0.9.0+1.aarch64-apple-darwin.tar.gz/md5/621591ea1b72b07a0be82f87ed29a456
LibTracyClient.v0.9.0+1.aarch64-apple-darwin.tar.gz/sha512/d053db12a0256bd60730f9b9a73ed6308c4cecb3f4a31cb979e1ecd8afbec5e3217b4a4f6355e24fc0c3bcc90dc9a83bf1be1dee467544e15ae6597d9d1a8d01
LibTracyClient.v0.9.0+1.aarch64-linux-gnu.tar.gz/md5/7e2183c4cba6108e39c58e57ba31eb53
LibTracyClient.v0.9.0+1.aarch64-linux-gnu.tar.gz/sha512/a912d329e065aae7a9d5b4392f6c292b68fed5cbd83b06bfddf925601f84bde4a76993864ecf3750fd216313630632157ff2f3f9e659caa71530e31aa738c72d
LibTracyClient.v0.9.0+1.aarch64-linux-musl.tar.gz/md5/a9d1b9700f9ed3c8c70480da7ebf326d
LibTracyClient.v0.9.0+1.aarch64-linux-musl.tar.gz/sha512/e9e928dda72f0b1aa9a92809f6f8b6c9d3c7e99f30d1944725e6d0eae0eeba34928e0262172f6e1ccd10f99dfb44d2e39537663a4ab72ebb3ce65f8f1b001c13
LibTracyClient.v0.9.0+1.armv6l-linux-gnueabihf.tar.gz/md5/7c1541edbe31bfb9e43f4ec09a3aa748
LibTracyClient.v0.9.0+1.armv6l-linux-gnueabihf.tar.gz/sha512/ab8c2502c0fa743538b8929756f283514ee4c69a6fc65555dca7b95021c36ce827ee33e8594d0447f15fa9bd1df873b1a1a75f876989813386f46a803c504c06
LibTracyClient.v0.9.0+1.armv6l-linux-musleabihf.tar.gz/md5/2904a775192b8bb53c170f28d3588ea0
LibTracyClient.v0.9.0+1.armv6l-linux-musleabihf.tar.gz/sha512/1b1288619a72e30a1e414295591d93e122c9c478e574e31c09f49e6ee3b665a64a883cd367566cec9ba95abb5fdcc51056d9853400f441ddd0f27a369a20bae3
LibTracyClient.v0.9.0+1.armv7l-linux-gnueabihf.tar.gz/md5/7773f17dab1acdcb6b9e749dfb04f727
LibTracyClient.v0.9.0+1.armv7l-linux-gnueabihf.tar.gz/sha512/49b7a433aa9945cfd20702584916ab24cf2e35a67804635c11726576763a09c5f2e578002e175d9ca3e109e29c454b4ad5db2e267ed5aeb002eff45965a74704
LibTracyClient.v0.9.0+1.armv7l-linux-musleabihf.tar.gz/md5/9c1799102529603793bf180c2fd432ec
LibTracyClient.v0.9.0+1.armv7l-linux-musleabihf.tar.gz/sha512/ab2fcde7a59754b15d36f39e88fddbf1f198e15221680b9cd0dcb7eb43becc498d17ca1763ec576479646f0d4a1947a9b39f340db800e859751105d7d7aa5ed6
LibTracyClient.v0.9.0+1.i686-linux-gnu.tar.gz/md5/4f64c950d319cdeeec379cef58f41a13
LibTracyClient.v0.9.0+1.i686-linux-gnu.tar.gz/sha512/9258ec31e5023e7b503c36f1d76d4e6c0b7492abeb177ffe772a64da1d5db6f199031d22956a7702a809b1263b49aef614763816d1a18f5590d0a00b3f6243f1
LibTracyClient.v0.9.0+1.i686-linux-musl.tar.gz/md5/d5524ddb8c8537b02b737bd7f2a68275
LibTracyClient.v0.9.0+1.i686-linux-musl.tar.gz/sha512/f149ea48cff01f6cd9da40692eed9900d5b2ff3a3e10e27bb10b62a89034f37f9a68fc080b97d41efb95718472898c8cc6271a8934f907275cde19f44582de08
LibTracyClient.v0.9.0+1.i686-w64-mingw32.tar.gz/md5/c415459220b24c0a67553e4691801639
LibTracyClient.v0.9.0+1.i686-w64-mingw32.tar.gz/sha512/57c8826be9fb049fa418a72dc8fbf576b6fbf45da1662f07ed041b9e55c36e487c02c43a1e64003d76a0040f0e998201e8b0d3853960023ea440a2daadcb4f77
LibTracyClient.v0.9.0+1.powerpc64le-linux-gnu.tar.gz/md5/5eacaa3672522f45733595182ba643fc
LibTracyClient.v0.9.0+1.powerpc64le-linux-gnu.tar.gz/sha512/4edf154a9ac126fe31879b7962af127d99e5afd19dc046275ddb26b9f455431fd6fd398373a01d6f8865b090cb87ed521a5919b8037d569c569c36c7a8a2f72f
LibTracyClient.v0.9.0+1.x86_64-apple-darwin.tar.gz/md5/bb517fdccbf51c7f0889919735889d65
LibTracyClient.v0.9.0+1.x86_64-apple-darwin.tar.gz/sha512/a3587248776c859e60d367e91908e36fd9f7fd3e27320dfac2c7527ee120c1a2652b2da1c0c1a006d2c28c7f93992dd4a3b2565e7f2c5feec6a5661cc4cf080e
LibTracyClient.v0.9.0+1.x86_64-linux-gnu.tar.gz/md5/2dd1cbcf917c7df9df110b99f393b916
LibTracyClient.v0.9.0+1.x86_64-linux-gnu.tar.gz/sha512/3d0dc4cd3df2528678a0305baa23d5cda97406f73a3def3ff2fd8ee2517f07051e19719faf99604fddb3aa5b20574b92b240f7898d392d9e21431f275c0a8aa8
LibTracyClient.v0.9.0+1.x86_64-linux-musl.tar.gz/md5/d1b02aaf45f13ba34f4f1138b83f8ce7
LibTracyClient.v0.9.0+1.x86_64-linux-musl.tar.gz/sha512/7c8a3748238d015de4be7074c1efe72b2cda9dbc23c2ab722750885cd01cd4a6ea6e37b241fc997d41ab3949154b4a5bddbfd8f3a59ca153e9b42136a154a02a
LibTracyClient.v0.9.0+1.x86_64-unknown-freebsd.tar.gz/md5/7bb6f98ab2a39a062293c95f91b959f0
LibTracyClient.v0.9.0+1.x86_64-unknown-freebsd.tar.gz/sha512/72935612fbfb339003b9be38c64a53c6a19a58b8427485b4351f18933a2ec7a4f7bf00556996501ccd3857e8085910af72020e4507951eb8ee094287a82208ae
LibTracyClient.v0.9.0+1.x86_64-w64-mingw32.tar.gz/md5/f3b60a51e8f64ec62c07597f6c4e52f7
LibTracyClient.v0.9.0+1.x86_64-w64-mingw32.tar.gz/sha512/3ef5916f9a441e8655569c803392987a39c3baa79ac9ac446760cc60577619a616ee1365673d5323eb1c5884a6bd9e283b4094cdcbf42eba6b409a0348643b25
libtracyclient-5a1f5371b792c12aea324213e1dc738b2923ae21.tar.gz/md5/62791801e0ffb11a7d70c2d724a230be
libtracyclient-5a1f5371b792c12aea324213e1dc738b2923ae21.tar.gz/sha512/b0570e048eee08ba5e21e0f855b2346cad408b0b86cdf79c8bb3727bb0ab57167dc7988f4dd1ee4157b371135201b87d1491237c09a2934de65eb3b9e26fcdc2
LibTracyClient.v0.9.1+1.aarch64-apple-darwin.tar.gz/md5/540617535443c918d42415d7e775456d
LibTracyClient.v0.9.1+1.aarch64-apple-darwin.tar.gz/sha512/5dc245327900a26f20692c76c6a3043a07ee88010b814bdded79460fd77cd587b69448b074a1afc931290ef7f445771aec71a003d6e425d42c75d2cc72bdf846
LibTracyClient.v0.9.1+1.aarch64-linux-gnu.tar.gz/md5/d2a09ad722a1f15090dd0ae6ce9c37c7
LibTracyClient.v0.9.1+1.aarch64-linux-gnu.tar.gz/sha512/b5e6f44bb4690226dd4176a43824193c7e1a7873cf75c2e261b6cb0a614aad172c0265b6aa89849328133de9894af94a4a38b4362ec8d706d03a0cad4fd1171a
LibTracyClient.v0.9.1+1.aarch64-linux-musl.tar.gz/md5/eccc851b7346590d2636ff585e4b1f55
LibTracyClient.v0.9.1+1.aarch64-linux-musl.tar.gz/sha512/214dd6d7ce70ce11748091143a2e89dfc6b85c62424d971eb973b1126ee3da98d8285c2f5557c7b62523f76e513692947b5ef0f046bdf183da3ddd38554b4a97
LibTracyClient.v0.9.1+1.armv6l-linux-gnueabihf.tar.gz/md5/200b940fb4b6c7f8cb6c621ae4bab347
LibTracyClient.v0.9.1+1.armv6l-linux-gnueabihf.tar.gz/sha512/1213b716ed3680bb8b1a682099ef325a257e29811498a731553c4d6fc8f93831038d211720da1985f72f42c6409ea5e2aa262493557abecb6587d7db69bde737
LibTracyClient.v0.9.1+1.armv6l-linux-musleabihf.tar.gz/md5/44dddf9ef55cd9d222a16eff2b2e14e7
LibTracyClient.v0.9.1+1.armv6l-linux-musleabihf.tar.gz/sha512/ba887e97366e9ac9dbc43864b3d8cd8cdf2db571fb198593f2ae66790fb9cd5a12d4c29088a65bc103939ec029fa426925a0990c0a2b1441fece974b3dabce6c
LibTracyClient.v0.9.1+1.armv7l-linux-gnueabihf.tar.gz/md5/286bbb5c258fcd38224ff03a691cf474
LibTracyClient.v0.9.1+1.armv7l-linux-gnueabihf.tar.gz/sha512/26e85ec00a794901d412bb54d1ea1cbd9c7972e2dcc6fbcad12d520088c4d6d86a8ff7398cff14e60741abb30028fcda39515b2a1ae1a225a3192e9e956a8641
LibTracyClient.v0.9.1+1.armv7l-linux-musleabihf.tar.gz/md5/36b317542174c07c4e85fdffcf5e34c7
LibTracyClient.v0.9.1+1.armv7l-linux-musleabihf.tar.gz/sha512/d9e28e6ebb4537ae4de75ae03bb28d170c7dc92731f6a8d6431ce2e5ee5ad717a04990a42b57898247a5059b8e0d93b5812d6ffc66c94c5571adec2ecfe0555d
LibTracyClient.v0.9.1+1.i686-linux-gnu.tar.gz/md5/1990c1f0701a3c7853fa57e54d214465
LibTracyClient.v0.9.1+1.i686-linux-gnu.tar.gz/sha512/f899f109ad77f2b1964e94242b0a601128b063140190105fd44e43782036ef0134cdc2b6cb1faaf5b7c0742f4a168c7b7870f18d2d18b19fc94d8f269f3027d1
LibTracyClient.v0.9.1+1.i686-linux-musl.tar.gz/md5/eeee122d2166e8a251bcee40d66daede
LibTracyClient.v0.9.1+1.i686-linux-musl.tar.gz/sha512/fcf0de849b8533065e61d5e1528cc1e882d2734c488a030728ec4915651bb2bd049536d9d76ecce3063647d0cd20e10033beb3d8de82e06c9c73e9eb41b12b03
LibTracyClient.v0.9.1+1.i686-w64-mingw32.tar.gz/md5/0f42ad75bb75084e129b0e6fe5e86196
LibTracyClient.v0.9.1+1.i686-w64-mingw32.tar.gz/sha512/28821145c8d3d7d8dc3e1db883478e53b4eacafa5f4deae965057ad6466c683de6bd9265a92f1d63ab587107fbb374f7167ff4be70c5fbdf09db9b57fb619b3e
LibTracyClient.v0.9.1+1.powerpc64le-linux-gnu.tar.gz/md5/1a2243ac3a4efa224da1eaace7aa9278
LibTracyClient.v0.9.1+1.powerpc64le-linux-gnu.tar.gz/sha512/acd17f12afb523348de56f7fa84497468ec5f2f76d9622180e72bded7eb4eda4033e28ed20cb25c7c8049b086c994c10a6d97efae06a661ce7d0d65e5c8bbfd5
LibTracyClient.v0.9.1+1.x86_64-apple-darwin.tar.gz/md5/34a75343f9aed8e6db252cc043b26b09
LibTracyClient.v0.9.1+1.x86_64-apple-darwin.tar.gz/sha512/2eaf4e5ef1959110cecaf467bdc28e92d45862c4d83315fccafbf3ab4e498918f4d715b0303be4e563ac7ddb88c9d9cec71351183c5ec0055759a86341473232
LibTracyClient.v0.9.1+1.x86_64-linux-gnu.tar.gz/md5/d6fcd4255ab1363412e85497770ab522
LibTracyClient.v0.9.1+1.x86_64-linux-gnu.tar.gz/sha512/a879afb13a35d18c8ed5593cf83d48ac228c45c246fa013f5f067fa216b61d2dc5b8adfc4ced6043c331b982d050522b228a5792c707b9deff2fb65b37aa66ea
LibTracyClient.v0.9.1+1.x86_64-linux-musl.tar.gz/md5/0490919c558c5ae8c833934426e0dda4
LibTracyClient.v0.9.1+1.x86_64-linux-musl.tar.gz/sha512/b37637e8530ad9b3cb58732bb35d9634aadaeb5a83815f602d5804d4fff1499ea49ce72300b03036ecd642d0dbd8f86d475b637673bc8d400f70e4cb4cf865eb
LibTracyClient.v0.9.1+1.x86_64-unknown-freebsd.tar.gz/md5/985a19b60f44349870c304c7a140cad8
LibTracyClient.v0.9.1+1.x86_64-unknown-freebsd.tar.gz/sha512/514f01127dcc641ab4b66fac49c0470f6277bff37fbd82084482d3db72e1964d85655ca8aa135dbe08265d711d857ed861eba038a072f8e4fcffeefe3b11808d
LibTracyClient.v0.9.1+1.x86_64-w64-mingw32.tar.gz/md5/a777f0997a238c3f28a362e2998d92a2
LibTracyClient.v0.9.1+1.x86_64-w64-mingw32.tar.gz/sha512/3aa49b49f696792d20265e9947b9a0dc4b888a482617513252176b0ac59db9069c965f01a8c1c253f73050eab3344d9d0b4c26a826ff9bfa92e36eb42814444d
13 changes: 9 additions & 4 deletions deps/libtracyclient.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ LIBTRACYCLIENT_SRCCACHE := $(SRCCACHE)/$(LIBTRACYCLIENT_SRC_DIR)
LIBTRACYCLIENT_CMAKE :=
LIBTRACYCLIENT_CMAKE += -DBUILD_SHARED_LIBS=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_FIBERS=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_BROADCAST=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_SAMPLING=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_ONLY_LOCALHOST=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_CODE_TRANSFER=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_FRAME_IMAGE=ON
Expand All @@ -30,12 +30,17 @@ $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-freebsd-elfw.patch-applied: $(LIBTRACY
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-freebsd-elfw.patch
echo 1 > $@

$(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-crash-handler.patch-applied: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-freebsd-elfw.patch-applied
$(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-sampling.patch-applied: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-freebsd-elfw.patch-applied
cd $(LIBTRACYCLIENT_BUILDDIR) && \
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-no-crash-handler.patch
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-no-sampling.patch
echo 1 > $@

$(LIBTRACYCLIENT_BUILDDIR)/build-configured: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-crash-handler.patch-applied
$(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-plot-config.patch-applied: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-sampling.patch-applied
cd $(LIBTRACYCLIENT_BUILDDIR) && \
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-plot-config.patch
echo 1 > $@

$(LIBTRACYCLIENT_BUILDDIR)/build-configured: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-plot-config.patch-applied
mkdir -p $(dir $@)
cd $(dir $@) && \
$(CMAKE) . $(CMAKE_GENERATOR_COMMAND) $(CMAKE_COMMON) $(LIBTRACYCLIENT_CMAKE) \
Expand Down
8 changes: 4 additions & 4 deletions deps/libtracyclient.version
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
## jll artifact
LIBTRACYCLIENT_JLL_NAME := LibTracyClient
LIBTRACYCLIENT_JLL_VER := 0.9.0+1
LIBTRACYCLIENT_JLL_VER := 0.9.1+1

## source build
LIBTRACYCLIENT_VER := 0.9.0
LIBTRACYCLIENT_BRANCH=v0.9
LIBTRACYCLIENT_SHA1=5a1f5371b792c12aea324213e1dc738b2923ae21
LIBTRACYCLIENT_VER := 0.9.1
LIBTRACYCLIENT_BRANCH=v0.9.1
LIBTRACYCLIENT_SHA1=897aec5b062664d2485f4f9a213715d2e527e0ca
21 changes: 0 additions & 21 deletions deps/patches/libTracyClient-no-crash-handler.patch

This file was deleted.

79 changes: 79 additions & 0 deletions deps/patches/libTracyClient-no-sampling.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
commit 6249999153a9497b32bc84e9dc95a1537a0af714
Author: Cody Tapscott <[email protected]>
Date: Tue Apr 4 15:20:46 2023 -0400

linux: respect `TRACY_NO_SAMPLING` for sys-tracing

This compile-time flag was being ignored on Linux. This change adds
gating for software-sampled stack trace sampling following the same
pattern as other `TRACY_NO_SAMPLE_*` options.

If `TRACY_NO_SAMPLING=1` is provided as an environment variable,
software stack sampling is also disabled.

diff --git a/public/client/TracySysTrace.cpp b/public/client/TracySysTrace.cpp
index 4a562eaa..af0641fe 100644
--- a/public/client/TracySysTrace.cpp
+++ b/public/client/TracySysTrace.cpp
@@ -770,6 +770,13 @@ bool SysTraceStart( int64_t& samplingPeriod )
TracyDebug( "sched_wakeup id: %i\n", wakeupId );
TracyDebug( "drm_vblank_event id: %i\n", vsyncId );

+#ifdef TRACY_NO_SAMPLING
+ const bool noSoftwareSampling = true;
+#else
+ const char* noSoftwareSamplingEnv = GetEnvVar( "TRACY_NO_SAMPLING" );
+ const bool noSoftwareSampling = noSoftwareSamplingEnv && noSoftwareSamplingEnv[0] == '1';
+#endif
+
#ifdef TRACY_NO_SAMPLE_RETIREMENT
const bool noRetirement = true;
#else
@@ -839,28 +846,31 @@ bool SysTraceStart( int64_t& samplingPeriod )
pe.clockid = CLOCK_MONOTONIC_RAW;
#endif

- TracyDebug( "Setup software sampling\n" );
- ProbePreciseIp( pe, currentPid );
- for( int i=0; i<s_numCpus; i++ )
+ if( !noSoftwareSampling )
{
- int fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
- if( fd == -1 )
+ TracyDebug( "Setup software sampling\n" );
+ ProbePreciseIp( pe, currentPid );
+ for( int i=0; i<s_numCpus; i++ )
{
- pe.exclude_kernel = 1;
- ProbePreciseIp( pe, currentPid );
- fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
+ int fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
if( fd == -1 )
{
- TracyDebug( " Failed to setup!\n");
- break;
+ pe.exclude_kernel = 1;
+ ProbePreciseIp( pe, currentPid );
+ fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
+ if( fd == -1 )
+ {
+ TracyDebug( " Failed to setup!\n");
+ break;
+ }
+ TracyDebug( " No access to kernel samples\n" );
+ }
+ new( s_ring+s_numBuffers ) RingBuffer( 64*1024, fd, EventCallstack );
+ if( s_ring[s_numBuffers].IsValid() )
+ {
+ s_numBuffers++;
+ TracyDebug( " Core %i ok\n", i );
}
- TracyDebug( " No access to kernel samples\n" );
- }
- new( s_ring+s_numBuffers ) RingBuffer( 64*1024, fd, EventCallstack );
- if( s_ring[s_numBuffers].IsValid() )
- {
- s_numBuffers++;
- TracyDebug( " Core %i ok\n", i );
}
}
57 changes: 57 additions & 0 deletions deps/patches/libTracyClient-plot-config.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
commit 7151c6afd9cc40877325c64bd19bcff7211fbd59
Author: Bartosz Taudul <[email protected]>
Date: Wed Mar 8 23:18:36 2023 +0100

Add support for configuring plots to C API.

diff --git a/public/client/TracyProfiler.cpp b/public/client/TracyProfiler.cpp
index 6104a7ed..38b5ea13 100644
--- a/public/client/TracyProfiler.cpp
+++ b/public/client/TracyProfiler.cpp
@@ -4149,6 +4149,7 @@ TRACY_API void ___tracy_emit_frame_image( const void* image, uint16_t w, uint16_
TRACY_API void ___tracy_emit_plot( const char* name, double val ) { tracy::Profiler::PlotData( name, val ); }
TRACY_API void ___tracy_emit_plot_float( const char* name, float val ) { tracy::Profiler::PlotData( name, val ); }
TRACY_API void ___tracy_emit_plot_int( const char* name, int64_t val ) { tracy::Profiler::PlotData( name, val ); }
+TRACY_API void ___tracy_emit_plot_config( const char* name, int type, int step, int fill, uint32_t color ) { tracy::Profiler::ConfigurePlot( name, tracy::PlotFormatType(type), step, fill, color ); }
TRACY_API void ___tracy_emit_message( const char* txt, size_t size, int callstack ) { tracy::Profiler::Message( txt, size, callstack ); }
TRACY_API void ___tracy_emit_messageL( const char* txt, int callstack ) { tracy::Profiler::Message( txt, callstack ); }
TRACY_API void ___tracy_emit_messageC( const char* txt, size_t size, uint32_t color, int callstack ) { tracy::Profiler::MessageColor( txt, size, color, callstack ); }
diff --git a/public/tracy/TracyC.h b/public/tracy/TracyC.h
index bedf5e16..736b51ed 100644
--- a/public/tracy/TracyC.h
+++ b/public/tracy/TracyC.h
@@ -11,6 +11,13 @@
extern "C" {
#endif

+enum TracyPlotFormatEnum
+{
+ TracyPlotFormatNumber,
+ TracyPlotFormatMemory,
+ TracyPlotFormatPercentage,
+};
+
TRACY_API void ___tracy_set_thread_name( const char* name );

#define TracyCSetThreadName( name ) ___tracy_set_thread_name( name );
@@ -60,6 +67,8 @@ typedef const void* TracyCZoneCtx;
#define TracyCPlot(x,y)
#define TracyCPlotF(x,y)
#define TracyCPlotI(x,y)
+#define TracyCPlotConfig(x,y,z,w,a)
+
#define TracyCMessage(x,y)
#define TracyCMessageL(x)
#define TracyCMessageC(x,y,z)
@@ -289,11 +298,13 @@ TRACY_API void ___tracy_emit_frame_image( const void* image, uint16_t w, uint16_
TRACY_API void ___tracy_emit_plot( const char* name, double val );
TRACY_API void ___tracy_emit_plot_float( const char* name, float val );
TRACY_API void ___tracy_emit_plot_int( const char* name, int64_t val );
+TRACY_API void ___tracy_emit_plot_config( const char* name, int type, int step, int fill, uint32_t color );
TRACY_API void ___tracy_emit_message_appinfo( const char* txt, size_t size );

#define TracyCPlot( name, val ) ___tracy_emit_plot( name, val );
#define TracyCPlotF( name, val ) ___tracy_emit_plot_float( name, val );
#define TracyCPlotI( name, val ) ___tracy_emit_plot_int( name, val );
+#define TracyCPlotConfig( name, type, step, fill, color ) ___tracy_emit_plot_config( name, type, step, fill, color );
#define TracyCAppInfo( txt, size ) ___tracy_emit_message_appinfo( txt, size );
2 changes: 1 addition & 1 deletion src/aotcompile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1448,7 +1448,7 @@ void jl_dump_native_impl(void *native_code,
const char *asm_fname,
const char *sysimg_data, size_t sysimg_len, ios_t *s)
{
JL_TIMING(NATIVE_DUMP);
JL_TIMING(NATIVE_DUMP, NATIVE_DUMP);
jl_native_code_desc_t *data = (jl_native_code_desc_t*)native_code;
if (!bc_fname && !unopt_bc_fname && !obj_fname && !asm_fname) {
LLVM_DEBUG(dbgs() << "No output requested, skipping native code dump?\n");
Expand Down
Loading

0 comments on commit 386b09f

Please sign in to comment.