[analyzer] Fix [[clang::suppress]] for friend function templates with namespace-scope forward-declarations (#187043)
When a friend function template is defined inline inside a
[[clang::suppress]]-annotated class but was forward-declared at
namespace scope, the instantiation's lexical DeclContext was the
namespace (from the forward-declaration), not the class.
The lexical parent chain walk in BugSuppression::isSuppressed therefore
never reached the class and suppression did not apply.
Fix by extending preferTemplateDefinitionForTemplateSpecializations to
handle FunctionDecl instances: calling getTemplateInstantiationPattern()
that maps the instantiation back to the primary template FunctionDecl,
whose lexical DC is the class where the friend was defined inline.
So the existing parent-chain walk then finds the suppression attribute.
Assisted-By: claude
[mlir][acc] Support call target handling for bind(name) (#187390)
The OpenACC `routine` directive may specify a `bind(name)` clause to
associate the routine with a different symbol for device code. This pass
`ACCBindRoutine` finds calls inside offload regions that target such
routines and rewrites the callee to the bound symbol.
---------
Co-authored-by: Delaram Talaashrafi <dtalaashrafi at nvidia.com>
[AArch64][GlobalISel] Remove fallback for scalar usqadd/suqadd intrinsics
Previously, GlobalISel was failing to select these intrinsics when given scalar operands, as RegBankSelect would place these on GPR banks. Fixing this enables GlobalISel to lower correctly, as in Instruction Selection the intrinsic matches the SIMD patterns.
[Clang] Correctly link and handle PGO options on the GPU (#185761)
Summary:
Currently, the GPU targets ignore the standard profiling arguments. This
PR changes the behavior to use the standard handling, which links the in
the now-present `libclang_rt.profile.a` if the user built with the
compiler-rt support enabled. If it is not present this is a linker error
and we can always suppress with `-Xarch_host` and `-Xarch_device`.
Hopefully this doesn't cause some people pain if they're used to doing
`-fprofile-generate` on a CPU unguarded since it was a stange mix of a
no-op and not a no-op on the GPU until now.
[NFC][LV] Introduce enums for uncountable exit detail and style (#184808)
Recursively splitting out some work from #183318; this covers
the enums for early exit loop type (none, readonly, readwrite)
and the style used (just readonly and
masked-handle-ee-in-scalar-tail for now) and refactoring for
basic use of those enums.
dashboard: firewall: add semantic groups coloring option (#9907)
* firewall.js should keep coloring after reload, use sematic groups block = red
* fixes for review, hash simplification, color palette, action matching
* action is string, include interface, add default color
* Use color schema for chart colors, vary by shades
* fix blocks
* make color schema configurable for widet, defaults to contrast uses Classic10
* changed from select_multi to select, contrast mode matches the old behavior
* use options.colorscheme, fix color cycling bug
* Update src/opnsense/www/js/widgets/Firewall.js
[15 lines not shown]
bootgrid: require selection to be enabled for delete-selected
Logically, multiSelect should be enabled here as well, but leave this
out for now as it may be too wide.
(cherry picked from commit 3069c256806065fc18e4492b0319878d872cd34d)
[offload] - Remove standalone build in favor of 'runtimes' (#170693)
Summary:
Follow up on removal of OPENMP_STANDALONE_BUILD in openmp (#149878).
This
build method is redundant and can be accomplished via runtimes.
Removes support for:
`cmake -S <llvm-project>/offload ...`
Switches over to:
`make -S <llvm-project>/runtimes -DLLVM_ENABLE_RUNTIMES=openmp;offload
...`
Libomptarget has a dependency on libomp.so and requires the omp cmake
target to exist at build time, which is why both runtimes are listed.
Updates cmake compiler logic in offload/CMakeLists.txt to mirror openmp
changes:
[5 lines not shown]
[NFC] Remove fractional part of costs in maxbandwidth-regpressure.ll (#187498)
This test is failing on the llvm-clang-x-aarch64 buildbot due to what
looks like a difference in rounding behaviour when printing estimated
cost per lane. Solve this by removing the fractional part, which is what
we've done in the past when this has happened (e.g. commit aeb88f677).
Some platforms need to declare the vector table in a particular way
for their own reasons. mac68k falls into this category; it needs
be at address $0000.0000 and immediately preceed the Mac ROM variable
storage area.
Provide a hook for this to allow such platforms to use the shared
vector table initialization and manipulation routines.