Commit Graph

5196 Commits

Author SHA1 Message Date
Vassil Vassilev
ccc4b87fe7 Fix libcxx on osx15.3 2024-03-12 10:59:08 +01:00
Bertrand Bellenot
057bdb107a Fix Clad debug build on Windows 2024-03-06 14:14:05 +01:00
Vassil Vassilev
81c365f899 Bump clad version to v1.4.
This new release includes several fixes helping to simplify RooFit AD backend.

See more at: https://github.com/vgvassilev/clad/releases/tag/v1.4
2024-03-05 18:14:06 +01:00
Devajith Valaparambil Sreeramaswamy
c917ab56f3 Add TableGen-based generator for command line arguments
Upstream moved away from manually declaring `*def` and `*inc` files. These
are now auto-generated with tablegen. This patch does the same for cling,
making it easier to rebase and maintain.
2024-02-23 09:59:07 +01:00
Devajith Valaparambil Sreeramaswamy
c5692e71f1 Use StringRef::{starts,ends}_with
Follows the changes introduced in https://reviews.llvm.org/D136030
2024-02-23 09:44:06 +01:00
Devajith Valaparambil Sreeramaswamy
aa6d4924b5 Add test for std::filesystem::path 2024-02-16 15:59:04 +01:00
Devajith Valaparambil Sreeramaswamy
75b1314f6b Implement value printing for std::filesystem::path 2024-02-16 15:59:04 +01:00
Jonas Hahnfeld
fa648e8fa5 Fix disabling optimizations with CLING_DEBUG
As noted in #14593, the build fails during a rootcling execution when
setting CLING_DEBUG=1 in the environment with
error: invalid integral value '0 -fno-omit-frame-pointer' in '-O0 -fno-omit-frame-pointer'

Upon investigation, it only works in the ROOT prompt because TCling
turns on basic -O1 unless in rootcling. This overrides the (misformed)
"-O0 -fno-omit-frame-pointer". Split the argument in two entries and
move it after inserting the user-provided arguments to properly apply
also on the prompt by now taking precedence over -O1.

Closes #14593
2024-02-14 08:44:06 +01:00
Vassil Vassilev
45d9a081c4 Bump clad version to v1.3. (#14654)
This new release includes performance and stability improvements.

See more at: https://github.com/vgvassilev/clad/releases/tag/v1.3
2024-02-12 22:59:07 +01:00
Devajith Valaparambil Sreeramaswamy
1c6031a02a Explicitly disable RelLookupTableConvertedPass
Before the passmanager update, the function `populateModulePassManager`
was called instead of `buildPerModuleDefaultPipeline` to set the default
passes. But the former did not have `RelLookupTableConverterPass` turned on
by default.
2024-02-08 13:29:21 +01:00
Devajth Valaparambil Sreeramaswamy
1b5103e180 Manually call buildO0DefaultPipeline for the new pass manager
Revert this commit once we have https://reviews.llvm.org/D146200
2024-01-30 09:44:04 +01:00
Devajth Valaparambil Sreeramaswamy
c444493f27 Add callback to not run inliner passes for OptLevel <= 1
Inliner passes disabled with the callback:

- ModuleInlinerWrapperPass
- InlineAdvisorAnalysisPrinterPass
- PartialInlinerPass
- buildInlinerPipeline
- ModuleInlinerPass
- InlinerPass
- InlineAdvisorAnalysis
- PartiallyInlineLibCallsPass
- InlineCostAnnotationPrinterPass
- InlineSizeEstimatorAnalysisPrinterPass
- InlineSizeEstimatorAnalysis
2024-01-30 09:44:04 +01:00
Devajith Valaparambil Sreeramaswamy
80b69f0737 Move from legacy to new pass manager
It is recommended to use a new instance of analysis managers every time
we perform codegen as the analyses might not be cleared. Upstream does
not have any instance where populating pass/analysis managers and
running passes are separated.
2024-01-30 09:44:04 +01:00
Axel Naumann
e5b63c66a6 Support bare # in input line: (#14109)
fixes #11190.

Co-authored-by: Devajith Valaparambil Sreeramaswamy <devajith.valaparambil.sreeramaswamy@cern.ch>
2024-01-25 15:29:08 +01:00
Devajth Valaparambil Sreeramaswamy
67a415356d Add source_location test 2024-01-17 16:29:04 +01:00
Devajith Valaparambil Sreeramaswamy
254f3d57ad Implement value printing for std::source_location 2024-01-17 16:29:04 +01:00
Jonas Hahnfeld
2f99b68754 Fix clad build with LLVM_LIBDIR_SUFFIX
This fixes builtin_llvm=OFF builds on at least EL8 platforms that
currently have exactly LLVM 16.0.6.
2024-01-05 16:44:07 +01:00
Olivier Couet
7a987c29f6 Remove all the references to "drupal". (#14273)
* Remove all the references to "drupal".

* Apply ferdymercury changes. Thanks !
2023-12-20 09:29:05 +01:00
Devajith Valaparambil Sreeramaswamy
a085ccebac Use deduction guides for llvm::ArrayRef 2023-12-13 13:29:07 +01:00
Devajith Valaparambil Sreeramaswamy
879eed2564 Replace llvm::Optional, llvm::None with their std equivalents 2023-12-13 13:29:06 +01:00
Jonas Hahnfeld
cf51c60306 Build demo with C++17 2023-12-12 18:59:06 +01:00
Jonas Hahnfeld
174d4529ab Expect additional error in Prompt/BlockComments.C 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
25ebd992ac Update expected types in output checks 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
a7dd6fde7e Update expected error messages in tests 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
5fda6d38d2 Remove elaborated keyword from output checks
LLVM 16 honors how the declarations were written, without the class
or struct keywords.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
fc12e238fc Remove expected space before array brackets in tests 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
908728f3b0 Expect normalized alias option offload_device_only
See also commit de84bfc508 during the previous LLVM upgrade...
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
444a841163 Fix preprocessor option parsing
Exclude options::DXCOption to avoid confusing the parser with the
second -E option.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
8c369bf487 Avoid unloading Decls not found in DeclContext
This fixes roottest/root/meta/tuple/exec_configtype_unload.C on Windows.

Co-authored-by: Bertrand Bellenot <Bertrand.Bellenot@cern.ch>
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
3d5ba159c6 Desugar UnaryTransformType
This fixes PyROOT's handling of smart pointers, such as shared_ptr,
with the new macOS SDK 14.0 resulting in a remove_extent transform.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
f636e21faa Handle UsingType in GetPartiallyDesugaredType
According to https://github.com/llvm/llvm-project/commit/af27466c50,
it is used to represent types pulled in with a using declaration, for
example `using std::error_code; error_code x;`.

This fixes the build of the ROOTTMVASofie module on macOS where this
was causing `std::size_t` not be fully desugared to `unsigned long`
at first to later end up with two identical classes in a list that
must not have duplicates.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
78f9595644 Update registration of atexit handlers
GenericLLVMIRPlatformSupport now declares atexit, which leads to a
duplicate symbol error during startup and fails the transaction.
Completely switch to the provided infrastructure and just override
the helpers to register the functions with our Interpreter.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
a1598cba14 Update handling of ElaboratedType in GetFullyQualifiedType
In LLVM 16, we now get ElaboratedType far more often, but they don't
have all namespace qualifiers we need. This fixes the build of the
RooFitCore module, but many other places are likely affected as well.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
f62bbfff85 Remove extension of legacy pass manager
adjustPassManager was only used for a few backends, such as AMDGPU
and NVPTX, but not on the CPU architectures we care about.
The DiscriminatorsPass was also removed upstream Clang, see commit
https://github.com/llvm/llvm-project/commit/2978d02681.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
6960639412 Adapt to updated forgetDecl signature
The GlobalDecl parameter wasn't used since quite some time.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
826478d826 Don't print name of EnumDecl if there is none
The function overload without PrintingPolicy is not available in
LLVM 16, see https://reviews.llvm.org/D134813.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
6bfe4c2213 Misc adaptations for updated APIs 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
3b4ec36268 Set MSVolatile in LangOpts 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
733c2eadfa Remove PMBuilder members
These two fields don't exist anymore in LLVM 16.
2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
8994be448b Resource directory based on major version only 2023-12-11 08:59:21 +01:00
Jonas Hahnfeld
f4951f96e9 Update InvocationOptions 2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
aa2213e121 Update for new FileNotFound callback 2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
2c98e68e68 Lexer does not expose getLangOpts() anymore
Store a reference ourselves. Also Lexer::isIdentifierBodyChar() was
renamed to Lexer::isAsciiIdentifierContinueChar().
2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
95a4fc8875 Adapt and heavily simplify ClingJITLinkMemoryManager
Now we can just inherit from InProcessMemoryManager and override the
deallocate() method.
2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
799baa2781 Some changes from JITEvaluatedSymbol to ExecutorAddr 2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
1f68ba7928 MultiLevelTemplateArgumentList
... takes a Decl and a boolean argument Final.
2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
15b5de6398 getQualifiedTemplateName takes a TemplateName 2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
85c348828f CompoundStmt::Create takes FPOptionsOverride 2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
d5aec8274b Adapt arguments for updated APIs
Forwarding data (differently) or passing trivial parameters.
2023-12-11 08:59:20 +01:00
Jonas Hahnfeld
fae810094c Misc renamings and type changes 2023-12-11 08:59:20 +01:00