[llvm][release] Link to .jsonl signatures for Windows x86_64 and ARM64 (#183053)
Previously we linked to .sig files, which were created by the person who
built the release.
Now these are built in GitHub so they have .jsonl signature files
instead.
[libc] Fix LIBC_INLINE build error in riscv/irelative.cpp (#183249)
LIBC_INLINE is defined in attributes.h, which was not included. Since
constexpr already implies inline, simply remove the LIBC_INLINE
qualifier from the static helper, matching the x86_64 and aarch64
irelative implementations.
[libclc] Compile with -fdenormal-fp-math=dynamic (#183262)
This PR is extracted from #157633.
`-fdenormal-fp-math=dynamic` is required to defer denormal handling and
should be used for libclc library compilation.
Additionally, if the default ieee value is incompatible with the user
code's denormal-fp-math setting, this mismatch prevents libclc functions
from being inlined.
[OpenCL] Set intel extensions minimum version to OpenCL 1.0 (#176854)
Motivation is similar to b12e070b9238. Following intel extensions are
changed:
cl_intel_required_subgroup_size
cl_intel_subgroups
cl_intel_subgroups_char
cl_intel_subgroups_long
cl_intel_subgroups_short
cl_intel_subgroup_buffer_prefetch
cl_intel_subgroup_local_block_io
cl_intel_device_side_avc_motion_estimation
Relates to https://github.com/KhronosGroup/OpenCL-CTS/pull/2376.
[AArch64][GISel] Fix computeKnownBits through a COPY with different fixed-width vector types (#179123)
Fix an assertion in known bits through a COPY by making computeKnownBits
length-aware for different fixed width vectors. If the lengths of the
vectors are different all lanes are demanded.
Fixes #178242
[MC] Set UseAtForSpecifier in initializeAtSpecifiers and default to false (#183253)
Set UseAtForSpecifier = true inside initializeAtSpecifiers() so that
all targets calling it automatically get the correct setting. Change
the default to false so targets that don't use @ for relocation
specifiers (RISC-V, Sparc, Mips, LoongArch, etc.) don't need to
explicitly opt out. In addition, discourage future targets from using
this @ , which has parsing ambiguity issues.
For ARM and AArch64, move UseAtForSpecifier = false to after the
initializeAtSpecifiers() call.
[Clang][Driver] Move -T option after -L in BareMetal driver (#183055)
`-L` option affects linker script search paths when `-T` is specified. For lld
the order of `-L` and `-T` flags does not matter and paths provided with the
`-L` option will be used. E.g. for the command `ld.lld -T script -L dir`,
`ld.lld` uses `dir` to find `script`. However, for GNU ld the order matters
and only the paths provided before the `-T` option will be used.
This change reorders the flags in BareMetal driver to ensure compatibility with
both GNU ld and lld. It restores the behavior clang-20 and earlier drivers have
for RISC-V. (before merging RISCVToolchain.cpp to Baremetal.cpp). GCC (both
Linux and baremetal) and Clang Linux drivers do the same reordering.
[Windows] Adjust exported symbols to filter out profile symbols (#167985)
When building Clang for Windows with clang-cl with -fprofile-generate
and LLVM_EXPORT_SYMBOLS_FOR_PLUGINS, the build fails with
lld-link: error: too many exported symbols (got 76137, max 65535)
Removing the symbols generated from the use of that flag removes about
13K symbols.
[Windows] Adjust exported symbols to filter out dumpColor and printPretty (#182964)
Like the dump symbols, these symbols are meant for debugging. This is
enough to get from slightly above 65536 exported symbols to slightly
under 65536 exported symbols.
Cc: @michalpaszkowski, @john-brawn-arm
[mlir][linalg] fix specialization of transposed matmul variants (#181387)
Currently all generics that represent `linalg.matmul_transpose_a/b`
variants will get specialized to a regular `linalg.matmul` without any
special indexing maps. This patch fixes this behavior to correctly emit
`linalg.matmul` with the correct indexing maps for the transposed
variants.
[CIR][AArch64] Add lowering + tests for predicated SVE svdup_x builtins (#182542)
This PR adds CIR lowering + tests for the predicated SVE `svdup` builtins
on AArch64. The corresponding ACLE intrinsics are documented at:
https://developer.arm.com/architectures/instruction-sets/intrinsics
This PR covers the merging-predicated variants with suffix `_x`, e.g.
`svdup_n_f32_x`. The corresponding LLVM intrinsics take an undef which
are merged into the result for lanes where the predicate is false.
[lldb][TypeSystem][NFC] Remove unused AccessType parameters to TypeSystemClang APIs (#183023)
In https://github.com/llvm/llvm-project/pull/182956 we stopped using the
access specifiers and unconditionally set all access to `AS_public`.
This patch is a follow-up cleanup to remove all the `AccessType`
parameters of the `TypeSystemClang` APIs (which since
https://github.com/llvm/llvm-project/pull/182956 are never used)
Reapply "[ORC] Simplify WaitingOnGraph::Coalescer::remove." (#183231)
This reapplies 85354c6d8bc, which was reverted in d7347c0b81a due to bot
failures.
In this commit further changes are made to address the bot failure, and
general readability.
WaitingOnGraph::Coalescer::remove is renamed WaitingOnGraph::Coalescer::erase,
since its behavior is now similar to common container erase operations.
WaitingOnGraph::Coalescer::clear is provided to enable a fast reset of
Coalescer state.
SuperNodeBuilder::takeSuperNodes is updated to clear the Coalescer state before
returning the SuperNodes, ensuring that future calls to SuperNodeBuilder::add
do not trip the assert that caused the builder failures.
llvm: Delete bugpoint (#182320)
For crash reduction, I don't think it does anything that llvm-reduce
can't. Pass pipeline reduction also has a separate reduction script.
The main thing there isn't a replacement tool is the miscompilation
reducer, but I'm not sure that's actually functioned for years.
There are still some references to bugpoint in various comments
and pieces of documentation that don't all necessarily make sense
to replace or remove. In particular there are a few passes documented
as "only for bugpoint", but I've left those alone in case they are
useful for manual reductions.
[SystemZ] Allow folding from another MBB in foldMemoryOperandImpl(). (#182921)
After 7c1d517 "[SystemZ] Enable rematerialization for scalar loads
(#179838)", an assertion in foldMemoryOperandImpl() that checked
that the original load and the subsuming instruction are in the same
MBB started to fail.
There is no fundamental reason to not allow this, so this assertion has
been removed and this case is now handled as well by the search that
checks for CC liveness.
[clang][bytecode] Copy EvalID into InterpState (#182913)
So the EvalID there is independent of changes to the one in the Context.
This is currently an NFC change but will make future commits easier.
[clangd] Handle MemberPointerTypeLoc in SelectionTree (#183242)
This is another type loc that overlaps the name of the declaration whose
type it is, and so needs special handling to allow the declaration
itself to be targeted.
Fixes https://github.com/clangd/clangd/issues/2608
[clang][DebugInfo] Add virtuality call-site target information in DWARF. (#182510)
Given the test case:
struct CBase {
virtual void foo();
};
void bar(CBase *Base) {
Base->foo();
}
and using '-emit-call-site-info' with llc, the following DWARF
is produced for the indirect call 'Base->foo()':
1$: DW_TAG_structure_type "CBase"
...
2$: DW_TAG_subprogram "foo"
...
[20 lines not shown]