Skip to content

Commit bd65384

Browse files
Merge branch 'main' into fixies-missed-opt-152797
2 parents e05e279 + 45a2214 commit bd65384

File tree

330 files changed

+7469
-3155
lines changed

Some content is hidden

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

330 files changed

+7469
-3155
lines changed

.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/docs/ReleaseNotes.rst

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

209+
- ``__builtin_assume_dereferenceable`` now accepts non-constant size operands.
209210

210211
New Compiler Flags
211212
------------------
@@ -379,6 +380,10 @@ X86 Support
379380
- NOTE: Please avoid use of the __builtin_ia32_* intrinsics - these are not
380381
guaranteed to exist in future releases, or match behaviour with previous
381382
releases of clang or other compilers.
383+
- Remove `m[no-]avx10.x-[256,512]` and `m[no-]evex512` options from Clang
384+
driver.
385+
- Remove `[no-]evex512` feature request from intrinsics and builtins.
386+
- Change features `avx10.x-[256,512]` to `avx10.x`.
382387

383388
Arm and AArch64 Support
384389
^^^^^^^^^^^^^^^^^^^^^^^

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/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)