Skip to content

Conversation

@dpiparo
Copy link
Member

@dpiparo dpiparo commented Jan 24, 2024

Backports of #14358

vgvassilev and others added 5 commits January 24, 2024 15:31
The llvm9 JIT issued callbacks when a symbol was missing and we reacted on it
by loading the relevant library. In root-project/root@9b2041e3 we have kept the
logic but now the JIT started querying more often even for symbols which are
okay to be missing. In turn that leads to scanning all libraries causing
performance issues.

This patch tries to limit this functionality only in contexts where automatic
loading is allowed.
Symbol lookup is a quite expensive operation and might result in JIT
compilation and library loading.

Co-authored-by: Jonas Hahnfeld <[email protected]>
This allows us to avoid generating symbols in libCore for these constants
keeping the same amount of open calls at ROOT startup time.
`TInterpreter::Declare` does not support issuing statements on the global scope, while `TInterpreter::ProcessLine` does. This test was first introduced in a development version of ROOT (6.31), where the upgrade to LLVM16 was already in place. In that scenario, clang supports global scope statements (thanks to changes made for clang-repl). Applying the test to ROOT 6.30 uncovered the problem, since the clang of LLVM13 does not support global scope statements. Fix the test by using `ProcessLine` instead of `Declare` which does the intended thing independently from the ROOT version.

Co-authored-by: Vassil Vassilev <[email protected]>
@dpiparo dpiparo requested a review from vepadulano January 24, 2024 16:24
@dpiparo dpiparo self-assigned this Jan 24, 2024
@dpiparo dpiparo removed the request for review from Axel-Naumann January 24, 2024 16:24
@phsft-bot
Copy link

Starting build on ROOT-performance-centos8-multicore/soversion, ROOT-ubuntu2204/nortcxxmod, ROOT-ubuntu2004/python3, mac12arm/cxx20, windows10/default
How to customize builds

@dpiparo dpiparo merged commit 19eff09 into root-project:v6-28-00-patches Jan 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants