Skip to content

Commit 04f968b

Browse files
authored
merge main into amd-staging (llvm#3914)
2 parents f7cd651 + 8b7308f commit 04f968b

File tree

315 files changed

+8621
-6030
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

315 files changed

+8621
-6030
lines changed

.ci/all_requirements.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,9 @@ ml-dtypes==0.5.1 ; python_version < "3.13" \
194194
--hash=sha256:d13755f8e8445b3870114e5b6240facaa7cb0c3361e54beba3e07fa912a6e12b \
195195
--hash=sha256:fd918d4e6a4e0c110e2e05be7a7814d10dc1b95872accbf6512b80a109b71ae1
196196
# via -r mlir/python/requirements.txt
197-
nanobind==2.7.0 \
198-
--hash=sha256:73b12d0e751d140d6c1bf4b215e18818a8debfdb374f08dc3776ad208d808e74 \
199-
--hash=sha256:f9f1b160580c50dcf37b6495a0fd5ec61dc0d95dae5f8004f87dd9ad7eb46b34
197+
nanobind==2.9.2 \
198+
--hash=sha256:c37957ffd5eac7eda349cff3622ecd32e5ee1244ecc912c99b5bc8188bafd16e \
199+
--hash=sha256:e7608472de99d375759814cab3e2c94aba3f9ec80e62cfef8ced495ca5c27d6e
200200
# via -r mlir/python/requirements.txt
201201
numpy==2.0.2 \
202202
--hash=sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a \
@@ -383,6 +383,10 @@ swig==4.3.1 \
383383
--hash=sha256:efec16327029f682f649a26da726bb0305be8800bd0f1fa3e81bf0769cf5b476 \
384384
--hash=sha256:fc496c0d600cf1bb2d91e28d3d6eae9c4301e5ea7a0dec5a4281b5efed4245a8
385385
# via -r lldb/test/requirements.txt
386+
typing-extensions==4.15.0 \
387+
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
388+
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
389+
# via -r mlir/python/requirements.txt
386390
urllib3==2.5.0 \
387391
--hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \
388392
--hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
/runtimes/ @llvm/reviewers-libcxx
1818

1919
/llvm/lib/Analysis/BasicAliasAnalysis.cpp @nikic
20+
/llvm/lib/Analysis/HashRecognize.cpp @artagnon @pfusik
2021
/llvm/lib/Analysis/InstructionSimplify.cpp @nikic
2122
/llvm/lib/Analysis/LazyValueInfo.cpp @nikic
2223
/llvm/lib/Analysis/ScalarEvolution.cpp @nikic

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ Improvements to clang-tidy
126126
- Improved :program:`clang-tidy` option `-quiet` by suppressing diagnostic
127127
count messages.
128128

129+
- Improved :program:`clang-tidy` by not crashing when an empty `directory`
130+
field is used in a compilation database; the current working directory
131+
will be used instead, and an error message will be printed.
132+
129133
New checks
130134
^^^^^^^^^^
131135

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[{
2+
"directory":"/invalid/",
3+
"file":"/tmp/",
4+
"arguments": []
5+
}]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// UNSUPPORTED: system-windows
22

3-
// RUN: not --crash clang-tidy -p %S/Inputs/empty-database %s 2>&1 | FileCheck %s
3+
// RUN: clang-tidy -p %S/Inputs/empty-database %s 2>&1 | FileCheck %s
44

5-
// CHECK: LLVM ERROR: Cannot chdir into ""!
5+
// CHECK: 'directory' field of compilation database is empty; using the current working directory instead.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// UNSUPPORTED: system-windows
2+
3+
// RUN: not --crash clang-tidy -p %S/Inputs/invalid-database %s 2>&1 | FileCheck %s
4+
5+
// CHECK: LLVM ERROR: Cannot chdir into "/invalid/"!

clang/docs/ReleaseNotes.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ Non-comprehensive list of changes in this release
204204
Currently, the use of ``__builtin_dedup_pack`` is limited to template arguments and base
205205
specifiers, it also must be used within a template context.
206206

207+
- ``__builtin_assume_dereferenceable`` now accepts non-constant size operands.
207208

208209
New Compiler Flags
209210
------------------
@@ -631,6 +632,10 @@ X86 Support
631632
- NOTE: Please avoid use of the __builtin_ia32_* intrinsics - these are not
632633
guaranteed to exist in future releases, or match behaviour with previous
633634
releases of clang or other compilers.
635+
- Remove `m[no-]avx10.x-[256,512]` and `m[no-]evex512` options from Clang
636+
driver.
637+
- Remove `[no-]evex512` feature request from intrinsics and builtins.
638+
- Change features `avx10.x-[256,512]` to `avx10.x`.
634639

635640
Arm and AArch64 Support
636641
^^^^^^^^^^^^^^^^^^^^^^^

clang/docs/UsersManual.rst

Lines changed: 6 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -4581,59 +4581,14 @@ implicitly included in later levels.
45814581
- ``-march=x86-64-v3``: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
45824582
- ``-march=x86-64-v4``: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
45834583

4584-
`Intel AVX10 ISA <https://cdrdv2.intel.com/v1/dl/getContent/784267>`_ is
4584+
`Intel AVX10 ISA <https://cdrdv2.intel.com/v1/dl/getContent/784343>`_ is
45854585
a major new vector ISA incorporating the modern vectorization aspects of
45864586
Intel AVX-512. This ISA will be supported on all future Intel processors.
4587-
Users are supposed to use the new options ``-mavx10.N`` and ``-mavx10.N-512``
4588-
on these processors and should not use traditional AVX512 options anymore.
4589-
4590-
The ``N`` in ``-mavx10.N`` represents a continuous integer number starting
4591-
from ``1``. ``-mavx10.N`` is an alias of ``-mavx10.N-256``, which means to
4592-
enable all instructions within AVX10 version N at a maximum vector length of
4593-
256 bits. ``-mavx10.N-512`` enables all instructions at a maximum vector
4594-
length of 512 bits, which is a superset of instructions ``-mavx10.N`` enabled.
4595-
4596-
Current binaries built with AVX512 features can run on Intel AVX10/512 capable
4597-
processors without re-compile, but cannot run on AVX10/256 capable processors.
4598-
Users need to re-compile their code with ``-mavx10.N``, and maybe update some
4599-
code that calling to 512-bit X86 specific intrinsics and passing or returning
4600-
512-bit vector types in function call, if they want to run on AVX10/256 capable
4601-
processors. Binaries built with ``-mavx10.N`` can run on both AVX10/256 and
4602-
AVX10/512 capable processors.
4603-
4604-
Users can add a ``-mno-evex512`` in the command line with AVX512 options if
4605-
they want to run the binary on both legacy AVX512 and new AVX10/256 capable
4606-
processors. The option has the same constraints as ``-mavx10.N``, i.e.,
4607-
cannot call to 512-bit X86 specific intrinsics and pass or return 512-bit vector
4608-
types in function call.
4609-
4610-
Users should avoid using AVX512 features in function target attributes when
4611-
developing code for AVX10. If they have to do so, they need to add an explicit
4612-
``evex512`` or ``no-evex512`` together with AVX512 features for 512-bit or
4613-
non-512-bit functions respectively to avoid unexpected code generation. Both
4614-
command line option and target attribute of EVEX512 feature can only be used
4615-
with AVX512. They don't affect vector size of AVX10.
4616-
4617-
User should not mix the use AVX10 and AVX512 options together at any time,
4618-
because the option combinations are conflicting sometimes. For example, a
4619-
combination of ``-mavx512f -mavx10.1-256`` doesn't show a clear intention to
4620-
compiler, since instructions in AVX512F and AVX10.1/256 intersect but do not
4621-
overlap. In this case, compiler will emit warning for it, but the behavior
4622-
is determined. It will generate the same code as option ``-mavx10.1-512``.
4623-
A similar case is ``-mavx512f -mavx10.2-256``, which equals to
4624-
``-mavx10.1-512 -mavx10.2-256``, because ``avx10.2-256`` implies ``avx10.1-256``
4625-
and ``-mavx512f -mavx10.1-256`` equals to ``-mavx10.1-512``.
4626-
4627-
There are some new macros introduced with AVX10 support. ``-mavx10.1-256`` will
4628-
enable ``__AVX10_1__`` and ``__EVEX256__``, while ``-mavx10.1-512`` enables
4629-
``__AVX10_1__``, ``__EVEX256__``, ``__EVEX512__`` and ``__AVX10_1_512__``.
4630-
Besides, both ``-mavx10.1-256`` and ``-mavx10.1-512`` will enable all AVX512
4631-
feature specific macros. A AVX512 feature will enable both ``__EVEX256__``,
4632-
``__EVEX512__`` and its own macro. So ``__EVEX512__`` can be used to guard code
4633-
that can run on both legacy AVX512 and AVX10/512 capable processors but cannot
4634-
run on AVX10/256, while a AVX512 macro like ``__AVX512F__`` cannot tell the
4635-
difference among the three options. Users need to check additional macros
4636-
``__AVX10_1__`` and ``__EVEX512__`` if they want to make distinction.
4587+
Users are supposed to use the new options ``-mavx10.N`` on these processors
4588+
and should not use traditional AVX512 options anymore. The ``N`` in
4589+
``-mavx10.N`` represents a continuous integer number starting
4590+
from ``1``. Current binaries built with AVX512 features can run on Intel AVX10
4591+
capable processors without re-compile.
46374592

46384593
ARM
46394594
^^^

clang/include/clang/Analysis/FlowSensitive/StorageLocation.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include "clang/AST/Decl.h"
1818
#include "clang/AST/Type.h"
1919
#include "llvm/ADT/DenseMap.h"
20-
#include "llvm/ADT/StringRef.h"
2120
#include "llvm/Support/Debug.h"
2221
#include <cassert>
2322

@@ -153,11 +152,6 @@ class RecordStorageLocation final : public StorageLocation {
153152
return {SyntheticFields.begin(), SyntheticFields.end()};
154153
}
155154

156-
/// Add a synthetic field, if none by that name is already present.
157-
void addSyntheticField(llvm::StringRef Name, StorageLocation &Loc) {
158-
SyntheticFields.insert({Name, &Loc});
159-
}
160-
161155
/// Changes the child storage location for a field `D` of reference type.
162156
/// All other fields cannot change their storage location and always retain
163157
/// the storage location passed to the `RecordStorageLocation` constructor.
@@ -170,11 +164,6 @@ class RecordStorageLocation final : public StorageLocation {
170164
Children[&D] = Loc;
171165
}
172166

173-
/// Add a child storage location for a field `D`, if not already present.
174-
void addChild(const ValueDecl &D, StorageLocation *Loc) {
175-
Children.insert({&D, Loc});
176-
}
177-
178167
llvm::iterator_range<FieldToLoc::const_iterator> children() const {
179168
return {Children.begin(), Children.end()};
180169
}

clang/include/clang/Basic/Builtins.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,7 @@ def BuiltinAssumeAligned : Builtin {
854854
def BuiltinAssumeDereferenceable : Builtin {
855855
let Spellings = ["__builtin_assume_dereferenceable"];
856856
let Attributes = [NoThrow, Const];
857-
let Prototype = "void(void const*, _Constant size_t)";
857+
let Prototype = "void(void const*, size_t)";
858858
}
859859

860860
def BuiltinFree : Builtin {

0 commit comments

Comments
 (0)