[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.