[all-commits] [llvm/llvm-project] 94204f: [flang][OpenMP] Fix location of `barrier` in `copy...
Fangrui Song via All-commits
all-commits at lists.llvm.org
Wed May 8 11:46:56 PDT 2024
Branch: refs/heads/users/MaskRay/spr/mcclangllvm-readobjyaml2obj-support-crel-relocation-format
Home: https://github.com/llvm/llvm-project
Commit: 94204f59e92473bb19333f40a2250b64a398191a
https://github.com/llvm/llvm-project/commit/94204f59e92473bb19333f40a2250b64a398191a
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
A flang/test/Lower/OpenMP/copyin-order.f90
Log Message:
-----------
[flang][OpenMP] Fix location of `barrier` in `copyin` clause (#91214)
Insert the barrier after the last _executed_ copy, not the most recently
inserted copy.
This fixes https://github.com/llvm/llvm-project/issues/91205.
Commit: fcf341d3ddfe2289ac88aa3c122b25df8732cc8e
https://github.com/llvm/llvm-project/commit/fcf341d3ddfe2289ac88aa3c122b25df8732cc8e
Author: Alan Zhao <ayzhao at google.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M llvm/include/llvm/Analysis/CFG.h
M llvm/lib/Analysis/CFG.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
A llvm/test/Transforms/Coroutines/coro-lifetime-end.ll
Log Message:
-----------
[coro][CoroSplit] Use `llvm.lifetime.end` to compute putting objects on the frame vs the stack (#90265)
The current logic for using lifetime intrinsics to determine whether a
coroutine alloca should live on the coroutine frame or stack doesn't
consider `llvm.lifetime.end`. As a result, some allocas are incorrectly
placed on the stack even though their lifetimes may outlive the stack.
For example, SimplifyCFG may generate code that drops the corresponding
`llvm.lifetime.end` of an `llvm.lifetime.start`, and that code is
incorrectly handled by the existing logic.
To fix this, new logic is introduced where if an alloca's address is
escaped, and there is a path from an `llvm.lifetime.start` to a
coroutine suspend point (e.g. `llvm.coro.suspend`) without an
`llvm.lifetime.end`, then we know the object lives beyond the suspension
point and therefore must go on the coroutine frame.
Fixes https://github.com/llvm/llvm-project/issues/86580
Commit: ee36dd20e7a15dd5d66223592650655c8cf743fe
https://github.com/llvm/llvm-project/commit/ee36dd20e7a15dd5d66223592650655c8cf743fe
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Fix layering_check with macOS targets (#91260)
Commit: 144091b361c6419ea37ae96341980481e90c4122
https://github.com/llvm/llvm-project/commit/144091b361c6419ea37ae96341980481e90c4122
Author: David Tenty <daltenty at ibm.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M openmp/CMakeLists.txt
Log Message:
-----------
[OpenMP][CMake] Revert standalone build LIBOMP_HEADERS_INSTALL_PATH (#91243)
Revert the portion of https://github.com/llvm/llvm-project/pull/75125
which modified the LIBOMP_HEADERS_INSTALL_PATH in standalone build.
This change is harmful for real standalone builds (i.e. builds where we
build openmp by itself), since it tries to overwrite the `omp.h` inside
the build compiler. For all-in-one builds with clang, testing shows this
change is unnecessary as https://github.com/llvm/llvm-project/pull/88007
already set up that build configuration so that omp.h will be put into
the project build's `clang` resource directory.
Commit: afeedd9c3d4c0fc1f8022a970137dd3ea410f865
https://github.com/llvm/llvm-project/commit/afeedd9c3d4c0fc1f8022a970137dd3ea410f865
Author: Chris B <chris.bieneman at me.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
A llvm/docs/DirectX/DXContainer.rst
M llvm/docs/DirectXUsage.rst
Log Message:
-----------
[DirectX][docs] Document DXContainer format (#90908)
This adds a document to describe the DXContainer format and the
structures of data inside the file.
Resolves #88775
Commit: b21d2de661994f37ffb9c79fede3154d96f89db2
https://github.com/llvm/llvm-project/commit/b21d2de661994f37ffb9c79fede3154d96f89db2
Author: Chris B <chris.bieneman at me.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/lib/Sema/SemaExpr.cpp
M clang/test/AST/HLSL/vector-constructors.hlsl
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
A clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes.hlsl
A clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_202x.hlsl
A clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_no_16bit.hlsl
M clang/test/SemaHLSL/Types/BuiltinVector/ScalarSwizzles.hlsl
R clang/test/SemaHLSL/literal_suffixes.hlsl
R clang/test/SemaHLSL/literal_suffixes_no_16bit.hlsl
Log Message:
-----------
[HLSL] Implement 202x conforming literals (#91015)
This implements the HLSL 202x conforming literals feature.
The feature proposal is available here:
https://github.com/microsoft/hlsl-specs/blob/main/proposals/0017-conforming-literals.md
The language specification for this behavior is available in (poorly
rendered) HTML or PDF:
https://microsoft.github.io/hlsl-specs/specs/hlsl.html#Lex.Literal.Float
https://microsoft.github.io/hlsl-specs/specs/hlsl.pdf
The main implementation details are:
1) Unsuffixed floating literals are `float`.
2) The integer `ll` suffix specifies `int64_t (aka long)` which is
64-bit because HLSL has no defined `long` keyword or `long long` type.
Resolves #85714
Commit: 3809e20afc68d7d03821f0ec59b928dcf9befbf4
https://github.com/llvm/llvm-project/commit/3809e20afc68d7d03821f0ec59b928dcf9befbf4
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M lldb/source/API/CMakeLists.txt
Log Message:
-----------
[lldb] Use add_custom_command for SBLanguages.h (#91254)
Use add_custom_command instead of add_custom_target to generate
SBLanguages.h.
Commit: 89e0557e48155d7eaab2a25426f6dfc9493f2474
https://github.com/llvm/llvm-project/commit/89e0557e48155d7eaab2a25426f6dfc9493f2474
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M flang/test/Lower/OpenMP/copyin-order.f90
Log Message:
-----------
[flang][OpenMP] Fix comments in test file, NFC
Address review comments for PR91214.
Commit: 080978dd2067d0c9ea7e229aa7696c2480d89ef1
https://github.com/llvm/llvm-project/commit/080978dd2067d0c9ea7e229aa7696c2480d89ef1
Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/lib/Basic/Targets.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/test/CodeGenHLSL/basic-target.c
M clang/test/Driver/dxc_dxv_path.hlsl
M clang/test/Options/enable_16bit_types_validation.hlsl
M clang/unittests/Driver/DXCModeTest.cpp
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/IR/Verifier.cpp
M llvm/lib/TargetParser/Triple.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
Log Message:
-----------
[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (#90809)
An earlier commit provided a way to decouple DXIL version from Shader
Model version by representing the DXIL version as `SubArch` in the DXIL
Target Triple and adding corresponding valid DXIL Arch types.
This change constructs DXIL target triple with DXIL version that is
deduced from Shader Model version specified in the following scenarios:
1. When compilation target profile is specified:
For e.g., DXIL target triple `dxilv1.8-unknown-shader6.8-library` is
constructed when `-T lib_6_8` is specified.
2. When DXIL target triple without DXIL version is specified:
For e.g., DXIL target triple `dxilv1.8-pc-shadermodel6.8-library` is
constructed when `-mtriple=dxil-pc-shadermodel6.8-library` is specified.
Updated relevant HLSL tests that check for target triple.
Validated that Clang (`check-clang`) and LLVM (`check-llvm`) regression
tests pass.
Commit: ee9ca120e037b668c5d26853719368490a71fd40
https://github.com/llvm/llvm-project/commit/ee9ca120e037b668c5d26853719368490a71fd40
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M flang/include/flang/Semantics/tools.h
M flang/test/Lower/CUDA/cuda-data-attribute.cuf
Log Message:
-----------
[flang][cuda] Avoid generating wrong fir.cuda_free op (#91255)
fir.cuda_free operation was wrongly generated for dummy argument.
Commit: 096f85e827b6fdf52ff1f8d99aa8335a885b46a1
https://github.com/llvm/llvm-project/commit/096f85e827b6fdf52ff1f8d99aa8335a885b46a1
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M libc/src/__support/CPP/atomic.h
Log Message:
-----------
[libc] add more APIs of cmgxchg variants (#91208)
Such APIs are useful in lock implementations
Commit: 29d447a6e446e7fd78bd28af28bbf7dd377ade10
https://github.com/llvm/llvm-project/commit/29d447a6e446e7fd78bd28af28bbf7dd377ade10
Author: Ian Anderson <iana at apple.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang-tools-extra/clang-include-fixer/find-all-symbols/STLPostfixHeaderMap.cpp
M clang-tools-extra/clangd/index/CanonicalIncludes.cpp
M clang/lib/Headers/CMakeLists.txt
A clang/lib/Headers/__stdarg_header_macro.h
A clang/lib/Headers/__stddef_header_macro.h
M clang/lib/Headers/module.modulemap
M clang/lib/Headers/stdarg.h
M clang/lib/Headers/stddef.h
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
Log Message:
-----------
[clang][modules] stdarg.h and stddef.h shouldn't directly declare anything (#90676)
stdarg.h and especially stddef.h are textual and so everything they
declare gets precompiled into all of their clients' pcm files. They
shouldn't directly declare anything though, their purpose is to select
what submodules get imported, and not to add duplicate declarations to
all of their clients. Make it so that they always ignore their header
guards, even without modules, and declare them in separate header files
so that they only go into the stdarg/stddef pcms. Still declare them in
case clients rely on them.
Commit: b86accceee0c7c5d36ecdc1629d00e6303f29955
https://github.com/llvm/llvm-project/commit/b86accceee0c7c5d36ecdc1629d00e6303f29955
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/test/Analysis/Checkers/WebKit/call-args.cpp
Log Message:
-----------
[alpha.webkit.UncountedCallArgsChecker] Treat (foo())->bar() like foo()->bar(). (#91052)
Commit: 6d6693e9f5376ac8c809a36e1ba4a8c47f311a70
https://github.com/llvm/llvm-project/commit/6d6693e9f5376ac8c809a36e1ba4a8c47f311a70
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/RefCntblBaseVirtualDtorChecker.cpp
M clang/test/Analysis/Checkers/WebKit/ref-cntbl-base-virtual-dtor-templates.cpp
Log Message:
-----------
[webkit.RefCntblBaseVirtualDtor] Ignore WTF::RefCounted<T> and its variants missing virtual destructor (#91009)
Commit: 2287f8d2353dadcbe210e07776c927c9fabca57c
https://github.com/llvm/llvm-project/commit/2287f8d2353dadcbe210e07776c927c9fabca57c
Author: antangelo <contact at antangelo.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M llvm/test/CodeGen/X86/dynamic-regmask-preserve-none.ll
Log Message:
-----------
[NFC][X86] Fix check directive typo in preserve_none dynamic regmask test (#91048)
Fixes an inactive check line and updates the check to match output and
other cases.
Commit: 6e5ed351be68017e46120b8ad1aa89d75b0ca204
https://github.com/llvm/llvm-project/commit/6e5ed351be68017e46120b8ad1aa89d75b0ca204
Author: alx32 <103613512+alx32 at users.noreply.github.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M lld/MachO/ObjC.cpp
Log Message:
-----------
[lld-macho] Fix category merging category map non-determinism (#91159)
Currently in `ObjcCategoryMerger::doMerge` and
`generateCatListForNonErasedCategories` we use maps of pointers which
leads to non-determinism. Switch instead to using `MapVector` which
preserves determinism.
Commit: 924384161ffceda08099536dd07a953299a69b53
https://github.com/llvm/llvm-project/commit/924384161ffceda08099536dd07a953299a69b53
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/include/llvm/Analysis/CFG.h
M llvm/lib/Analysis/CFG.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
R llvm/test/Transforms/Coroutines/coro-lifetime-end.ll
Log Message:
-----------
Revert "[coro][CoroSplit] Use `llvm.lifetime.end` to compute putting objects on the frame vs the stack (#90265)"
This reverts commit fcf341d3ddfe2289ac88aa3c122b25df8732cc8e.
Causes major compile-time regressions when not using coroutines.
Commit: de8cf69abf4f8b16d5c5ecb77a6dfb1f5c09e45a
https://github.com/llvm/llvm-project/commit/de8cf69abf4f8b16d5c5ecb77a6dfb1f5c09e45a
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
[LangRef] callbr result can be used in all successors (#91167)
Originally, the callbr result could only be used on the fallthrough
destination. This limitation has been lifted, and the result is now also
available on the indirect destinations. However, LangRef was not updated
to reflect this.
Commit: f34d30cdae0f59698f660d5cc8fb993fb3441064
https://github.com/llvm/llvm-project/commit/f34d30cdae0f59698f660d5cc8fb993fb3441064
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/nonnull.ll
Log Message:
-----------
[FunctionAttrs] Fix incorrect nonnull inference for non-inbounds GEP (#91180)
For inbounds GEPs, if the source pointer is non-null, the result must
also be non-null. However, this does not hold for non-inbounds GEPs.
Fixes https://github.com/llvm/llvm-project/issues/91177.
Commit: fd0ffb74389d6bf52c5c2afc8cd0a4e26cfa6c2f
https://github.com/llvm/llvm-project/commit/fd0ffb74389d6bf52c5c2afc8cd0a4e26cfa6c2f
Author: Monad <yanwqmonad at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/known-power-of-two-urem.ll
Log Message:
-----------
[ValueTracking] Recognize `LShr(UINT_MAX, Y) + 1` as a power-of-two (#91171)
There is a missed optimization in
``` llvm
define i8 @known_power_of_two_rust_next_power_of_two(i8 %x, i8 %y) {
%2 = add i8 %x, -1
%3 = tail call i8 @llvm.ctlz.i8(i8 %2, i1 true)
%4 = lshr i8 -1, %3
%5 = add i8 %4, 1
%6 = icmp ugt i8 %x, 1
%p = select i1 %6, i8 %5, i8 1
%r = urem i8 %y, %p
ret i8 %r
}
```
which is extracted from the Rust code
``` rust
fn func(x: usize, y: usize) -> usize {
let z = x.next_power_of_two();
y % z
}
```
Here `%p` (a.k.a `z`) is semantically a power-of-two, so `y urem p` can
be optimized to `y & (p - 1)`. (Alive2 proof:
https://alive2.llvm.org/ce/z/H3zooY)
---
It could be generalized to recognizing `LShr(UINT_MAX, Y) + 1` as a
power-of-two, which is what this PR does.
Alive2 proof: https://alive2.llvm.org/ce/z/zUPTbc
Commit: 0ab4458df0688955620b72cc2c72a32dffad3615
https://github.com/llvm/llvm-project/commit/0ab4458df0688955620b72cc2c72a32dffad3615
Author: Monad <yanwqmonad at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/cttz.ll
Log Message:
-----------
[InstCombine] Fold `cttz(lshr(-1, x) + 1)` to `width - x` (#91244)
Fold
``` llvm
define i64 @src(i64 %50) {
%52 = lshr i64 -1, %50
%53 = add i64 %52, 1
%54 = call i64 @llvm.cttz.i64(i64 %53, i1 false)
ret i64 %54
}
```
to
``` llvm
define i64 @tgt(i64 %50) {
%52 = sub i64 64, %50
ret i64 %52
}
```
as
https://github.com/llvm/llvm-project/pull/91171#pullrequestreview-2040663002
pointed out.
Alive2 proof: https://alive2.llvm.org/ce/z/2aHfYa
Note: the `ctlz` version of this pattern seems not exist in dtcxzyw's
benchmark, so put it aside for now.
Commit: 178ff395006f204265b4f6fe72a3dbb2b9a79b47
https://github.com/llvm/llvm-project/commit/178ff395006f204265b4f6fe72a3dbb2b9a79b47
Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/lib/Basic/Targets.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/test/CodeGenHLSL/basic-target.c
M clang/test/Driver/dxc_dxv_path.hlsl
M clang/test/Options/enable_16bit_types_validation.hlsl
M clang/unittests/Driver/DXCModeTest.cpp
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/IR/Verifier.cpp
M llvm/lib/TargetParser/Triple.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
Log Message:
-----------
Revert "[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version" (#91290)
Reverts llvm/llvm-project#90809
Need to investigate ASAN failures.
Commit: 3e54768d7a0e1cfa65e892b6602993192ecad91e
https://github.com/llvm/llvm-project/commit/3e54768d7a0e1cfa65e892b6602993192ecad91e
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M offload/plugins-nextgen/host/CMakeLists.txt
M offload/plugins-nextgen/host/src/rtl.cpp
Log Message:
-----------
[Offload] Detect target triple from preprocessor instead of CMake (#91283)
Summary:
This patch removes the special-case handling for the target triple
inside of the CMake. I moved it into the implementation so it's easier
to see and modify.
Commit: 37fcb323f61efb8dfb74548a1b472fa20e829170
https://github.com/llvm/llvm-project/commit/37fcb323f61efb8dfb74548a1b472fa20e829170
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/test/CodeGen/RISCV/rvv/extract-subvector.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fpext-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-load-store.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-load.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-store.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfpext-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfptrunc-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/insert-subvector.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-vp.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-vp.ll
Log Message:
-----------
[RISCV] Add codegen support for Zvfbfmin (#87911)
This patch adds basic codegen support for Zvfbfmin extension.
Commit: aac83fcf3ec6bbe5e0d83b76d2d236b1b4bfbe89
https://github.com/llvm/llvm-project/commit/aac83fcf3ec6bbe5e0d83b76d2d236b1b4bfbe89
Author: SahilPatidar <patidarsahil2001 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/Transforms/Reassociate/reassoc_bool.ll
A llvm/test/Transforms/Reassociate/reassoc_bool_vec.ll
Log Message:
-----------
[Reassociate] Adds test coverage for reassociation of scalar & vector boolean types (#89899)
First step for #64840.
Commit: 236b3e1aad45e2bab8ede0da6397b7b01f9cc9d8
https://github.com/llvm/llvm-project/commit/236b3e1aad45e2bab8ede0da6397b7b01f9cc9d8
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/docs/ClangFormatStyleOptions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Format/Format.h
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Format/WhitespaceManager.cpp
M clang/lib/Format/WhitespaceManager.h
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTestJava.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Handle Java switch expressions (#91112)
Also adds AllowShortCaseExpressionOnASingleLine option and
AlignCaseArrows suboption of AlignConsecutiveShortCaseStatements.
Fixes #55903.
Commit: f9d76197ff0099502cf001abe3f5310c5bc4532d
https://github.com/llvm/llvm-project/commit/f9d76197ff0099502cf001abe3f5310c5bc4532d
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/Type.cpp
A clang/test/Modules/pr91105.cppm
Log Message:
-----------
[ASTContext] Profile Dependently-sized array types that do not have a specified number
of elements
Close https://github.com/llvm/llvm-project/issues/91105
The root reason for the issue is that we always generate the
dependently-sized array types which don't specify a number of elements.
The original comment says:
> We do no canonicalization here at all, which is okay
> because they can't be used in most locations.
But now we find the locations.
Commit: 4cce9fbb4e086170f69bfc8766f9613673b441c9
https://github.com/llvm/llvm-project/commit/4cce9fbb4e086170f69bfc8766f9613673b441c9
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M clang/lib/Headers/arm_acle.h
M clang/test/Headers/arm-acle-header.c
Log Message:
-----------
[Arm64EC] Fix compilation of arm_acle.h (#91281)
Commit: dfa7ff97b24dc5a3dd714b45af288812c13d0110
https://github.com/llvm/llvm-project/commit/dfa7ff97b24dc5a3dd714b45af288812c13d0110
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/Serialization/ASTWriter.h
M clang/lib/Serialization/ASTWriter.cpp
A clang/test/Modules/function-transitive-change.cppm
M clang/test/Modules/no-transitive-source-location-change.cppm
Log Message:
-----------
[C++20] [Modules] [Reduced BMI] Combine the signature of used modules
into the current module
Following of https://github.com/llvm/llvm-project/pull/86912. After
https://github.com/llvm/llvm-project/pull/86912, with reduced BMI, the
BMI can keep unchange if the dependent modules only changes the
implementation (without introduing new decls). However, this is not
strictly correct.
For example:
```
// a.cppm
export module a;
export inline int a() { ... }
// b.cppm
export module b;
import a;
export inline int b() { return a(); }
```
Since both `a()` and `b()` are inline, we need to make sure the BMI of
`b.pcm` will change after the implementation of `a()` changes.
We can't get that naturally since we won't record the body of `a()`
during the writing process. We can't reuse ODRHash here since ODRHash
won't calculate the called function recursively. So ODRHash will be
problematic if `a()` calls other inline functions.
Probably we can solve this by a new hash mechanism. But the safety and
efficiency may a problem too. Here we just combine the hash value of the
used modules conservatively.
Commit: 02ce8227ac28e0b83cf780716ae8f912d076eebe
https://github.com/llvm/llvm-project/commit/02ce8227ac28e0b83cf780716ae8f912d076eebe
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M openmp/runtime/src/include/ompx.h.var
Log Message:
-----------
[NFC][OpenMP][OMPX] Move `declare variant` up
Commit: 879245e2b5d48b629e8b085afacf69cc1fd6a6ec
https://github.com/llvm/llvm-project/commit/879245e2b5d48b629e8b085afacf69cc1fd6a6ec
Author: Mingming Liu <mingmingl at google.com>
Date: 2024-05-06 (Mon, 06 May 2024)
Changed paths:
M llvm/include/llvm/Analysis/IndirectCallVisitor.h
Log Message:
-----------
[NFC]Extract the heuristic to find vtable for an indirect call into a helper function (#81024)
* This way the helper function could be re-used by
indirect-call-promotion pass to find out the vtable for an indirect call
and extract the value profiles if any.
* The parent patch is https://github.com/llvm/llvm-project/pull/80762
Commit: b42f553af5179b26efe38bee2c1b7aa365b06517
https://github.com/llvm/llvm-project/commit/b42f553af5179b26efe38bee2c1b7aa365b06517
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelperVectorOps.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
M llvm/test/CodeGen/AArch64/extract-vector-elt.ll
Log Message:
-----------
[GlobalIsel] Combine extract vector element (#90339)
look through shuffle vectors
Commit: ad9f38d0e3a5e7e06c39dbd7da88a921a49aa805
https://github.com/llvm/llvm-project/commit/ad9f38d0e3a5e7e06c39dbd7da88a921a49aa805
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/test/Modules/no-transitive-source-location-change.cppm
Log Message:
-----------
[NFC] Fix Modules/no-transitive-source-location-change.cppm after dfa7ff97b2
The test fails after dfa7ff97b2. I didn't find this locally due to
cache.
Commit: 05f4448d40f00b9fb2447e1c32cd18a7a9b8b011
https://github.com/llvm/llvm-project/commit/05f4448d40f00b9fb2447e1c32cd18a7a9b8b011
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A clang/test/AST/Interp/eval-order.cpp
Log Message:
-----------
[clang][Interp][NFC] Add eval-order test
Demonstrate that this isn't yet working right.
Commit: 5f2f3900138cc519e1cb807e99920337eede2b6c
https://github.com/llvm/llvm-project/commit/5f2f3900138cc519e1cb807e99920337eede2b6c
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/AST/Interp/Pointer.cpp
Log Message:
-----------
[clang][Interp][NFC] Allow Pointer assignment if both are zero
... even if the storage types are different.
Commit: 2b9210d1aa9ce9c204b3af0158636c71a5a72e17
https://github.com/llvm/llvm-project/commit/2b9210d1aa9ce9c204b3af0158636c71a5a72e17
Author: Abhishek Varma <abhvarma at amd.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/test/Dialect/SCF/canonicalize.mlir
Log Message:
-----------
[MLIR][SCF] Add canonicalization pattern to fold away iter args of scf.forall (#90189)
-- This commit adds a canonicalization pattern to fold away iter args of
scf.forall if :-
a. The corresponding tied result has no use.
b. It is not being modified within the loop.
Signed-off-by: Abhishek Varma <avarma094 at gmail.com>
Commit: fc866fd2a2cfca6d62f48dcf83778959fd24f559
https://github.com/llvm/llvm-project/commit/fc866fd2a2cfca6d62f48dcf83778959fd24f559
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang-tools-extra/clangd/unittests/HoverTests.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/test/AST/ast-dump-recovery.cpp
Log Message:
-----------
[clang] Don't preserve the typo expr in the recovery expr for invalid VarDecls (#90948)
With the commit d5308949cf884d8e4b971d51a8b4f73584c4adec, we now
preserve the initializer for invalid decls with the recovery-expr.
However there is a chance that the original init expr is a typo-expr, we
should not preserve it in the final AST, as typo-expr is an internal AST
node. We should use the one after the typo correction.
This is spotted by a clangd hover crash on the testcase.
Commit: 6ad37a41b5489ce66ea890bf92fca66ea1ae41e0
https://github.com/llvm/llvm-project/commit/6ad37a41b5489ce66ea890bf92fca66ea1ae41e0
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
Log Message:
-----------
[Flang][OpenMP] NFC: Trivial changes in OmpCycleChecker (#91024)
Cycle is associated with construct-names and not labels. Change name of
a few variables to reflect this. Also add appropriate comment to
describe the else case of error checking.
Commit: a62a7024164c2977cd0e77f77807f957802d204a
https://github.com/llvm/llvm-project/commit/a62a7024164c2977cd0e77f77807f957802d204a
Author: jinchen <49575973+jinchen62 at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/include/mlir/Dialect/Math/Transforms/Passes.h
M mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp
M mlir/test/lib/Dialect/Math/TestExpandMath.cpp
M mlir/test/mlir-cpu-runner/test-expand-math-approx.mlir
Log Message:
-----------
[mlir][math] Add expand patterns for acosh, asinh, atanh (#90718)
Commit: ebde770c3e6f0dd9d297659cbaeb486cef9471d6
https://github.com/llvm/llvm-project/commit/ebde770c3e6f0dd9d297659cbaeb486cef9471d6
Author: Luke Lau <luke at igalia.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.mir
Log Message:
-----------
[RISCV] Use IMPLICIT_DEF for undef GPR reg in vsetvli test. NFC
Only VRs should use $noreg, this GPR was accidentally changed in d392520c6
Commit: ad59967336d2279eee77fff3a92e52ec87010aae
https://github.com/llvm/llvm-project/commit/ad59967336d2279eee77fff3a92e52ec87010aae
Author: hev <wangrui at loongson.cn>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/test/CodeGen/LoongArch/rotl-rotr.ll
Log Message:
-----------
[LoongArch] Optimize codegen for ISD::{ROTL,ROTR} (#91174)
Commit: d9f2b9391887af95acdd91dfea2e72eb3a9d8d05
https://github.com/llvm/llvm-project/commit/d9f2b9391887af95acdd91dfea2e72eb3a9d8d05
Author: Luke Lau <luke at igalia.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
M llvm/test/CodeGen/RISCV/rvv/copyprop.mir
M llvm/test/CodeGen/RISCV/rvv/mask-reg-alloc.mir
M llvm/test/CodeGen/RISCV/rvv/vxrm.mir
Log Message:
-----------
[RISCV] Change more undef passthrus to $noreg in vector tests. NFC
Commit: f3fbd21fa4e25496725c22d987e4e47e4c39c8b0
https://github.com/llvm/llvm-project/commit/f3fbd21fa4e25496725c22d987e4e47e4c39c8b0
Author: martinboehme <mboehme at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Transfer.cpp
M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
Log Message:
-----------
[clang][dataflow] Strengthen pointer comparison. (#75170)
- Instead of comparing the identity of the `PointerValue`s, compare the
underlying `StorageLocation`s.
- If the `StorageLocation`s are the same, return a definite "true" as
the
result of the comparison. Before, if the `PointerValue`s were different,
we
would return an atom, even if the storage locations themselves were the
same.
- If the `StorageLocation`s are different, return an atom (as before).
Pointers
that have different storage locations may still alias, so we can't
return a
definite "false" in this case.
The application-level gains from this are relatively modest. For the
Crubit
nullability check running on an internal codebase, this change reduces
the
number of functions on which the SAT solver times out from 223 to 221;
the
number of "pointer expression not modeled" errors reduces from 3815 to
3778.
Still, it seems that the gain in precision is generally worthwhile.
@Xazax-hun inspired me to think about this with his
[comments](https://github.com/llvm/llvm-project/pull/73860#pullrequestreview-1761484615)
on a different PR.
Commit: 1de0535e84f03941badc8021bbc87a8c674a379f
https://github.com/llvm/llvm-project/commit/1de0535e84f03941badc8021bbc87a8c674a379f
Author: Peter Waller <peter.waller at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/docs/CommandGuide/llvm-mca.rst
M llvm/docs/ReleaseNotes.rst
M llvm/test/tools/llvm-mca/AArch64/Exynos/float-divide-multiply.s
M llvm/test/tools/llvm-mca/AArch64/Exynos/float-integer.s
M llvm/test/tools/llvm-mca/ARM/cortex-a57-basic-instructions.s
M llvm/test/tools/llvm-mca/ARM/cortex-a57-thumb.s
M llvm/test/tools/llvm-mca/X86/BtVer2/simple-test.s
M llvm/test/tools/llvm-mca/X86/BtVer2/skip-unsupported-instructions-none-remain.s
M llvm/test/tools/llvm-mca/X86/BtVer2/unsupported-instruction.s
A llvm/test/tools/llvm-mca/bad-input.s
M llvm/tools/llvm-mca/CodeRegionGenerator.cpp
M llvm/tools/llvm-mca/CodeRegionGenerator.h
M llvm/tools/llvm-mca/llvm-mca.cpp
Log Message:
-----------
[llvm-mca] Abort on parse error without -skip-unsupported-instructions (#90474)
[llvm-mca] Abort on parse error without -skip-unsupported-instructions
Prior to this patch, llvm-mca would continue executing after parse
errors. These errors can lead to some confusion since some analysis
results are printed on the standard output, and they're printed after
the errors, which could otherwise be easy to miss.
However it is still useful to be able to continue analysis after errors;
so extend the recently added -skip-unsupported-instructions to support
this.
Two tests which have parse errors for some of the 'RUN' branches are
updated to use -skip-unsupported-instructions so they can remain as-is.
Add a description of -skip-unsupported-instructions to the llvm-mca
command guide, and add it to the llvm-mca --help output:
```
--skip-unsupported-instructions=<value> - Force analysis to continue in the presence of unsupported instructions
=none - Exit with an error when an instruction is unsupported for any reason (default)
=lack-sched - Skip instructions on input which lack scheduling information
=parse-failure - Skip lines on the input which fail to parse for any reason
=any - Skip instructions or lines on input which are unsupported for any reason
```
Tests within this patch are intended to cover each of the cases.
Reason | Flag | Comment
--------------|------|-------
none | none | Usual case, existing test suite
lack-sched | none | Advises user to use -skip-unsupported-instructions=lack-sched, tested in llvm/test/tools/llvm-mca/X86/BtVer2/unsupported-instruction.s
parse-failure | none | Advises user to use -skip-unsupported-instructions=parse-failure, tested in llvm/test/tools/llvm-mca/bad-input.s
any | none | (N/A, covered above)
lack-sched | any | Continues, prints warnings, tested in llvm/test/tools/llvm-mca/X86/BtVer2/unsupported-instruction.s
parse-failure | any | Continues, prints errors, tested in llvm/test/tools/llvm-mca/bad-input.s
lack-sched | parse-failure | Advises user to use -skip-unsupported-instructions=lack-sched, tested in llvm/test/tools/llvm-mca/X86/BtVer2/unsupported-instruction.s
parse-failure | lack-sched | Advises user to use -skip-unsupported-instructions=parse-failure, tested in llvm/test/tools/llvm-mca/bad-input.s
none | * | This would be any test case with skip-unsupported-instructions, coverage added in llvm/test/tools/llvm-mca/X86/BtVer2/simple-test.s
any | * | (Logically covered by the other cases)
Commit: 1530f319311908b06fe935c89fca692d3e53184f
https://github.com/llvm/llvm-project/commit/1530f319311908b06fe935c89fca692d3e53184f
Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
M llvm/unittests/Transforms/Utils/LocalTest.cpp
Log Message:
-----------
[RemoveDIs] Update some unittests to the new format (#90476)
This patch updates the unittests that can be changed to the new format
after #89799 (which changes the default format everywhere) to avoid a
loss in coverage for the (new) default debug info format.
Commit: 1fd196c8df8e9fa4e0eddddc92b012824d8d1b0b
https://github.com/llvm/llvm-project/commit/1fd196c8df8e9fa4e0eddddc92b012824d8d1b0b
Author: ostannard <oliver.stannard at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/TargetInfo.h
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/test/CodeGen/aarch64-soft-float-abi-errors.c
Log Message:
-----------
[AArch64] Diagnose more functions when FP not enabled (#90832)
When using a hard-float ABI for a target without FP registers, it's not
possible to correctly generate code for functions with arguments which
must be passed in floating-point registers. This is diagnosed in CodeGen
instead of Sema, to more closely match GCC's behaviour around inline
functions, which is relied on by the Linux kernel.
Previously, this only checked function signatures as they were
code-generated, but this missed some cases:
* Calls to functions not defined in this translation unit.
* Calls through function pointers.
* Calls to variadic functions, where the variadic arguments have a
floating-point type.
This adds checks to function calls, as well as definitions, so that
these cases are correctly diagnosed.
Commit: 50da7680d882dac122fac442348649c9951011a0
https://github.com/llvm/llvm-project/commit/50da7680d882dac122fac442348649c9951011a0
Author: Ben Shi <2283975856 at qq.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/AVR/AVRInstrInfo.td
Log Message:
-----------
[AVR][NFC] Improve format of target description files (#91296)
Commit: 6aed0ab6547f577cceaccfc6d710f96b645c3af7
https://github.com/llvm/llvm-project/commit/6aed0ab6547f577cceaccfc6d710f96b645c3af7
Author: Anthony Ha <anthonyha96 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lldb/docs/use/qemu-testing.rst
M lldb/tools/lldb-server/lldb-platform.cpp
Log Message:
-----------
[lldb] Have lldb-server assign ports to children in platform mode (#88845)
Fixes #47549
`lldb-server`'s platform mode seems to have an issue with its
`--min-gdbserver-port` `--max-gdbserver-port` flags (and probably the
`--gdbserver-port` flag, but I didn't test it).
How the platform code seems to work is that it listens on a port, and
whenever there's an incoming connection, it forks the process to handle
the connection. To handle the port flags, the main process uses an
instance of the helper class
`GDBRemoteCommunicationServerPlatform::PortMap`, that can be configured
and track usages of ports. The child process handling the platform
connection, can then use the port map to allocate a port for the
gdb-server connection it will make (this is another process it spawns).
However, in the current code, this works only once. After the first
connection is handled by forking a child process, the main platform
listener code loops around, and then 'forgets' about the port map. This
is because this code:
```cpp
GDBRemoteCommunicationServerPlatform platform(
acceptor_up->GetSocketProtocol(), acceptor_up->GetSocketScheme());
if (!gdbserver_portmap.empty()) {
platform.SetPortMap(std::move(gdbserver_portmap));
}
```
is within the connection listening loop. This results in the
`gdbserver_portmap` being moved into the platform object at the
beginning of the first iteration of the loop, but on the second
iteration, after the first fork, the next instance of the platform
object will not have its platform port mapped.
The result of this bug is that subsequent connections to the platform,
when spawning the gdb-remote connection, will be supplied a random port
- which isn't bounded by the `--min-gdbserver-port` and
`--max-gdbserver--port` parameters passed in by the user.
This PR fixes this issue by having the port map be maintained by the
parent platform listener process. On connection, the listener allocates
a single available port from the port map, associates the child process
pid with the port, and lets the connection handling child use that
single port number.
Additionally, when cleaning up child processes, the main listener
process tracks the child that exited to deallocate the previously
associated port, so it can be reused for a new connection.
Commit: d838e5b3e86e7b3b4b2f75ee9c2854e23782888e
https://github.com/llvm/llvm-project/commit/d838e5b3e86e7b3b4b2f75ee9c2854e23782888e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/X86/X86.td
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/cmp16.ll
Log Message:
-----------
[X86] Add FastImm16 tuning flag to Intel Atom + AMD Bobcat/Ryzen Families (#90635)
This patch limits the icmp_i16(x,c) -> icmp_i32(ext(x),ext(c)) fold to CPUs that aren't known to have fast handling for length-changing prefixes for imm16 operands.
We are always assuming that 66/67h length-changing prefixes cause severe stalls and we should always extend imm16 operands and use a i32 icmp instead, the only exception being Intel Bonnell CPUs.
Agner makes this clear (see microarchitecture.pdf) that there are no stalls for any of the Intel Atom family (at least as far as Tremont - not sure about Gracemont or later). This is also true for AMD Bobcat/Jaguar and Ryzen families.
Recent performance Intel CPUs are trickier - Core2/Nehalem and earlier could have a 6-11cy stall, while SandyBridge onwards this is reduced to 3cy or less. I'm not sure if we should accept this as fast or not, we only use this flag for the icmp_i16 case, so that might be acceptable? If so, we should add this to x86-64-v3/v4 tuning as well.
Part of #90355 + #62952
Commit: 6ce04747cff524b4c5c8738e25144659a5cf6691
https://github.com/llvm/llvm-project/commit/6ce04747cff524b4c5c8738e25144659a5cf6691
Author: Quentin Colombet <quentin.colombet at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/NVPTX/addrspacecast.ll
Log Message:
-----------
[SDISel] Teach the type legalizer about ADDRSPACECAST (#90969)
Vectorized ADDRSPACECASTs were not supported by the type legalizer.
This patch adds the support for:
- splitting the vector result: <2 x ptr> => 2 x <1 x ptr>
- scalarization: <1 x ptr> => ptr
- widening: <3 x ptr> => <4 x ptr>
This is all exercised by the added NVPTX tests.
Commit: abd314938dda1b117f289be5e630e43e68533929
https://github.com/llvm/llvm-project/commit/abd314938dda1b117f289be5e630e43e68533929
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/fshl-codesize.ll
M llvm/test/Analysis/CostModel/X86/fshl-latency.ll
M llvm/test/Analysis/CostModel/X86/fshl-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/fshl.ll
M llvm/test/Analysis/CostModel/X86/fshr-codesize.ll
M llvm/test/Analysis/CostModel/X86/fshr-latency.ll
M llvm/test/Analysis/CostModel/X86/fshr-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/fshr.ll
M llvm/test/Analysis/CostModel/X86/vshift-ashr-codesize.ll
M llvm/test/Analysis/CostModel/X86/vshift-ashr-latency.ll
M llvm/test/Analysis/CostModel/X86/vshift-ashr-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/vshift-lshr-codesize.ll
M llvm/test/Analysis/CostModel/X86/vshift-lshr-latency.ll
M llvm/test/Analysis/CostModel/X86/vshift-lshr-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/vshift-shl-codesize.ll
M llvm/test/Analysis/CostModel/X86/vshift-shl-latency.ll
M llvm/test/Analysis/CostModel/X86/vshift-shl-sizelatency.ll
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/gfni-shifts.ll
M llvm/test/CodeGen/X86/min-legal-vector-width.ll
Log Message:
-----------
[X86] Use GFNI for vXi8 shifts/rotates (#89115)
As detailed here: https://github.com/InstLatx64/InstLatX64_Demo/blob/master/GFNI_Demo.h
We can use the gf2p8affine instruction to lower byte shifts/rotates as well as the existing bitreverse case.
Based off the original patch here: https://reviews.llvm.org/D137026
Commit: e232659028365b51feb001565884b3b8e62cc2a9
https://github.com/llvm/llvm-project/commit/e232659028365b51feb001565884b3b8e62cc2a9
Author: Kristof Beyls <kristof.beyls at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M bolt/lib/Core/ParallelUtilities.cpp
Log Message:
-----------
[NFC][BOLT] Call EnsureAllocatorExists instead of copy pasting code
Commit: 235cea720c0fa6dcf0bf5aff15001de88b6042f9
https://github.com/llvm/llvm-project/commit/235cea720c0fa6dcf0bf5aff15001de88b6042f9
Author: Paul Walker <paul.walker at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.h
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
Log Message:
-----------
[NFC][LLVM] Refactor rounding mode detection of constrained fp intrinsic IDs (#90854)
I've refactored the code to genericise the implementation to better
allow for target specific constrained fp intrinsics.
Commit: 651bdb96b16d4e522f4611b60103234b1f890b24
https://github.com/llvm/llvm-project/commit/651bdb96b16d4e522f4611b60103234b1f890b24
Author: Chris Copeland <chris at chrisnc.net>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/test/Driver/arm-cortex-cpus-1.c
M clang/test/Driver/arm-features.c
M clang/test/Preprocessor/arm-target-features.c
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/TargetParser/ARMTargetParser.def
M llvm/lib/Target/ARM/ARMArchitectures.td
M llvm/lib/Target/ARM/ARMProcessors.td
M llvm/test/Analysis/CostModel/ARM/arith.ll
M llvm/test/Analysis/CostModel/ARM/cast.ll
M llvm/test/Analysis/CostModel/ARM/cast_ldst.ll
M llvm/test/Analysis/CostModel/ARM/cmps.ll
M llvm/test/Analysis/CostModel/ARM/divrem.ll
M llvm/test/CodeGen/ARM/cortex-a57-misched-basic.ll
M llvm/test/CodeGen/ARM/fpconv.ll
M llvm/test/CodeGen/ARM/half.ll
M llvm/test/CodeGen/ARM/useaa.ll
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[ARM] Armv8-R does not require fp64 or neon. (#88287)
This was [addressed for AArch64
here](https://github.com/llvm/llvm-project/pull/79004), but the same
applies to ARM.
Move the enablement of neon+fp64 to `-mcpu=cortex-r52`, which optionally
supports these features.
Commit: 97dd8e3c4f38ef345b01fbbf0a2052c7875ff7e0
https://github.com/llvm/llvm-project/commit/97dd8e3c4f38ef345b01fbbf0a2052c7875ff7e0
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp
M clang/test/Analysis/return-value-guaranteed.cpp
Log Message:
-----------
[analyzer] Clean up apiModeling.llvm.ReturnValue (#91231)
This commit heavily refactors and simplifies the small and trivial
checker `apiModeling.llvm.ReturnValue`, which is responsible for
modeling the peculiar coding convention that in the LLVM/Clang codebase
certain Error() methods always return true.
Changes included in this commit:
- The call description mode is now specified explicitly (this is not the
most significant change, but it was the original reason for touching
this checker).
- Previously the code provided support for modeling functions that
always return `false`; but there was no need for that, so this commit
hardcodes that the return value is `true`.
- The overcomplicated constraint/state handling logic was simplified.
- The separate `checkEndFunction` callback was removed to simplify the
code. Admittedly this means that the note tag for the "<method> returns
false, breaking the convention" case is placed on the method call
instead of the `return` statement; but that case will _never_ appear in
practice, so this difference is mostly academical.
- The text of the note tags was clarified.
- The descriptions in the header comment and Checkers.td were clarified.
- Some minor cleanup was applied in the associated test file.
This change is very close to NFC because it only affects a hidden
`apiModeling.llvm` checker that's only relevant during the analysis of
the LLVM/Clang codebase, and even there it doesn't affect the normal
behavior of the checker.
Commit: dcc7ef3ce87d7ea1ed9e64bb91e3bb2026df9644
https://github.com/llvm/llvm-project/commit/dcc7ef3ce87d7ea1ed9e64bb91e3bb2026df9644
Author: Emma Pilkington <emma.pilkington95 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/SIDefines.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/test/MC/AMDGPU/gfx9-asm-err.s
M llvm/test/MC/AMDGPU/sopp-err.s
M llvm/test/MC/AMDGPU/sopp-gfx9.s
Log Message:
-----------
[AMDGPU][MC] Disable sendmsg SYSMSG_OP_HOST_TRAP_ACK on gfx9+ (#90203)
This is no longer supported as of gfx9. Fixes #52903
This commit also includes some refactoring of sendmsg operand parsing:
- Use CustomOperand for sendmsg operations, this allows them to be
conditionally available based on a STI check (and automatically in
sync with SIDefines.h).
- Move CustomOperand table lookups from AMDGPUBaseInfo to
AMDGPUAsmUtils. This cleans up an awkward interface where
AMDGPUAsmUtils defined a table/size as globals that AMDGPUBaseInfo
had to loop over.
- Clean up a few of the operand lookup functions while moving them.
Commit: 6d64f8e1feee014e72730a78b62d9d415df112ff
https://github.com/llvm/llvm-project/commit/6d64f8e1feee014e72730a78b62d9d415df112ff
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
Log Message:
-----------
[analyzer] Use explicit call description mode in more checkers (#90974)
This commit explicitly specifies the matching mode (C library function,
any non-method function, or C++ method) for the `CallDescription`s
constructed in various checkers.
Some code was simplified to use `CallDescriptionSet`s instead of
individual `CallDescription`s.
This change won't cause major functional changes, but isn't NFC because
it ensures that e.g. call descriptions for a non-method function won't
accidentally match a method that has the same name.
Separate commits have already performed this change in other checkers:
- easy cases: e2f1cbae45f81f3cd9a4d3c2bcf69a094eb060fa
- MallocChecker: d6d84b5d1448e4f2e24b467a0abcf42fe9d543e9
- iterator checkers: 06eedffe0d2782922e63cc25cb927f4acdaf7b30
- InvalidPtr checker: 024281d4d26344f9613b9115ea1fcbdbdba23235
... and follow-up commits will handle the remaining checkers.
My goal is to ensure that the call description mode is always explicitly
specified and eliminate (or strongly restrict) the vague "may be either
a method or a simple function" mode that's the current default.
Commit: afc10fc9b7ce3d23d9012f5a1496e849fe873ba2
https://github.com/llvm/llvm-project/commit/afc10fc9b7ce3d23d9012f5a1496e849fe873ba2
Author: Peter Waller <peter.waller at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/tools/llvm-mca/AArch64/bad-input.s
A llvm/test/tools/llvm-mca/X86/bad-input.s
R llvm/test/tools/llvm-mca/bad-input.s
Log Message:
-----------
[llvm-mca] Move bad-input.s test to be target specific
... for now.
This is a follow up to #90474 in response to build bot failures.
This test is intended to check a case where invalid assembly is passed
to llvm-mca.
Unfortunately it appears that a cross-toolchain built with
-DTOOLCHAIN_TARGET_TRIPLE does not have an llvm-mca which works out of
the box if the host target is not enabled.
As a quick fix to make the build bots green, move the test into AArch64
and X86 so that there is reasonable coverage for this test; later I hope
mca can be fixed to work out of the box in this configuration.
Commit: 458d70674190c4d043d5dfd2e41aecddff5cdb69
https://github.com/llvm/llvm-project/commit/458d70674190c4d043d5dfd2e41aecddff5cdb69
Author: Peter Waller <peter.waller at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/tools/llvm-mca/AArch64/Neoverse/bad-input.s
R llvm/test/tools/llvm-mca/AArch64/bad-input.s
M llvm/test/tools/llvm-mca/X86/bad-input.s
Log Message:
-----------
[llvm-mca] Make bad-input.s even more CPU specific
Note: This patch is distinct from the previous one titled
"[llvm-mca] Move bad-input.s test to be target specific"
This is a followup to #90474 and commit
afc10fc9b7ce3d23d9012f5a1496e849fe873ba2
Context: Builders failing because they're unable to run the failure
test.
This still doesn't work in various circumstances, it seems MCA doesn't
want to run on a wide variety of hosts in various configurations, so
stick to the tried and tested method and pass -mtriple and -mcpu.
Commit: 6f2997cefc1e32c11a891ede2e3a2d73310e6ce1
https://github.com/llvm/llvm-project/commit/6f2997cefc1e32c11a891ede2e3a2d73310e6ce1
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libcxx/include/__type_traits/is_equality_comparable.h
Log Message:
-----------
[libc++][NFC] Remove unused include from <__type_traits/is_equality_comparable.h> (#90950)
Commit: b22a6f1eba8e27b2a21bf6b96a3bd349230cb80a
https://github.com/llvm/llvm-project/commit/b22a6f1eba8e27b2a21bf6b96a3bd349230cb80a
Author: Vincent Belliard <81770341+v-bulle at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
A lldb/test/Shell/ExecControl/StepIn/Inputs/aarch64_thunk.cc
A lldb/test/Shell/ExecControl/StepIn/step_through-aarch64-thunk.test
Log Message:
-----------
[lldb] fix step in AArch64 trampoline (#90783)
Detects AArch64 trampolines in order to be able to step in a function
through a trampoline on AArch64.
---------
Co-authored-by: Vincent Belliard <v-bulle at github.com>
Commit: 66364e65405d4964709e67574abf1b519a55296c
https://github.com/llvm/llvm-project/commit/66364e65405d4964709e67574abf1b519a55296c
Author: martinboehme <mboehme at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/Solver.h
M clang/include/clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h
Log Message:
-----------
[clang][dataflow] Add `reachedLimit()` to the `Solver` interface. (#91320)
We may want code to call this that doesn't know which specific solver
implementation it is dealing with.
Commit: fff2db2e426ebe3a349bd0f00555d4a3dc8a6de7
https://github.com/llvm/llvm-project/commit/fff2db2e426ebe3a349bd0f00555d4a3dc8a6de7
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libcxx/include/__availability
Log Message:
-----------
[libc++] Rename _LIBCPP_INTRODUCED_foo_MARKUP to _LIBCPP_INTRODUCED_foo_ATTRIBUTE (#91269)
This was discussed in #87563 and overlooked when I landed the patch.
Commit: 27becf0c3c1e7ac4a2f2e848b44d872f1aa1db9a
https://github.com/llvm/llvm-project/commit/27becf0c3c1e7ac4a2f2e848b44d872f1aa1db9a
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Sema/SemaTemplate.cpp
M clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
Log Message:
-----------
[clang] CTAD: fix the aggregate deduction guide for alias templates. (#90894)
For alias templates, our current way of constructing their aggregate
deduction guides deviates from the standard approach. We should align it
with how we handle implicit deduction guides.
This patch has a refactoring change which pulls the construction logic
out from `DeclareImplicitDeductionGuidesForTypeAlia` and reusing it for
building aggregate deduction guides.
Commit: 227fe1c1995dea1850483449e8510db2726bcbee
https://github.com/llvm/llvm-project/commit/227fe1c1995dea1850483449e8510db2726bcbee
Author: David Truby <david.truby at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M flang/runtime/extensions.cpp
Log Message:
-----------
[flang] Remove C++ runtime dependency from Sleep extension (#84911)
The Sleep extension currently has a potential dependency on the C++
runtime. I run into this dependency using libc++ on Linux. This patch
uses the POSIX `sleep` function or the Windows `Sleep` function
instead to avoid this dependency.
Commit: 1d87465a0a95cee9accc5dce7abdabbbc3f3c122
https://github.com/llvm/llvm-project/commit/1d87465a0a95cee9accc5dce7abdabbbc3f3c122
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libc/test/src/math/FModTest.h
Log Message:
-----------
[libc][math] fmod: clear exceptions before the test instead of after
The test has no control over the CPU state before the test runs.
This test checks whether no exception flags are set, which may not be
true at the start of the test. This used to be not a problem because the
check was broken but that was fixed in ecfb5d9951554d8bdb6a499c958f48cc35f78a88
Commit: 41ca9104ac1e0bf248d4082f45c5ad03ddd55727
https://github.com/llvm/llvm-project/commit/41ca9104ac1e0bf248d4082f45c5ad03ddd55727
Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M openmp/runtime/src/kmp.h
M openmp/runtime/src/kmp_barrier.cpp
M openmp/runtime/src/kmp_csupport.cpp
M openmp/runtime/src/kmp_runtime.cpp
M openmp/runtime/src/kmp_tasking.cpp
A openmp/runtime/test/target/issue-81488.c
A openmp/runtime/test/tasking/issue-50602.c
A openmp/runtime/test/tasking/issue-69368.c
A openmp/runtime/test/tasking/issue-69733.c
A openmp/runtime/test/tasking/issue-79416.c
A openmp/runtime/test/tasking/task_teams_stress_test.cpp
Log Message:
-----------
[OpenMP] Fix task state and taskteams for serial teams (#86859)
* Serial teams now use a stack (similar to dispatch buffers)
* Serial teams always use `t_task_team[0]` as the task team and the
second pointer is a next pointer for the stack
`t_task_team[1]` is interpreted as a stack of task teams where each
level is a nested level
```
inner serial team outer serial team
[ t_task_team[0] ] -> (task_team) [ t_task_team[0] ] -> (task_team)
[ next ] ----------------> [ next ] -> ...
```
* Remove the task state memo stack from thread structure.
* Instead of a thread-private stack, use team structure to store
th_task_state of the primary thread. When coming out of a parallel,
restore the primary thread's task state. The new field in the team
structure doesn't cause sizeof(team) to change and is in the cache line
which is only read/written by the primary thread.
Fixes: #50602
Fixes: #69368
Fixes: #69733
Fixes: #79416
Commit: 5d9b549bb05ad31727cd019bcefeae7b94b2dbd2
https://github.com/llvm/llvm-project/commit/5d9b549bb05ad31727cd019bcefeae7b94b2dbd2
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/unsigned-after-sext-node.ll
Log Message:
-----------
[SLP][NFC]Add a test showing incorrect signedness detection in sext nodes.
Commit: a775455cdca78445ccfe4adb2a7c9e390ae46e10
https://github.com/llvm/llvm-project/commit/a775455cdca78445ccfe4adb2a7c9e390ae46e10
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Add `nobuildkite` tags for incompatible target
Commit: 9eb91f45fb34353942b8f8154f229150a0d01456
https://github.com/llvm/llvm-project/commit/9eb91f45fb34353942b8f8154f229150a0d01456
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Add `nobuildkite` tags for incompatible targets
Commit: f548c4d83cdded0c19ca02ca9c071d8ced9ea4fd
https://github.com/llvm/llvm-project/commit/f548c4d83cdded0c19ca02ca9c071d8ced9ea4fd
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/test/CodeGen/AMDGPU/fdiv.ll
M llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
Log Message:
-----------
AMDGPU: Add mode register use to s_getreg_b32
This should fix reading the wrong mode after setting the mode.
Ideally we would have separate pseudos for the case that we know
does not read mode.
Commit: 30cfe2b2ace51a8fa0eeb64f136e3999f87971ad
https://github.com/llvm/llvm-project/commit/30cfe2b2ace51a8fa0eeb64f136e3999f87971ad
Author: erichkeane <ekeane at nvidia.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/AST/OpenACCClause.h
M clang/include/clang/Basic/OpenACCClauses.def
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/test/AST/ast-print-openacc-compute-construct.cpp
M clang/test/ParserOpenACC/parse-clauses.c
M clang/test/ParserOpenACC/parse-clauses.cpp
M clang/test/ParserOpenACC/parse-wait-clause.c
M clang/test/ParserOpenACC/parse-wait-construct.c
A clang/test/SemaOpenACC/compute-construct-async-clause.c
A clang/test/SemaOpenACC/compute-construct-async-clause.cpp
M clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
[OpenACC] Implement 'async' clause sema for compute constructs
This is a pretty simple clause, it takes an 'async-argument', which
effectively needs to be just parsed as an 'int' argument, since it can
be an arbitrarly integer at runtime (and negative values are legal for
implementation defined values).
This patch also cleans up the async-argument parsing, so 'wait' got some
minor quality-of-life improvements for parsing (both clause and
construct).
Commit: 099417d617cf44711377d02eedc580a0c11297e9
https://github.com/llvm/llvm-project/commit/099417d617cf44711377d02eedc580a0c11297e9
Author: Matthias Springer <me at m-sp.org>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/docs/Bufferization.md
A mlir/docs/includes/img/bufferization_passes.svg
A mlir/docs/includes/img/bufferization_tensor_insert_dst.svg
Log Message:
-----------
[mlir][NFC] Improve bufferization documentation (#89495)
* Add example for `test-analysis-only` and `print-conflicts`.
* Mention other bufferization-related passes.
* Update outdated documentation.
Commit: ab3a9e724d87a4272782f76b90fb0872a6a86939
https://github.com/llvm/llvm-project/commit/ab3a9e724d87a4272782f76b90fb0872a6a86939
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/callonce.cpp
A libc/src/__support/threads/linux/futex_utils.h
M libc/src/__support/threads/linux/futex_word.h
M libc/src/__support/threads/linux/mutex.h
M libc/src/__support/threads/linux/thread.cpp
M libc/src/__support/threads/mutex.h
M libc/src/__support/threads/thread.cpp
M libc/src/threads/linux/CMakeLists.txt
M libc/src/threads/linux/CndVar.h
Log Message:
-----------
[libc] clean up futex usage (#91163)
# Motivation
Futex syscalls are widely used in our codebase as synchronization
mechanism. Hence, it may be worthy to abstract out the most common
routines (wait and wake). On the other hand, C++20 also provides
`std::atomic_notify_one/std::atomic_wait/std::atomic_notify_all` which
align with such functionalities. This PR introduces `Futex` as a subtype
of `cpp::Atomic<FutexWordType>` with additional
`notify_one/notify_all/wait` operations.
Providing such wrappers also make future porting easier. For example,
FreeBSD's `_umtx_op` and Darwin's `ulock` can be wrapped in a similar
manner.
### Similar Examples
1. [bionic
futex](https://android.googlesource.com/platform/bionic/+/refs/heads/main/libc/bionic/bionic_futex.cpp)
2. [futex in Rust's
std](https://github.com/rust-lang/rust/blob/8cef37dbb67e9c80702925f19cf298c4203991e4/library/std/src/sys/pal/unix/futex.rs#L21)
Commit: 41dd07bf5cbfb800797821d1ad32226e5339bcfb
https://github.com/llvm/llvm-project/commit/41dd07bf5cbfb800797821d1ad32226e5339bcfb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/CodeGen/AArch64/GlobalISel/combine-bitreverse-shift.ll
Log Message:
-----------
[AArch64] Add test coverage for bitreverse(logicalshift(bitreverse(x),y)) -> logicalshift(x,y) fold
DAG already performs this fold (#89897), GISel is currently missing it (patch incoming)
Commit: de117dd533547f8bc8d00ea989252021ec1e877e
https://github.com/llvm/llvm-project/commit/de117dd533547f8bc8d00ea989252021ec1e877e
Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/CodeGen/SystemZ/atomic-load-09.ll
A llvm/test/CodeGen/SystemZ/atomic-store-09.ll
Log Message:
-----------
[SystemZ] Add some more atomic load/store tests
Verify atomic load/store of f128 on z14 where the type
lives in VRs.
Commit: 45fed80b15df85cee53d3d31a7a46ae0daa91a3f
https://github.com/llvm/llvm-project/commit/45fed80b15df85cee53d3d31a7a46ae0daa91a3f
Author: Jake Egan <Jake.egan at ibm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libcxx/test/libcxx/clang_modules_include.gen.py
Log Message:
-----------
[AIX][libc++] Enable clang_modules_include.gen.py tests (#90971)
Enable these tests on AIX since they're passing.
Commit: d5cabf8d89a5f5faa5255283821cb080bebbff86
https://github.com/llvm/llvm-project/commit/d5cabf8d89a5f5faa5255283821cb080bebbff86
Author: srcarroll <50210727+srcarroll at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
M mlir/test/Dialect/SCF/one-shot-bufferize.mlir
Log Message:
-----------
Keep attribute when bufferizing `scf.forall` op (#91236)
Commit: f72454086af9d3f91a86e10dc1923849c5f670a8
https://github.com/llvm/llvm-project/commit/f72454086af9d3f91a86e10dc1923849c5f670a8
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M flang/lib/Lower/Bridge.cpp
M flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf
Log Message:
-----------
[flang][cuda] Fix retrieval of nested evaluation in cuf kernel (#91298)
`loopEval` was declared inside the for loop to iterate over the nested
loops so the same loop control was redeclared for each level of the loop
nest. Make sure we are iterating over all the loops by putting
`loopEval` declaration ouside of the for loop.
Commit: 6a6fcbffbb31f83fab7425d43e28eb6aa39dbfe9
https://github.com/llvm/llvm-project/commit/6a6fcbffbb31f83fab7425d43e28eb6aa39dbfe9
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/AST/Decl.h
M clang/lib/AST/Decl.cpp
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
Log Message:
-----------
[Clang][AArch64] NFC: Add IsArmStreamingFunction.
Simple refactoring to make a single interface that checks if a
FunctionDecl is a __arm[_locally]_streaming function.
Commit: e84fae837c0b154153bd9b9a3255ec5a67b1ea61
https://github.com/llvm/llvm-project/commit/e84fae837c0b154153bd9b9a3255ec5a67b1ea61
Author: Andrew Sukach <134116196+soukatch at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
Log Message:
-----------
[clang] MangledSymbol: remove pointless copy of vector (#90012)
This pr addresses #87255 adds a std::move call to the names in
MangledSymbol's constructor.
Commit: 57175533da0f3ea2054550c2e4d3e831e93bb4df
https://github.com/llvm/llvm-project/commit/57175533da0f3ea2054550c2e4d3e831e93bb4df
Author: Scott Manley <rscottmanley at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/include/mlir/IR/OperationSupport.h
M mlir/lib/IR/AsmPrinter.cpp
A mlir/test/IR/print-unique-ssa-ids.mlir
Log Message:
-----------
[MLIR][IR] add -mlir-print-unique-ssa-ids to AsmPrinter (#91241)
Add an option to unique the numbers of values, block arguments and
naming conflicts when requested and/or printing generic op form. This is
helpful when debugging. For example, if you have:
scf.for
%0 =
%1 = opA %0
scf.for
%0 =
%1 = opB %0
And you get a verifier error which says opB's "operand #0 does not
dominate this use", it looks like %0 does dominate the use. This is not
intuitive. If these were numbered uniquely, it would look like:
scf.for
%0 =
%1 = opA %0
scf.for
%2 =
%3 = opB %0
And thus, much clearer as to why you are getting the error since %0 is
out of scope. Since generic op form should aim to give you the most
possible information, it seems like a good idea to use unique numbers in
this situation. Adding an option also gives those an option to use it
outside of generic op form.
Co-authored-by: Scott Manley <scmanley at nvidia.com>
Commit: b2477765dbf9bd28bd2d1813c41ae12613f87717
https://github.com/llvm/llvm-project/commit/b2477765dbf9bd28bd2d1813c41ae12613f87717
Author: Duo Wang <duow1 at uci.edu>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/test/SemaTemplate/instantiation-depth-default.cpp
Log Message:
-----------
[clang][test] Fix instantiation-depth-default.cpp under ubsan config on Windows (#91021)
Clang test `instantiation-depth-default.cpp` fails on Windows when built
with `ubsan` due to extra warnings printed by the compiler:
```console
File instantiation-depth-default.cpp Line 11: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely
```
Originally in https://github.com/llvm/llvm-project/pull/75254 this test
was enabled for `asan` as well but later started to cause failures in
Linux ASAN buildbots. I have excluded `asan` from this change.
Commit: f00f2941307e04d3b7320969ee3fec9af31246ba
https://github.com/llvm/llvm-project/commit/f00f2941307e04d3b7320969ee3fec9af31246ba
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/unsigned-after-sext-node.ll
Log Message:
-----------
[SLP]Fix PR91309: Do not consider SExt as always producing signed result.
Still need to do the full analysis of the signedness of the values
rather than rely on Instruction opcode, if the opcode is SExt. Still may
produce unsigned result.
Commit: e74a7a9fd79a74073277471243a44527c71eb4a9
https://github.com/llvm/llvm-project/commit/e74a7a9fd79a74073277471243a44527c71eb4a9
Author: Fangrui Song <i at maskray.me>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/lib/Frontend/CompilerInvocation.cpp
A clang/test/Frontend/multiple-actions.c
Log Message:
-----------
cc1: Report an error for multiple actions unless separated by -main-file-name (#91140)
When multiple actions are specified, the last one is used and others are
overridden. This might lead to confusion if the user is used to driver's
`-S -emit-llvm` behavior.
```
%clang_cc1 -S -emit-llvm a.c # -S is overridden
%clang_cc1 -emit-llvm -S a.c # -emit-llvm is overridden
%clang_cc1 -fsyntax-only -S a.c # -fsyntax-only is overridden
```
However, we want to continue supporting overriding the driver action
with -Xclang:
* `clang -c -Xclang -ast-dump a.c` (`%clang -cc1 -emit-obj ...
-main-file-name a.c ... -ast-dump`)
* `clang -c -xc++ -Xclang -emit-module stl.modulemap`
As an exception, we allow -ast-dump* options to be composed together
(e.g. `-ast-dump -ast-dump-lookups` in AST/ast-dump-lookups.cpp).
Commit: 8bcb0737056163686e967821bea7f9e87c57cdfc
https://github.com/llvm/llvm-project/commit/8bcb0737056163686e967821bea7f9e87c57cdfc
Author: Petr Hosek <phosek at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/BackendUtil.cpp
A clang/test/CodeGen/fseparate-named-sections.c
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/Target/TargetMachine.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
A llvm/test/CodeGen/X86/elf-separate-named-sections.ll
Log Message:
-----------
[Clang] -fseparate-named-sections option (#91028)
When set, the compiler will use separate unique sections for global
symbols in named special sections (e.g. symbols that are annotated with
__attribute__((section(...)))). Doing so enables linker GC to collect
unused symbols without having to use a different section per-symbol.
Commit: 5c5116556f58d90353aa3e3a34214cdc5ff0b2f2
https://github.com/llvm/llvm-project/commit/5c5116556f58d90353aa3e3a34214cdc5ff0b2f2
Author: Aart Bik <ajcbik at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
M mlir/test/Dialect/SparseTensor/binary_valued.mlir
M mlir/test/Dialect/SparseTensor/codegen.mlir
M mlir/test/Dialect/SparseTensor/sparse_matmul_codegen.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_ds.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_empty.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_print.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-gemm-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-sampled-matmul-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-sddmm-lib.mlir
Log Message:
-----------
[mlir][sparse] force a properly sized view on pos/crd/val under codegen (#91288)
Codegen "vectors" for pos/crd/val use the capacity as memref size, not
the actual used size. Although the sparsifier itself always uses just
the defined pos/crd/val parts, printing these and passing them back to a
runtime environment could benefit from wrapping the basic pos/crd/val
getters into a proper memref view that sets the right size.
Commit: 7927bcdb8a32646f78c01535050ada6ddc23f4f5
https://github.com/llvm/llvm-project/commit/7927bcdb8a32646f78c01535050ada6ddc23f4f5
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16.ll
Log Message:
-----------
AMDGPU: Do not bitcast atomicrmw in IR (#90045)
This is the first step to eliminating shouldCastAtomicRMWIInIR. This and
the other atomic expand casting hooks should be removed. This adds
duplicate legalization machinery and interfaces. This is already what
codegen is supposed to do, and already does for the promotion case.
In the case of atomicrmw xchg, there seems to be some benefit to having
the bitcasts moved outside of the cmpxchg loop on targets with separate
int and FP registers, which we should be able to deal with by directly
checking for the legality of the underlying operation.
The casting path was also losing metadata when it recreated the
instruction.
Commit: 63ceb9afc693209964efd4ac4844c9c0712c312d
https://github.com/llvm/llvm-project/commit/63ceb9afc693209964efd4ac4844c9c0712c312d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/test/CodeGen/X86/sext-subreg.ll
Log Message:
-----------
[X86] sext-subreg.ll - regenerate checks
Commit: 7198b8a39a062215aaf4ad8d2df23f7a10eaf6ae
https://github.com/llvm/llvm-project/commit/7198b8a39a062215aaf4ad8d2df23f7a10eaf6ae
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/test/CodeGen/X86/x86-64-extend-shift.ll
Log Message:
-----------
[X86] x86-64-extend-shift.ll - regenerate checks
Commit: 1a96179596099b8a3839050dbff02bfed94502e5
https://github.com/llvm/llvm-project/commit/1a96179596099b8a3839050dbff02bfed94502e5
Author: Tacet <advenam.tacet at trailofbits.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libcxx/include/string
A libcxx/test/libcxx/containers/strings/basic.string/asan_deque_integration.pass.cpp
A libcxx/test/libcxx/containers/strings/basic.string/asan_short.pass.cpp
A libcxx/test/libcxx/containers/strings/basic.string/asan_vector_integration.pass.cpp
M libcxx/test/libcxx/type_traits/is_trivially_relocatable.compile.pass.cpp
M libcxx/test/support/asan_testing.h
Log Message:
-----------
[ASan][libc++] Turn on ASan annotations for short strings (#79536)
This pull request is the third iteration aiming to integrate short
string annotations. This commit includes:
- Enabling basic_string annotations for short strings.
- Setting a value of `__trivially_relocatable` in `std::basic_string` to
`false_type` when compiling with ASan (nothing changes when compiling
without ASan). Short string annotations make `std::basic_string` to not
be trivially relocatable, because memory has to be unpoisoned.
- Adding a `_LIBCPP_STRING_INTERNAL_MEMORY_ACCESS` modifier to two
functions.
- Creating a macro `_LIBCPP_ASAN_VOLATILE_WRAPPER` to prevent
problematic stack optimizations (the macro modifies code behavior only
when compiling with ASan).
Previously we had issues with compiler optimization, which we understand
thanks to @vitalybuka. This commit also addresses smaller changes in
short string, since previous upstream attempts.
Problematic optimization was loading two values in code similar to:
```
__is_long() ? __get_long_size() : __get_short_size();
```
We aim to resolve it with the volatile wrapper.
This commit is built on top of two previous attempts which descriptions
are below.
Additionally, in the meantime, annotations were updated (but it
shouldn't have any impact on anything):
- https://github.com/llvm/llvm-project/pull/79292
---
Previous PR: https://github.com/llvm/llvm-project/pull/79049
Reverted:
https://github.com/llvm/llvm-project/commit/a16f81f5e3313e88f96de35e5edfe8bee463d308
Previous description:
Originally merged here: https://github.com/llvm/llvm-project/pull/75882
Reverted here: https://github.com/llvm/llvm-project/pull/78627
Reverted due to failing buildbots. The problem was not caused by the
annotations code, but by code in the `UniqueFunctionBase` class and in
the `JSON.h` file. That code caused the program to write to memory that
was already being used by string objects, which resulted in an ASan
error.
Fixes are implemented in:
- https://github.com/llvm/llvm-project/pull/79065
- https://github.com/llvm/llvm-project/pull/79066
Problematic code from `UniqueFunctionBase` for example:
```cpp
// In debug builds, we also scribble across the rest of the storage.
memset(RHS.getInlineStorage(), 0xAD, InlineStorageSize);
```
---
Original description:
This commit turns on ASan annotations in `std::basic_string` for short
stings (SSO case).
Originally suggested here: https://reviews.llvm.org/D147680
String annotations added here:
https://github.com/llvm/llvm-project/pull/72677
Requires to pass CI without fails:
- https://github.com/llvm/llvm-project/pull/75845
- https://github.com/llvm/llvm-project/pull/75858
Annotating `std::basic_string` with default allocator is implemented in
https://github.com/llvm/llvm-project/pull/72677 but annotations for
short strings (SSO - Short String Optimization) are turned off there.
This commit turns them on. This also removes
`_LIBCPP_SHORT_STRING_ANNOTATIONS_ALLOWED`, because we do not plan to
support turning on and off short string annotations.
Support in ASan API exists since
https://github.com/llvm/llvm-project/commit/dd1b7b797a116eed588fd752fbe61d34deeb24e4.
You can turn off annotations for a specific allocator based on changes
from
https://github.com/llvm/llvm-project/commit/2fa1bec7a20bb23f2e6620085adb257dafaa3be0.
This PR is a part of a series of patches extending AddressSanitizer C++
container overflow detection capabilities by adding annotations, similar
to those existing in `std::vector` and `std::deque` collections. These
enhancements empower ASan to effectively detect instances where the
instrumented program attempts to access memory within a collection's
internal allocation that remains unused. This includes cases where
access occurs before or after the stored elements in `std::deque`, or
between the `std::basic_string`'s size (including the null terminator)
and capacity bounds.
The introduction of these annotations was spurred by a real-world
software bug discovered by Trail of Bits, involving an out-of-bounds
memory access during the comparison of two strings using the
`std::equals` function. This function was taking iterators
(`iter1_begin`, `iter1_end`, `iter2_begin`) to perform the comparison,
using a custom comparison function. When the `iter1` object exceeded the
length of `iter2`, an out-of-bounds read could occur on the `iter2`
object. Container sanitization, upon enabling these annotations, would
effectively identify and flag this potential vulnerability.
If you have any questions, please email:
- advenam.tacet at trailofbits.com
- disconnect3d at trailofbits.com
Commit: 1318230587c30acb82324f851734a40341847a50
https://github.com/llvm/llvm-project/commit/1318230587c30acb82324f851734a40341847a50
Author: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
R clang/test/Driver/riscv-option-arch.c
R clang/test/Driver/riscv-option-arch.s
Log Message:
-----------
[RISCV][NFC] Remove redundant test cases. (#91324)
PR #89727 added the two test cases to verify `.option arch` should only
work when having -menable-experimental-extensions. And the test idea
could be splitted to
1. When having menable-experimental-extensions, clang passes
+experimental.
2. `.option arch` only enabled when +experimental enabled.
And we already had the two kind of tests.
Commit: 486695d154b23d0f66f3a5e054963b78d7d08d5a
https://github.com/llvm/llvm-project/commit/486695d154b23d0f66f3a5e054963b78d7d08d5a
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
R flang/test/Driver/driver-help-hidden.f90
Log Message:
-----------
[flang] Remove driver-help-hidden.f90 (#91307)
This file was originally removed in #89504 and then accidentally
re-added in #89938.
Commit: 72085698a244e10780a6f115269a2f88455c8cab
https://github.com/llvm/llvm-project/commit/72085698a244e10780a6f115269a2f88455c8cab
Author: Prashant Kumar <pk5561 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
M mlir/test/mlir-cpu-runner/math-polynomial-approx.mlir
Log Message:
-----------
[mlir][math] Add Polynomial Approximation for acos, asin op (#90962)
Adds the Polynomial Approximation for math.acos and math.asin op. Also,
it adds integration tests.
The Approximation has been borrowed from
https://stackoverflow.com/a/42683455
I added this script:
https://gist.github.com/pashu123/cd3e682b21a64ac306f650fb842a422b to
test 50 values between -1 and 1. The results are
https://gist.github.com/pashu123/8acb233bd045bacabfa8c992d4040465. It's
well within the bounds.
Commit: 026a29e8b38aad79568de033d0e8e5d2e6bb4250
https://github.com/llvm/llvm-project/commit/026a29e8b38aad79568de033d0e8e5d2e6bb4250
Author: Kazu Hirata <kazu at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Analysis/BlockFrequencyInfo.cpp
M llvm/lib/Analysis/BranchProbabilityInfo.cpp
M llvm/lib/Analysis/LoopInfo.cpp
M llvm/lib/Analysis/MemoryProfileInfo.cpp
M llvm/lib/CodeGen/MIRSampleProfile.cpp
M llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
M llvm/lib/CodeGen/MachineBlockPlacement.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVOptions.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.cpp
M llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
Log Message:
-----------
[Analysis, CodeGen, DebugInfo] Use StringRef::operator== instead of StringRef::equals (NFC) (#91304)
I'm planning to remove StringRef::equals in favor of
StringRef::operator==.
- StringRef::operator==/!= outnumber StringRef::equals by a factor of
53 under llvm/ in terms of their usage.
- The elimination of StringRef::equals brings StringRef closer to
std::string_view, which has operator== but not equals.
- S == "foo" is more readable than S.equals("foo"), especially for
!Long.Expression.equals("str") vs Long.Expression != "str".
Commit: 873431a68a3aa3ec4fed5d2dc98ef527230b0d21
https://github.com/llvm/llvm-project/commit/873431a68a3aa3ec4fed5d2dc98ef527230b0d21
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libc/hdr/fenv_macros.h
M libc/include/llvm-libc-macros/fenv-macros.h
Log Message:
-----------
[libc] Add __FE_DENORM to the fenv macros (#91353)
Summary:
Some targets support denormals as floating point exceptions. This is
provided as an extension in the GNU headers as __FE_DENORM.
This provides it in our headers, however I'm unsure if we should make it
internal or external. I do not think it should be in all exception as it
doesn't represent an exceptional behavior as far as the standard is
concerned, but I'm not an expert.
Commit: cf58c58e0967dbf812ef84944efd923ea366583a
https://github.com/llvm/llvm-project/commit/cf58c58e0967dbf812ef84944efd923ea366583a
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Move HostMacOSXPrivateHeaders to macOS only dep (#91354)
Commit: 1a2a1fbd7c03381fe5e4f459f7081bef13366ef4
https://github.com/llvm/llvm-project/commit/1a2a1fbd7c03381fe5e4f459f7081bef13366ef4
Author: Brendan Dahl <brendan.dahl at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/Basic/BuiltinsWebAssembly.def
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/builtins-wasm.c
M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
A llvm/test/CodeGen/WebAssembly/half-precision.ll
M llvm/test/CodeGen/WebAssembly/offset.ll
M llvm/test/MC/WebAssembly/simd-encodings.s
Log Message:
-----------
[WebAssembly] Implement prototype f32.load_f16 instruction. (#90906)
Adds a builtin and intrinsic for the f32.load_f16 instruction.
The instruction loads an f16 value from memory and puts it in an f32.
Specified at:
https://github.com/WebAssembly/half-precision/blob/29a9b9462c9285d4ccc1a5dc39214ddfd1892658/proposals/half-precision/Overview.md
Note: the current spec has f32.load_f16 as opcode 0xFD0120, but this is
incorrect and will be changed to 0xFC30 soon.
Commit: 7115ed0fff027b65fa76fdfae215ed1382ed1473
https://github.com/llvm/llvm-project/commit/7115ed0fff027b65fa76fdfae215ed1382ed1473
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang-tools-extra/clangd/AST.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang/docs/LibASTMatchersReference.html
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/ASTMatchers/ASTMatchersInternal.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/Index/IndexDecl.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/Tooling/Syntax/BuildTree.cpp
M clang/test/AST/ast-dump-template-decls.cpp
M clang/test/Index/Core/index-source.cpp
M clang/test/Index/index-refs.cpp
M clang/tools/libclang/CIndex.cpp
M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Log Message:
-----------
[Clang] Unify interface for accessing template arguments as written for class/variable template specializations (#81642)
Our current method of storing the template arguments as written for
`(Class/Var)Template(Partial)SpecializationDecl` suffers from a number
of flaws:
- We use `TypeSourceInfo` to store `TemplateArgumentLocs` for class
template/variable template partial/explicit specializations. For
variable template specializations, this is a rather unintuitive hack (as
we store a non-type specialization as a type). Moreover, we don't ever
*need* the type as written -- in almost all cases, we only want the
template arguments (e.g. in tooling use-cases).
- The template arguments as written are stored in a number of redundant
data members. For example, `(Class/Var)TemplatePartialSpecialization`
have their own `ArgsAsWritten` member that stores an
`ASTTemplateArgumentListInfo` (the template arguments).
`VarTemplateSpecializationDecl` has yet _another_ redundant member
"`TemplateArgsInfo`" that also stores an `ASTTemplateArgumentListInfo`.
This patch eliminates all
`(Class/Var)Template(Partial)SpecializationDecl` members which store the
template arguments as written, and turns the `ExplicitInfo` member into
a `llvm::PointerUnion<const ASTTemplateArgumentListInfo*,
ExplicitInstantiationInfo*>` (to avoid unnecessary allocations when the
declaration isn't an explicit instantiation). The template arguments as
written are now accessed via `getTemplateArgsWritten` in all cases.
The "most breaking" change is to AST Matchers, insofar that `hasTypeLoc`
will no longer match class template specializations (since they no
longer store the type as written).
Commit: b1bc1dbea6d0423813bb73d625c6eedc040007ed
https://github.com/llvm/llvm-project/commit/b1bc1dbea6d0423813bb73d625c6eedc040007ed
Author: Edwin Vane <revane at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.h
Log Message:
-----------
[clang-tidy] Refactor how NamedDecl are renamed (#88735)
The handling of renaming failures and multiple usages related to those
failures is currently spread over several functions. Identifying the
failure NamedDecl for a given usage is also duplicated, once when
creating failures and again when identify usages. There are currently
two ways to a failed NamedDecl from a usage: use the canonical decl or
use the overridden method. With new methods about to be added, a cleanup
was in order.
The data flow is simplified as follows:
* The visitor always forwards NamedDecls to addUsage(NamedDecl).
* addUsage(NamedDecl) determines the failed NamedDecl and determines
potential new names based on that failure. Usages are registered using
addUsage(NamingCheckId).
* addUsage(NamingCheckId) is now protected and its single responsibility
is maintaining the integrity of the failure/usage map.
Commit: 62bed56efdde1bed5dcebec5ceb375ffce223691
https://github.com/llvm/llvm-project/commit/62bed56efdde1bed5dcebec5ceb375ffce223691
Author: Benoit Jacob <jacob.benoit.1 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
Log Message:
-----------
[mlir][tensor] Remove assertion in ExpandShapeOp::build (#91361)
Unblocking downstream integrate where an expected-to-fail test was
expecting this to be a runtime verifier error, not a compiler crash:
https://github.com/llvm/torch-mlir/pull/3279.
Commit: 6cba93f25dc2014b5d8c71c739f17be1d8c3763a
https://github.com/llvm/llvm-project/commit/6cba93f25dc2014b5d8c71c739f17be1d8c3763a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/TargetParser/RISCVISAInfo.cpp
M llvm/test/tools/llvm-objdump/ELF/RISCV/unknown-arch-attr.test
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Add partial validation of S and X extension names to RISCVISAInfo::parseNormalizedArchString.
Extensions starting with 's' or 'x' should always be followed by an
alphabetical character. I don't know of any crashes from this currently,
but it seemed better to be defensive.
Commit: 1e36c96dc0998e886644d6fc76aa475d88d9645c
https://github.com/llvm/llvm-project/commit/1e36c96dc0998e886644d6fc76aa475d88d9645c
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/test/Transforms/InstCombine/lshr.ll
Log Message:
-----------
[InstCombine] Fold ((X << nuw Z) binop nuw Y) >>u Z --> X binop nuw (Y >>u Z) (#88193)
Proofs:
https://alive2.llvm.org/ce/z/N9dRzP
https://alive2.llvm.org/ce/z/Xrpc-Y
https://alive2.llvm.org/ce/z/BagBM6
Commit: 2a4f1f4a8ff60d55da69b4654360cf947b5b20f7
https://github.com/llvm/llvm-project/commit/2a4f1f4a8ff60d55da69b4654360cf947b5b20f7
Author: Florian Mayer <fmayer at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
Log Message:
-----------
Document FP relative offsets (#91031)
Commit: c9ab1d890586bd8a6a194e6a37968538b80f81bd
https://github.com/llvm/llvm-project/commit/c9ab1d890586bd8a6a194e6a37968538b80f81bd
Author: Sean Perry <39927768+perry-ca at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/test/AST/Interp/cxx23.cpp
M clang/test/CodeGen/ffp-contract-option.c
M clang/test/CodeGen/ffp-model.c
M clang/test/CodeGen/fp-matrix-pragma.c
M clang/test/Driver/clang-offload-bundler-asserts-on.c
M clang/test/Driver/clang-offload-bundler-standardize.c
M clang/test/Driver/clang-offload-bundler-zlib.c
M clang/test/Driver/clang-offload-bundler-zstd.c
M clang/test/Driver/clang-offload-bundler.c
A clang/test/Driver/std-trigraph-override.c
M clang/test/Driver/std.c
A clang/test/FixIt/fixit-c++2a-tls.cpp
M clang/test/FixIt/fixit-c++2a.cpp
M clang/test/Interpreter/const.cpp
M clang/test/Lexer/unicode.c
M clang/test/Modules/cstd.m
M clang/test/Modules/merge-objc-protocol-visibility.m
M clang/test/PCH/chain-openmp-threadprivate.cpp
M clang/test/Sema/thread_local.c
M llvm/test/MC/AsmParser/layout-interdependency.s
M llvm/test/Object/archive-big-extract.test
M llvm/test/Object/archive-extract.test
Log Message:
-----------
Mark test cases as unsupported on z/OS (#90990)
These test cases are testing features not available when either
targeting the s390x-ibm-zos target or use tools/features not available
on the z/OS operating system. In a couple cases the lit test had a
number of subtests with one or two that aren't supported on z/OS. Rather
than mark the entire test as unsupported I split out the unsupported
tests into a separate test case.
Commit: 057de4d26425c8b9840912e40ce025626f45d8d6
https://github.com/llvm/llvm-project/commit/057de4d26425c8b9840912e40ce025626f45d8d6
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lldb/tools/driver/Driver.cpp
M lldb/tools/lldb-dap/lldb-dap.cpp
Log Message:
-----------
[lldb] Request crash report when prompting for a bug report on Darwin (#91371)
On Darwin platforms, the system will generate a crash report in
~/Library/Logs/DiagnosticReports/ when a process crashes.
These reports are much more useful than the "pretty backtraces" printed
by LLVM and are preferred when filing bug reports on Darwin.
Commit: 65e2fab401a2da55c51d3caceae8478c33f3c60f
https://github.com/llvm/llvm-project/commit/65e2fab401a2da55c51d3caceae8478c33f3c60f
Author: Kazu Hirata <kazu at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
Log Message:
-----------
[Sema] Fix warnings
This patch fixes:
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3937:12: error:
unused variable 'CanonType' [-Werror,-Wunused-variable]
clang/lib/Sema/SemaTemplate.cpp:9279:18: error: unused variable
'TemplateKWLoc' [-Werror,-Wunused-variable]
Commit: c76ccf0f1e05d649449c8ff6908b0b6329eb2612
https://github.com/llvm/llvm-project/commit/c76ccf0f1e05d649449c8ff6908b0b6329eb2612
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
Log Message:
-----------
[LV] Add test case for #91369.
Add tests for https://github.com/llvm/llvm-project/issues/91369.
Commit: 82bb2534d4de16abb7a51fc646d5c31d6cec5eeb
https://github.com/llvm/llvm-project/commit/82bb2534d4de16abb7a51fc646d5c31d6cec5eeb
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/test/Transforms/AtomicExpand/AMDGPU/no-expand-atomic-store.ll
Log Message:
-----------
AMDGPU: Don't bitcast float typed atomic store in IR (#90116)
Implement the promotion in the DAG.
Depends #90113
Commit: 31dd0ef73c99b1bc9825ddfc58ddff0b134608fb
https://github.com/llvm/llvm-project/commit/31dd0ef73c99b1bc9825ddfc58ddff0b134608fb
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A llvm/test/Transforms/CorrelatedValuePropagation/sitofp.ll
A llvm/test/Transforms/CorrelatedValuePropagation/uitofp.ll
Log Message:
-----------
[CVP] Add tests for adding `nneg` flag to `uitofp` and converting `sitofp` -> `uitofp nneg`; NFC
Commit: 925a11128c903c8554921c2b5700caf191ae61d6
https://github.com/llvm/llvm-project/commit/925a11128c903c8554921c2b5700caf191ae61d6
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/sitofp.ll
M llvm/test/Transforms/CorrelatedValuePropagation/uitofp.ll
Log Message:
-----------
[CVP] Convert `sitofp` -> `uitofp nneg` and add `nneg` flag to `uitofp`
Similiar to the `InstCombine` changes, just furthering the scope of
the canonicalization/`uitofp nneg` support
Commit: 6243395d7f1da6a2ea813f5d86ba71f91e1070bf
https://github.com/llvm/llvm-project/commit/6243395d7f1da6a2ea813f5d86ba71f91e1070bf
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/Utils/SCCPSolver.cpp
M llvm/test/Transforms/SCCP/ip-ranges-casts.ll
M llvm/test/Transforms/SCCP/sitofp.ll
Log Message:
-----------
[SCCP] Add `nneg` flag to `uitofp` if its operand is non-negative
Similiar to the `InstCombine` changes, just furthering the support of
the `uitofp nneg` support.
Closes #86154
Commit: 117bda523ea15510d2289020decabef57d89acc0
https://github.com/llvm/llvm-project/commit/117bda523ea15510d2289020decabef57d89acc0
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Add unittests for MinVLen/MaxELen/MaxElenFp for ParseArchString. NFC
We had tests for ParseNormalizedArchString, but not ParseArchString.
The ParseNormalizedArchString test was not checking MaxElenFp.
Commit: dca3a6e562e012940c2b62a4d8dae3afec09caa4
https://github.com/llvm/llvm-project/commit/dca3a6e562e012940c2b62a4d8dae3afec09caa4
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/test/Driver/wasm-toolchain.c
Log Message:
-----------
[WebAssembly] Make EH depend on multivalue and reference-types (#91299)
This PR turns on multivalue and reference-types features when
exception-handling feature is turned on, and errors out when disabling
of those dependent features is explicitly requested.
I think doing this would be safe anyway regardless of whether or when we
end up turning on reference-types by default.
We currently don't yet have a experimental flag for the Clang and LLVM
for the new experimental EH yet. But I think it should be fine to turn
those features on even if the LLVM does not yet generate the new EH
instructions, for the same reason we tried to turn them on by default
and the browsers that support EH also support multivalue and
reference-types anyway.
Commit: 2e4abfae57f81e2bb23fc654d6edbaeae51ae10a
https://github.com/llvm/llvm-project/commit/2e4abfae57f81e2bb23fc654d6edbaeae51ae10a
Author: Adrian Prantl <aprantl at apple.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
Log Message:
-----------
Revert "[Sema] Fix warnings"
This reverts commit 65e2fab401a2da55c51d3caceae8478c33f3c60f because I'm also reverting 7115ed0fff027b65fa76fdfae215ed1382ed1473.
Commit: c6855ab24e63feb432aac4f86eb70ac16d76c921
https://github.com/llvm/llvm-project/commit/c6855ab24e63feb432aac4f86eb70ac16d76c921
Author: Adrian Prantl <aprantl at apple.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang-tools-extra/clangd/AST.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang/docs/LibASTMatchersReference.html
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/ASTMatchers/ASTMatchersInternal.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/Index/IndexDecl.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/Tooling/Syntax/BuildTree.cpp
M clang/test/AST/ast-dump-template-decls.cpp
M clang/test/Index/Core/index-source.cpp
M clang/test/Index/index-refs.cpp
M clang/tools/libclang/CIndex.cpp
M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Log Message:
-----------
Revert "[Clang] Unify interface for accessing template arguments as written for class/variable template specializations (#81642)"
This reverts commit 7115ed0fff027b65fa76fdfae215ed1382ed1473.
This commit broke several LLDB tests.
https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/as-lldb-cmake/3480/
Commit: dad11097096c05564758e539f9f03ef883365fdd
https://github.com/llvm/llvm-project/commit/dad11097096c05564758e539f9f03ef883365fdd
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lldb/source/API/CMakeLists.txt
Log Message:
-----------
[lldb] Reinstate lldb-sbapi-dwarf-enums target (NFC) (#91390)
Alex pointed out in #91254 that we only need the custom target if we had
more than one target depending on it. This isn't the case upstream, but
on our downstream fork, we have a second dependency. Reintroduce the
target so that everything can depend on that, without the
single-dependency foot-gun.
Commit: 5e9dd8827b3ccd03f8499b610deb6accd2d71d21
https://github.com/llvm/llvm-project/commit/5e9dd8827b3ccd03f8499b610deb6accd2d71d21
Author: Xiang Li <python3kgae at outlook.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/DirectX/DXILMetadata.cpp
M llvm/lib/Target/DirectX/DXILMetadata.h
M llvm/lib/Target/DirectX/DXILPrepare.cpp
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
A llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll
M llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll
M llvm/test/tools/dxil-dis/attribute-filter.ll
Log Message:
-----------
[DirectX] remove string function attribute DXIL not allowed (#90778)
Remove string function attribute other than
"waveops-include-helper-lanes" and "fp32-denorm-mode".
Move DXILPrepareModulePass after DXILTranslateMetadataPass since
DXILTranslateMetadataPass needs to use attribute like hlsl.numthreads.
Fixes #90773
Commit: 9a28814f59e8f52cc63ae3d17023cee8348d9b53
https://github.com/llvm/llvm-project/commit/9a28814f59e8f52cc63ae3d17023cee8348d9b53
Author: Maryam Moghadas <m.moghadas at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.h
M llvm/test/CodeGen/PowerPC/aix-csr-vector-extabi.ll
M llvm/test/CodeGen/PowerPC/aix-csr-vector.ll
M llvm/test/CodeGen/PowerPC/aix-csr.ll
A llvm/test/CodeGen/PowerPC/aix-spills-for-eh.ll
M llvm/test/CodeGen/PowerPC/aix32-crsave.mir
M llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll
M llvm/test/CodeGen/PowerPC/ppc64-crsave.mir
Log Message:
-----------
[PowerPC] Spill non-volatile registers required for traceback table (#71115)
On AIX we need to spill all [rfv]N-[rfv]31 when a function clobbers
[rfv]N so that the traceback table contains accurate information.
Commit: 082c81ae4ab9db6bb0acd52098288223dd58501a
https://github.com/llvm/llvm-project/commit/082c81ae4ab9db6bb0acd52098288223dd58501a
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
Log Message:
-----------
[LV] Properly extend versioned constant strides.
We only version unknown strides to 1. If the original type is i1, then
the sign of the extension matters. Properly extend the stride value
before replacing it.
Fixes https://github.com/llvm/llvm-project/issues/91369.
Commit: 0b50d095bccbd47c77e5ad2b03b09b41b696c4a0
https://github.com/llvm/llvm-project/commit/0b50d095bccbd47c77e5ad2b03b09b41b696c4a0
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/fold-agpr-phis.mir
Log Message:
-----------
[AMDGPU] Don't optimize agpr phis if the operand doesn't have subreg use (#91267)
If the operand doesn't have any subreg use, the optimization could
potentially
generate `V_ACCVGPR_READ_B32_e64` with wrong register class. The
following example demonstrates the issue.
Input MIR:
```
bb.0:
%0:sgpr_32 = S_MOV_B32 0
%1:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %0:sgpr_32, %subreg.sub1, %0:sgpr_32, %subreg.sub2, %0:sgpr_32, %subreg.sub3
%2:vreg_128 = COPY %1:sgpr_128
%3:areg_128 = COPY %2:vreg_128, implicit $exec
bb.1:
%4:areg_128 = PHI %3:areg_128, %bb.0, %6:areg_128, %bb.1
%5:areg_128 = PHI %3:areg_128, %bb.0, %7:areg_128, %bb.1
...
```
Output of current implementation:
```
bb.0:
%0:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec
%1:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec
%2:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec
%3:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec
%4:areg_128 = REG_SEQUENCE %0:agpr_32, %subreg.sub0, %1:agpr_32, %subreg.sub1, %2:agpr_32, %subreg.sub2, %3:agpr_32, %subreg.sub3
%5:vreg_128 = V_ACCVGPR_READ_B32_e64 %4:areg_128, implicit $exec
%6:areg_128 = COPY %46:vreg_128
bb.1:
%7:areg_128 = PHI %6:areg_128, %bb.0, %9:areg_128, %bb.1
%8:areg_128 = PHI %6:areg_128, %bb.0, %10:areg_128, %bb.1
...
```
The problem is the generated `V_ACCVGPR_READ_B32_e64` instruction.
Apparently the operand `%4:areg_128` is not valid for this.
In this patch, we don't count the none-subreg use because
`V_ACCVGPR_READ_B32_e64` can't handle none-32-bit operand.
Fixes: SWDEV-459556
Commit: 272ea28bdec93b33527dc54edbdef8f43c51df47
https://github.com/llvm/llvm-project/commit/272ea28bdec93b33527dc54edbdef8f43c51df47
Author: Adrian Prantl <aprantl at apple.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lldb/source/Expression/UserExpression.cpp
Log Message:
-----------
Remove else-after-break (NFC)
Commit: 8c4d7989c2b4a7e251afc3b13002611646de90b6
https://github.com/llvm/llvm-project/commit/8c4d7989c2b4a7e251afc3b13002611646de90b6
Author: Adrian Prantl <aprantl at apple.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lldb/source/Expression/UserExpression.cpp
Log Message:
-----------
Add a missing check for nullptr
This can't happen with Clang, but I've seen a crash report from the
Swift plugin where this happened.
rdar://126564844
Commit: a70ad96b3cc5275246f7f007d1892bb867b75bc0
https://github.com/llvm/llvm-project/commit/a70ad96b3cc5275246f7f007d1892bb867b75bc0
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/VOPInstructions.td
Log Message:
-----------
[AMDGPU] Fix condition in VOP3_Real_Base. NFCI. (#91373)
Commit: 2ad6917c4c524576405f2146424911fd9adb3528
https://github.com/llvm/llvm-project/commit/2ad6917c4c524576405f2146424911fd9adb3528
Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/Serialization/ASTReader.cpp
A clang/test/Modules/module-symlink.m
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/lib/Support/VirtualFileSystem.cpp
Log Message:
-----------
[modules] Accept equivalent module caches from different symlink (#90925)
Use `VFS.equivalent()`, which follows symlinks, to check if two module
cache paths are equivalent. This prevents a PCH error when building from
a different path that is a symlink of the original.
```
error: PCH was compiled with module cache path '/home/foo/blah/ModuleCache/2IBP1TNT8OR8D', but the path is currently '/data/users/foo/blah/ModuleCache/2IBP1TNT8OR8D'
1 error generated.
```
Commit: bc8a42762057d7036f6871211e62b1c3efb2738a
https://github.com/llvm/llvm-project/commit/bc8a42762057d7036f6871211e62b1c3efb2738a
Author: Marian Buschsieweke <maribu at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/Basic/MSP430Target.def
A clang/include/clang/Basic/Target/MSP430/gen-msp430-def.py
Log Message:
-----------
[MSP430][Clang] Update list of MCUs (#91258)
This updates the list of MSP430 MCUs from TI's devices.csv obtained from [1] under the "Header and Support Files" link. A simple python script has been used to generate this list and is included as well.
[1]: https://www.ti.com/tool/MSP430-GCC-OPENSOURCE#downloads
Commit: 2a3903fa0e88d7149df11aa37d4ba87c5e5f0913
https://github.com/llvm/llvm-project/commit/2a3903fa0e88d7149df11aa37d4ba87c5e5f0913
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fmaximum.ll
M llvm/test/CodeGen/AMDGPU/fminimum.ll
M llvm/test/CodeGen/AMDGPU/llvm.maximum.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.minimum.f16.ll
Log Message:
-----------
[AMDGPU] Prevent FMINIMUM and FMAXIMUM beeing fully scalarized (#91378)
This is the same logic as with FMINNUM_IEEE/FMAXNUM_IEEE.
Commit: a5044e6d505deb79f1b00bb39d11096d29b9c910
https://github.com/llvm/llvm-project/commit/a5044e6d505deb79f1b00bb39d11096d29b9c910
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M libc/src/__support/threads/linux/CMakeLists.txt
Log Message:
-----------
[libc] fix typo due to futex renaming (#91379)
Commit: ccf765cfd578c4ea4f710386e19cb8d1ef1859ce
https://github.com/llvm/llvm-project/commit/ccf765cfd578c4ea4f710386e19cb8d1ef1859ce
Author: Mircea Trofin <mtrofin at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M compiler-rt/lib/ctx_profile/CtxInstrProfiling.cpp
M compiler-rt/lib/ctx_profile/CtxInstrProfiling.h
M compiler-rt/lib/ctx_profile/tests/CtxInstrProfilingTest.cpp
Log Message:
-----------
[compiler-rt][ctx_profile] Add the instrumented contextual profiling APIs (#89838)
APIs for contextual profiling. `ContextNode` is the call context-specific counter buffer. `ContextRoot` is associated to those functions that constitute roots into interesting call graphs, and is the object on which we hang off `Arena`s for allocating `ContextNode`s, as well as the `ContextNode` corresponding to such functions. Graphs of `ContextNode`s are accessible by one thread at a time.
(Tracking Issue: #89287, more details in the RFC referenced there)
Commit: 8fc68879badc2dc83e8b9a575992af285d4a1057
https://github.com/llvm/llvm-project/commit/8fc68879badc2dc83e8b9a575992af285d4a1057
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp
Log Message:
-----------
Fix a typo in webkit.NoUncountedMemberChecker. (#91402)
Co-authored-by: Brianna Fan <bfan2 at apple.com>
Commit: ff0c5ccbe8879ccad9cb3548b69b114872c33ebb
https://github.com/llvm/llvm-project/commit/ff0c5ccbe8879ccad9cb3548b69b114872c33ebb
Author: Maksim Panchenko <maks at fb.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
A bolt/test/runtime/bolt-reserved.cpp
Log Message:
-----------
[BOLT] Add a test for BOLT-reserved space in a binary (#91399)
Test case for #90300.
Commit: 54401b43494a57baae9d3663cd7c694b040ef01c
https://github.com/llvm/llvm-project/commit/54401b43494a57baae9d3663cd7c694b040ef01c
Author: Prathamesh Tagore <63031630+meshtag at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/test/Dialect/MemRef/invalid.mlir
Log Message:
-----------
[mlir][memref.expand_shape] Add verifier check to ensure correct output_shape is provided by user (#91245)
The verifier was not checking for the case when the user provided shape
in output_shape is different than the one inferred from output type. Fix
this.
Commit: c0d9efd35d6a44258466349a7ba3a10c693b8c9c
https://github.com/llvm/llvm-project/commit/c0d9efd35d6a44258466349a7ba3a10c693b8c9c
Author: Youngsuk Kim <youngsuk.kim at hpe.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
Log Message:
-----------
[llvm][NVPTX] Remove outdated comments (NFC) (#91409)
Commit: 3f37397c959a85f4cad91b655ea03a5d2450ab38
https://github.com/llvm/llvm-project/commit/3f37397c959a85f4cad91b655ea03a5d2450ab38
Author: Max Winkler <max.enrico.winkler at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
A clang/test/CodeGen/x64-microsoft-arguments.cpp
Log Message:
-----------
[clang][CodeGen] Fix MSVC ABI for classes with a deleted copy assignment operator (#90547)
For global functions and static methods the MSVC ABI returns
structs/classes with a deleted copy assignment operator indirectly.
>From local testing this ABI holds true for all currently supported
architectures including ARM64EC.
Commit: 04d0a691af9e116f651d233c5689863f614d3adf
https://github.com/llvm/llvm-project/commit/04d0a691af9e116f651d233c5689863f614d3adf
Author: Fangrui Song <i at maskray.me>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M lld/ELF/Options.td
M lld/ELF/OutputSections.cpp
Log Message:
-----------
[ELF] Fix --compress-debug-sections=zstd when zlib is disabled
Commit: 77c5cea78eac3f20d0ba79f5892235e5aac82603
https://github.com/llvm/llvm-project/commit/77c5cea78eac3f20d0ba79f5892235e5aac82603
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/test/CXX/drs/dr13xx.cpp
M clang/test/CXX/except/except.spec/p13.cpp
A clang/test/CXX/temp/temp.deduct/p7.cpp
M clang/test/SemaCXX/cxx1z-noexcept-function-type.cpp
M clang/test/SemaTemplate/temp_arg_type.cpp
Log Message:
-----------
[Clang][Sema] Explicit template arguments are not substituted into the exception specification of a function (#90760)
[temp.deduct.general] p6 states:
> At certain points in the template argument deduction process it is
necessary to take a function type that makes use of template parameters
and replace those template parameters with the corresponding template
arguments.
This is done at the beginning of template argument deduction when any
explicitly specified template arguments are substituted into the
function type, and again at the end of template argument deduction when
any template arguments that were deduced or obtained from default
arguments are substituted.
[temp.deduct.general] p7 goes on to say:
> The _deduction substitution loci_ are
> - the function type outside of the _noexcept-specifier_,
> - the explicit-specifier,
> - the template parameter declarations, and
> - the template argument list of a partial specialization
>
> The substitution occurs in all types and expressions that are used in
the deduction substitution loci. [...]
Consider the following:
```cpp
struct A
{
static constexpr bool x = true;
};
template<typename T, typename U>
void f(T, U) noexcept(T::x); // #1
template<typename T, typename U>
void f(T, U*) noexcept(T::y); // #2
template<>
void f<A>(A, int*) noexcept; // clang currently accepts, GCC and EDG reject
```
Currently, `Sema::SubstituteExplicitTemplateArguments` will substitute
into the _noexcept-specifier_ when deducing template arguments from a
function declaration or when deducing template arguments for taking the
address of a function template (and the substitution is treated as a
SFINAE context). In the above example, `#1` is selected as the primary
template because substitution of the explicit template arguments into
the _noexcept-specifier_ of `#2` failed, which resulted in the candidate
being ignored.
This behavior is incorrect ([temp.deduct.general] note 4 says as much), and
this patch corrects it by deferring all substitution into the
_noexcept-specifier_ until it is instantiated.
As part of the necessary changes to make this patch work, the
instantiation of the exception specification of a function template
specialization when taking the address of a function template is changed
to only occur for the function selected by overload resolution per
[except.spec] p13.1 (as opposed to being instantiated for every candidate).
Commit: d4cf20ca37160cb062a9db773d0e6255d6bbc31a
https://github.com/llvm/llvm-project/commit/d4cf20ca37160cb062a9db773d0e6255d6bbc31a
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang-tools-extra/clangd/unittests/FindTargetTests.cpp
M clang-tools-extra/clangd/unittests/HoverTests.cpp
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/test/CXX/class/class.compare/class.compare.default/p4.cpp
Log Message:
-----------
[Clang][Sema] Don't set instantiated from function when rewriting operator<=> (#91339)
The following snippet causes a crash:
```
template<typename T>
struct A
{
bool operator<=>(const A&) const requires true = default;
};
bool f(A<int> a)
{
return a != A<int>();
}
```
This occurs because during the rewrite from `operator<=>` to
`operator==`, the "pattern" `operator<=>` function is set as the
instantiated from function for the newly created `operator==` function.
This is obviously incorrect, and this patch fixes it.
Commit: 83f3b1cb480b41e3347035aff14fd4bc2ba21d24
https://github.com/llvm/llvm-project/commit/83f3b1cb480b41e3347035aff14fd4bc2ba21d24
Author: Yinying Li <yinyingli at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensor.h
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorAttrDefs.td
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
M mlir/test/Dialect/SparseTensor/invalid_encoding.mlir
Log Message:
-----------
[mlir][sparse] Add verification for explicit/implicit value (#90111)
1. Verify that the type of explicit/implicit values should be the same
as the tensor element type.
2. Verify that implicit value could only be zero.
3. Verify that explicit/implicit values should be numeric.
4. Fix the type change issue caused by SparseTensorType(enc).
Commit: 34ae2265e88c8a04350de5a244d0d888e74a8388
https://github.com/llvm/llvm-project/commit/34ae2265e88c8a04350de5a244d0d888e74a8388
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
A clang/test/CXX/temp/temp.spec/temp.expl.spec/p14-23.cpp
A clang/test/CXX/temp/temp.spec/temp.expl.spec/p8.cpp
Log Message:
-----------
[Clang][Sema] Improve support for explicit specializations of constrained member functions & member function templates (#88963)
Consider the following snippet from the discussion of CWG2847 on the core reflector:
```
template<typename T>
concept C = sizeof(T) <= sizeof(long);
template<typename T>
struct A
{
template<typename U>
void f(U) requires C<U>; // #1, declares a function template
void g() requires C<T>; // #2, declares a function
template<>
void f(char); // #3, an explicit specialization of a function template that declares a function
};
template<>
template<typename U>
void A<short>::f(U) requires C<U>; // #4, an explicit specialization of a function template that declares a function template
template<>
template<>
void A<int>::f(int); // #5, an explicit specialization of a function template that declares a function
template<>
void A<long>::g(); // #6, an explicit specialization of a function that declares a function
```
A number of problems exist:
- Clang rejects `#4` because the trailing _requires-clause_ has `U`
substituted with the wrong template parameter depth when
`Sema::AreConstraintExpressionsEqual` is called to determine whether it
matches the trailing _requires-clause_ of the implicitly instantiated
function template.
- Clang rejects `#5` because the function template specialization
instantiated from `A<int>::f` has a trailing _requires-clause_, but `#5`
does not (nor can it have one as it isn't a templated function).
- Clang rejects `#6` for the same reasons it rejects `#5`.
This patch resolves these issues by making the following changes:
- To fix `#4`, `Sema::AreConstraintExpressionsEqual` is passed
`FunctionTemplateDecl`s when comparing the trailing _requires-clauses_
of `#4` and the function template instantiated from `#1`.
- To fix `#5` and `#6`, the trailing _requires-clauses_ are not compared
for explicit specializations that declare functions.
In addition to these changes, `CheckMemberSpecialization` now considers
constraint satisfaction/constraint partial ordering when determining
which member function is specialized by an explicit specialization of a
member function for an implicit instantiation of a class template (we
previously would select the first function that has the same type as the
explicit specialization). With constraints taken under consideration, we
match EDG's behavior for these declarations.
Commit: 584253c4e2f788f870488fc32193b52d67ddaccc
https://github.com/llvm/llvm-project/commit/584253c4e2f788f870488fc32193b52d67ddaccc
Author: Benji Smith <6193112+Benjins at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm-c/Core.h
M llvm/lib/IR/Core.cpp
M llvm/test/Bindings/llvm-c/echo.ll
M llvm/tools/llvm-c-test/echo.cpp
Log Message:
-----------
[C API] Add getters and build function for CallBr (#91154)
This adds LLVMBuildCallBr to create CallBr instructions, and getters for
the CallBr-specific data. The remainder of its data, e.g.
arguments/function, can be accessed using existing getters.
Commit: c4e5a8a4d3ef0948384d9411ea1e44fc113e5b5c
https://github.com/llvm/llvm-project/commit/c4e5a8a4d3ef0948384d9411ea1e44fc113e5b5c
Author: Aart Bik <ajcbik at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack_d.mlir
A mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_print_3d.mlir
Log Message:
-----------
[mlir][sparse] support 'batch' dimensions in sparse_tensor.print (#91411)
Commit: 2dade0041a62b192e9bde24ae6bbe6208f027523
https://github.com/llvm/llvm-project/commit/2dade0041a62b192e9bde24ae6bbe6208f027523
Author: Jinsong Ji <jinsong.ji at intel.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/CodeGen/Analysis.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
A llvm/test/CodeGen/X86/tailcall-range.ll
Log Message:
-----------
[Analysis] Attribute Range should not prevent tail call optimization (#91122)
- Remove Range attr when comparing for tailcall
- Add test for testcall with range
Commit: 7098cd215b95286794d9e0c822e8323ad0509750
https://github.com/llvm/llvm-project/commit/7098cd215b95286794d9e0c822e8323ad0509750
Author: Nikita Popov <npopov at redhat.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[NFC] Add myself as code owner for llvm/IR/Core.cpp
In practice I end up reviewing most changes to the C API.
Commit: d085b42cbbefe79a41113abcd2b1e1f2a203acef
https://github.com/llvm/llvm-project/commit/d085b42cbbefe79a41113abcd2b1e1f2a203acef
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstCombine/icmp.ll
M llvm/test/Transforms/InstCombine/select.ll
M llvm/test/Transforms/PGOProfile/chr.ll
Log Message:
-----------
[InstSimplify] Do not simplify freeze in `simplifyWithOpReplaced` (#91215)
See the LangRef:
> All uses of a value returned by the same ‘freeze’ instruction are
guaranteed to always observe the same value, while different ‘freeze’
instructions may yield different values.
It is incorrect to replace freezes with the simplified value.
Proof:
https://alive2.llvm.org/ce/z/3Dn9Cd
https://alive2.llvm.org/ce/z/Qyh5h6
Fixes https://github.com/llvm/llvm-project/issues/91178
Commit: bb01b89cda71fe1594a87f81b3f3c01f66fcac59
https://github.com/llvm/llvm-project/commit/bb01b89cda71fe1594a87f81b3f3c01f66fcac59
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedCallArgsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLocalVarsChecker.cpp
A clang/test/Analysis/Checkers/WebKit/mock-system-header.h
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
Log Message:
-----------
[analyzer] Ignore system headers in WebKit checkers. (#91103)
Commit: 0af448b71116ae93eae1cb9c3121cb94be076fc3
https://github.com/llvm/llvm-project/commit/0af448b71116ae93eae1cb9c3121cb94be076fc3
Author: Menooker <yijie.mei at intel.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
A mlir/test/Transforms/buffer-results-to-out-params-elim.mlir
Log Message:
-----------
[MLIR][Bufferization] BufferResultsToOutParams: Add an option to eliminate AllocOp and avoid Copy (#90011)
Add an option hoist-static-allocs to remove the unnecessary memref.alloc
and memref.copy after this pass, when the memref in ReturnOp is
allocated by memref.alloc and is statically shaped. Instead, it replaces
the uses of the allocated memref with the memref in the out argument.
By default, BufferResultsToOutParams will result in a memcpy operation
to copy the originally returned memref to the output argument memref.
This is inefficient when the source of memcpy (the returned memref in
the original ReturnOp) is from a local AllocOp. The pass can use the
output argument memref to replace the locally allocated memref for
better performance.hoist-static-allocs avoids dynamic allocation and
memory movement.
This option will be critical for performance-sensivtive applications,
which require BufferResultsToOutParams pass for a caller-owned output
buffer calling convension.
Commit: 1c8c2fdd289075d6ef448f60db9dd30caf7f78df
https://github.com/llvm/llvm-project/commit/1c8c2fdd289075d6ef448f60db9dd30caf7f78df
Author: Jie Fu <jiefu at tencent.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
Log Message:
-----------
[mlir] Fix -Wdeprecated-declarations in BufferResultsToOutParams.cpp (NFC)
/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp:124:26:
error: 'cast' is deprecated: Use mlir::cast<U>() instead [-Werror,-Wdeprecated-declarations]
124 | orig.getType().cast<MemRefType>().hasStaticShape()) {
|
Commit: 31b45a9d0d91cc3a78446ee379abc6f2a3000065
https://github.com/llvm/llvm-project/commit/31b45a9d0d91cc3a78446ee379abc6f2a3000065
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGen/strictfp-elementwise-bulitins.cpp
A clang/test/CodeGenHLSL/builtins/tan.hlsl
M clang/test/Sema/aarch64-sve-vector-trig-ops.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/riscv-rvv-vector-trig-ops.c
M clang/test/SemaCXX/builtins-elementwise-math.cpp
M clang/test/SemaHLSL/BuiltIns/half-float-only-errors.hlsl
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Intrinsics.td
Log Message:
-----------
[clang][hlsl] Add tan intrinsic part 1 (#90276)
This change is an implementation of #87367's investigation on supporting
IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294
If you want an overarching view of how this will all connect see:
https://github.com/llvm/llvm-project/pull/90088
Changes:
- `clang/docs/LanguageExtensions.rst` - Document the new elementwise tan
builtin.
- `clang/include/clang/Basic/Builtins.td` - Implement the tan builtin.
- `clang/lib/CodeGen/CGBuiltin.cpp` - invoke the tan intrinsic on uses
of the builtin
- `clang/lib/Headers/hlsl/hlsl_intrinsics.h` - Associate the tan builtin
with the equivalent hlsl apis
- `clang/lib/Sema/SemaChecking.cpp` - Add generic sema checks as well as
HLSL specifc sema checks to the tan builtin
- `llvm/include/llvm/IR/Intrinsics.td` - Create the tan intrinsic
- `llvm/docs/LangRef.rst` - Document the tan intrinsic
Commit: b438a817bd863699715116ee7d85b454f3289c08
https://github.com/llvm/llvm-project/commit/b438a817bd863699715116ee7d85b454f3289c08
Author: Jhonatan Cléto <52751492+cl3to at users.noreply.github.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/src/omptarget.cpp
Log Message:
-----------
[Offload] Fix dataDelete op for TARGET_ALLOC_HOST memory type (#91134)
Summary:
The `GenericDeviceTy::dataDelete` method doesn't verify the
`TargetAllocTy` of the of the device pointer. Because of this, it can
use the `MemoryManager` to free the ptr. However, the
`TARGET_ALLOC_HOST` and `TARGET_ALLOC_SHARED` types are not allocated
using the `MemoryManager` in the `GenericDeviceTy::dataAlloc` method.
Since the `MemoryManager` uses the `DeviceAllocatorTy::free` operation
without specifying the type of the ptr, some plugins may use incorrect
operations to free ptrs of certain types. In particular, this bug causes
the CUDA plugin to use the `cuMemFree` operation on ptrs of type
`TARGET_ALLOC_HOST`, resulting in an unchecked error, as shown in the
output snippet of the test
`offload/test/api/omp_host_pinned_memory_alloc.c`:
```
omptarget --> Notifying about an unmapping: HstPtr=0x00007c6114200000
omptarget --> Call to llvm_omp_target_free_host for device 0 and address 0x00007c6114200000
omptarget --> Call to omp_get_num_devices returning 1
omptarget --> Call to omp_get_initial_device returning 1
PluginInterface --> MemoryManagerTy::free: target memory 0x00007c6114200000.
PluginInterface --> Cannot find its node. Delete it on device directly.
TARGET CUDA RTL --> Failure to free memory: Error in cuMemFree[Host]: invalid argument
omptarget --> omp_target_free deallocated device ptr
```
This patch fixes this by adding the check of the device pointer type
before calling the appropriate operation for each type.
Commit: f4d2f7a3b7984795d61ff45daf37c76bf3fc8604
https://github.com/llvm/llvm-project/commit/f4d2f7a3b7984795d61ff45daf37c76bf3fc8604
Author: Liao Chunyu <chunyu at iscas.ac.cn>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.h
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVRedundantCopyElimination.cpp
A llvm/test/CodeGen/RISCV/xcvbi.ll
Log Message:
-----------
[RISCV] Codegen support for XCVbi extension (#89719)
spec:
https://github.com/openhwgroup/cv32e40p/blob/master/docs/source/instruction_set_extensions.rst#immediate-branching-operations
Contributors: @CharKeaney, @jeremybennett, @lewis-revill,
@NandniJamnadas,
@PaoloS02, @simonpcook, @xingmingjie, @realqhc, @PhilippvK, at melonedo
Commit: 48b6f4a18255816df51fcab7648c5a7f205dfe14
https://github.com/llvm/llvm-project/commit/48b6f4a18255816df51fcab7648c5a7f205dfe14
Author: Luke Lau <luke at igalia.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/test/CodeGen/RISCV/spill-fpr-scalar.ll
Log Message:
-----------
[RISCV] Rewrite spill-fpr-scalar.ll test to not use vsetvli. NFC (#91428)
It was relying on the fact that vsetvlis have side effects to prevent
reordering, but #91319 proposes to remove the side effects. This reworks
it to use volatile loads and stores instead.
Commit: 812c3025ec033ad1f306aff7f8b6e6695a79ee35
https://github.com/llvm/llvm-project/commit/812c3025ec033ad1f306aff7f8b6e6695a79ee35
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ptr-add.mir
Log Message:
-----------
[GlobalIsel][AArch64] legalize ptr add (#89218)
LLVM ERROR: unable to legalize instruction: %275:_(<4 x p0>) = G_PTR_ADD
%268:_, %274:_(<4 x s64>) (in function: prepare_for_pass)
Commit: 2c209957819328481554e7c5929d134502b4972a
https://github.com/llvm/llvm-project/commit/2c209957819328481554e7c5929d134502b4972a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/include/llvm/TargetParser/RISCVISAInfo.h
M llvm/lib/TargetParser/RISCVISAInfo.cpp
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Detect duplicate extensions in parseNormalizedArchString. (#91416)
This detects the same extension name being added twice. Mostly I'm
worried about the case that the same string appears with two different
versions. We will only preserve one of the versions.
We could allow the same version to be repeated, but that doesn't seem
useful at the moment.
I've updated addExtension to use map::emplace instead of
map::operator[]. This means we only keep the first version if there are
duplicates. Previously we kept the last version, but that shouldn't matter
now that we don't allow duplicates. parseArchString already doesn't allow
duplicates.
Commit: 85ef6b7c364f3b57c13c179bf278fe47366287a2
https://github.com/llvm/llvm-project/commit/85ef6b7c364f3b57c13c179bf278fe47366287a2
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/DirectX/DXIL.td
A llvm/test/CodeGen/DirectX/tan.ll
A llvm/test/CodeGen/DirectX/tan_error.ll
Log Message:
-----------
[DXIL] Add tan intrinsic part 2 (#90277)
This change is an implementation of #87367's investigation on supporting
IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294
If you want an overarching view of how this will all connect see:
https://github.com/llvm/llvm-project/pull/90088
Changes:
- `llvm/include/llvm/IR/Intrinsics.td` - Create the tan intrinsic
- `llvm/lib/Target/DirectX/DXIL.td` - Map `int_tan` (the tan intrinsic)
to the equivalent DXIL Op.
Commit: ef84452571b8e8f4a38a173e6adf6a5ecbbde97e
https://github.com/llvm/llvm-project/commit/ef84452571b8e8f4a38a173e6adf6a5ecbbde97e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AArch64/pr90936.ll
Log Message:
-----------
[DAGCombiner] Be more careful about looking through extends and truncates in mergeTruncStores. (#91375)
Previously we recursively looked through extends and truncates on both
SourceValue and WideVal.
SourceValue is the largest source found for each of the stores we are
combining. WideVal is the source for the current store.
Previously we could incorrectly look through a (zext (trunc X)) pair and
incorrectly believe X to be a good source.
I think we could also look through a zext on one store and a sext on
another store and arbitrarily pick one of the extends as the final
source.
With this patch we only look through one level of extend or truncate.
And we don't look through extends/truncs on both SourceValue and WideVal
at the same time.
This may lose some optimization cases, but keeps everything we had tests
for.
Fixes #90936.
Commit: 0d93b01c3b1e2e543acec3f36db639b8b7b0b20d
https://github.com/llvm/llvm-project/commit/0d93b01c3b1e2e543acec3f36db639b8b7b0b20d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M llvm/lib/Support/RISCVISAUtils.cpp
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Don't crash if parseNormalizedArchString encounters a multi-letter extension with an unknown prefix. (#91398)
The sorting code previously asserted if a prefix was multiple letters,
but didn't start with s, x, or z.
Replace the assert with an explicit check and sort the multi-letter
extension after the known multi-letter prefixes.
Commit: 8296f061aafb844bf3b9b002b7791ade7a1d3006
https://github.com/llvm/llvm-project/commit/8296f061aafb844bf3b9b002b7791ade7a1d3006
Author: Luke Lau <luke at igalia.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Log Message:
-----------
[RISCV] Add invariants that registers always have definitions. NFC (#90587)
For vector merge operands, we check if it's a NoRegister beforehand so
any other register type should have a definition.
For VL operands, they don't get replaced with NoRegisters since they're
scalar and should also always have a definition, even if it's an
implicit_def.
All the definitions at this stage should also be unique, this will
change in #70549
Commit: 3e82442ff7288b4c41bb77888bc2cfea2c34d6ee
https://github.com/llvm/llvm-project/commit/3e82442ff7288b4c41bb77888bc2cfea2c34d6ee
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/tan.ll
Log Message:
-----------
[SPIRV] Add tan intrinsic part 3 (#90278)
This change is an implementation of #87367's investigation on supporting
IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294
If you want an overarching view of how this will all connect see:
https://github.com/llvm/llvm-project/pull/90088
Changes:
- `llvm/docs/GlobalISel/GenericOpcode.rst` - Document the `G_FTAN`
opcode
- `llvm/include/llvm/IR/Intrinsics.td` - Create the tan intrinsic
- `llvm/include/llvm/Support/TargetOpcodes.def` - Create a `G_FTAN`
Opcode handler
- `llvm/include/llvm/Target/GenericOpcodes.td` - Define the `G_FTAN`
Opcode
- `llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp` Map the tan intrinsic
to `G_FTAN` Opcode
- `llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp` - Map the
`G_FTAN` opcode to the GLSL 4.5 and openCL tan instructions.
- `llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp` - Define `G_FTAN` as a
legal spirv target opcode.
Commit: 084e2b53d22c11e013b0a495b65d39aa7f934048
https://github.com/llvm/llvm-project/commit/084e2b53d22c11e013b0a495b65d39aa7f934048
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
M mlir/include/mlir/Transforms/Mem2Reg.h
M mlir/include/mlir/Transforms/SROA.h
M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
M mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/lib/Transforms/SROA.cpp
Log Message:
-----------
[MLIR][Interfaces] Change MemorySlotInterface to use OpBuilder (#91341)
This commit changes the `MemorySlotInterface` back to using `OpBuilder`
instead of a rewriter. This was originally introduced in
https://reviews.llvm.org/D150432 but it was shown that patterns are a
bad idea for both Mem2Reg and SROA.
Mem2Reg suffers from the usage of a rewriter due to being forced to
create new basic blocks. This is an issue, as it leads to the
invalidation of the dominance information, which can be expensive to
recompute.
Commit: a99ce615f19fec6fbb835490b89f53cba3cf9eff
https://github.com/llvm/llvm-project/commit/a99ce615f19fec6fbb835490b89f53cba3cf9eff
Author: jyu2-git <jennifer.yu at intel.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/lib/Parse/ParseOpenMP.cpp
M clang/test/OpenMP/target_ast_print.cpp
M clang/test/OpenMP/target_map_messages.cpp
Log Message:
-----------
Revert "Revert "[OpenMP][TR12] change property of map-type modifier."… (#91141)
… (#90885)"
This reverts commit eea81aa29848361eb5b24f24d2af643fdeb9adfd.
Also change isMapType as @vitalybuka suggested. Hope this fix sanitizer
build problem.
Commit: 8755d24cb34b902557469445e1983850e0ce7cc7
https://github.com/llvm/llvm-project/commit/8755d24cb34b902557469445e1983850e0ce7cc7
Author: Mircea Trofin <mtrofin at google.com>
Date: 2024-05-07 (Tue, 07 May 2024)
Changed paths:
M compiler-rt/lib/ctx_profile/tests/CtxInstrProfilingTest.cpp
Log Message:
-----------
[compiler-rt][ctx_profile] Fix signed-ness warnings in test
Follow-up from PR ##89838. Some build bots warn-as-error
about signed/unsigned comparison in CtxInstrProfilingTest.
Example: https://lab.llvm.org/buildbot/#/builders/37/builds/34610
Commit: 23ae482bd01d7c966f871ddd620e9a26d6d66299
https://github.com/llvm/llvm-project/commit/23ae482bd01d7c966f871ddd620e9a26d6d66299
Author: martinboehme <mboehme at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
Log Message:
-----------
[clang][dataflow] Allow `DataflowAnalysisContext` to use a non-owned `Solver`. (#91316)
For some callers (see change in DataflowAnalysis.h), this is more
convenient.
Commit: e44600f3ab58b0e93a2a80f18e17181c2bc007a4
https://github.com/llvm/llvm-project/commit/e44600f3ab58b0e93a2a80f18e17181c2bc007a4
Author: Freddy Ye <freddy.ye at intel.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/lib/Basic/Targets/X86.cpp
A clang/test/CodeGen/X86/inline-asm-gcc-regs.c
Log Message:
-----------
[X86][CFE] Support EGPR in GCCRegNames. (#91323)
Commit: bbd6a2d85c44d99e66b471d251a742f7551a0c61
https://github.com/llvm/llvm-project/commit/bbd6a2d85c44d99e66b471d251a742f7551a0c61
Author: Luke Lau <luke at igalia.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/test/CodeGen/RISCV/rvv/rv32-spill-zvlsseg.ll
M llvm/test/CodeGen/RISCV/rvv/rv64-spill-zvlsseg.ll
M llvm/test/CodeGen/RISCV/rvv/vleff-vlseg2ff-output.ll
Log Message:
-----------
[RISCV] Convert implicit_def tuples to noreg in post-isel peephole (#91173)
If a segmented load has an undefined passthru then it will be selected
as a reg_sequence with implicit_def operands, which currently slips
through the implicit_def -> noreg peephole.
This patch fixes this so we're able to infer if the passthru is
undefined without the need for looking through vreg definitions with
MachineRegisterInfo, which will help with moving RISCVInsertVSETVLI to
LiveIntervals in #70549
Commit: 81d304566b3b22781ca42303ec534bdc0ac5418c
https://github.com/llvm/llvm-project/commit/81d304566b3b22781ca42303ec534bdc0ac5418c
Author: Luke Lau <luke at igalia.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Log Message:
-----------
[RISCV] Remove unused arg in getDemanded in RISCVInsertVSETVLI. NFC
Commit: bafbe39778a972d0f2869980de22fb00c03a6a35
https://github.com/llvm/llvm-project/commit/bafbe39778a972d0f2869980de22fb00c03a6a35
Author: Adrian Kuegel <akuegel at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
A llvm/test/CodeGen/NVPTX/atomics-sm90.ll
Log Message:
-----------
[NVPTX] Add support for atomic add for bf16 type (#89586)
atom.add.noftz.bf16 is supported since SM 9.0 and PTX 7.8
Commit: 3aba4b5b4fe1634fc6f9919f987ddf1bb5a57813
https://github.com/llvm/llvm-project/commit/3aba4b5b4fe1634fc6f9919f987ddf1bb5a57813
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M libcxx/include/__functional/is_transparent.h
M libcxx/include/map
M libcxx/include/set
M libcxx/include/unordered_map
M libcxx/include/unordered_set
Log Message:
-----------
[libc++][NFC] Refactor __is_transparent to be a variable template (#90865)
Commit: 9ef28cf88ca6e45c3ecb75c649463f8797db68d2
https://github.com/llvm/llvm-project/commit/9ef28cf88ca6e45c3ecb75c649463f8797db68d2
Author: Ramkumar Ramachandra <r at artagnon.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
A llvm/test/Transforms/VectorCombine/pr88796.ll
Log Message:
-----------
VectorCombine: add test for crash #88796 (#91200)
Commit: 57b9c15227ec15a5e2abf4587d7d0ad536cff9e6
https://github.com/llvm/llvm-project/commit/57b9c15227ec15a5e2abf4587d7d0ad536cff9e6
Author: Ramkumar Ramachandra <r at artagnon.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/pr88796.ll
Log Message:
-----------
VectorCombine: fix logical error after m_Trunc match (#91201)
The matcher m_Trunc() matches an Operator with a given Opcode, which
could either be an Instruction or ConstExpr.
VectorCombine::foldTruncFromReductions() incorrectly assumes that the
pattern matched is always an Instruction, and attempts a cast. Fix this.
Fixes #88796.
Commit: 746bf297e2f0f637d2e1c197bf04a32ab04b669a
https://github.com/llvm/llvm-project/commit/746bf297e2f0f637d2e1c197bf04a32ab04b669a
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/test/Semantics/OpenMP/do08.f90
Log Message:
-----------
[Flang][OpenMP] Add checks for EXIT from associated loops (#91315)
Extend the checker that deals with CYCLE to handle EXIT also. The
difference for EXIT is that it is not allowed to EXIT from the innermost
associated loops while it is OK to CYCLE in the innermost associated
loop. Also add an incrementer on leaving the DO loop for EXIT checks.
Commit: 602df270a9bfcb52980a93c85eb615c0d91eba0c
https://github.com/llvm/llvm-project/commit/602df270a9bfcb52980a93c85eb615c0d91eba0c
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Frontend/CompilerInvocation.h
M flang/lib/Frontend/CompilerInvocation.cpp
A flang/test/Driver/w-option.f90
Log Message:
-----------
[Flang] RFC: Add support for -w option 1/n (#90420)
Add support for the -w option to switch OFF all Flang
warnings. This patch only supports switching OFF the
frontend warnings.
TODO : Support for MLIR, LLVM and Driver warnings.
TODO : Support interactions between -w, -pedantic, -Wall
Commit: 1a498103ee5c4d101e70dc49db11938d8b87b518
https://github.com/llvm/llvm-project/commit/1a498103ee5c4d101e70dc49db11938d8b87b518
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/test/Conversion/ArmSMEToLLVM/arm-sme-to-llvm.mlir
M mlir/test/Conversion/ArmSMEToLLVM/unsupported.mlir
M mlir/test/Conversion/ArmSMEToSCF/arm-sme-to-scf.mlir
A mlir/test/Dialect/ArmSME/basic-tile-allocation.mlir
M mlir/test/Dialect/ArmSME/enable-arm-za.mlir
M mlir/test/Dialect/ArmSME/outer-product-fusion.mlir
R mlir/test/Dialect/ArmSME/tile-allocation.mlir
M mlir/test/Dialect/ArmSME/tile-zero-masks.mlir
Log Message:
-----------
[mlir][ArmSME][test] Prepare tests for tile allocation changes (#91358)
This patch:
1. Removes some duplicate test cases
2. Removes unnecessary uses of `-convert-arm-sme-to-llvm`
3. Ensures tile values have uses via `test.some_use()`
1 and 2 will make these tests easier to update. 3 will be needed as
ArmSME operations will be pure.
Commit: dd4bf22b9380e797362fac1415a1796da338b2db
https://github.com/llvm/llvm-project/commit/dd4bf22b9380e797362fac1415a1796da338b2db
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
Log Message:
-----------
[X86] combineBlendOfPermutes - don't introduce lane-crossing permutes without AVX2 support.
Fixes #91433
Commit: 8f21294897befee48f9f72734ea1b0ad4c920aa0
https://github.com/llvm/llvm-project/commit/8f21294897befee48f9f72734ea1b0ad4c920aa0
Author: YunQiang Su <syq at debian.org>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M lld/test/ELF/mips-eh_frame-pic.s
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/test/CodeGen/Mips/ehframe-indirect.ll
M llvm/test/DebugInfo/Mips/eh_frame.ll
M llvm/test/MC/Mips/eh-frame.s
Log Message:
-----------
MIPS: Use pcrel|sdata4 for eh_frame (#91291)
Gas uses encoding DW_EH_PE_absptr for PIC, and gnu ld converts it to
DW_EH_PE_sdata4|DW_EH_PE_pcrel.
LLD doesn't have this workarounding, thus complains
```
relocation R_MIPS_32 cannot be used against local symbol; recompile with -fPIC
relocation R_MIPS_64 cannot be used against local symbol; recompile with -fPIC
```
So, let's generates asm/obj files with `DW_EH_PE_sdata4|DW_EH_PE_pcrel`
encoding. In fact, GNU ld supports such OBJs well.
For N64, maybe we should use sdata8, while GNU ld doesn't support it
well, and in fact sdata4 is enough now. So we just ignore the `Large`
for `MCObjectFileInfo::initELFMCObjectFileInfo`. Maybe we should switch
back to sdata8 once GNU LD supports it well.
Fixes: #58377.
Commit: df311a27629618f6ba645bfe3f46e981000cb5da
https://github.com/llvm/llvm-project/commit/df311a27629618f6ba645bfe3f46e981000cb5da
Author: Aleksandr Popov <42888396+aleks-tmb at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Log Message:
-----------
Add interface to check if a call has a deopt bundle (NFC) (#91348)
Encapsulate check that a call has a deopt bundle to make it easier to
change the deopt scheme.
Commit: d4fef93724e290a82d498f0d8df1a84a5ff50ab3
https://github.com/llvm/llvm-project/commit/d4fef93724e290a82d498f0d8df1a84a5ff50ab3
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel][libc] Split up mutex libraries like ab3a9e724d87a4272782f76b90fb0872a6a86939 did
Commit: aefad851672e6dd17592895066a39aa5b388e5db
https://github.com/llvm/llvm-project/commit/aefad851672e6dd17592895066a39aa5b388e5db
Author: Kadir Cetinkaya <kadircet at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang-tools-extra/clangd/Preamble.cpp
Log Message:
-----------
[clangd] Fix data race surfaced in clangd-tsan buildbot
We can have concurrent accesses to same PreambleData (e.g.
code-completion and ast-builds). Hence we need to
deep copy TargetOpts.
Commit: 341aecc2dd0f6debcbe9f251a6d2e8a60d327eea
https://github.com/llvm/llvm-project/commit/341aecc2dd0f6debcbe9f251a6d2e8a60d327eea
Author: Weaver <Tom.Weaver at sony.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/lib/Parse/ParseOpenMP.cpp
M clang/test/OpenMP/target_ast_print.cpp
M clang/test/OpenMP/target_map_messages.cpp
Log Message:
-----------
Revert "Revert "Revert "[OpenMP][TR12] change property of map-type modifier."… (#91141)"
This reverts commit a99ce615f19fec6fbb835490b89f53cba3cf9eff.
Caused test failure on following buildbot:
https://lab.llvm.org/buildbot/#/builders/139/builds/65066
Commit: 927913fac74b671b5202eb00a52907d8445c7691
https://github.com/llvm/llvm-project/commit/927913fac74b671b5202eb00a52907d8445c7691
Author: Harald van Dijk <harald.vandijk at codeplay.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Transforms/Utils/ValueMapper.cpp
Log Message:
-----------
[RemoveDIs] Fix remapping of DbgLabelRecords. (#91447)
We already remapped DILocations for DbgVariableRecords, but
DbgLabelRecords have debug locations too that need to be mapped the same
way.
Commit: 19220110acf5ed5cf8be035b7e4a7aed69f0adb1
https://github.com/llvm/llvm-project/commit/19220110acf5ed5cf8be035b7e4a7aed69f0adb1
Author: Felix (Ting Wang) <Ting.Wang.SH at ibm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-largeaccess.ll
M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-types.ll
Log Message:
-----------
[PowerPC][AIX] Refactor existing logic to handle non-zero offsets for aix-small-local-dynamic-tls (#89182)
To enable optimized small local-dynamic access sequence for non-zero
offsets, this patch refactors existing
2a50921553798d2db52ca6330c89f0f8a5bc2215.
Commit: 6fa09616da7436f85eb7e1e1fd74e1ac078ddb0d
https://github.com/llvm/llvm-project/commit/6fa09616da7436f85eb7e1e1fd74e1ac078ddb0d
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp
Log Message:
-----------
[analyzer] Use explicit call description mode in MIGChecker (#91331)
This commit explicitly specifies the matching mode (C library function,
any non-method function, or C++ method) for the `CallDescription`s
constructed in the checker `osx.MIG`.
The code was simplified to use a `CallDescriptionMap` instead of a raw
vector of pairs.
This change won't cause major functional changes, but isn't NFC because
it ensures that e.g. call descriptions for a non-method function won't
accidentally match a method that has the same name.
Separate commits have already performed this change in other checkers:
- easy cases: e2f1cbae45f81f3cd9a4d3c2bcf69a094eb060fa,
6d64f8e1feee014e72730a78b62d9d415df112ff
- MallocChecker: d6d84b5d1448e4f2e24b467a0abcf42fe9d543e9
- iterator checkers: 06eedffe0d2782922e63cc25cb927f4acdaf7b30
- InvalidPtr checker: 024281d4d26344f9613b9115ea1fcbdbdba23235
- apiModeling.llvm.ReturnValue: 97dd8e3c4f38ef345b01fbbf0a2052c7875ff7e0
... and follow-up commits will handle the remaining few checkers.
My goal is to ensure that the call description mode is always explicitly
specified and eliminate (or strongly restrict) the vague "may be either
a method or a simple function" mode that's the current default.
Commit: 943617d12ccbd3cf317f0bbec03d9efc700f3953
https://github.com/llvm/llvm-project/commit/943617d12ccbd3cf317f0bbec03d9efc700f3953
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/lib/CodeGen/CGExprAgg.cpp
Log Message:
-----------
Typo fix; NFC
Commit: c5509fedc5757fffece385d9d068e36b26793ade
https://github.com/llvm/llvm-project/commit/c5509fedc5757fffece385d9d068e36b26793ade
Author: Xiang Li <python3kgae at outlook.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Parse/ParseHLSL.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/AST/HLSL/packoffset.hlsl
A clang/test/SemaHLSL/packoffset-invalid.hlsl
Log Message:
-----------
[HLSL] Support packoffset attribute in AST (#89836)
Add HLSLPackOffsetAttr to save packoffset in AST.
Since we have to parse the attribute manually in ParseHLSLAnnotations,
we could create the ParsedAttribute with a integer offset parameter
instead of string. This approach avoids parsing the string if the offset
is saved as a string in HLSLPackOffsetAttr.
For #57914.
Commit: 737e0bcfe344bd9a8c4e4c3c2e80fdbe93bfaafb
https://github.com/llvm/llvm-project/commit/737e0bcfe344bd9a8c4e4c3c2e80fdbe93bfaafb
Author: Thorsten Schütt <schuett at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/combine-with-flags.mir
Log Message:
-----------
[GlobalIsel] combine ext of trunc with flags (#87115)
https://github.com/llvm/llvm-project/pull/85592
https://discourse.llvm.org/t/rfc-add-nowrap-flags-to-trunc/77453
https://github.com/llvm/llvm-project/pull/88609
Commit: db4cf7c0fc713c09bbe10dd2be4a3d0fb081014c
https://github.com/llvm/llvm-project/commit/db4cf7c0fc713c09bbe10dd2be4a3d0fb081014c
Author: Renato Golin <rengolin at systemcall.eu>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
Update CODEOWNERS
Adding myself to linalg dialect
Commit: c84c74e67839a5207d7c6318fc37e607f088a994
https://github.com/llvm/llvm-project/commit/c84c74e67839a5207d7c6318fc37e607f088a994
Author: Paul Walker <paul.walker at arm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/test/CodeGen/AArch64/sve-extract-fixed-from-scalable-vector.ll
Log Message:
-----------
[LLVM][CodeGen][SVE] Add tests for vector extracts from unpacked types.
Commit: 686a206b2665b6ba9245980489daa79dc8547079
https://github.com/llvm/llvm-project/commit/686a206b2665b6ba9245980489daa79dc8547079
Author: Nabeel Omer <nabeel.omer at sony.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Transforms/IPO/SampleProfile.cpp
A llvm/test/Transforms/SampleProfile/Inputs/overflow.proftext
A llvm/test/Transforms/SampleProfile/overflow.ll
Log Message:
-----------
[SampleProfileLoader] Fix integer overflow in generateMDProfMetadata (#90217)
This patch fixes an integer overflow in the SampleProfileLoader pass.
The issue occurs when weights are saturated and Profi isn't being used.
This patch also adds a newline to a debug message to make it more
readable.
Commit: 3ceacd8b9567a25308f7aaa73d266ee3b4c6ab5f
https://github.com/llvm/llvm-project/commit/3ceacd8b9567a25308f7aaa73d266ee3b4c6ab5f
Author: Paul T Robinson <paul.robinson at sony.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/test/CodeGenCoroutines/coro-dwarf.cpp
Log Message:
-----------
[Coro] Relax a debug-info test (#91401)
Debug-info metadata does not have a strictly defined order. Check that
elements are linked to each other correctly, not that metadata appears
in a particular order.
Commit: 665af09a86b8d80af33f170fca89ced9986cf1e5
https://github.com/llvm/llvm-project/commit/665af09a86b8d80af33f170fca89ced9986cf1e5
Author: Xiang Li <python3kgae at outlook.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/Target/DirectX/DXILMetadata.cpp
M llvm/lib/Target/DirectX/DXILMetadata.h
M llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp
M llvm/lib/TargetParser/Triple.cpp
A llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll
A llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll
M llvm/unittests/TargetParser/TripleTest.cpp
Log Message:
-----------
[DirectX backend] emits metadata for DXIL version. (#88350)
Emit named metadata "dx.version" for DXIL version.
Default to DXIL 1.0
Commit: 40b322baef143df271d8b9142028aaeeec2a4d78
https://github.com/llvm/llvm-project/commit/40b322baef143df271d8b9142028aaeeec2a4d78
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info.ll
A llvm/test/Transforms/IndVarSimplify/trip-count-expansion-loop-guard-preserve-nsw.ll
Log Message:
-----------
[SCEV] Add tests for missed NSW preservation during loop guard handling.
Add test coverage for missed simplification.
Commit: f97f04ec4392c79163179331211ea8c48e61799b
https://github.com/llvm/llvm-project/commit/f97f04ec4392c79163179331211ea8c48e61799b
Author: Daniel Chen <cdchen at ca.ibm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/tools/mlir-src-sharder/mlir-src-sharder.cpp
Log Message:
-----------
[mlir] Fixing a regression that '-D' option of llvm-tblgen is unregistered. (#91329)
PR #89664 introduced a regression that it unregistered llvm-tblgen
option `-D` for macros. The test `TestOps.cpp` failed due to passing a
macros to llvm-tblgen.
It caused our internal build to fail because we append `-DLOCAL_NAME`
into `LLVM_TABLEGEN_FLANGS` in `llvm/lib/cmake/llvm/TableGen.cmake` as
```
list(APPEND LLVM_TABLEGEN_FLAGS "-DLOCAL_NAME")
```
And in `./llvm/lib/Target/PowerPC/PPC.td`, we check it for some
downstream code as:
```
...
#ifdef LOCAL_NAME
...
#endif
```
Now we got error message from mlir-src-sharder as
```
mlir-src-sharder -op-shard-index=1 -DLOCAL_NAME llvm-project/mlir/test/lib/Dialect/Test/TestOps.cpp --write-if-changed -o tools/mlir/test/lib/Dialect/Test/TestOps.1.cpp -d tools/mlir/test/lib/Dialect/Test/TestOps.1.cpp.d
mlir-src-sharder: Unknown command line argument '-DLOCAL_NAME'. Try: 'llvm-project/build/bin/mlir-src-sharder --help'
mlir-src-sharder: Did you mean '-I'?
```
This PR is to fix the regression.
Commit: 9c09b0840e82490ed194207adc03d3e7284b8764
https://github.com/llvm/llvm-project/commit/9c09b0840e82490ed194207adc03d3e7284b8764
Author: Xiang Li <python3kgae at outlook.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Parse/ParseHLSL.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaHLSL.cpp
R clang/test/AST/HLSL/packoffset.hlsl
R clang/test/SemaHLSL/packoffset-invalid.hlsl
Log Message:
-----------
Revert "[HLSL] Support packoffset attribute in AST (#89836)" (#91473)
This reverts commit c5509fedc5757fffece385d9d068e36b26793ade.
Commit: c6efcc925c9969d616bc463171c0423d6a9766af
https://github.com/llvm/llvm-project/commit/c6efcc925c9969d616bc463171c0423d6a9766af
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/include/mlir/Transforms/Mem2Reg.h
M mlir/lib/Transforms/Mem2Reg.cpp
Log Message:
-----------
[MLIR][Mem2Reg] Improve performance by avoiding recomputations (#91444)
This commit ensures that Mem2Reg reuses the `DominanceInfo` as well as
block index maps to avoid expensive recomputations. Due to the recent
migration to `OpBuilder`, the promotion of a slot does no longer replace
blocks. Having stable blocks makes the `DominanceInfo` preservable and
additionally allows to cache block index maps between different
promotions.
Performance measurements on very large functions show an up to 4x
speedup by these changes.
Commit: 2c1c67674cb3beb4e091a9f446de5858631cf8ae
https://github.com/llvm/llvm-project/commit/2c1c67674cb3beb4e091a9f446de5858631cf8ae
Author: srcarroll <50210727+srcarroll at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
M mlir/include/mlir/Dialect/Transform/Utils/Utils.h
M mlir/include/mlir/Interfaces/ViewLikeInterface.h
M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
M mlir/lib/Dialect/Transform/Utils/Utils.cpp
M mlir/lib/Interfaces/ViewLikeInterface.cpp
M mlir/test/Dialect/LLVM/transform-e2e.mlir
M mlir/test/Dialect/Linalg/generalize-tensor-pack-tile.mlir
M mlir/test/Dialect/Linalg/generalize-tensor-unpack-tile.mlir
M mlir/test/Dialect/Linalg/matmul-shared-memory-padding.mlir
M mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
M mlir/test/Dialect/Linalg/promote.mlir
M mlir/test/Dialect/Linalg/promotion_options.mlir
M mlir/test/Dialect/Linalg/tile-conv.mlir
M mlir/test/Dialect/Linalg/tile-indexed.mlir
M mlir/test/Dialect/Linalg/tile-softmax.mlir
M mlir/test/Dialect/Linalg/tile-tensors.mlir
M mlir/test/Dialect/Linalg/tile-to-forall.mlir
M mlir/test/Dialect/Linalg/transform-op-compose-masked-vectorize-and-cleanups.mlir
M mlir/test/Dialect/Linalg/transform-op-fuse.mlir
M mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir
M mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
M mlir/test/Dialect/Linalg/transform-op-mmt4d-to-fma.mlir
M mlir/test/Dialect/Linalg/transform-op-pack.mlir
M mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir
M mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir
M mlir/test/Dialect/Linalg/transform-op-scalarize.mlir
M mlir/test/Dialect/Linalg/transform-op-tile.mlir
M mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
M mlir/test/Dialect/Linalg/transform-ops.mlir
M mlir/test/Dialect/Linalg/transform-patterns.mlir
M mlir/test/Dialect/Linalg/vectorize-tensor-extract-masked.mlir
M mlir/test/Dialect/Tensor/tiling.mlir
M mlir/test/Dialect/Transform/ops.mlir
M mlir/test/Dialect/Transform/selective-targeting.mlir
M mlir/test/Dialect/Vector/transform-vector.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul-mixed-types.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-wcf-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-hwcf-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-dhwcf-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir
M mlir/test/Interfaces/TilingInterface/tile-pad-using-interface.mlir
M mlir/test/Interfaces/TilingInterface/tile-using-interface.mlir
M mlir/test/python/dialects/transform_structured_ext.py
Log Message:
-----------
[mlir][transform] Consistent `linalg` `transform` op syntax for dynamic index lists (#90897)
This patch is a first pass at making consistent syntax across the
`LinalgTransformOp`s that use dynamic index lists for size parameters.
Previously, there were two different forms: inline types in the list, or
place them in the functional style tuple. This patch goes for the
latter.
In order to do this, the `printPackedOrDynamicIndexList`,
`printDynamicIndexList` and their `parse` counterparts were modified so
that the types can be optionally provided to the corresponding custom
directives.
All affected ops now use tablegen `assemblyFormat`, so custom
`parse`/`print` functions have been removed. There are a couple ops that
will likely add dynamic size support, and once that happens it should be
made sure that the assembly remains consistent with the changes in this
patch.
The affected ops are as follows: `pack`, `pack_greedily`,
`tile_using_forall`. The `tile_using_for` and `vectorize` ops already
used this syntax, but their custom assembly was removed.
---------
Co-authored-by: Oleksandr "Alex" Zinenko <ftynse at gmail.com>
Commit: d6d613aaebc0ae503409ba7719a43b4a55e1ee70
https://github.com/llvm/llvm-project/commit/d6d613aaebc0ae503409ba7719a43b4a55e1ee70
Author: martinboehme <mboehme at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/docs/tools/clang-formatted-files.txt
M clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
R clang/unittests/Analysis/FlowSensitive/SolverTest.cpp
A clang/unittests/Analysis/FlowSensitive/SolverTest.h
A clang/unittests/Analysis/FlowSensitive/WatchedLiteralsSolverTest.cpp
M llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn
Log Message:
-----------
[clang][dataflow] Make `SolverTest` a type-parameterized test. (#91455)
This allows the tests to be run against any implementation of `Solver`
instead
of begin specific to `WatchedLiteralsSolver` as they currently are.
Commit: b5afda8d760998641cf08a6d229252924b0ad146
https://github.com/llvm/llvm-project/commit/b5afda8d760998641cf08a6d229252924b0ad146
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
Log Message:
-----------
AMDGPU: Add some more ctlz_zero_undef tests
Commit: 27a062e9ca7c92e89ed4084c3c3affb9fa39aabb
https://github.com/llvm/llvm-project/commit/27a062e9ca7c92e89ed4084c3c3affb9fa39aabb
Author: serge-sans-paille <sguelton at mozilla.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M libcxx/benchmarks/CMakeLists.txt
A libcxx/benchmarks/numeric/gcd.bench.cpp
M libcxx/include/__numeric/gcd_lcm.h
M libcxx/test/libcxx/transitive_includes/cxx03.csv
M libcxx/test/libcxx/transitive_includes/cxx11.csv
M libcxx/test/libcxx/transitive_includes/cxx14.csv
M libcxx/test/libcxx/transitive_includes/cxx17.csv
M libcxx/test/libcxx/transitive_includes/cxx20.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/std/numerics/numeric.ops/numeric.ops.gcd/gcd.pass.cpp
Log Message:
-----------
[libc++] Implement std::gcd using the binary version (#77747)
The binary version is four times faster than current implementation in
my setup, and generally considered a better implementation.
Code inspired by https://en.algorithmica.org/hpc/algorithms/gcd/ which
itself is inspired by
https://lemire.me/blog/2013/12/26/fastest-way-to-compute-the-greatest-common-divisor/
Fix #77648
Commit: 73bb8d9d92f689863c94d48517e89d35dae0ebcf
https://github.com/llvm/llvm-project/commit/73bb8d9d92f689863c94d48517e89d35dae0ebcf
Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M openmp/runtime/src/kmp_settings.cpp
M openmp/runtime/test/affinity/redetect.c
Log Message:
-----------
[OpenMP] Fix child processes to use affinity_none (#91391)
When a child process is forked with OpenMP already initialized, the
child process resets its affinity mask and sets proc-bind-var to false
so that the entire original affinity mask is used. This patch corrects
an issue with the affinity initialization code setting affinity to
compact instead of none for this special case of forked children.
The test trying to catch this only testing explicit setting of
KMP_AFFINITY=none. Add test run for no KMP_AFFINITY setting.
Fixes: #91098
Commit: 6ed8434edc5934210a38be99f33b6baed83df85c
https://github.com/llvm/llvm-project/commit/6ed8434edc5934210a38be99f33b6baed83df85c
Author: Prathamesh Tagore <63031630+meshtag at users.noreply.github.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/Utils/MemRefUtils.h
M mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
M mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
Log Message:
-----------
[mlir][fold-memref-alias-ops] Add support for folding memref.expand_shape involving dynamic dims (#89093)
`fold-memref-alias-ops` bails out in presence of dynamic shapes in
`memref.expand_shape` op. Handle this case.
Commit: 2475efa91d8b4fa8f1a2d16052cb6d14be7d5dc6
https://github.com/llvm/llvm-project/commit/2475efa91d8b4fa8f1a2d16052cb6d14be7d5dc6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/gather-with-minbith-user.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/user-node-not-in-bitwidths.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/minbitwidth-root-trunc.ll
Log Message:
-----------
[SLP]Fix PR91467: Look through scalar cast, when trying to cast to another type.
Need to look through the SExt/ZExt scalars to be gathered, when trying
to reduce their width after minbitwidth analysis to prevent permanent
attempts to revectorize such gathered instructions.
Commit: 2868e26d0a6f257d3a8f303c7918f37c690e35a4
https://github.com/llvm/llvm-project/commit/2868e26d0a6f257d3a8f303c7918f37c690e35a4
Author: Matthias Braun <matze at braunis.de>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/CMakeLists.txt
M clang/test/Analysis/scan-build/deduplication.test
M clang/test/Analysis/scan-build/exclude_directories.test
M clang/test/Analysis/scan-build/help.test
M clang/test/Analysis/scan-build/html_output.test
M clang/test/Analysis/scan-build/lit.local.cfg
M clang/test/Analysis/scan-build/plist_html_output.test
M clang/test/Analysis/scan-build/plist_output.test
M clang/test/Analysis/scan-build/rebuild_index/rebuild_index.test
M clang/test/Analysis/scan-build/silence-core-checkers.test
M clang/test/lit.site.cfg.py.in
Log Message:
-----------
Use cmake to find perl executable (#91275)
`clang/tools/scan-build` is implemented in `perl`. However given `perl`
is not mentioned as a required dependency in `GettingStarted.rst` we
should make this optional.
This adds a `find_package(Perl)` check to cmake and disables the
`scan-build` tests when no perl executable is found.
Ideally we would also check if dependent perl modules like `Hash::Util`
are present on the system, but I don't see any pre-existing cmake macros
to easily test this. So for now I go with a plain check for the `perl`
package, at least this allows to use `cmake
-DCMAKE_DISABLE_FIND_PACKAGE_Perl=ON` to manually disable `perl` and the
tests.
Commit: 3a8316216807d64a586b971f51695e23883331f7
https://github.com/llvm/llvm-project/commit/3a8316216807d64a586b971f51695e23883331f7
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Add missing dependency for 6ed8434edc5934210a38be99f33b6baed83df85c
Commit: 50b45b24220ead33cf5cedc49c13e0336297e4eb
https://github.com/llvm/llvm-project/commit/50b45b24220ead33cf5cedc49c13e0336297e4eb
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
A llvm/test/Analysis/LoopAccessAnalysis/offset-range-known-via-assume.ll
Log Message:
-----------
[LAA] Add tests with forward dependences known via assumes.
Commit: 11a6799740f824282650aa9ec249b55dcf1a8aae
https://github.com/llvm/llvm-project/commit/11a6799740f824282650aa9ec249b55dcf1a8aae
Author: Jacob Lambert <jacob.lambert at amd.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/BackendConsumer.h
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/CodeGen/LinkInModulesPass.cpp
A clang/test/CodeGen/linking-bitcode-postopt.cpp
Log Message:
-----------
[clang][CodeGen] Omit pre-opt link when post-opt is link requested (#85672)
Currently, when the -relink-builtin-bitcodes-postop option is used we
link builtin bitcodes twice: once before optimization, and again after
optimization.
With this change, we omit the pre-opt linking when the option is set,
and we rename the option to the following:
-Xclang -mlink-builtin-bitcodes-postopt
(-Xclang -mno-link-builtin-bitcodes-postopt)
The goal of this change is to reduce compile time. We do lose the
theoretical benefits of pre-opt linking, but in practice these are small
than the overhead of linking twice. However we may be able to address
this in a future patch by adjusting the position of the builtin-bitcode
linking pass.
Compilations not setting the option are unaffected
Commit: a55127281b2ed5f24f848b9e5c70870ad170bc3f
https://github.com/llvm/llvm-project/commit/a55127281b2ed5f24f848b9e5c70870ad170bc3f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
Log Message:
-----------
[CostModel][X86] getGSVectorCost - add cost kind support
Don't just assume gather/scatter non-throughput costs are 1 - latency and sizelatency (#uops) costs will be high, and codesize (#instructions) needs to account splitting.
Commit: 29b7eb8400f48fe7d8de3cb3741584c329ec597c
https://github.com/llvm/llvm-project/commit/29b7eb8400f48fe7d8de3cb3741584c329ec597c
Author: Juergen Ributzka <juergen at ributzka.de>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
M llvm/test/CodeGen/AArch64/stackmap-liveness.ll
M llvm/test/CodeGen/X86/stackmap-liveness.ll
Log Message:
-----------
[llvm][stackmaps] Include pristine registers for liveness computation. (#90529)
Users of stackmaps and patchpoints need to add all pristine registers to
the
spill set, even so they don't need to be all preserved.
This fixes the liveness computation for stackmaps to include pristine
registers.
This fixes rdar://21228337.
Commit: 9263318f9da22e6632f1aae3e85717ed88fde64f
https://github.com/llvm/llvm-project/commit/9263318f9da22e6632f1aae3e85717ed88fde64f
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/docs/StandardCPlusPlusModules.rst
Log Message:
-----------
Revise the modules document for clarity (#90237)
The intention isn't to add or change the information provided, but to
improve clarity through some grammar fixes, improvements to the
markdown, and so forth.
Commit: 2ceb1291ef3ddb87cb58030cd61d965f4030338f
https://github.com/llvm/llvm-project/commit/2ceb1291ef3ddb87cb58030cd61d965f4030338f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Add canScaleShuffleElements helper. NFC.
Returns true if the shuffle mask can be rescaled to the requested number of elements.
Commit: a6171900a446c85c3b53a4a9deba16b746f9f77f
https://github.com/llvm/llvm-project/commit/a6171900a446c85c3b53a4a9deba16b746f9f77f
Author: Harald van Dijk <harald.vandijk at codeplay.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/Transforms/Utils/ValueMapper.h
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
M llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/ValueMapper.cpp
M llvm/unittests/Transforms/Utils/CloningTest.cpp
Log Message:
-----------
[RemoveDIs] Change remapDbgVariableRecord to remapDbgRecord (#91456)
We need to remap any DbgRecord, not just DbgVariableRecords.
This is the followup to #91447.
Co-authored-by: PietroGhg <pietro.ghiglio at codeplay.com>
Commit: 5636eb89bd69f9c55f4e4aeafaa8c04aa99e5c84
https://github.com/llvm/llvm-project/commit/5636eb89bd69f9c55f4e4aeafaa8c04aa99e5c84
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
Log Message:
-----------
[X86] combineBlendOfPermutes - allow whole-lane permutation on AVX1 targets.
dd4bf22b9380e797362fac1415a1796da338b2db fixed #91433 but meant we couldn't use vperm2f128 to permute entire 128-bit lanes - if the new 256-bit permutation mask can be scaled to 2x128-bit elements, then we can still fold.
Commit: 6d8901488f160dd92aea5b98fcc21c7fa7c1cbe6
https://github.com/llvm/llvm-project/commit/6d8901488f160dd92aea5b98fcc21c7fa7c1cbe6
Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/lib/Basic/Targets.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/test/CodeGenHLSL/basic-target.c
M clang/test/Driver/dxc_dxv_path.hlsl
M clang/test/Options/enable_16bit_types_validation.hlsl
M clang/unittests/Driver/DXCModeTest.cpp
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/IR/Verifier.cpp
M llvm/lib/TargetParser/Triple.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
Log Message:
-----------
[DXIL] Set DXIL Version in DXIL target triple based on shader model version (#91407)
This change set restores commit 080978dd2067d0c9ea7e229aa7696c2480d89ef1 that was reverted to address ASAN
failures and includes a fix for the ASAN failures.
Following is the description of the change:
An earlier commit provided a way to decouple DXIL version from Shader
Model version by representing the DXIL version as `SubArch` in the DXIL
Target Triple and adding corresponding valid DXIL Arch types.
This change constructs DXIL target triple with DXIL version that is
deduced from Shader Model version specified in the following scenarios:
1. When compilation target profile is specified:
For e.g., DXIL target triple `dxilv1.8-unknown-shader6.8-library` is
constructed when `-T lib_6_8` is specified.
2. When DXIL target triple without DXIL version is specified:
For e.g., DXIL target triple `dxilv1.8-pc-shadermodel6.8-library` is
constructed when `-mtriple=dxil-pc-shadermodel6.8-library` is specified.
Updated relevant HLSL tests that check for target triple.
Commit: efad14954c9d5bdfaddaca948be6cd7e71a1d1b0
https://github.com/llvm/llvm-project/commit/efad14954c9d5bdfaddaca948be6cd7e71a1d1b0
Author: Fangrui Song <i at maskray.me>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/Support/LEB128.h
M llvm/unittests/Support/LEB128Test.cpp
M llvm/utils/TableGen/DecoderEmitter.cpp
Log Message:
-----------
[Support] Add end/error to decode[US]LEB128AndInc
Follow-up to #85739 to encourage error checking. We make `end` mandatory
and add decodeULEB128AndIncUnsafe to be used without `end`.
Pull Request: https://github.com/llvm/llvm-project/pull/90006
Commit: 8d9b15497d70ac782d7d01a2d606f9fec7e7f642
https://github.com/llvm/llvm-project/commit/8d9b15497d70ac782d7d01a2d606f9fec7e7f642
Author: Justin Bogner <mail at justinbogner.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang/lib/CodeGen/BackendConsumer.h
M clang/lib/CodeGen/CodeGenAction.cpp
Log Message:
-----------
Fix unused private field warning (#91500)
After 11a6799740f8 "[clang][CodeGen] Omit pre-opt link when post-opt is
link requested (#85672)" I'm seeing a new warning:
> BackendConsumer.h:37:22: error: private field 'FileMgr' is not used
[-Werror,-Wunused-private-field]
Remove the field since it's no longer used.
Commit: 3dcbcce287877322b2902ae271642416fdc8481c
https://github.com/llvm/llvm-project/commit/3dcbcce287877322b2902ae271642416fdc8481c
Author: Jacob Lambert <jacob.lambert at amd.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
Log Message:
-----------
[clang][CodeGen] Remove now-unused FileManager variable (#91495)
Fixes "error: private field 'FileMgr' is not used" introduced by 11a6799
Commit: b59461ac63aa1770a617f96bab31010442bd2090
https://github.com/llvm/llvm-project/commit/b59461ac63aa1770a617f96bab31010442bd2090
Author: Aleksandr Platonov <platonov.aleksandr at huawei.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/ADT/StringMap.h
M llvm/unittests/ADT/StringSetTest.cpp
Log Message:
-----------
[ADT] Add back ability to compare StringSet (#91374)
StringSet comparison was broken after moving from llvm::Optional to
std::optional because std::nullopt_t is not equality-comparable. Without
this patch a try to compare objects of StringSet type leads to
compilation error:
```
llvm-project/llvm/include/llvm/ADT/StringMap.h:294:33: error: no match for ‘operator==’ (operand types are ‘std::nullopt_t’ and ‘std::nullopt_t’)
294 | if (!(KeyValue.getValue() == FindInRHS->getValue()))
```
Commit: 4298fc5eb5c483fb72db6fce062352087dfd0acf
https://github.com/llvm/llvm-project/commit/4298fc5eb5c483fb72db6fce062352087dfd0acf
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoXTHead.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
M llvm/test/CodeGen/RISCV/addimm-mulimm.ll
M llvm/test/CodeGen/RISCV/rv64-legal-i32/rv64zba.ll
M llvm/test/CodeGen/RISCV/rv64zba.ll
Log Message:
-----------
[RISCV] Move strength reduction of mul X, 3/5/9*2^N to combine (#89966)
This moves our last major category tablegen driven multiply strength
reduction into the post legalize combine framework. The one slightly
tricky bit is making sure that we use a leading shl if we can form a
slli.uw, and trailing shl otherwise. Having the trailing shl is critical
for shNadd matching, and folding any following sext.w.
As can be seen in the TD deltas, this allows us to kill off both the
actual multiply patterns and the explicit add (mul X, C) Y patterns. The
later are now handled by the generic shNadd matching code, with the
exception of the THead only C=200 case because we don't (yet) have a
multiply expansion with two shNadd + a shift.
---------
Co-authored-by: Yingwei Zheng <dtcxzyw at qq.com>
Commit: a620697340671aea2b0c65449fcddf3c2e4d1917
https://github.com/llvm/llvm-project/commit/a620697340671aea2b0c65449fcddf3c2e4d1917
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/IR/Instructions.cpp
M llvm/unittests/IR/AttributesTest.cpp
Log Message:
-----------
[IR] Check callee param attributes as well in CallBase::getParamAttr() (#91394)
These methods aren't used yet, but may be in the future. This keeps them
in line with other methods like getFnAttr().
Commit: 576838301d23bb779aa9c3f0cc3d086c46add44b
https://github.com/llvm/llvm-project/commit/576838301d23bb779aa9c3f0cc3d086c46add44b
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/IR/Instructions.cpp
Log Message:
-----------
[IR] Remove check for bitcast of called function in CallBase::has/getFnAttrOnCalledFunction (#91392)
With opaque pointers, we shouldn't have bitcasts between function
pointer types.
Commit: 08011cf8453c7c9e87d135f063356b6764a91cbc
https://github.com/llvm/llvm-project/commit/08011cf8453c7c9e87d135f063356b6764a91cbc
Author: XChy <xxs_chy at outlook.com>
Date: 2024-05-09 (Thu, 09 May 2024)
Changed paths:
M llvm/docs/MIRLangRef.rst
Log Message:
-----------
[Docs][NFC] Use opaque ptr in the example (#91502)
Commit: 46435ac19e09039fb146fa6c12da0e640a66d435
https://github.com/llvm/llvm-project/commit/46435ac19e09039fb146fa6c12da0e640a66d435
Author: Kristof Beyls <kristof.beyls at arm.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M bolt/include/bolt/Passes/FrameAnalysis.h
M bolt/lib/Passes/FrameAnalysis.cpp
Log Message:
-----------
[NFC][BOLT] Remove dead code (SPTAllocatorsId) (#91477)
It seems that SPTAllocatorsId is no longer used in FrameAnalysis, so
let's remove it.
It seems the use of SPTAllocatorsId was removed back in 2019, in commit
cc8415406c7.
Commit: bb6df0804ba0a0b0581aec4156138f5144dbcee2
https://github.com/llvm/llvm-project/commit/bb6df0804ba0a0b0581aec4156138f5144dbcee2
Author: Kazu Hirata <kazu at google.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/include/llvm/ADT/SmallString.h
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
M llvm/lib/FileCheck/FileCheck.cpp
M llvm/lib/FuzzMutate/FuzzerCLI.cpp
M llvm/lib/LTO/LTOModule.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
M llvm/lib/MC/MCSymbolXCOFF.cpp
M llvm/lib/Object/Archive.cpp
M llvm/lib/Object/MachOObjectFile.cpp
M llvm/lib/Object/OffloadBinary.cpp
M llvm/lib/ObjectYAML/COFFEmitter.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/lib/ProfileData/GCOV.cpp
M llvm/lib/ProfileData/InstrProf.cpp
M llvm/lib/ProfileData/MemProfReader.cpp
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/TargetParser/ARMTargetParser.cpp
M llvm/lib/TargetParser/Triple.cpp
M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
M llvm/tools/llvm-dwarfdump/Statistics.cpp
M llvm/tools/llvm-extract/llvm-extract.cpp
M llvm/tools/llvm-objdump/MachODump.cpp
M llvm/tools/llvm-xray/xray-graph-diff.cpp
M llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp
M llvm/unittests/ADT/StringRefTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
M llvm/unittests/Support/MemoryBufferTest.cpp
M llvm/unittests/Support/YAMLIOTest.cpp
M llvm/unittests/TargetParser/CSKYTargetParserTest.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
M llvm/utils/TableGen/AsmMatcherEmitter.cpp
Log Message:
-----------
[llvm] Use StringRef::operator== instead of StringRef::equals (NFC) (#91441)
I'm planning to remove StringRef::equals in favor of
StringRef::operator==.
- StringRef::operator==/!= outnumber StringRef::equals by a factor of
70 under llvm/ in terms of their usage.
- The elimination of StringRef::equals brings StringRef closer to
std::string_view, which has operator== but not equals.
- S == "foo" is more readable than S.equals("foo"), especially for
!Long.Expression.equals("str") vs Long.Expression != "str".
Commit: dabdec1001dc368373dd581cf72f37a440873ce3
https://github.com/llvm/llvm-project/commit/dabdec1001dc368373dd581cf72f37a440873ce3
Author: Benoit Jacob <jacob.benoit.1 at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
M mlir/test/Dialect/MemRef/ops.mlir
Log Message:
-----------
Fix `memref.expand_shape` verifier (#91501)
Torch-mlir integration is currently blocked on `memref.expand_shape`
verifier errors of the form
```
'memref.expand_shape' op invalid output shape provided at pos 1
```
The verifier code generating these errors was introduced in
https://github.com/llvm/llvm-project/pull/91245. I have commented there
why I believe it's incorrect. This PR has my suggested fix.
Unfortunately, this does not seem to be directly testable on `memref`
IR, because `static_output_shape` is not directly exposed in the custom
assembly format.
Commit: fcfc15b7052a311b7a045e2c6bd26fb5d0b7122c
https://github.com/llvm/llvm-project/commit/fcfc15b7052a311b7a045e2c6bd26fb5d0b7122c
Author: Adrian Prantl <aprantl at apple.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M lldb/cmake/modules/LLDBFramework.cmake
Log Message:
-----------
Add a dependency from lldb-sbapi-dwarf-enums as a dependency of libll… (#91511)
…db-resource-headers
The Xcode build otherwise fails with
```
CMake Error in source/API/CMakeLists.txt:
The custom command generating
/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake-standalone/lldb-xcode-build/include/lldb/API/SBLanguages.h
is attached to multiple targets:
lldb-sbapi-dwarf-enums
liblldb-resource-headers
but none of these is a common dependency of the other(s). This is not
allowed by the Xcode "new build system".
CMake Generate step failed. Build files cannot be regenerated correctly.
```
Commit: dbcfa2957d9f99de62fc86db12a857caf929583c
https://github.com/llvm/llvm-project/commit/dbcfa2957d9f99de62fc86db12a857caf929583c
Author: Nicklas Boman <smurfd at gmail.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M lldb/scripts/generate-sbapi-dwarf-enum.py
Log Message:
-----------
lldb create API folder if it does not exist, before creating SBLangua… (#91128)
Create API folder if it does not exist, before creating SBLanguages.h
Commit: 42d99013bd6b7ed4a085e39c94ab86938d633f8a
https://github.com/llvm/llvm-project/commit/42d99013bd6b7ed4a085e39c94ab86938d633f8a
Author: AdityaK <hiraditya at msn.com>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
Log Message:
-----------
NFC: Add a comment indicating UpdateAnalysisInformation invalidates DFS Numbering (#91252)
Commit: 10bdcf6b4cd37d017753b3821fbf8eb2ad924a1a
https://github.com/llvm/llvm-project/commit/10bdcf6b4cd37d017753b3821fbf8eb2ad924a1a
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang-tools-extra/clang-tidy/hicpp/SignedBitwiseCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/hicpp/signed-bitwise-integer-literals.cpp
Log Message:
-----------
[clang-tidy] Handle implicit casts in hicpp-signed-bitwise for IgnorePositiveIntegerLiterals (#90621)
Improved hicpp-signed-bitwise check by ignoring false positives
involving positive integer literals behind implicit casts when
IgnorePositiveIntegerLiterals is enabled.
Closes #89367
Commit: 37b6ba96dea54e7af3772d78c90bfb3fd61140f6
https://github.com/llvm/llvm-project/commit/37b6ba96dea54e7af3772d78c90bfb3fd61140f6
Author: Piotr Zegar <me at piotrzegar.pl>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/static-accessed-through-instance.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/static-accessed-through-instance.cpp
Log Message:
-----------
[clang-tidy] Handle expr with side-effects in readability-static-accessed-through-instance (#90736)
Improved readability-static-accessed-through-instance check to
support expressions with side-effects.
Originally calls to overloaded operator were
ignored by check, in fear of possible side-effects.
This change remove that restriction, and enables
fix-its for expressions with side-effect via
--fix-notes.
Closes #75163
Commit: 79921fbd5c6223ff7e6c75ed75974b4d16cad529
https://github.com/llvm/llvm-project/commit/79921fbd5c6223ff7e6c75ed75974b4d16cad529
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M libcxx/modules/std/chrono.inc
M libcxx/modules/std/ranges.inc
M libcxx/test/CMakeLists.txt
M libcxx/test/libcxx/clang_tidy.gen.py
M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
Log Message:
-----------
[libc++][CI] Reenables clang-tidy. (#90077)
The patch does several things:
- fixes module exports
- disables clang-tidy with Clang-17 due to known issues
- disabled clang-tidy on older libstdc++ versions since it lacks C++20
features used
- fixes the CMake dependency
The issue why clang-tidy was not used in the CI was the last issue; the
plugin was not a
dependency of the tests. Without a plugin the tests disable clang-tidy.
This was noticed while investigating
https://github.com/llvm/llvm-project/issues/89898
Commit: 24c0fbb48e1cc7ffb9b3d321a11d399452e00341
https://github.com/llvm/llvm-project/commit/24c0fbb48e1cc7ffb9b3d321a11d399452e00341
Author: Fangrui Song <i at maskray.me>
Date: 2024-05-08 (Wed, 08 May 2024)
Changed paths:
M .github/CODEOWNERS
M bolt/include/bolt/Passes/FrameAnalysis.h
M bolt/lib/Core/ParallelUtilities.cpp
M bolt/lib/Passes/FrameAnalysis.cpp
A bolt/test/runtime/bolt-reserved.cpp
M clang-tools-extra/clang-include-fixer/find-all-symbols/STLPostfixHeaderMap.cpp
M clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/hicpp/SignedBitwiseCheck.cpp
M clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
M clang-tools-extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.h
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/index/CanonicalIncludes.cpp
M clang-tools-extra/clangd/unittests/FindTargetTests.cpp
M clang-tools-extra/clangd/unittests/HoverTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/static-accessed-through-instance.rst
M clang-tools-extra/test/clang-tidy/checkers/hicpp/signed-bitwise-integer-literals.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/static-accessed-through-instance.cpp
M clang/CMakeLists.txt
M clang/docs/ClangFormatStyleOptions.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/StandardCPlusPlusModules.rst
M clang/docs/tools/clang-formatted-files.txt
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/OpenACCClause.h
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
M clang/include/clang/Analysis/FlowSensitive/Solver.h
M clang/include/clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/BuiltinsWebAssembly.def
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/MSP430Target.def
M clang/include/clang/Basic/OpenACCClauses.def
A clang/include/clang/Basic/Target/MSP430/gen-msp430-def.py
M clang/include/clang/Driver/Options.td
M clang/include/clang/Format/Format.h
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/Interp/Pointer.cpp
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
M clang/lib/Analysis/FlowSensitive/Transfer.cpp
M clang/lib/Basic/Targets.cpp
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/CodeGen/BackendConsumer.h
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/CodeGen/LinkInModulesPass.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/TargetInfo.h
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Format/WhitespaceManager.cpp
M clang/lib/Format/WhitespaceManager.h
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
M clang/lib/Headers/CMakeLists.txt
A clang/lib/Headers/__stdarg_header_macro.h
A clang/lib/Headers/__stddef_header_macro.h
M clang/lib/Headers/arm_acle.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/module.modulemap
M clang/lib/Headers/stdarg.h
M clang/lib/Headers/stddef.h
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaOpenACC.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RefCntblBaseVirtualDtorChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedCallArgsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLocalVarsChecker.cpp
M clang/test/AST/HLSL/vector-constructors.hlsl
M clang/test/AST/Interp/cxx23.cpp
A clang/test/AST/Interp/eval-order.cpp
M clang/test/AST/ast-dump-recovery.cpp
M clang/test/AST/ast-print-openacc-compute-construct.cpp
M clang/test/Analysis/Checkers/WebKit/call-args.cpp
A clang/test/Analysis/Checkers/WebKit/mock-system-header.h
M clang/test/Analysis/Checkers/WebKit/ref-cntbl-base-virtual-dtor-templates.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
M clang/test/Analysis/return-value-guaranteed.cpp
M clang/test/Analysis/scan-build/deduplication.test
M clang/test/Analysis/scan-build/exclude_directories.test
M clang/test/Analysis/scan-build/help.test
M clang/test/Analysis/scan-build/html_output.test
M clang/test/Analysis/scan-build/lit.local.cfg
M clang/test/Analysis/scan-build/plist_html_output.test
M clang/test/Analysis/scan-build/plist_output.test
M clang/test/Analysis/scan-build/rebuild_index/rebuild_index.test
M clang/test/Analysis/scan-build/silence-core-checkers.test
M clang/test/CXX/class/class.compare/class.compare.default/p4.cpp
M clang/test/CXX/drs/dr13xx.cpp
M clang/test/CXX/except/except.spec/p13.cpp
A clang/test/CXX/temp/temp.deduct/p7.cpp
A clang/test/CXX/temp/temp.spec/temp.expl.spec/p14-23.cpp
A clang/test/CXX/temp/temp.spec/temp.expl.spec/p8.cpp
A clang/test/CodeGen/X86/inline-asm-gcc-regs.c
M clang/test/CodeGen/aarch64-soft-float-abi-errors.c
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGen/builtins-wasm.c
M clang/test/CodeGen/ffp-contract-option.c
M clang/test/CodeGen/ffp-model.c
M clang/test/CodeGen/fp-matrix-pragma.c
A clang/test/CodeGen/fseparate-named-sections.c
A clang/test/CodeGen/linking-bitcode-postopt.cpp
M clang/test/CodeGen/strictfp-elementwise-bulitins.cpp
A clang/test/CodeGen/x64-microsoft-arguments.cpp
M clang/test/CodeGenCoroutines/coro-dwarf.cpp
M clang/test/CodeGenHLSL/basic-target.c
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
A clang/test/CodeGenHLSL/builtins/tan.hlsl
M clang/test/Driver/arm-cortex-cpus-1.c
M clang/test/Driver/arm-features.c
M clang/test/Driver/clang-offload-bundler-asserts-on.c
M clang/test/Driver/clang-offload-bundler-standardize.c
M clang/test/Driver/clang-offload-bundler-zlib.c
M clang/test/Driver/clang-offload-bundler-zstd.c
M clang/test/Driver/clang-offload-bundler.c
R clang/test/Driver/crel.c
M clang/test/Driver/dxc_dxv_path.hlsl
R clang/test/Driver/riscv-option-arch.c
R clang/test/Driver/riscv-option-arch.s
A clang/test/Driver/std-trigraph-override.c
M clang/test/Driver/std.c
M clang/test/Driver/wasm-toolchain.c
A clang/test/FixIt/fixit-c++2a-tls.cpp
M clang/test/FixIt/fixit-c++2a.cpp
A clang/test/Frontend/multiple-actions.c
M clang/test/Headers/arm-acle-header.c
M clang/test/Interpreter/const.cpp
M clang/test/Lexer/unicode.c
R clang/test/Misc/cc1as-crel.s
M clang/test/Modules/cstd.m
A clang/test/Modules/function-transitive-change.cppm
M clang/test/Modules/merge-objc-protocol-visibility.m
A clang/test/Modules/module-symlink.m
M clang/test/Modules/no-transitive-source-location-change.cppm
A clang/test/Modules/pr91105.cppm
M clang/test/Options/enable_16bit_types_validation.hlsl
M clang/test/PCH/chain-openmp-threadprivate.cpp
M clang/test/ParserOpenACC/parse-clauses.c
M clang/test/ParserOpenACC/parse-clauses.cpp
M clang/test/ParserOpenACC/parse-wait-clause.c
M clang/test/ParserOpenACC/parse-wait-construct.c
M clang/test/Preprocessor/arm-target-features.c
M clang/test/Sema/aarch64-sve-vector-trig-ops.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/riscv-rvv-vector-trig-ops.c
M clang/test/Sema/thread_local.c
M clang/test/SemaCXX/builtins-elementwise-math.cpp
M clang/test/SemaCXX/cxx1z-noexcept-function-type.cpp
M clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
M clang/test/SemaHLSL/BuiltIns/half-float-only-errors.hlsl
A clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes.hlsl
A clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_202x.hlsl
A clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_no_16bit.hlsl
M clang/test/SemaHLSL/Types/BuiltinVector/ScalarSwizzles.hlsl
R clang/test/SemaHLSL/literal_suffixes.hlsl
R clang/test/SemaHLSL/literal_suffixes_no_16bit.hlsl
A clang/test/SemaOpenACC/compute-construct-async-clause.c
A clang/test/SemaOpenACC/compute-construct-async-clause.cpp
M clang/test/SemaOpenACC/compute-construct-intexpr-clause-ast.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
M clang/test/SemaTemplate/instantiation-depth-default.cpp
M clang/test/SemaTemplate/temp_arg_type.cpp
M clang/test/lit.site.cfg.py.in
M clang/tools/driver/cc1as_main.cpp
M clang/tools/libclang/CIndex.cpp
M clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
R clang/unittests/Analysis/FlowSensitive/SolverTest.cpp
A clang/unittests/Analysis/FlowSensitive/SolverTest.h
M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
A clang/unittests/Analysis/FlowSensitive/WatchedLiteralsSolverTest.cpp
M clang/unittests/Driver/DXCModeTest.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTestJava.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M compiler-rt/lib/ctx_profile/CtxInstrProfiling.cpp
M compiler-rt/lib/ctx_profile/CtxInstrProfiling.h
M compiler-rt/lib/ctx_profile/tests/CtxInstrProfilingTest.cpp
M flang/include/flang/Frontend/CompilerInvocation.h
M flang/include/flang/Semantics/tools.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/runtime/extensions.cpp
R flang/test/Driver/driver-help-hidden.f90
A flang/test/Driver/w-option.f90
M flang/test/Lower/CUDA/cuda-data-attribute.cuf
M flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf
A flang/test/Lower/OpenMP/copyin-order.f90
M flang/test/Semantics/OpenMP/do08.f90
M libc/hdr/fenv_macros.h
M libc/include/llvm-libc-macros/fenv-macros.h
M libc/src/__support/CPP/atomic.h
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/callonce.cpp
A libc/src/__support/threads/linux/futex_utils.h
M libc/src/__support/threads/linux/futex_word.h
M libc/src/__support/threads/linux/mutex.h
M libc/src/__support/threads/linux/thread.cpp
M libc/src/__support/threads/mutex.h
M libc/src/__support/threads/thread.cpp
M libc/src/threads/linux/CMakeLists.txt
M libc/src/threads/linux/CndVar.h
M libc/test/src/math/FModTest.h
M libcxx/benchmarks/CMakeLists.txt
A libcxx/benchmarks/numeric/gcd.bench.cpp
M libcxx/include/__availability
M libcxx/include/__functional/is_transparent.h
M libcxx/include/__numeric/gcd_lcm.h
M libcxx/include/__type_traits/is_equality_comparable.h
M libcxx/include/map
M libcxx/include/set
M libcxx/include/string
M libcxx/include/unordered_map
M libcxx/include/unordered_set
M libcxx/modules/std/chrono.inc
M libcxx/modules/std/ranges.inc
M libcxx/test/CMakeLists.txt
M libcxx/test/libcxx/clang_modules_include.gen.py
M libcxx/test/libcxx/clang_tidy.gen.py
A libcxx/test/libcxx/containers/strings/basic.string/asan_deque_integration.pass.cpp
A libcxx/test/libcxx/containers/strings/basic.string/asan_short.pass.cpp
A libcxx/test/libcxx/containers/strings/basic.string/asan_vector_integration.pass.cpp
M libcxx/test/libcxx/transitive_includes/cxx03.csv
M libcxx/test/libcxx/transitive_includes/cxx11.csv
M libcxx/test/libcxx/transitive_includes/cxx14.csv
M libcxx/test/libcxx/transitive_includes/cxx17.csv
M libcxx/test/libcxx/transitive_includes/cxx20.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/libcxx/type_traits/is_trivially_relocatable.compile.pass.cpp
M libcxx/test/std/numerics/numeric.ops/numeric.ops.gcd/gcd.pass.cpp
M libcxx/test/support/asan_testing.h
M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
M lld/ELF/Options.td
M lld/ELF/OutputSections.cpp
M lld/MachO/ObjC.cpp
M lld/test/ELF/mips-eh_frame-pic.s
M lldb/cmake/modules/LLDBFramework.cmake
M lldb/docs/use/qemu-testing.rst
M lldb/scripts/generate-sbapi-dwarf-enum.py
M lldb/source/API/CMakeLists.txt
M lldb/source/Expression/UserExpression.cpp
M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
A lldb/test/Shell/ExecControl/StepIn/Inputs/aarch64_thunk.cc
A lldb/test/Shell/ExecControl/StepIn/step_through-aarch64-thunk.test
M lldb/tools/driver/Driver.cpp
M lldb/tools/lldb-dap/lldb-dap.cpp
M lldb/tools/lldb-server/lldb-platform.cpp
M llvm/docs/CommandGuide/llvm-mca.rst
A llvm/docs/DirectX/DXContainer.rst
M llvm/docs/DirectXUsage.rst
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/docs/LangRef.rst
M llvm/docs/MIRLangRef.rst
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/ADT/SmallString.h
M llvm/include/llvm/ADT/StringMap.h
M llvm/include/llvm/Analysis/IndirectCallVisitor.h
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
M llvm/include/llvm/Support/LEB128.h
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/include/llvm/Target/TargetMachine.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/include/llvm/TargetParser/ARMTargetParser.def
M llvm/include/llvm/TargetParser/RISCVISAInfo.h
M llvm/include/llvm/TargetParser/Triple.h
M llvm/include/llvm/Transforms/Utils/ValueMapper.h
M llvm/lib/Analysis/BlockFrequencyInfo.cpp
M llvm/lib/Analysis/BranchProbabilityInfo.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LoopInfo.cpp
M llvm/lib/Analysis/MemoryProfileInfo.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/CodeGen/Analysis.cpp
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelperVectorOps.cpp
M llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/CodeGen/MIRSampleProfile.cpp
M llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
M llvm/lib/CodeGen/MachineBlockPlacement.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVOptions.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.cpp
M llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
M llvm/lib/FileCheck/FileCheck.cpp
M llvm/lib/FuzzMutate/FuzzerCLI.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/LTO/LTOModule.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
M llvm/lib/MC/MCSymbolXCOFF.cpp
M llvm/lib/Object/Archive.cpp
M llvm/lib/Object/MachOObjectFile.cpp
M llvm/lib/Object/OffloadBinary.cpp
M llvm/lib/ObjectYAML/COFFEmitter.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/lib/ProfileData/GCOV.cpp
M llvm/lib/ProfileData/InstrProf.cpp
M llvm/lib/ProfileData/MemProfReader.cpp
M llvm/lib/Support/RISCVISAUtils.cpp
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/SIDefines.h
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/lib/Target/ARM/ARMArchitectures.td
M llvm/lib/Target/ARM/ARMProcessors.td
M llvm/lib/Target/AVR/AVRInstrInfo.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILMetadata.cpp
M llvm/lib/Target/DirectX/DXILMetadata.h
M llvm/lib/Target/DirectX/DXILPrepare.cpp
M llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.h
M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.h
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXTHead.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
M llvm/lib/Target/RISCV/RISCVRedundantCopyElimination.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
M llvm/lib/Target/X86/X86.td
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/TargetParser/ARMTargetParser.cpp
M llvm/lib/TargetParser/RISCVISAInfo.cpp
M llvm/lib/TargetParser/Triple.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
M llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
M llvm/lib/Transforms/Utils/SCCPSolver.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/ValueMapper.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Analysis/CostModel/ARM/arith.ll
M llvm/test/Analysis/CostModel/ARM/cast.ll
M llvm/test/Analysis/CostModel/ARM/cast_ldst.ll
M llvm/test/Analysis/CostModel/ARM/cmps.ll
M llvm/test/Analysis/CostModel/ARM/divrem.ll
M llvm/test/Analysis/CostModel/X86/fshl-codesize.ll
M llvm/test/Analysis/CostModel/X86/fshl-latency.ll
M llvm/test/Analysis/CostModel/X86/fshl-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/fshl.ll
M llvm/test/Analysis/CostModel/X86/fshr-codesize.ll
M llvm/test/Analysis/CostModel/X86/fshr-latency.ll
M llvm/test/Analysis/CostModel/X86/fshr-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/fshr.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/vshift-ashr-codesize.ll
M llvm/test/Analysis/CostModel/X86/vshift-ashr-latency.ll
M llvm/test/Analysis/CostModel/X86/vshift-ashr-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/vshift-lshr-codesize.ll
M llvm/test/Analysis/CostModel/X86/vshift-lshr-latency.ll
M llvm/test/Analysis/CostModel/X86/vshift-lshr-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/vshift-shl-codesize.ll
M llvm/test/Analysis/CostModel/X86/vshift-shl-latency.ll
M llvm/test/Analysis/CostModel/X86/vshift-shl-sizelatency.ll
A llvm/test/Analysis/LoopAccessAnalysis/offset-range-known-via-assume.ll
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ValueTracking/known-power-of-two-urem.ll
M llvm/test/Bindings/llvm-c/echo.ll
A llvm/test/CodeGen/AArch64/GlobalISel/combine-bitreverse-shift.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
A llvm/test/CodeGen/AArch64/GlobalISel/combine-with-flags.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ptr-add.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/extract-vector-elt.ll
M llvm/test/CodeGen/AArch64/pr90936.ll
M llvm/test/CodeGen/AArch64/stackmap-liveness.ll
M llvm/test/CodeGen/AArch64/sve-extract-fixed-from-scalable-vector.ll
M llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
M llvm/test/CodeGen/AMDGPU/fdiv.ll
M llvm/test/CodeGen/AMDGPU/fmaximum.ll
M llvm/test/CodeGen/AMDGPU/fminimum.ll
M llvm/test/CodeGen/AMDGPU/fold-agpr-phis.mir
M llvm/test/CodeGen/AMDGPU/llvm.maximum.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.minimum.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
M llvm/test/CodeGen/ARM/cortex-a57-misched-basic.ll
M llvm/test/CodeGen/ARM/fpconv.ll
M llvm/test/CodeGen/ARM/half.ll
M llvm/test/CodeGen/ARM/useaa.ll
A llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll
A llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll
A llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll
M llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll
A llvm/test/CodeGen/DirectX/tan.ll
A llvm/test/CodeGen/DirectX/tan_error.ll
M llvm/test/CodeGen/LoongArch/rotl-rotr.ll
M llvm/test/CodeGen/Mips/ehframe-indirect.ll
M llvm/test/CodeGen/NVPTX/addrspacecast.ll
A llvm/test/CodeGen/NVPTX/atomics-sm90.ll
M llvm/test/CodeGen/PowerPC/aix-csr-vector-extabi.ll
M llvm/test/CodeGen/PowerPC/aix-csr-vector.ll
M llvm/test/CodeGen/PowerPC/aix-csr.ll
M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-largeaccess.ll
M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-types.ll
A llvm/test/CodeGen/PowerPC/aix-spills-for-eh.ll
M llvm/test/CodeGen/PowerPC/aix32-crsave.mir
M llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll
M llvm/test/CodeGen/PowerPC/ppc64-crsave.mir
M llvm/test/CodeGen/RISCV/addimm-mulimm.ll
M llvm/test/CodeGen/RISCV/rv64-legal-i32/rv64zba.ll
M llvm/test/CodeGen/RISCV/rv64zba.ll
M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
M llvm/test/CodeGen/RISCV/rvv/copyprop.mir
M llvm/test/CodeGen/RISCV/rvv/extract-subvector.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fpext-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-load-store.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-load.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-store.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfpext-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfptrunc-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/insert-subvector.ll
M llvm/test/CodeGen/RISCV/rvv/mask-reg-alloc.mir
M llvm/test/CodeGen/RISCV/rvv/rv32-spill-zvlsseg.ll
M llvm/test/CodeGen/RISCV/rvv/rv64-spill-zvlsseg.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-vp.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-constrained-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-vp.ll
M llvm/test/CodeGen/RISCV/rvv/vleff-vlseg2ff-output.ll
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.mir
M llvm/test/CodeGen/RISCV/rvv/vxrm.mir
M llvm/test/CodeGen/RISCV/spill-fpr-scalar.ll
A llvm/test/CodeGen/RISCV/xcvbi.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/tan.ll
A llvm/test/CodeGen/SystemZ/atomic-load-09.ll
A llvm/test/CodeGen/SystemZ/atomic-store-09.ll
A llvm/test/CodeGen/WebAssembly/half-precision.ll
M llvm/test/CodeGen/WebAssembly/offset.ll
M llvm/test/CodeGen/X86/cmp16.ll
M llvm/test/CodeGen/X86/dynamic-regmask-preserve-none.ll
A llvm/test/CodeGen/X86/elf-separate-named-sections.ll
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/gfni-rotates.ll
M llvm/test/CodeGen/X86/gfni-shifts.ll
M llvm/test/CodeGen/X86/min-legal-vector-width.ll
M llvm/test/CodeGen/X86/sext-subreg.ll
M llvm/test/CodeGen/X86/stackmap-liveness.ll
A llvm/test/CodeGen/X86/tailcall-range.ll
M llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
M llvm/test/CodeGen/X86/x86-64-extend-shift.ll
M llvm/test/DebugInfo/Mips/eh_frame.ll
M llvm/test/MC/AMDGPU/gfx9-asm-err.s
M llvm/test/MC/AMDGPU/sopp-err.s
M llvm/test/MC/AMDGPU/sopp-gfx9.s
M llvm/test/MC/AsmParser/layout-interdependency.s
M llvm/test/MC/ELF/crel-32.s
M llvm/test/MC/Mips/eh-frame.s
M llvm/test/MC/WebAssembly/simd-encodings.s
M llvm/test/Object/archive-big-extract.test
M llvm/test/Object/archive-extract.test
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/no-expand-atomic-store.ll
A llvm/test/Transforms/CorrelatedValuePropagation/sitofp.ll
A llvm/test/Transforms/CorrelatedValuePropagation/uitofp.ll
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/nonnull.ll
A llvm/test/Transforms/IndVarSimplify/trip-count-expansion-loop-guard-preserve-nsw.ll
M llvm/test/Transforms/InstCombine/cttz.ll
M llvm/test/Transforms/InstCombine/icmp.ll
M llvm/test/Transforms/InstCombine/lshr.ll
M llvm/test/Transforms/InstCombine/select.ll
M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
M llvm/test/Transforms/PGOProfile/chr.ll
A llvm/test/Transforms/Reassociate/reassoc_bool.ll
A llvm/test/Transforms/Reassociate/reassoc_bool_vec.ll
M llvm/test/Transforms/SCCP/ip-ranges-casts.ll
M llvm/test/Transforms/SCCP/sitofp.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/gather-with-minbith-user.ll
A llvm/test/Transforms/SLPVectorizer/AArch64/unsigned-after-sext-node.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/user-node-not-in-bitwidths.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/minbitwidth-root-trunc.ll
A llvm/test/Transforms/SampleProfile/Inputs/overflow.proftext
A llvm/test/Transforms/SampleProfile/overflow.ll
A llvm/test/Transforms/VectorCombine/pr88796.ll
M llvm/test/tools/dxil-dis/attribute-filter.ll
M llvm/test/tools/llvm-mca/AArch64/Exynos/float-divide-multiply.s
M llvm/test/tools/llvm-mca/AArch64/Exynos/float-integer.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/bad-input.s
M llvm/test/tools/llvm-mca/ARM/cortex-a57-basic-instructions.s
M llvm/test/tools/llvm-mca/ARM/cortex-a57-thumb.s
M llvm/test/tools/llvm-mca/X86/BtVer2/simple-test.s
M llvm/test/tools/llvm-mca/X86/BtVer2/skip-unsupported-instructions-none-remain.s
M llvm/test/tools/llvm-mca/X86/BtVer2/unsupported-instruction.s
A llvm/test/tools/llvm-mca/X86/bad-input.s
M llvm/test/tools/llvm-objdump/ELF/RISCV/unknown-arch-attr.test
M llvm/test/tools/yaml2obj/ELF/reloc-sec-entry-size.yaml
M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
M llvm/tools/llvm-c-test/echo.cpp
M llvm/tools/llvm-dwarfdump/Statistics.cpp
M llvm/tools/llvm-extract/llvm-extract.cpp
M llvm/tools/llvm-mca/CodeRegionGenerator.cpp
M llvm/tools/llvm-mca/CodeRegionGenerator.h
M llvm/tools/llvm-mca/llvm-mca.cpp
M llvm/tools/llvm-objdump/MachODump.cpp
M llvm/tools/llvm-xray/xray-graph-diff.cpp
M llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp
M llvm/unittests/ADT/StringRefTest.cpp
M llvm/unittests/ADT/StringSetTest.cpp
M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
M llvm/unittests/IR/AttributesTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
M llvm/unittests/Support/LEB128Test.cpp
M llvm/unittests/Support/MemoryBufferTest.cpp
M llvm/unittests/Support/YAMLIOTest.cpp
M llvm/unittests/TargetParser/CSKYTargetParserTest.cpp
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
M llvm/unittests/Transforms/Utils/CloningTest.cpp
M llvm/unittests/Transforms/Utils/LocalTest.cpp
M llvm/utils/TableGen/AsmMatcherEmitter.cpp
M llvm/utils/TableGen/DecoderEmitter.cpp
M llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn
M mlir/docs/Bufferization.md
A mlir/docs/includes/img/bufferization_passes.svg
A mlir/docs/includes/img/bufferization_tensor_insert_dst.svg
M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
M mlir/include/mlir/Dialect/Math/Transforms/Passes.h
M mlir/include/mlir/Dialect/MemRef/Utils/MemRefUtils.h
M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensor.h
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorAttrDefs.td
M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
M mlir/include/mlir/Dialect/Transform/Utils/Utils.h
M mlir/include/mlir/IR/OperationSupport.h
M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
M mlir/include/mlir/Interfaces/ViewLikeInterface.h
M mlir/include/mlir/Transforms/Mem2Reg.h
M mlir/include/mlir/Transforms/SROA.h
M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
M mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp
M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
M mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
M mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
M mlir/lib/Dialect/Transform/Utils/Utils.cpp
M mlir/lib/IR/AsmPrinter.cpp
M mlir/lib/Interfaces/ViewLikeInterface.cpp
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/lib/Transforms/SROA.cpp
M mlir/test/Conversion/ArmSMEToLLVM/arm-sme-to-llvm.mlir
M mlir/test/Conversion/ArmSMEToLLVM/unsupported.mlir
M mlir/test/Conversion/ArmSMEToSCF/arm-sme-to-scf.mlir
A mlir/test/Dialect/ArmSME/basic-tile-allocation.mlir
M mlir/test/Dialect/ArmSME/enable-arm-za.mlir
M mlir/test/Dialect/ArmSME/outer-product-fusion.mlir
R mlir/test/Dialect/ArmSME/tile-allocation.mlir
M mlir/test/Dialect/ArmSME/tile-zero-masks.mlir
M mlir/test/Dialect/LLVM/transform-e2e.mlir
M mlir/test/Dialect/Linalg/generalize-tensor-pack-tile.mlir
M mlir/test/Dialect/Linalg/generalize-tensor-unpack-tile.mlir
M mlir/test/Dialect/Linalg/matmul-shared-memory-padding.mlir
M mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
M mlir/test/Dialect/Linalg/promote.mlir
M mlir/test/Dialect/Linalg/promotion_options.mlir
M mlir/test/Dialect/Linalg/tile-conv.mlir
M mlir/test/Dialect/Linalg/tile-indexed.mlir
M mlir/test/Dialect/Linalg/tile-softmax.mlir
M mlir/test/Dialect/Linalg/tile-tensors.mlir
M mlir/test/Dialect/Linalg/tile-to-forall.mlir
M mlir/test/Dialect/Linalg/transform-op-compose-masked-vectorize-and-cleanups.mlir
M mlir/test/Dialect/Linalg/transform-op-fuse.mlir
M mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir
M mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
M mlir/test/Dialect/Linalg/transform-op-mmt4d-to-fma.mlir
M mlir/test/Dialect/Linalg/transform-op-pack.mlir
M mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir
M mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir
M mlir/test/Dialect/Linalg/transform-op-scalarize.mlir
M mlir/test/Dialect/Linalg/transform-op-tile.mlir
M mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
M mlir/test/Dialect/Linalg/transform-ops.mlir
M mlir/test/Dialect/Linalg/transform-patterns.mlir
M mlir/test/Dialect/Linalg/vectorize-tensor-extract-masked.mlir
M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
M mlir/test/Dialect/MemRef/invalid.mlir
M mlir/test/Dialect/MemRef/ops.mlir
M mlir/test/Dialect/SCF/canonicalize.mlir
M mlir/test/Dialect/SCF/one-shot-bufferize.mlir
M mlir/test/Dialect/SparseTensor/binary_valued.mlir
M mlir/test/Dialect/SparseTensor/codegen.mlir
M mlir/test/Dialect/SparseTensor/invalid_encoding.mlir
M mlir/test/Dialect/SparseTensor/sparse_matmul_codegen.mlir
M mlir/test/Dialect/Tensor/tiling.mlir
M mlir/test/Dialect/Transform/ops.mlir
M mlir/test/Dialect/Transform/selective-targeting.mlir
M mlir/test/Dialect/Vector/transform-vector.mlir
A mlir/test/IR/print-unique-ssa-ids.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul-mixed-types.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/multi-tile-matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-wcf-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-hwcf-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-dhwcf-call.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_ds.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_empty.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack_d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_print.mlir
A mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_print_3d.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-gemm-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-sampled-matmul-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-sddmm-lib.mlir
M mlir/test/Interfaces/TilingInterface/tile-pad-using-interface.mlir
M mlir/test/Interfaces/TilingInterface/tile-using-interface.mlir
A mlir/test/Transforms/buffer-results-to-out-params-elim.mlir
M mlir/test/lib/Dialect/Math/TestExpandMath.cpp
M mlir/test/mlir-cpu-runner/math-polynomial-approx.mlir
M mlir/test/mlir-cpu-runner/test-expand-math-approx.mlir
M mlir/test/python/dialects/transform_structured_ext.py
M mlir/tools/mlir-src-sharder/mlir-src-sharder.cpp
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/host/CMakeLists.txt
M offload/plugins-nextgen/host/src/rtl.cpp
M offload/src/omptarget.cpp
M openmp/CMakeLists.txt
M openmp/runtime/src/include/ompx.h.var
M openmp/runtime/src/kmp.h
M openmp/runtime/src/kmp_barrier.cpp
M openmp/runtime/src/kmp_csupport.cpp
M openmp/runtime/src/kmp_runtime.cpp
M openmp/runtime/src/kmp_settings.cpp
M openmp/runtime/src/kmp_tasking.cpp
M openmp/runtime/test/affinity/redetect.c
A openmp/runtime/test/target/issue-81488.c
A openmp/runtime/test/tasking/issue-50602.c
A openmp/runtime/test/tasking/issue-69368.c
A openmp/runtime/test/tasking/issue-69733.c
A openmp/runtime/test/tasking/issue-79416.c
A openmp/runtime/test/tasking/task_teams_stress_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
drop clang. use SHT_CREL = 0x40000014
Created using spr 1.3.5-bogner
Compare: https://github.com/llvm/llvm-project/compare/a0cfafb82db8...24c0fbb48e1c
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