[all-commits] [llvm/llvm-project] 30efdc: [HLSL] Strict Availability Diagnostics (#93860)
Fangrui Song via All-commits
all-commits at lists.llvm.org
Tue Jun 18 17:39:48 PDT 2024
Branch: refs/heads/users/MaskRay/spr/densemap-update-combinehashvalue
Home: https://github.com/llvm/llvm-project
Commit: 30efdce77e523454a6f1778827170f0e70ba8616
https://github.com/llvm/llvm-project/commit/30efdce77e523454a6f1778827170f0e70ba8616
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/AST/DeclBase.cpp
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/SemaHLSL/Availability/avail-diag-strict-compute.hlsl
A clang/test/SemaHLSL/Availability/avail-diag-strict-lib.hlsl
Log Message:
-----------
[HLSL] Strict Availability Diagnostics (#93860)
Implements HLSL availability diagnostics' strict mode.
HLSL availability diagnostics emits errors or warning when unavailable
shader APIs are used. Unavailable shader APIs are APIs that are exposed
in HLSL code but are not available in the target shader stage or shader
model version.
In the strict mode the compiler emits an error when an unavailable API
is found in any function regardless of whether it is reachable from the
shader entry point or not. This mode is enabled by
``-fhlsl-strict-availability``.
See HLSL Availability Diagnostics design doc
[here](https://github.com/llvm/llvm-project/blob/main/clang/docs/HLSL/AvailabilityDiagnostics.rst)
for more details.
Fixes #90096
Commit: 35a2b60973074ab7b9add53c58acafe166820551
https://github.com/llvm/llvm-project/commit/35a2b60973074ab7b9add53c58acafe166820551
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/test/CodeGenHLSL/builtins/rsqrt.hlsl
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/rsqrt.ll
Log Message:
-----------
[SPIRV][HLSL] Add lowering of `rsqrt` to SPIRV (#95849)
Add lowering of `rsqrt` to SPIRV.
Fixes #88949
Commit: 9a88aa0e2b6d09c7c7932e14224632b2033ad403
https://github.com/llvm/llvm-project/commit/9a88aa0e2b6d09c7c7932e14224632b2033ad403
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Sema/DeclSpec.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p1.cpp
M clang/test/CXX/drs/cwg7xx.cpp
M clang/test/CXX/temp/temp.decls/temp.mem/p2.cpp
M clang/test/CXX/temp/temp.decls/temp.variadic/p5.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p2-0x.cpp
A clang/test/CXX/temp/temp.spec/temp.expl.spec/p2-20.cpp
M clang/test/Modules/Inputs/redecl-templates/a.h
M clang/test/Modules/redecl-templates.cpp
M clang/test/PCH/cxx-templates.h
M clang/test/PCH/cxx1y-variable-templates.cpp
M clang/test/SemaCXX/cxx1y-variable-templates_in_class.cpp
M clang/test/SemaTemplate/explicit-specialization-member.cpp
M clang/test/SemaTemplate/nested-template.cpp
Log Message:
-----------
[Clang][Sema] Diagnose variable template explicit specializations with storage-class-specifiers (#93873)
According to [temp.expl.spec] p2:
> The declaration in an _explicit-specialization_ shall not be an
_export-declaration_. An explicit specialization shall not use a
_storage-class-specifier_ other than `thread_local`.
Clang partially implements this, but a number of issues exist:
1. We don't diagnose class scope explicit specializations of variable
templates with _storage-class-specifiers_, e.g.
```
struct A
{
template<typename T>
static constexpr int x = 0;
template<>
static constexpr int x<void> = 1; // ill-formed, but clang accepts
};
````
2. We incorrectly reject class scope explicit specializations of
variable templates when `static` is not used, e.g.
```
struct A
{
template<typename T>
static constexpr int x = 0;
template<>
constexpr int x<void> = 1; // error: non-static data member cannot be
constexpr; did you intend to make it static?
};
````
3. We don't diagnose dependent class scope explicit specializations of
function templates with storage class specifiers, e.g.
```
template<typename T>
struct A
{
template<typename U>
static void f();
template<>
static void f<int>(); // ill-formed, but clang accepts
};
````
This patch addresses these issues as follows:
- # 1 is fixed by issuing a diagnostic when an explicit
specialization of a variable template has storage class specifier
- # 2 is fixed by considering any non-function declaration with any
template parameter lists at class scope to be a static data member. This
also allows for better error recovery (it's more likely the user
intended to declare a variable template than a "field template").
- # 3 is fixed by checking whether a function template explicit
specialization has a storage class specifier even when the primary
template is not yet known.
One thing to note is that it would be far simpler to diagnose this when
parsing the _decl-specifier-seq_, but such an implementation would
necessitate a refactor of `ParsedTemplateInfo` which I believe to be
outside the scope of this patch.
Commit: 295d5746dfc1ff5ae7d5767c6ada6130a2a69533
https://github.com/llvm/llvm-project/commit/295d5746dfc1ff5ae7d5767c6ada6130a2a69533
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Symbol/DWARFCallFrameInfo.cpp
Log Message:
-----------
[lldb] Remove LLVM_PRETTY_FUNCTION from LLDB_SCOPED_TIMERF
The macro already uses LLVM_PRETTY_FUNCTION as the timer category, so
there's no point in duplicating it in the timer message.
Commit: 7b33c5c79c20745aed953ea5539f32de1a622752
https://github.com/llvm/llvm-project/commit/7b33c5c79c20745aed953ea5539f32de1a622752
Author: Michael Jones <michaelrj at google.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M libc/src/stdio/printf_core/float_dec_converter.h
Log Message:
-----------
[libc] Remove unnecessary check in printf floats (#95841)
Fixes https://github.com/llvm/llvm-project/issues/95638
The check was `if(unsigned_num >= 0)` which will always be true. The
intent was to check for zero, but the `for` loop inside the `if` was
already doing that.
Commit: 04a75f54a11f1f2640a211a81120966c7a24d05b
https://github.com/llvm/llvm-project/commit/04a75f54a11f1f2640a211a81120966c7a24d05b
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M libcxx/include/__config_site.in
M libcxx/include/__format/parser_std_format_spec.h
M libcxx/test/libcxx/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/vprint_unicode.pass.cpp
M libcxx/test/libcxx/input.output/iostream.format/print.fun/transcoding.pass.cpp
M libcxx/test/libcxx/input.output/iostream.format/print.fun/vprint_unicode_posix.pass.cpp
M libcxx/test/libcxx/input.output/iostream.format/print.fun/vprint_unicode_windows.pass.cpp
M libcxx/test/libcxx/utilities/format/format.functions/ascii.pass.cpp
M libcxx/test/libcxx/utilities/format/format.functions/escaped_output.ascii.pass.cpp
M libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.pass.cpp
M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/vprint_unicode.pass.cpp
M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
M libcxx/test/std/input.output/iostream.format/print.fun/vprint_unicode.sh.cpp
M libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char.fsigned-char.pass.cpp
Log Message:
-----------
[libc++] Properly define _LIBCPP_HAS_NO_UNICODE in __config_site (#95138)
Fixes #93638
Co-authored-by: Mark de Wever <koraq at xs4all.nl>
Commit: f80bd9b8a8103f39f5fece019abf86d41098cec1
https://github.com/llvm/llvm-project/commit/f80bd9b8a8103f39f5fece019abf86d41098cec1
Author: Gábor Spaits <gaborspaits1 at gmail.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Initialization.h
M clang/lib/Sema/SemaInit.cpp
A clang/test/SemaCXX/ctad-copy-init-list-narrowing.cpp
Log Message:
-----------
[Sema][CTAD] Allow user defined conversion for copy-list-initialization (#94752)
Fixes #62925.
The following code:
```cpp
#include <map>
int main() {
std::map m1 = {std::pair{"foo", 2}, {"bar", 3}}; // guide #2
std::map m2(m1.begin(), m1.end()); // guide #1
}
```
Is rejected by clang, but accepted by both gcc and msvc:
https://godbolt.org/z/6v4fvabb5 .
So basically CTAD with copy-list-initialization is rejected.
Note that this exact code is also used in a cppreference article:
https://en.cppreference.com/w/cpp/container/map/deduction_guides
I checked the C++11 and C++20 standard drafts to see whether suppressing
user conversion is the correct thing to do for user conversions. Based
on the standard I don't think that it is correct.
```
13.3.1.4 Copy-initialization of class by user-defined conversion [over.match.copy]
Under the conditions specified in 8.5, as part of a copy-initialization of an object of class type, a user-defined
conversion can be invoked to convert an initializer expression to the type of the object being initialized.
Overload resolution is used to select the user-defined conversion to be invoked
```
So we could use user defined conversions according to the standard.
```
If a narrowing conversion is required to initialize any of the elements, the
program is ill-formed.
```
We should not do narrowing.
```
In copy-list-initialization, if an explicit constructor is chosen, the initialization is ill-formed.
```
We should not use explicit constructors.
Commit: 76894c5e6e20bfe8a30f7d8bdd39c41a7af54d65
https://github.com/llvm/llvm-project/commit/76894c5e6e20bfe8a30f7d8bdd39c41a7af54d65
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGenCUDA/builtins-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-unsafe-atomics-gfx90a.cu
M clang/test/CodeGenCUDA/builtins-unsafe-atomics-spirv-amdgcn-gfx90a.cu
M clang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx12.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx8.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx90a.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx940.cl
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
Log Message:
-----------
clang/AMDGPU: Emit atomicrmw from ds_fadd builtins (#95395)
We should have done this for the f32/f64 case a long time ago. Now that
codegen handles atomicrmw selection for the v2f16/v2bf16 case, start emitting
it instead.
This also does upgrade the behavior to respect a volatile qualified pointer,
which was previously ignored (for the cases that don't have an explicit
volatile argument).
Commit: 89fd19509292db64ea6f2fd95e3b7d40cf78b2b1
https://github.com/llvm/llvm-project/commit/89fd19509292db64ea6f2fd95e3b7d40cf78b2b1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.store.ll
Log Message:
-----------
AMDGPU: Fix buffer load/store of pointers (#95379)
Make sure we test all the address spaces since this support isn't
free in gisel.
Commit: 0863bd83e573f5e3e35c5c6b5750ac74f2295f48
https://github.com/llvm/llvm-project/commit/0863bd83e573f5e3e35c5c6b5750ac74f2295f48
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/include/llvm/ADT/ilist_base.h
M llvm/include/llvm/ADT/ilist_iterator.h
M llvm/include/llvm/ADT/ilist_node.h
M llvm/include/llvm/ADT/ilist_node_base.h
M llvm/include/llvm/ADT/ilist_node_options.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/ValueSymbolTable.h
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/unittests/ADT/IListBaseTest.cpp
M llvm/unittests/ADT/IListIteratorBitsTest.cpp
M llvm/unittests/ADT/IListIteratorTest.cpp
M llvm/unittests/ADT/IListNodeBaseTest.cpp
M llvm/unittests/ADT/IListNodeTest.cpp
Log Message:
-----------
[LLVM] Add option to store Parent-pointer in ilist_node_base (#94224)
This patch adds a new option for `ilist`, `ilist_parent<ParentTy>`, that
enables storing an additional pointer in the `ilist_node_base` type to a
specified "parent" type, and uses that option for `Instruction`.
This is distinct from the `ilist_node_with_parent` class, despite their
apparent similarities. The `ilist_node_with_parent` class is a subclass
of `ilist_node` that requires its own subclasses to define a `getParent`
method, which is then used by the owning `ilist` for some of its
operations; it is purely an interface declaration. The `ilist_parent`
option on the other hand is concerned with data, adding a parent field
to the `ilist_node_base` class.
Currently, we can use `BasicBlock::iterator` to insert instructions,
_except_ when either the iterator is invalid (`NodePtr=0x0`), or when
the iterator points to a sentinel value (`BasicBlock::end()`). This patch
results in the sentinel value also having a valid pointer to its owning
basic block, which allows us to use iterators for all insertions,
without needing to store or pass an extra `BasicBlock *BB` argument
alongside it.
Commit: ad2905e52c2016a7de02ace59e33c3ca6ab53cd9
https://github.com/llvm/llvm-project/commit/ad2905e52c2016a7de02ace59e33c3ca6ab53cd9
Author: Maksim Panchenko <maks at fb.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
M bolt/test/X86/linux-alt-instruction.s
Log Message:
-----------
[BOLT] Skip optimization of functions with alt instructions (#95172)
Alternative instructions in the Linux kernel may modify control flow in
a function. As such, it is unsafe to optimize functions with alternative
instructions until we properly support CFG alternatives.
Previously, we marked functions with alt instructions before the
emission, but that could be too late if we remove or replace
instructions with alternatives. We could have marked functions as
non-simple immediately after reading .altinstructions, but it's nice to
be able to view functions after CFG is built. Thus assign the non-simple
status after building CFG.
Commit: d7b5741ad117a068537e2f0101999d1184acab4e
https://github.com/llvm/llvm-project/commit/d7b5741ad117a068537e2f0101999d1184acab4e
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M flang/lib/Parser/prescan.cpp
A flang/test/Preprocessing/multi-cont.F90
Log Message:
-----------
[flang] Fix crash due to overly broad assertion (#95809)
Fix https://github.com/llvm/llvm-project/issues/95689 and add a
regression test.
Commit: 4b57fe65fdc6b8d7163f36440386d1e707d89381
https://github.com/llvm/llvm-project/commit/4b57fe65fdc6b8d7163f36440386d1e707d89381
Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M flang/include/flang/Common/Fortran.h
M flang/include/flang/Evaluate/common.h
M flang/include/flang/Evaluate/target.h
M flang/include/flang/Evaluate/tools.h
M flang/lib/Evaluate/fold-logical.cpp
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Evaluate/tools.cpp
M flang/module/__fortran_builtins.f90
M flang/module/__fortran_ieee_exceptions.f90
M flang/module/ieee_arithmetic.f90
A flang/test/Evaluate/fold-ieee.f90
M flang/test/Lower/Intrinsics/ieee_femodes.f90
M flang/test/Lower/Intrinsics/ieee_festatus.f90
M flang/test/Lower/Intrinsics/ieee_flag.f90
M flang/test/Lower/Intrinsics/ieee_logb.f90
M flang/test/Lower/Intrinsics/ieee_max_min.f90
M flang/test/Lower/Intrinsics/ieee_operator_eq.f90
M flang/test/Lower/Intrinsics/ieee_rounding.f90
Log Message:
-----------
[flang] Fold IEEE_SUPPORT_xxx() intrinsic functions (#95866)
All of the IEEE_SUPPORT_xxx() intrinsic functions must fold to constant
logical values when they have constant arguments; and since they fold to
.TRUE. for currently support architectures, always fold them. But also
put in the infrastructure whereby a driver can initialize Evaluate's
target information to set some of them to .FALSE. if that becomes
necessary.
Commit: 3d2bbea37002e38759c06d975b6656a91e908dc6
https://github.com/llvm/llvm-project/commit/3d2bbea37002e38759c06d975b6656a91e908dc6
Author: Kazu Hirata <kazu at google.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/lib/ProfileData/InstrProfWriter.cpp
Log Message:
-----------
[ProfileData] Clean up validateRecord (#95488)
validateRecord ensures that all the values are unique except for
IPVK_IndirectCallTarget and IPVK_VTableTarget. The problem is that we
exclude them in the innermost loop.
This patch pulls the loop invariant out of the loop. While I am at
it, this patch migrates a use of getValueForSite to
getValueArrayForSite.
Commit: 887bd73d7204a9ae80c608bb7113710be925384b
https://github.com/llvm/llvm-project/commit/887bd73d7204a9ae80c608bb7113710be925384b
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/test/Lower/Intrinsics/reduce.f90
Log Message:
-----------
[flang] Handle procedure pointer and dummy procecure in REDUCE intrinsic calls (#95843)
Add handling for procedure pointer and dummy procedure in REDUCE
intrinsic call lowering.
Commit: 5e20785edc39854751e78dbd102fc9e6fa740fc5
https://github.com/llvm/llvm-project/commit/5e20785edc39854751e78dbd102fc9e6fa740fc5
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Relax cuf.data_transfer verifier (#95974)
Allow data transfer between array reference and array described by a
descriptor.
Commit: e5f16393429bd73ea7d8a73cdc19408114c9e944
https://github.com/llvm/llvm-project/commit/e5f16393429bd73ea7d8a73cdc19408114c9e944
Author: Mats Petersson <mats.petersson at arm.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/test/OpenMP/irbuilder_nested_parallel_for.c
M clang/test/OpenMP/nested_loop_codegen.cpp
A flang/test/Lower/OpenMP/parallel-reduction-mixed.f90
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/openmp-parallel-reduction-cleanup.mlir
M mlir/test/Target/LLVMIR/openmp-reduction-init-arg.mlir
Log Message:
-----------
[Flang]Fix for changed code at the end of AllocaIP. (#92430)
Some of the OpenMP code can change the instruction pointed at by the
insertion point. This leads to an assert in the compiler about
BB->getParent() and IP->getParent() not matching.
The fix is to rebuild the insertionpoint from the block, rather than use
builder.restoreIP.
Also, move some of the alloca generation, rather than skipping back and
forth between insert points (and ensure all the allocas are done before
their users are created).
A simple test, mainly to ensure the minimal reproducer doesn't fail to
compile in the future is also added.
Commit: a03d06a736fd8921c8f40637667d6af9c2c76505
https://github.com/llvm/llvm-project/commit/a03d06a736fd8921c8f40637667d6af9c2c76505
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/include/clang/AST/ASTContext.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/CMakeLists.txt
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/test/CodeGen/aarch64-cpu-supports-target.c
M clang/test/CodeGen/aarch64-sme-intrinsics/aarch64-sme-attrs.cpp
M clang/test/CodeGen/aarch64-targetattr.c
M clang/test/CodeGen/attr-target-version.c
M clang/test/Sema/aarch64-neon-target.c
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_aes_bitperm_sha3_sm4.cpp
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_rotation.cpp
M llvm/include/llvm/TargetParser/AArch64TargetParser.h
M llvm/lib/TargetParser/AArch64TargetParser.cpp
Log Message:
-----------
Reland "[AArch64] Decouple feature dependency expansion. (#94279)" (#95519)
This is the second attempt. When parsing the target attribute
we should be letting cc1 features which don't correspond to
Extensions pass through to avoid errors like the following:
% cat neon.c
__attribute__((target("arch=armv8-a")))
uint64x2_t foo(uint64x2_t a, uint64x2_t b) { return veorq_u64(a, b); }
% clang --target=aarch64-linux-gnu -c neon.c
error: always_inline function 'veorq_u64' requires target feature
'outline-atomics', but would be inlined into function 'foo'
that is compiled without support for 'outline-atomics'
Co-authored-by: Tomas Matheson <Tomas.Matheson at arm.com>
Commit: fad2ad704983ecf975f437f2352b3e72ec8d23a0
https://github.com/llvm/llvm-project/commit/fad2ad704983ecf975f437f2352b3e72ec8d23a0
Author: Nick Desaulniers (paternity leave) <nickdesaulniers at users.noreply.github.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M libc/src/__support/OSUtil/linux/fcntl.cpp
Log Message:
-----------
[libc][fcntl] fix -Wshorten-64-to-32 for 32b ARM (#95945)
Fixes:
llvm-project/libc/src/__support/OSUtil/linux/fcntl.cpp:63:26: error:
implicit conversion loses integer precision: '__off64_t' (aka 'long
long')
to '__off_t' (aka 'long') [-Werror,-Wshorten-64-to-32]
flk->l_start = flk64.l_start;
~ ~~~~~~^~~~~~~
llvm-project/libc/src/__support/OSUtil/linux/fcntl.cpp:64:24: error:
implicit conversion loses integer precision: '__off64_t' (aka 'long
long')
to '__off_t' (aka 'long') [-Werror,-Wshorten-64-to-32]
flk->l_len = flk64.l_len;
~ ~~~~~~^~~~~
We already have an overflow check, just need the cast to be explicit.
This
warning was observed on the 32b ARM build in overlay mode.
Commit: 300c41c2bd5a5a5b5c98c603f64a36d2e4df967f
https://github.com/llvm/llvm-project/commit/300c41c2bd5a5a5b5c98c603f64a36d2e4df967f
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/test/CodeGen/X86/win64-jumptable.ll
Log Message:
-----------
[X86] Use 32-bit jump table entries on Windows (#95962)
Windows doesn't support relative 64-bit relocations.
Fixes #95622
Commit: 66df7657c83a3650312699163e4dce085bd2a160
https://github.com/llvm/llvm-project/commit/66df7657c83a3650312699163e4dce085bd2a160
Author: Kazu Hirata <kazu at google.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/include/llvm/ProfileData/InstrProf.h
Log Message:
-----------
[ProfileData] Remove getValueForSite and getNumValueDataForSite (#95989)
This patch removes getValueForSite and getNumValueDataForSite as I've
migrated all uses of them to getValueArrayForSite.
Commit: 773ee62e16b859f41104c53bc3b80fb318d13eb2
https://github.com/llvm/llvm-project/commit/773ee62e16b859f41104c53bc3b80fb318d13eb2
Author: Kazu Hirata <kazu at google.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/lib/ProfileData/InstrProfWriter.cpp
Log Message:
-----------
[memprof] Rename the members of IndexedMemProfData (NFC) (#94873)
I'm planning to use IndexedMemProfData in MemProfReader and beyond.
Before I do so, this patch renames the members of IndexedMemProfData
as MemProfData.FrameData is a bit mouthful with "Data" repeated twice.
Note that MemProfReader currently has a trio -- IdToFrame,
CSIdToCallStack, and FunctionProfileData. Replacing them with an
instance of IndexedMemProfData allows us to use the move semantics
from the reader to the writer context. More importantly, treating the
profile data as one package makes the maintenance easier. In the
past, forgetting to update a place dealing with the trio has resulted
in a bug where we totally forgot to emit call stacks into the indexed
profile.
Commit: d8b63b680d026ba9c62b99e335cb284d5a73617d
https://github.com/llvm/llvm-project/commit/d8b63b680d026ba9c62b99e335cb284d5a73617d
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/clamp-omod-special-case.mir
Log Message:
-----------
AMDGPU: Don't fold clamp/omod modifiers without nofpexcept (#95950)
Commit: 0f323dc0c43bd45147bdf8ee9cbeef0d8f57165b
https://github.com/llvm/llvm-project/commit/0f323dc0c43bd45147bdf8ee9cbeef0d8f57165b
Author: Tom Stellard <tstellar at redhat.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M flang/CMakeLists.txt
M flang/cmake/modules/AddFlang.cmake
Log Message:
-----------
Revert "[flang] Add FLANG_PARALLEL_COMPILE_JOBS option" (#96000)
Reverts llvm/llvm-project#95672
This is failing on build configurations that use the CMakeLists.txt file
from flang/runtime instead of flang/
Commit: 625fc4b3f2463355053f57baebc76a672935c50b
https://github.com/llvm/llvm-project/commit/625fc4b3f2463355053f57baebc76a672935c50b
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
M flang/lib/Lower/CallInterface.cpp
Log Message:
-----------
[flang][NFC] Fix typo getFuncElementAttrName -> getFuncElementalAttrName (#95998)
Fix type in the getter for the attribute name
Commit: 12cf0dc685a9c3adfefc3a58f0b8ed4360be8b14
https://github.com/llvm/llvm-project/commit/12cf0dc685a9c3adfefc3a58f0b8ed4360be8b14
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-06-19 (Wed, 19 Jun 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M llvm/docs/ReleaseNotes.rst
Log Message:
-----------
Update ReleaseNotes for MC/DC changes. (#95887)
Mostly apparent changes (#82448, #95496) are described here.
Commit: f0a76d5cb53dda912565ab9d1d6807c569e4c636
https://github.com/llvm/llvm-project/commit/f0a76d5cb53dda912565ab9d1d6807c569e4c636
Author: Nico Weber <thakis at chromium.org>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn] port 04a75f54a11f
Commit: c638ba19970905b191d0121a23ce640a3a811b30
https://github.com/llvm/llvm-project/commit/c638ba19970905b191d0121a23ce640a3a811b30
Author: Alexander Shaposhnikov <6532716+alexander-shaposhnikov at users.noreply.github.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/test/Driver/fsanitize.c
Log Message:
-----------
[Clang][Sanitizers] Enable NSAN on X86_64 only (#95885)
This is a follow-up to https://github.com/llvm/llvm-project/pull/93783.
The current set of patches covers only x86_64,
therefore we should not enable this flag on arm64 yet.
Commit: 448bb5cfc999d166d82facd985ba3e2716bfb016
https://github.com/llvm/llvm-project/commit/448bb5cfc999d166d82facd985ba3e2716bfb016
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
A llvm/test/Analysis/ScalarEvolution/trip-count-scalable-stride.ll
Log Message:
-----------
[SCEV] Add coverage for variants of vscale indexing for EVL vectorized loops
Commit: 139f896c0f86ea9cdb13aa94835b48d1e6f63808
https://github.com/llvm/llvm-project/commit/139f896c0f86ea9cdb13aa94835b48d1e6f63808
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2024-06-19 (Wed, 19 Jun 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
Log Message:
-----------
InstrProfiling: Split creating Bias offset to getOrCreateBiasVar(Name). NFC. (#95692)
Commit: 8ea31db27211ed0c8207b4b4b0839e5cbe780c73
https://github.com/llvm/llvm-project/commit/8ea31db27211ed0c8207b4b4b0839e5cbe780c73
Author: Fangrui Song <i at maskray.me>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/test/Transforms/CodeGenPrepare/X86/statepoint-relocate.ll
Log Message:
-----------
[CodeGenPrepare] Use MapVector to stabilize iteration order
DenseMap iteration order is not guaranteed to be deterministic.
Without the change,
llvm/test/Transforms/CodeGenPrepare/X86/statepoint-relocate.ll would
fail when `combineHashValue` changes (#95970).
Fixes: dba7329ebb0dbe1fabb3faaedfd31da3b8bd611d
Commit: 2d24f5c754cda54c970f9e85beba757e4b8dc918
https://github.com/llvm/llvm-project/commit/2d24f5c754cda54c970f9e85beba757e4b8dc918
Author: Fangrui Song <i at maskray.me>
Date: 2024-06-18 (Tue, 18 Jun 2024)
Changed paths:
M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
M bolt/test/X86/linux-alt-instruction.s
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Driver/Options.td
M clang/include/clang/Sema/Initialization.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/DeclBase.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Sema/DeclSpec.cpp
M clang/lib/Sema/SemaAvailability.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p1.cpp
M clang/test/CXX/drs/cwg7xx.cpp
M clang/test/CXX/temp/temp.decls/temp.mem/p2.cpp
M clang/test/CXX/temp/temp.decls/temp.variadic/p5.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p2-0x.cpp
A clang/test/CXX/temp/temp.spec/temp.expl.spec/p2-20.cpp
M clang/test/CodeGen/aarch64-cpu-supports-target.c
M clang/test/CodeGen/aarch64-sme-intrinsics/aarch64-sme-attrs.cpp
M clang/test/CodeGen/aarch64-targetattr.c
M clang/test/CodeGen/attr-target-version.c
M clang/test/CodeGenCUDA/builtins-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-unsafe-atomics-gfx90a.cu
M clang/test/CodeGenCUDA/builtins-unsafe-atomics-spirv-amdgcn-gfx90a.cu
M clang/test/CodeGenHLSL/builtins/rsqrt.hlsl
M clang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx12.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx8.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx90a.cl
M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx940.cl
M clang/test/Driver/fsanitize.c
M clang/test/Modules/Inputs/redecl-templates/a.h
M clang/test/Modules/redecl-templates.cpp
M clang/test/OpenMP/irbuilder_nested_parallel_for.c
M clang/test/OpenMP/nested_loop_codegen.cpp
M clang/test/PCH/cxx-templates.h
M clang/test/PCH/cxx1y-variable-templates.cpp
M clang/test/Sema/aarch64-neon-target.c
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_aes_bitperm_sha3_sm4.cpp
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_rotation.cpp
A clang/test/SemaCXX/ctad-copy-init-list-narrowing.cpp
M clang/test/SemaCXX/cxx1y-variable-templates_in_class.cpp
A clang/test/SemaHLSL/Availability/avail-diag-strict-compute.hlsl
A clang/test/SemaHLSL/Availability/avail-diag-strict-lib.hlsl
M clang/test/SemaTemplate/explicit-specialization-member.cpp
M clang/test/SemaTemplate/nested-template.cpp
M flang/CMakeLists.txt
M flang/cmake/modules/AddFlang.cmake
M flang/include/flang/Common/Fortran.h
M flang/include/flang/Evaluate/common.h
M flang/include/flang/Evaluate/target.h
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
M flang/lib/Evaluate/fold-logical.cpp
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Evaluate/tools.cpp
M flang/lib/Lower/CallInterface.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
M flang/lib/Parser/prescan.cpp
M flang/module/__fortran_builtins.f90
M flang/module/__fortran_ieee_exceptions.f90
M flang/module/ieee_arithmetic.f90
A flang/test/Evaluate/fold-ieee.f90
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Lower/Intrinsics/ieee_femodes.f90
M flang/test/Lower/Intrinsics/ieee_festatus.f90
M flang/test/Lower/Intrinsics/ieee_flag.f90
M flang/test/Lower/Intrinsics/ieee_logb.f90
M flang/test/Lower/Intrinsics/ieee_max_min.f90
M flang/test/Lower/Intrinsics/ieee_operator_eq.f90
M flang/test/Lower/Intrinsics/ieee_rounding.f90
M flang/test/Lower/Intrinsics/reduce.f90
A flang/test/Lower/OpenMP/parallel-reduction-mixed.f90
A flang/test/Preprocessing/multi-cont.F90
M libc/src/__support/OSUtil/linux/fcntl.cpp
M libc/src/stdio/printf_core/float_dec_converter.h
M libcxx/include/__config_site.in
M libcxx/include/__format/parser_std_format_spec.h
M libcxx/test/libcxx/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/vprint_unicode.pass.cpp
M libcxx/test/libcxx/input.output/iostream.format/print.fun/transcoding.pass.cpp
M libcxx/test/libcxx/input.output/iostream.format/print.fun/vprint_unicode_posix.pass.cpp
M libcxx/test/libcxx/input.output/iostream.format/print.fun/vprint_unicode_windows.pass.cpp
M libcxx/test/libcxx/utilities/format/format.functions/ascii.pass.cpp
M libcxx/test/libcxx/utilities/format/format.functions/escaped_output.ascii.pass.cpp
M libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.pass.cpp
M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/vprint_unicode.pass.cpp
M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
M libcxx/test/std/input.output/iostream.format/print.fun/vprint_unicode.sh.cpp
M libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char.fsigned-char.pass.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Symbol/DWARFCallFrameInfo.cpp
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/ADT/ilist_base.h
M llvm/include/llvm/ADT/ilist_iterator.h
M llvm/include/llvm/ADT/ilist_node.h
M llvm/include/llvm/ADT/ilist_node_base.h
M llvm/include/llvm/ADT/ilist_node_options.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/include/llvm/IR/ValueSymbolTable.h
M llvm/include/llvm/ProfileData/InstrProf.h
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/include/llvm/TargetParser/AArch64TargetParser.h
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/ProfileData/InstrProfWriter.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/lib/TargetParser/AArch64TargetParser.cpp
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
A llvm/test/Analysis/ScalarEvolution/trip-count-scalable-stride.ll
M llvm/test/CodeGen/AMDGPU/clamp-omod-special-case.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.store.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/rsqrt.ll
M llvm/test/CodeGen/X86/win64-jumptable.ll
M llvm/test/Transforms/CodeGenPrepare/X86/statepoint-relocate.ll
M llvm/unittests/ADT/IListBaseTest.cpp
M llvm/unittests/ADT/IListIteratorBitsTest.cpp
M llvm/unittests/ADT/IListIteratorTest.cpp
M llvm/unittests/ADT/IListNodeBaseTest.cpp
M llvm/unittests/ADT/IListNodeTest.cpp
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/openmp-parallel-reduction-cleanup.mlir
M mlir/test/Target/LLVMIR/openmp-reduction-init-arg.mlir
Log Message:
-----------
rebase after statepoint fix 8ea31db27211ed0c8207b4b4b0839e5cbe780c73
Created using spr 1.3.5-bogner
Compare: https://github.com/llvm/llvm-project/compare/2ede7c10f0fc...2d24f5c754cd
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list