[all-commits] [llvm/llvm-project] 8ef171: [msan] Handle horizontal add/subtract intrinsic by...
Roland McGrath via All-commits
all-commits at lists.llvm.org
Sat Feb 1 21:22:51 PST 2025
Branch: refs/heads/users/Prabhuk/sprmain.clangcallgraphsection-add-type-id-metadata-to-indirect-call-and-targets
Home: https://github.com/llvm/llvm-project
Commit: 8ef171ee831ff030e5aa81a74d68edc133d0cb4f
https://github.com/llvm/llvm-project/commit/8ef171ee831ff030e5aa81a74d68edc133d0cb4f
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-23 (Thu, 23 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx2-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/mmx-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx2-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/mmx-intrinsics.ll
Log Message:
-----------
[msan] Handle horizontal add/subtract intrinsic by applying to shadow (#124159)
Horizontal add (hadd) and subtract (hsub) are currently heuristically
handled by `maybeHandleSimpleNomemIntrinsic()` (via
`handleUnknownIntrinsic()`), which computes the shadow by bitwise OR'ing
the two operands. This has false positives for hadd/hsub shadows. For
example, suppose the shadows for the two operands are 00000000 and
11111111 respectively. The expected shadow for the result is 00001111,
but `maybeHandleSimpleNomemIntrinsic` would compute it as 11111111.
This patch handles horizontal add using
`handleIntrinsicByApplyingToShadow` (from
https://github.com/llvm/llvm-project/pull/114490), which has no false
positives for hadd/hsub: if each pair of adjacent shadow values is zero
(fully initialized), the result will be zero (fully initialized). More
generally, it is precise for hadd/hsub if at least one of the two
adjacent shadow values in each pair is zero.
It does have some false negatives for hadd/hsub: if we add/subtract two
adjacent non-zero shadow values, some bits of the result may incorrectly
be zero. We consider this an acceptable tradeoff for performance. To
make shadow propagation precise, we want the equivalent of "horizontal
OR", but this is not available. Reducing horizontal OR to (permutation
plus bitwise OR) is left as an exercise for the reader.
Commit: b84b717f093bd081f290cedcc4fecb2abec27868
https://github.com/llvm/llvm-project/commit/b84b717f093bd081f290cedcc4fecb2abec27868
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
Log Message:
-----------
[CostModel] getTypeBasedIntrinsicInstrCost - add default cost approximations for funnel shifts (#124175)
We only had handling for cases where we had argument data.
Commit: f6253f8fe9ff43f2f09f8e743bb095a84829154a
https://github.com/llvm/llvm-project/commit/f6253f8fe9ff43f2f09f8e743bb095a84829154a
Author: ZhaoQi <zhaoqi01 at loongson.cn>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
M llvm/lib/ExecutionEngine/JITLink/ELF_loongarch.cpp
M llvm/lib/ExecutionEngine/JITLink/loongarch.cpp
A llvm/test/ExecutionEngine/JITLink/LoongArch/ELF_reloc_addsub.s
Log Message:
-----------
[JITLink][LoongArch] Add label addition and subtraction relocations (#122262)
Commit: ddd2f57b29661f21308eec0400fa92a6d075b0c6
https://github.com/llvm/llvm-project/commit/ddd2f57b29661f21308eec0400fa92a6d075b0c6
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-trunc-nowrap.ll
Log Message:
-----------
[X86] Use NSW/NUW flags on ISD::TRUNCATE nodes to improve X86 PACKSS/PACKUS lowering (#123956)
If the NSW/NUW flags are present, then we can assume the source value is within bounds and saturation will not occur with the PACKSS/PACKUS instructions.
Fixes #87485
Commit: 886adf8fb3ba5ec358a9a4fbe87e4da6b3ae8973
https://github.com/llvm/llvm-project/commit/886adf8fb3ba5ec358a9a4fbe87e4da6b3ae8973
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/AST/ExprConstant.cpp
M clang/test/AST/ByteCode/new-delete.cpp
M clang/test/SemaCXX/cxx2a-constexpr-dynalloc.cpp
Log Message:
-----------
[clang][ExprConst] Let diagnostics point to std::allocator calls (#123744)
Instead of the underlying operator new calls. This fixes a longstanding
FIXME comment in cxx2a-constexpr-dynalloc.cpp.
Commit: ee2722fc882ed5dbc7609686bd998b023c6645b2
https://github.com/llvm/llvm-project/commit/ee2722fc882ed5dbc7609686bd998b023c6645b2
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Headers/avx10_2_512bf16intrin.h
M clang/lib/Headers/avx10_2bf16intrin.h
M clang/lib/Sema/SemaX86.cpp
M clang/test/CodeGen/X86/avx10_2_512bf16-builtins.c
M clang/test/CodeGen/X86/avx10_2bf16-builtins.c
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
M llvm/lib/Target/X86/X86InstrAVX10.td
M llvm/lib/Target/X86/X86InstrFMA3Info.cpp
M llvm/lib/Target/X86/X86InstrUtils.td
M llvm/lib/Target/X86/X86IntrinsicsInfo.h
M llvm/test/CodeGen/X86/avx10.2-fma-commute.ll
M llvm/test/CodeGen/X86/avx10_2_512bf16-arith.ll
M llvm/test/CodeGen/X86/avx10_2_512bf16-intrinsics.ll
M llvm/test/CodeGen/X86/avx10_2bf16-arith.ll
M llvm/test/CodeGen/X86/avx10_2bf16-intrinsics.ll
M llvm/test/MC/Disassembler/X86/avx10.2-bf16-32.txt
M llvm/test/MC/Disassembler/X86/avx10.2-bf16-64.txt
M llvm/test/MC/X86/avx10.2-bf16-32-att.s
M llvm/test/MC/X86/avx10.2-bf16-32-intel.s
M llvm/test/MC/X86/avx10.2-bf16-64-att.s
M llvm/test/MC/X86/avx10.2-bf16-64-intel.s
M llvm/test/TableGen/x86-fold-tables.inc
Log Message:
-----------
[X86][AVX10.2-BF16] Remove [NE]P from intrinsic and instruction name (#123335)
Ref.: https://cdrdv2.intel.com/v1/dl/getContent/828965
Commit: e289cb545adabd8f7b72c0c4a023dcf640823767
https://github.com/llvm/llvm-project/commit/e289cb545adabd8f7b72c0c4a023dcf640823767
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/source/Host/posix/DomainSocket.cpp
M lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
Log Message:
-----------
[lldb] Remove more workrounds for Android that have been fixed upstream (#124176)
Issues that were fixed 10+ years ago with Bionic libc.
Commit: bfd9bc274586b0261e16e22ac50d50586a0152e2
https://github.com/llvm/llvm-project/commit/bfd9bc274586b0261e16e22ac50d50586a0152e2
Author: Frederik Harwath <frederik.harwath at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/permute_i8.ll
A llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel.ll
A llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel.mir
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-gfx10.mir
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir
M llvm/test/CodeGen/AMDGPU/sdwa-preserve.mir
M llvm/test/CodeGen/AMDGPU/v_sat_pk_u8_i16.ll
Log Message:
-----------
[AMDGPU] SIPeepholeSDWA: Disable on existing SDWA instructions (#124131)
This PR reapplies the changes from PR #123942 which had to be reverted
because of a test failure. The test has been adjusted.
Commit: a6cfde62bb89e595db2bf7bb8ae810293d8edf26
https://github.com/llvm/llvm-project/commit/a6cfde62bb89e595db2bf7bb8ae810293d8edf26
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/source/Host/posix/HostInfoPosix.cpp
Log Message:
-----------
[lldb] Check Android API for existence of getgrgid_r() introduced in 24 (#124182)
Commit: eda16991adeb078647b2d239fcf666ddece5c30a
https://github.com/llvm/llvm-project/commit/eda16991adeb078647b2d239fcf666ddece5c30a
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/source/Host/common/Host.cpp
Log Message:
-----------
[lldb] Enable the use of dladdr() on Android (#124187)
dladdr() was introduced 15 years ago.
Commit: 97df7411fd99eb6b2ee54e0eadece490ae7a5a88
https://github.com/llvm/llvm-project/commit/97df7411fd99eb6b2ee54e0eadece490ae7a5a88
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/docs/TestingGuide.rst
Log Message:
-----------
[llvm][Docs] Make it clear where lit test files live (#124121)
As someone on Discord was understandably confused because the build
directory does contain folder structures that look remarkably like the
source directory.
I used this page to explain it but realised that this must be from when
llvm was a separate repository. So `<user home>/llvm` probably was a
common path.
Now it's in llvm-project. So make that obvious in the instructions.
Commit: 24e70e3930724ce499ad05d669bfbc4423c542e0
https://github.com/llvm/llvm-project/commit/24e70e3930724ce499ad05d669bfbc4423c542e0
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__chrono/convert_to_tm.h
M libcxx/include/__chrono/exception.h
M libcxx/include/__chrono/formatter.h
M libcxx/include/__chrono/leap_second.h
M libcxx/include/__chrono/local_info.h
M libcxx/include/__chrono/ostream.h
M libcxx/include/__chrono/sys_info.h
M libcxx/include/__chrono/time_zone.h
M libcxx/include/__chrono/time_zone_link.h
M libcxx/include/__chrono/tzdb.h
M libcxx/include/__chrono/tzdb_list.h
M libcxx/include/__chrono/zoned_time.h
M libcxx/include/__config
M libcxx/include/__numeric/pstl.h
M libcxx/include/execution
M libcxx/include/iosfwd
M libcxx/include/syncstream
M libcxx/include/version
M libcxx/modules/std/iosfwd.inc
M libcxx/modules/std/syncstream.inc
M libcxx/test/libcxx/experimental/fexperimental-library.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/support/test_macros.h
M libcxx/test/tools/clang_tidy_checks/internal_ftm_use.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++] Switch experimental library macros to 0/1 macros (#124030)
This is a continuation of what's been started in #89178.
As a drive-by, this also changes the PSTL macro to say `EXPERIMENTAL`
instead of `INCOMPLETE`.
Commit: 196f7c2a4f472074668451c5ecc40e82731940f7
https://github.com/llvm/llvm-project/commit/196f7c2a4f472074668451c5ecc40e82731940f7
Author: Artem Pianykh <artem.pyanykh at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/include/llvm/Transforms/Utils/ValueMapper.h
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/ValueMapper.cpp
Log Message:
-----------
[Utils] Identity map module-level debug info on first use in CloneFunction* (#118627)
Summary:
To avoid cloning module-level debug info (owned by the module rather
than the function), CloneFunction implementation used to eagerly
identity map such debug info into ValueMap's MD map. In larger modules
with meaningful volume of debug info this gets very expensive.
By passing such debug info metadata via an IdentityMD set for the
ValueMapper to map on first use, we get several benefits:
1. Mapping metadata is not cheap, particularly because of tracking. When
cloning a Function we identity map lots of global module-level
metadata to avoid cloning it, while only a fraction of it is actually
used by the function. Mapping on first use is a lot faster for
modules with meaningful amount of debug info.
2. Eagerly identity mapping metadata makes it harder to cache
module-level data (e.g. a set of metadata nodes in a \a DICompileUnit).
With this patch we can cache certain module-level metadata
calculations to speed things up further.
Anecdata from compiling a sample cpp file with full debug info shows that this moderately speeds up
CoroSplitPass which is one of the heavier users of cloning:
| | Baseline | IdentityMD set |
|-----------------|----------|----------------|
| CoroSplitPass | 306ms | 221ms |
| CoroCloner | 101ms | 72ms |
| Speed up | 1x | 1.4x |
Test Plan:
ninja check-llvm-unit
ninja check-llvm
Commit: df3bc54eff3baaa0ad2492b858029bcbf258a5d7
https://github.com/llvm/llvm-project/commit/df3bc54eff3baaa0ad2492b858029bcbf258a5d7
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
Log Message:
-----------
[flang] Avoid repeated hash lookups (NFC) (#124230)
Commit: 990837f91de329b1e045f90fadb86ffe21611d9a
https://github.com/llvm/llvm-project/commit/990837f91de329b1e045f90fadb86ffe21611d9a
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIRTypes.td
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/include/mlir/Dialect/Math/IR/MathOps.td
M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
M mlir/include/mlir/IR/CommonTypeConstraints.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Dialect/Arith/invalid.mlir
M mlir/test/Dialect/Tensor/invalid.mlir
Log Message:
-----------
[mlir][arith][tensor] Disable index type for bitcast (#121455)
Fixes #121397.
Commit: 1fa56038f6ea2b35e7b51d8151cfe7dfcb3abcf3
https://github.com/llvm/llvm-project/commit/1fa56038f6ea2b35e7b51d8151cfe7dfcb3abcf3
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
Log Message:
-----------
[CostModel][X86] getIntrinsicInstrCost - lrint/llrint costs can use getCastInstrCost without argument data
We don't use the IntrinsicCostAttributes arguments so, which allows us to use in type-only analysis in a future patch.
Commit: b4ef11d0e20b8263012613697503533fbb2119d6
https://github.com/llvm/llvm-project/commit/b4ef11d0e20b8263012613697503533fbb2119d6
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/Descriptor.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124228)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Source to be nonnull.
Commit: 148da06628507123f340c68b0ba732c31c3b6de9
https://github.com/llvm/llvm-project/commit/148da06628507123f340c68b0ba732c31c3b6de9
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/include/clang/Sema/SemaInternal.h
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124229)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect UPP.first to be nonnull.
Commit: 1c0af8dced4a38967f3cb2d93fb6576535bc748b
https://github.com/llvm/llvm-project/commit/1c0af8dced4a38967f3cb2d93fb6576535bc748b
Author: gbMattN <146744444+gbMattN at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
A compiler-rt/test/tysan/ignorelist.c
A compiler-rt/test/tysan/ignorelist.h
A compiler-rt/test/tysan/preprocessor.c
Log Message:
-----------
[TySan] Added tests for methods of ignoring instrumentation (#124125)
TySan supports some preprocessor checks and ignorelists, but they are
currently untested. This PR adds some tests to make sure they all work.
@fhahn @AaronBallman, this is based off the discussion in the
documentation PR [#123595]
Commit: 4b6fc4934685c26f223e435d62b02b60544f76d3
https://github.com/llvm/llvm-project/commit/4b6fc4934685c26f223e435d62b02b60544f76d3
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/docs/Contributing.rst
M llvm/docs/DeveloperPolicy.rst
Log Message:
-----------
[llvm][Docs] Clarify the process for requesting a merge on your behalf (#124154)
This makes it more clear what you the author must do, and what reviewers
can expect you to do, before an approved PR can be merged. Spliting out
the email bit into a section also means we can link directly to it in
discussions.
This relies on one of those parties actually reading this, but I plan to
tackle the case where they don't with some new automation.
Commit: 0510d4ea59a185db453b5910f307e1c6e9184589
https://github.com/llvm/llvm-project/commit/0510d4ea59a185db453b5910f307e1c6e9184589
Author: Karlo Basioli <68535415+basioli-k at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel]Fix bazel build after 631a6e0004e57ca85569b99ea411418627925697
Commit: 865104a1042e824254b130c00c7f8ee0e0e0f6c5
https://github.com/llvm/llvm-project/commit/865104a1042e824254b130c00c7f8ee0e0e0f6c5
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/SMEInstrFormats.td
M llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll
Log Message:
-----------
[AArch64][SME] Change output class of FORM_TRANSPOSED_REG_TUPLE pseudos (#123755)
The FORM_TRANSPOSED_REG_TUPLE pseudo nodes use either the ZPR2Mul2
or ZPR4Mul4 register classes for output. This patch changes the class
so that these can be extended to other multi-vector intrinsics which
instead create a ZPR2/ZPR4 register sequence.
Commit: 77465967130a502eb092a710a2f18be23ef2efff
https://github.com/llvm/llvm-project/commit/77465967130a502eb092a710a2f18be23ef2efff
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr.ll
Log Message:
-----------
[SLP][X86] Add VBMI2 coverage for funnel shift tests
VBMI2 CPUs actually have vector funnel shift instruction support
Commit: aff1242b8ee8b75d68812337f8e408a1405ab00f
https://github.com/llvm/llvm-project/commit/aff1242b8ee8b75d68812337f8e408a1405ab00f
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/dbg-outer-loop-vect.ll
Log Message:
-----------
[LV] Align debug location of the widen-phi to the original phi. (#120338)
This patch align the debug location of the widen-phi to the debug
location of original phi.
Split from: #120054
Commit: 3208801aec1867b83335418d84ee09b773ef5b2e
https://github.com/llvm/llvm-project/commit/3208801aec1867b83335418d84ee09b773ef5b2e
Author: David Green <david.green at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/test/CodeGen/AArch64/bf16-instructions.ll
Log Message:
-----------
[AArch64][GlobalISel] Add some bf16 GISel test coverage. NFC
Most of this is mis-compiling with +fullfp16 and should be disabled for GISel.
Commit: f8a56df36e39b01af667f2e7823d5c1d8bab73ee
https://github.com/llvm/llvm-project/commit/f8a56df36e39b01af667f2e7823d5c1d8bab73ee
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.h
M llvm/lib/Target/AMDGPU/AMDGPURegBankSelect.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbankselect.mir
Log Message:
-----------
AMDGPU/GlobalISel: AMDGPURegBankSelect (#112863)
Assign register banks to virtual registers. Does not use generic
RegBankSelect. After register bank selection all register operand of
G_ instructions have LLT and register banks exclusively. If they had
register class, reassign appropriate register bank.
Assign register banks using machine uniformity analysis:
Sgpr - uniform values and some lane masks
Vgpr - divergent, non S1, values
Vcc - divergent S1 values(lane masks)
AMDGPURegBankSelect does not consider available instructions and, in
some cases, G_ instructions with some register bank assignment can't be
inst-selected. This is solved in RegBankLegalize.
Exceptions when uniformity analysis does not work:
S32/S64 lane masks:
- need to end up with sgpr register class after instruction selection
- In most cases Uniformity analysis declares them as uniform
(forced by tablegen) resulting in sgpr S32/S64 reg bank
- When Uniformity analysis declares them as divergent (some phis),
use intrinsic lane mask analyzer to still assign sgpr register bank
temporal divergence copy:
- COPY to vgpr with implicit use of $exec inside of the cycle
- this copy is declared as uniform by uniformity analysis
- make sure that assigned bank is vgpr
Note: uniformity analysis does not consider that registers with vgpr def
are divergent (you can have uniform value in vgpr).
- TODO: implicit use of $exec could be implemented as indicator
that instruction is divergent
Commit: 625e0a40f1a97d181a4641f604495b6aea433bd8
https://github.com/llvm/llvm-project/commit/625e0a40f1a97d181a4641f604495b6aea433bd8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
Log Message:
-----------
[SLP][X86] Add missing SSE2/SSE4 checks from vector rotate tests
Commit: 9bb3c62948d0c6dd3fb233186ae6a79744012b8f
https://github.com/llvm/llvm-project/commit/9bb3c62948d0c6dd3fb233186ae6a79744012b8f
Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/test/Driver/fast-math.f90
Log Message:
-----------
[Flang][Driver] Deprecate Ofast (#101701)
This is subject to agreement by the Flang community
(https://discourse.llvm.org/t/rfc-deprecate-ofast-in-flang/80243).
Commit: e6030d389571b3f1b0f0c5a35b7fa45937ed0f6c
https://github.com/llvm/llvm-project/commit/e6030d389571b3f1b0f0c5a35b7fa45937ed0f6c
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Use std::allocator calls for Descriptor source (#123900)
... for the dynamic blocks created for operator new calls. This way we
get the type of memory allocated right. As a side-effect, the
diagnostics now point to the std::allocator calls, which is an
improvement.
Commit: 8e702735090388a3231a863e343f880d0f96fecb
https://github.com/llvm/llvm-project/commit/8e702735090388a3231a863e343f880d0f96fecb
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/DebugProgramInstruction.h
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/Analysis/LoopInfo.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/lib/CodeGen/SjLjEHPrepare.cpp
M llvm/lib/CodeGen/StackColoring.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/FuzzMutate/IRMutator.cpp
M llvm/lib/IR/DIBuilder.cpp
M llvm/lib/IR/DebugProgramInstruction.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
M llvm/lib/Target/ARM/ARMParallelDSP.cpp
M llvm/lib/Target/BPF/BPFASpaceCastSimplifyPass.cpp
M llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
M llvm/lib/Target/BPF/BPFAdjustOpt.cpp
M llvm/lib/Target/BPF/BPFCheckAndAdjustIR.cpp
M llvm/lib/Target/BPF/BPFPreserveStaticOffset.cpp
M llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
M llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp
M llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp
M llvm/lib/Target/X86/X86LowerAMXType.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/SpillUtils.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
M llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/lib/Transforms/Scalar/DivRemPairs.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/GVNHoist.cpp
M llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/LoopSink.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/lib/Transforms/Scalar/NewGVN.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
M llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Scalar/Sink.cpp
M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
M llvm/lib/Transforms/Utils/GuardUtils.cpp
M llvm/lib/Transforms/Utils/Instrumentation.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/tools/llvm-stress/llvm-stress.cpp
M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
M llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
M llvm/unittests/Analysis/MemorySSATest.cpp
M llvm/unittests/IR/BasicBlockDbgInfoTest.cpp
M llvm/unittests/IR/BasicBlockTest.cpp
M llvm/unittests/IR/LegacyPassManagerTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
M polly/lib/CodeGen/BlockGenerators.cpp
M polly/lib/Support/ScopHelper.cpp
Log Message:
-----------
[NFC][DebugInfo] Use iterator moveBefore at many call-sites (#123583)
As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to moveBefore use iterators.
This patch adds a (guaranteed dereferenceable) iterator-taking
moveBefore, and changes a bunch of call-sites where it's obviously safe
to change to use it by just calling getIterator() on an instruction
pointer. A follow-up patch will contain less-obviously-safe changes.
We'll eventually deprecate and remove the instruction-pointer
insertBefore, but not before adding concise documentation of what
considerations are needed (very few).
Commit: dac49e8ddd5dc0104c238f09cdd532e6fb5c4f1d
https://github.com/llvm/llvm-project/commit/dac49e8ddd5dc0104c238f09cdd532e6fb5c4f1d
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
[Arm] Fix generating code with UB in NeonEmitter (#121802)
When generating `arm_neon.h`, NeonEmitter outputs code that
violates strict aliasing rules (C23 6.5 Expressions #7,
C++23 7.2.1 Value category [basic.lval] #11), for example:
bfloat16_t __reint = __p0;
uint32_t __reint1 = (uint32_t)(*(uint16_t *) &__reint) << 16;
__ret = *(float32_t *) &__reint1;
This patch fixed the offending code by replacing it with
a call to `__builtin_bit_cast`.
Commit: 33fc477e6e2614f71541f4287c1d68757b9203b0
https://github.com/llvm/llvm-project/commit/33fc477e6e2614f71541f4287c1d68757b9203b0
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/www/cxx_dr_status.html
Log Message:
-----------
[clang][NFC] Update `cxx_dr_status.html`
Commit: 965ff7fa309d4408b4ccf5df7e59fec264c905c5
https://github.com/llvm/llvm-project/commit/965ff7fa309d4408b4ccf5df7e59fec264c905c5
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTX.td
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/test/CodeGen/NVPTX/sm-version.ll
Log Message:
-----------
[NVPTX] Add SM versions for 101 and 120 (#124155)
This patch adds SM and PTX versions for SM
101, 120 and their arch-accelerated variants.
All these are supported in cuda-12.8.
sm120/120a requires ptx8.7 and the rest require ptx8.6.
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: 0ee037b861f94604907d95d0ff0ff87805b52428
https://github.com/llvm/llvm-project/commit/0ee037b861f94604907d95d0ff0ff87805b52428
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/include/llvm/CodeGen/MachineRegisterInfo.h
M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
A llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
A llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
A llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
A llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-salu-float.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-salu-float.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.mir
Log Message:
-----------
AMDGPU/GlobalISel: AMDGPURegBankLegalize (#112864)
Lower G_ instructions that can't be inst-selected with register bank
assignment from AMDGPURegBankSelect based on uniformity analysis.
- Lower instruction to perform it on assigned register bank
- Put uniform value in vgpr because SALU instruction is not available
- Execute divergent instruction in SALU - "waterfall loop"
Given LLTs on all operands after legalizer, some register bank
assignments require lowering while other do not.
Note: cases where all register bank assignments would require lowering
are lowered in legalizer.
AMDGPURegBankLegalize goals:
- Define Rules: when and how to perform lowering
- Goal of defining Rules it to provide high level table-like brief
overview of how to lower generic instructions based on available
target features and uniformity info (uniform vs divergent).
- Fast search of Rules, depends on how complicated Rule.Predicate is
- For some opcodes there would be too many Rules that are essentially
all the same just for different combinations of types and banks.
Write custom function that handles all cases.
- Rules are made from enum IDs that correspond to each operand.
Names of IDs are meant to give brief description what lowering does
for each operand or the whole instruction.
- AMDGPURegBankLegalizeHelper implements lowering algorithms
Since this is the first patch that actually enables -new-reg-bank-select
here is the summary of regression tests that were added earlier:
- if instruction is uniform always select SALU instruction if available
- eliminate back to back vgpr to sgpr to vgpr copies of uniform values
- fast rules: small differences for standard and vector instruction
- enabling Rule based on target feature - salu_float
- how to specify lowering algorithm - vgpr S64 AND to S32
- on G_TRUNC in reg, it is up to user to deal with truncated bits
G_TRUNC in reg is treated as no-op.
- dealing with truncated high bits - ABS S16 to S32
- sgpr S1 phi lowering
- new opcodes for vcc-to-scc and scc-to-vcc copies
- lowering for vgprS1-to-vcc copy (formally this is vgpr-to-vcc G_TRUNC)
- S1 zext and sext lowering to select
- uniform and divergent S1 AND(OR and XOR) lowering - inst-selected into
SALU instruction
- divergent phi with uniform inputs
- divergent instruction with temporal divergent use, source instruction
is defined as uniform(AMDGPURegBankSelect) - missing temporal
divergence lowering
- uniform phi, because of undef incoming, is assigned to vgpr. Will be
fixed in AMDGPURegBankSelect via another fix in machine uniformity
analysis.
Commit: 88136f96452952b85b9c40e185b929e561e6e59f
https://github.com/llvm/llvm-project/commit/88136f96452952b85b9c40e185b929e561e6e59f
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/canonicalize.mlir
Log Message:
-----------
[mlir][vector] Canonicalize gathers/scatters with trivial offsets (#117939)
Canonicalize gathers/scatters with contiguous (i.e. [0, 1, 2, ...])
offsets into vector masked load/store ops.
Commit: 46a08ce83262767b3aae5c9828fabcd13f2e8a96
https://github.com/llvm/llvm-project/commit/46a08ce83262767b3aae5c9828fabcd13f2e8a96
Author: Congcong Cai <congcongcai0907 at 163.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
M clang-tools-extra/clang-tidy/ClangTidyProfiling.h
Log Message:
-----------
[clang-tidy][NFC] simplify `TimerGroup` in `ClangTidyProfiling` (#123958)
`TimerGroup` don't need to use as field of `ClangTidyProfiling`.
We can construct it local during destructing.
Commit: 8e6d6a55108c7979f0392bf8ad3444c92a2474e9
https://github.com/llvm/llvm-project/commit/8e6d6a55108c7979f0392bf8ad3444c92a2474e9
Author: Congcong Cai <congcongcai0907 at 163.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] improve performance misc-unused-using-decls (#123454)
skip header file before register AST Matchers
it can avoid to matcher lots of ast node when lint header file
Commit: 4831fa8632f6ab89fe2c14b8e7ec09500e43c099
https://github.com/llvm/llvm-project/commit/4831fa8632f6ab89fe2c14b8e7ec09500e43c099
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-load.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-zextload.mir
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for load (#112882)
Add IDs for bit width that cover multiple LLTs: B32 B64 etc.
"Predicate" wrapper class for bool predicate functions used to
write pretty rules. Predicates can be combined using &&, || and !.
Lowering for splitting and widening loads.
Write rules for loads to not change existing mir tests from old
regbankselect.
Commit: 5ce349589a4adcc18f5807551bf4b78091746aa8
https://github.com/llvm/llvm-project/commit/5ce349589a4adcc18f5807551bf4b78091746aa8
Author: Artem Pianykh <artem.pyanykh at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroCloner.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
Log Message:
-----------
[Coro] Prebuild a module-level debug info set and share it between all coroutine clones (#118628)
Summary:
CoroCloner, by calling into CloneFunctionInto, does a lot of repeated
work priming DIFinder and building a list of common module-level debug
info metadata. For programs compiled with full debug info this can get
very expensive.
This diff builds the data once and shares it between all clones.
Anecdata for a sample cpp source file compiled with full debug info:
| | Baseline | IdentityMD set | Prebuilt CommonDI (cur.) |
|-----------------|----------|----------------|--------------------------|
| CoroSplitPass | 306ms | 221ms | 68ms |
| CoroCloner | 101ms | 72ms | 0.5ms |
| CollectCommonDI | - | - | 63ms |
| Speed up | 1x | 1.4x | 4.5x |
Note that CollectCommonDebugInfo happens once *per coroutine* rather than per clone.
Test Plan:
ninja check-llvm-unit
ninja check-llvm
Compiled a sample internal source file, checked time trace output for scope timings.
Commit: b60c118f53e6f7e5328e54dc26b4d6787030c02b
https://github.com/llvm/llvm-project/commit/b60c118f53e6f7e5328e54dc26b4d6787030c02b
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MachineSSAContext.cpp
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/MIR/hidden-diverge-gmir.mir
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/MIR/hidden-loop-diverge.mir
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/MIR/uses-value-from-cycle.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbankselect.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.mir
Log Message:
-----------
MachineUniformityAnalysis: Improve isConstantOrUndefValuePhi (#112866)
Change existing code for G_PHI to match what LLVM-IR version is doing
via PHINode::hasConstantOrUndefValue. This is not safe for regular PHI
since it may appear with an undef operand and getVRegDef can fail.
Most notably this improves number of values that can be allocated
to sgpr in AMDGPURegBankSelect.
Common case here are phis that appear in structurize-cfg lowering
for cycles with multiple exits:
Undef incoming value is coming from block that reached cycle exit
condition, if other incoming is uniform keep the phi uniform despite
the fact it is joining values from pair of blocks that are entered
via divergent condition branch.
Commit: 57b48987f6c21e369e7bb1626dc79ca74aa34fdb
https://github.com/llvm/llvm-project/commit/57b48987f6c21e369e7bb1626dc79ca74aa34fdb
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/include/lldb/Symbol/Function.h
M lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
M lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
M lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
M lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
M lldb/source/Symbol/Function.cpp
M lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-function.s
Log Message:
-----------
[lldb] Use the first address range as the function address (#122440)
This is the behavior expected by DWARF. It also requires some fixups to
algorithms which were storing the addresses of some objects (Blocks and
Variables) relative to the beginning of the function.
There are plenty of things that still don't work in this setups, but
this change is sufficient for the expression evaluator to correctly
recognize the entry point of a function in this case.
Commit: acc13dbe4dcbfeafec24211148683a8b7e9c4cf0
https://github.com/llvm/llvm-project/commit/acc13dbe4dcbfeafec24211148683a8b7e9c4cf0
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
Log Message:
-----------
[libc][workflow] improve ci coverage with windows-2025 and arm ubuntu (#123745)
Add the following workflows:
- `fullbuild` on aarch64 ubuntu
- `overlay` on windows 2025
- `overlay` on aarch64 ubuntu
`ccache` variant is used on `aarch64` due to
https://github.com/hendrikmuhs/ccache-action/issues/279
Commit: d6e0798a2a7cef94b2457f39c93f7083aaebd29d
https://github.com/llvm/llvm-project/commit/d6e0798a2a7cef94b2457f39c93f7083aaebd29d
Author: yingopq <115543042+yingopq at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/Mips/MipsBranchExpansion.cpp
A llvm/test/CodeGen/Mips/llvm-ir/sdiv-freebsd.ll
Log Message:
-----------
[Mips] Add the missing judgment when processing function handleMFLOSlot (#121463)
In function handleMFLOSlot, we may get a variable LastInstInFunction
with a value of true from function getNextMachineInstr and IInSlot may
be null which would trigger an assert.
So we need to skip this case.
Fix #118223.
Commit: b4e81fd1eb2231b06eaca66e71ecb83cffb88f52
https://github.com/llvm/llvm-project/commit/b4e81fd1eb2231b06eaca66e71ecb83cffb88f52
Author: Nico Weber <thakis at chromium.org>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
M llvm/utils/gn/secondary/clang/include/clang/Sema/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
Log Message:
-----------
[gn] port 4018317407006b2c63
Commit: eb206e9ea84eff0a0596fed2de8316d924f946d1
https://github.com/llvm/llvm-project/commit/eb206e9ea84eff0a0596fed2de8316d924f946d1
Author: Andrea Faulds <andrea.faulds at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/docs/Dialects/GPU.md
M mlir/docs/ReleaseNotes.md
M mlir/docs/SPIRVToLLVMDialectConversion.md
M mlir/lib/ExecutionEngine/VulkanRuntimeWrappers.cpp
M mlir/test/CMakeLists.txt
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-addi-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-cmpi-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-compare-results-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-constants-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-max-min-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-muli-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-shli-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-shrsi-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-shrui-i16.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-sitofp-i32.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-wide-int-emulation-uitofp-i32.mlir
M mlir/test/Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir
M mlir/test/Integration/Dialect/Async/CPU/microbench-scf-async-parallel-for.mlir
M mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir
M mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-2d.mlir
M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir
M mlir/test/Integration/Dialect/ControlFlow/assert.mlir
M mlir/test/Integration/Dialect/LLVMIR/CPU/X86/test-inline-asm-vector.mlir
M mlir/test/Integration/Dialect/LLVMIR/CPU/X86/test-inline-asm.mlir
M mlir/test/Integration/Dialect/LLVMIR/CPU/test-complex-sparse-constant.mlir
M mlir/test/Integration/Dialect/LLVMIR/CPU/test-vector-reductions-fp.mlir
M mlir/test/Integration/Dialect/LLVMIR/CPU/test-vector-reductions-int.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/runtime-verification.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-collapse-tensor.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-elementwise.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-expand-tensor.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-matmul-masked-vec.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-one-shot-bufferize.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert-multiple-uses.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-e2e.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir
M mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
M mlir/test/Integration/Dialect/Math/CPU/mathtofuncs_ctlz.mlir
M mlir/test/Integration/Dialect/MemRef/cast-runtime-verification.mlir
M mlir/test/Integration/Dialect/MemRef/load-runtime-verification.mlir
M mlir/test/Integration/Dialect/MemRef/print-memref.mlir
M mlir/test/Integration/Dialect/MemRef/reinterpret-cast-runtime-verification.mlir
M mlir/test/Integration/Dialect/MemRef/subview-runtime-verification.mlir
M mlir/test/Integration/Dialect/MemRef/verify-memref.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/block.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/block_majors.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_0_permute.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/concatenate_dim_1_permute.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output_bf16.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output_f16.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/dual_sparse_conv_2d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/iterator-based-kernel.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/padded_sparse_conv_2d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/reshape_dot.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_abs.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_binary.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block3d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_block_matmul.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_cast.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_cmp.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_codegen_dim.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_codegen_foreach.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_collapse_shape.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_complex32.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_complex64.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_complex_ops.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_constant_to_sparse_tensor.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_1d_nwc_wcf.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_55.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nchw_fchw.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_2d_nhwc_hwcf.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conv_3d_ndhwc_dhwcf.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_block.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_dyn.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_element.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_ptr.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_sparse2dense.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_conversion_sparse2sparse.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_coo_test.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_dilated_conv_2d_nhwc_hwcf.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_dot.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_expand.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_expand_shape.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_filter_conv2d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_foreach_slices.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_generate.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_index.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_index_dense.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_insert_1d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_insert_2d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_insert_3d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_loose.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matmul.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matmul_slice.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matrix_ops.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_mult_elt.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_reduction.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack_d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_permute.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_print.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_print_3d.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_quantized_matmul.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_re_im.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reduce_custom.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reduce_custom_prod.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reduce_custom_sum.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reductions.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reductions_min.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reductions_prod.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_reshape.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_rewrite_push_back.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_rewrite_sort_coo.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_mm_fusion.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_scale.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_scf_nested.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_select.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_semiring_select.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sign.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_storage.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_strided_conv_2d_nhwc_hwcf.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_bf16.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_f16.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_tanh.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_tensor_mul.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_tensor_ops.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_transpose.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_transpose_coo.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_unary.mlir
M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_vector_ops.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sm80-lt/sparse-matmul-2-4-hand.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sm80-lt/sparse-matmul-2-4-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sm80-lt/sparse-matmul-2-4-prune.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-gemm-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-matmul-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-matvec-const.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-matvec-lib.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-matvec.mlir
M mlir/test/Integration/Dialect/SparseTensor/GPU/CUDA/sparse-mma-2-4-f16.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/Integration/Dialect/Standard/CPU/test-ceil-floor-pos-neg.mlir
M mlir/test/Integration/Dialect/Standard/CPU/test_subview.mlir
M mlir/test/Integration/Dialect/Tosa/CPU/test-fully-connected.mlir
M mlir/test/Integration/Dialect/Tosa/CPU/test-maxpool-dynamic.mlir
M mlir/test/Integration/Dialect/Vector/CPU/0-d-vectors.mlir
M mlir/test/Integration/Dialect/Vector/CPU/broadcast.mlir
M mlir/test/Integration/Dialect/Vector/CPU/compress.mlir
M mlir/test/Integration/Dialect/Vector/CPU/constant-mask.mlir
M mlir/test/Integration/Dialect/Vector/CPU/contraction.mlir
M mlir/test/Integration/Dialect/Vector/CPU/create-mask-v4i1.mlir
M mlir/test/Integration/Dialect/Vector/CPU/create-mask.mlir
M mlir/test/Integration/Dialect/Vector/CPU/expand.mlir
M mlir/test/Integration/Dialect/Vector/CPU/extract-strided-slice.mlir
M mlir/test/Integration/Dialect/Vector/CPU/flat-transpose-col.mlir
M mlir/test/Integration/Dialect/Vector/CPU/flat-transpose-row.mlir
M mlir/test/Integration/Dialect/Vector/CPU/fma.mlir
M mlir/test/Integration/Dialect/Vector/CPU/gather.mlir
M mlir/test/Integration/Dialect/Vector/CPU/index-vectors.mlir
M mlir/test/Integration/Dialect/Vector/CPU/insert-strided-slice.mlir
M mlir/test/Integration/Dialect/Vector/CPU/interleave.mlir
M mlir/test/Integration/Dialect/Vector/CPU/maskedload.mlir
M mlir/test/Integration/Dialect/Vector/CPU/maskedstore.mlir
M mlir/test/Integration/Dialect/Vector/CPU/matrix-multiply-col.mlir
M mlir/test/Integration/Dialect/Vector/CPU/matrix-multiply-row.mlir
M mlir/test/Integration/Dialect/Vector/CPU/outerproduct-f32.mlir
M mlir/test/Integration/Dialect/Vector/CPU/outerproduct-i64.mlir
M mlir/test/Integration/Dialect/Vector/CPU/print-fp.mlir
M mlir/test/Integration/Dialect/Vector/CPU/print-int.mlir
M mlir/test/Integration/Dialect/Vector/CPU/print-str.mlir
M mlir/test/Integration/Dialect/Vector/CPU/realloc.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-f32-reassoc.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-f32.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-f64-reassoc.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-f64.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-i32.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-i4.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-i64.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-si4.mlir
M mlir/test/Integration/Dialect/Vector/CPU/reductions-ui4.mlir
M mlir/test/Integration/Dialect/Vector/CPU/rewrite-narrow-types.mlir
M mlir/test/Integration/Dialect/Vector/CPU/scan.mlir
M mlir/test/Integration/Dialect/Vector/CPU/scatter.mlir
M mlir/test/Integration/Dialect/Vector/CPU/shape-cast.mlir
M mlir/test/Integration/Dialect/Vector/CPU/shuffle.mlir
M mlir/test/Integration/Dialect/Vector/CPU/shuffle16x16.mlir
M mlir/test/Integration/Dialect/Vector/CPU/sparse-dot-matvec.mlir
M mlir/test/Integration/Dialect/Vector/CPU/sparse-saxpy-jagged-matvec.mlir
M mlir/test/Integration/Dialect/Vector/CPU/test-deinterleave.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-1d.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-2d.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read-3d.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-read.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-to-loops.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transfer-write.mlir
M mlir/test/Integration/Dialect/Vector/CPU/transpose.mlir
M mlir/test/Integration/Dialect/Vector/GPU/CUDA/test-reduction-distribute.mlir
M mlir/test/Integration/Dialect/Vector/GPU/CUDA/test-warp-distribute.mlir
M mlir/test/Integration/GPU/CUDA/TensorCore/sm80/transform-mma-sync-matmul-f16-f16-accum.mlir
M mlir/test/Integration/GPU/CUDA/TensorCore/sm80/transform-mma-sync-matmul-f32.mlir
M mlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f16.mlir
M mlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f32-bare-ptr.mlir
M mlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f32.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-and.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-maxsi.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-minsi.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-op.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-or.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-region.mlir
M mlir/test/Integration/GPU/CUDA/all-reduce-xor.mlir
M mlir/test/Integration/GPU/CUDA/alloc-host-shared.mlir
M mlir/test/Integration/GPU/CUDA/assert.mlir
M mlir/test/Integration/GPU/CUDA/async.mlir
M mlir/test/Integration/GPU/CUDA/gpu-to-cubin.mlir
M mlir/test/Integration/GPU/CUDA/multiple-all-reduce.mlir
M mlir/test/Integration/GPU/CUDA/printf.mlir
M mlir/test/Integration/GPU/CUDA/shuffle.mlir
M mlir/test/Integration/GPU/CUDA/sm90/cga_cluster.mlir
M mlir/test/Integration/GPU/CUDA/sm90/gemm_f32_f16_f16_128x128x128.mlir
M mlir/test/Integration/GPU/CUDA/sm90/gemm_pred_f32_f16_f16_128x128x128.mlir
M mlir/test/Integration/GPU/CUDA/sm90/tma_load_128x128_stride_noswizzle.mlir
M mlir/test/Integration/GPU/CUDA/sm90/tma_load_128x64_swizzle128b.mlir
M mlir/test/Integration/GPU/CUDA/sm90/tma_load_64x64_swizzle128b.mlir
M mlir/test/Integration/GPU/CUDA/sm90/tma_load_64x8_8x128_noswizzle.mlir
M mlir/test/Integration/GPU/CUDA/sm90/transform-dialect/tma_load_64x8_8x128_noswizzle-transform.mlir
M mlir/test/Integration/GPU/CUDA/two-modules.mlir
M mlir/test/Integration/GPU/ROCM/gpu-to-hsaco.mlir
M mlir/test/Integration/GPU/ROCM/printf.mlir
M mlir/test/Integration/GPU/ROCM/two-modules.mlir
M mlir/test/Integration/GPU/ROCM/vecadd.mlir
M mlir/test/Integration/GPU/ROCM/vector-transferops.mlir
M mlir/test/Integration/GPU/SPIRV/double.mlir
M mlir/test/Integration/GPU/SPIRV/simple_add.mlir
M mlir/test/Integration/GPU/SYCL/gpu-addf32-to-spirv.mlir
M mlir/test/Integration/GPU/SYCL/gpu-addi64-to-spirv.mlir
M mlir/test/Integration/GPU/SYCL/gpu-reluf32-to-spirv.mlir
M mlir/test/Integration/GPU/Vulkan/addf.mlir
M mlir/test/Integration/GPU/Vulkan/addf_if.mlir
M mlir/test/Integration/GPU/Vulkan/addi.mlir
M mlir/test/Integration/GPU/Vulkan/addi8.mlir
M mlir/test/Integration/GPU/Vulkan/addui_extended.mlir
M mlir/test/Integration/GPU/Vulkan/mulf.mlir
M mlir/test/Integration/GPU/Vulkan/smul_extended.mlir
M mlir/test/Integration/GPU/Vulkan/subf.mlir
M mlir/test/Integration/GPU/Vulkan/time.mlir
M mlir/test/Integration/GPU/Vulkan/umul_extended.mlir
M mlir/test/Integration/GPU/Vulkan/vector-deinterleave.mlir
M mlir/test/Integration/GPU/Vulkan/vector-interleave.mlir
M mlir/test/Integration/GPU/Vulkan/vector-shuffle.mlir
M mlir/test/Integration/lit.local.cfg
M mlir/test/lit.cfg.py
M mlir/test/lit.site.cfg.py.in
R mlir/test/mlir-cpu-runner/X86Vector/lit.local.cfg
R mlir/test/mlir-cpu-runner/X86Vector/math-polynomial-approx-avx2.mlir
R mlir/test/mlir-cpu-runner/async-error.mlir
R mlir/test/mlir-cpu-runner/async-func.mlir
R mlir/test/mlir-cpu-runner/async-group.mlir
R mlir/test/mlir-cpu-runner/async-value.mlir
R mlir/test/mlir-cpu-runner/async.mlir
R mlir/test/mlir-cpu-runner/bare-ptr-call-conv.mlir
R mlir/test/mlir-cpu-runner/copy.mlir
R mlir/test/mlir-cpu-runner/expand-arith-ops.mlir
R mlir/test/mlir-cpu-runner/global-constructors.mlir
R mlir/test/mlir-cpu-runner/global-memref.mlir
R mlir/test/mlir-cpu-runner/invalid.mlir
R mlir/test/mlir-cpu-runner/lit.local.cfg
R mlir/test/mlir-cpu-runner/math-polynomial-approx.mlir
R mlir/test/mlir-cpu-runner/memref-reinterpret-cast.mlir
R mlir/test/mlir-cpu-runner/memref-reshape.mlir
R mlir/test/mlir-cpu-runner/sgemm-naive-codegen.mlir
R mlir/test/mlir-cpu-runner/simple.mlir
R mlir/test/mlir-cpu-runner/test-expand-math-approx.mlir
R mlir/test/mlir-cpu-runner/unranked-memref.mlir
R mlir/test/mlir-cpu-runner/utils.mlir
R mlir/test/mlir-cpu-runner/verify-entry-point-result.mlir
R mlir/test/mlir-cpu-runner/verify-flags.mlir
R mlir/test/mlir-cpu-runner/x86-varargs.mlir
A mlir/test/mlir-runner/X86Vector/lit.local.cfg
A mlir/test/mlir-runner/X86Vector/math-polynomial-approx-avx2.mlir
A mlir/test/mlir-runner/async-error.mlir
A mlir/test/mlir-runner/async-func.mlir
A mlir/test/mlir-runner/async-group.mlir
A mlir/test/mlir-runner/async-value.mlir
A mlir/test/mlir-runner/async.mlir
A mlir/test/mlir-runner/bare-ptr-call-conv.mlir
A mlir/test/mlir-runner/copy.mlir
A mlir/test/mlir-runner/expand-arith-ops.mlir
A mlir/test/mlir-runner/global-constructors.mlir
A mlir/test/mlir-runner/global-memref.mlir
A mlir/test/mlir-runner/invalid.mlir
A mlir/test/mlir-runner/lit.local.cfg
A mlir/test/mlir-runner/math-polynomial-approx.mlir
A mlir/test/mlir-runner/memref-reinterpret-cast.mlir
A mlir/test/mlir-runner/memref-reshape.mlir
A mlir/test/mlir-runner/sgemm-naive-codegen.mlir
A mlir/test/mlir-runner/simple.mlir
A mlir/test/mlir-runner/test-expand-math-approx.mlir
A mlir/test/mlir-runner/unranked-memref.mlir
A mlir/test/mlir-runner/utils.mlir
A mlir/test/mlir-runner/verify-entry-point-result.mlir
A mlir/test/mlir-runner/verify-flags.mlir
A mlir/test/mlir-runner/x86-varargs.mlir
M mlir/tools/CMakeLists.txt
R mlir/tools/mlir-cpu-runner/CMakeLists.txt
R mlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp
A mlir/tools/mlir-runner/CMakeLists.txt
A mlir/tools/mlir-runner/mlir-runner.cpp
Log Message:
-----------
[mlir] Rename mlir-cpu-runner to mlir-runner (#123776)
With the removal of mlir-vulkan-runner (as part of #73457) in
e7e3c45bc70904e24e2b3221ac8521e67eb84668, mlir-cpu-runner is now the
only runner for all CPU and GPU targets, and the "cpu" name has been
misleading for some time already. This commit renames it to mlir-runner.
Commit: a5cc897cdedfdca018a83fac5734ebe086acb817
https://github.com/llvm/llvm-project/commit/a5cc897cdedfdca018a83fac5734ebe086acb817
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[gn build] Port 0ee037b861f9
Commit: 6292a808b3524d9ba6f4ce55bc5b9e547b088dd8
https://github.com/llvm/llvm-project/commit/6292a808b3524d9ba6f4ce55bc5b9e547b088dd8
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/Transforms/Utils/Instrumentation.h
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/LoopNestAnalysis.cpp
M llvm/lib/Analysis/MustExecute.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/AsmPrinter/WinException.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/lib/CodeGen/WasmEHPrepare.cpp
M llvm/lib/CodeGen/WinEHPrepare.cpp
M llvm/lib/IR/EHPersonalities.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/BPF/BPFAdjustOpt.cpp
M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
M llvm/lib/Target/X86/X86WinEHState.cpp
M llvm/lib/Transforms/Coroutines/MaterializationUtils.cpp
M llvm/lib/Transforms/IPO/IROutliner.cpp
M llvm/lib/Transforms/IPO/PartialInlining.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
M llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
M llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARC.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/GVNSink.cpp
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
M llvm/lib/Transforms/Scalar/SCCP.cpp
M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/lib/Transforms/Utils/LoopSimplify.cpp
M llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
M llvm/lib/Transforms/Utils/MoveAutoInit.cpp
M llvm/lib/Transforms/Utils/SSAUpdater.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
M llvm/unittests/Analysis/MemorySSATest.cpp
M llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
M llvm/unittests/IR/DebugInfoTest.cpp
M llvm/unittests/IR/InstructionsTest.cpp
M llvm/unittests/Transforms/Scalar/LICMTest.cpp
M polly/lib/CodeGen/BlockGenerators.cpp
M polly/lib/CodeGen/LoopGenerators.cpp
M polly/lib/Transform/MaximalStaticExpansion.cpp
Log Message:
-----------
[NFC][DebugInfo] Use iterator-flavour getFirstNonPHI at many call-sites (#123737)
As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to getFirstNonPHI use the iterator-returning version.
This patch changes a bunch of call-sites calling getFirstNonPHI to use
getFirstNonPHIIt, which returns an iterator. All these call sites are
where it's obviously safe to fetch the iterator then dereference it. A
follow-up patch will contain less-obviously-safe changes.
We'll eventually deprecate and remove the instruction-pointer
getFirstNonPHI, but not before adding concise documentation of what
considerations are needed (very few).
---------
Co-authored-by: Stephen Tozer <Melamoto at gmail.com>
Commit: 02c6002d1cd2dabe4b98368f91e7b4395e5ab11d
https://github.com/llvm/llvm-project/commit/02c6002d1cd2dabe4b98368f91e7b4395e5ab11d
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
M lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
M lldb/test/API/linux/aarch64/gcs/main.c
Log Message:
-----------
[lldb][AArch64] Add Guarded Control Stack registers (#123720)
The Guarded Control Stack extension implements a shadow stack and the
Linux kernel provides access to 3 registers for it via ptrace.
struct user_gcs {
__u64 features_enabled;
__u64 features_locked;
__u64 gcspr_el0;
};
This commit adds support for reading those from a live process.
The first 2 are pseudo registers based on the real control register and
the 3rd is a real register. This is the stack pointer for the guarded
stack.
I have added a "gcs_" prefix to the "features" registers so that they
have a clear name when shown individually. Also this means they will tab
complete from "gcs", and be next to gcspr_el0 in any sorted lists of
registers.
Guarded Control Stack Registers:
gcs_features_enabled = 0x0000000000000000
gcs_features_locked = 0x0000000000000000
gcspr_el0 = 0x0000000000000000
Testing is more of the usual, where possible I'm writing a register then
doing something in the program to confirm the value was actually sent to
ptrace.
Commit: 11b040192640ef3b1f481124c440f464ed6ec86a
https://github.com/llvm/llvm-project/commit/11b040192640ef3b1f481124c440f464ed6ec86a
Author: Aaditya <115080342+easyonaadit at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-contents-legalization.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
M llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
M llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-u32.mir
M llvm/test/CodeGen/AMDGPU/fix-frame-reg-in-custom-csr-spills.ll
M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/function-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/gfx-call-non-gfx-func.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
M llvm/test/CodeGen/AMDGPU/global-alias.ll
M llvm/test/CodeGen/AMDGPU/indirect-call.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-bug.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll
M llvm/test/CodeGen/AMDGPU/local-stack-alloc-block-sp-reference.ll
M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.gfx10.ll
M llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
M llvm/test/CodeGen/AMDGPU/need-fp-from-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/nested-calls.ll
M llvm/test/CodeGen/AMDGPU/no-source-locations-in-prologue.ll
M llvm/test/CodeGen/AMDGPU/non-entry-alloca.ll
M llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-carry-out.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-gfx9.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-vgpr-spill.mir
M llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll
M llvm/test/CodeGen/AMDGPU/schedule-amdgpu-trackers.ll
M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spills-split-regalloc.ll
M llvm/test/CodeGen/AMDGPU/sibling-call.ll
M llvm/test/CodeGen/AMDGPU/stack-realign.ll
M llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.ll
M llvm/test/CodeGen/AMDGPU/strictfp_f16_abi_promote.ll
M llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.error.ll
M llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
M llvm/test/CodeGen/AMDGPU/use_restore_frame_reg.mir
M llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-register-copy.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-register-spill.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
[AMDGPU] Restore SP from saved-FP or saved-BP (#124007)
Currently, the AMDGPU backend bumps the Stack Pointer
by fixed size offsets in the prolog of device functions, and
restores it by the same amount in the epilog.
Prolog:
sp += frameSize
Epilog:
sp -= frameSize
If a function has dynamic stack realignment,
Prolog:
sp += frameSize + max_alignment
Epilog:
sp -= frameSize + max_alignment
These calculations are not optimal in case of dynamic
stack realignment, and completely fail in case of
dynamic stack readjustment.
This patch uses the saved Frame Pointer to restore SP.
Prolog:
fp = sp
sp += frameSize
Epilog:
sp = fp
In case of dynamic stack realignment, SP is restored from
the saved Base Pointer.
Prolog:
fp = sp + (max_alignment - 1)
fp = fp & (-max_alignment)
bp = sp
sp += frameSize + max_alignment
Epilog:
sp = bp
(Note: The presence of BP has been enforced in case of any
dynamic stack realignment.)
---------
Co-authored-by: Pravin Jagtap <Pravin.Jagtap at amd.com>
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: 970094d50b08e694c2302f7ee39b1c33d08f2405
https://github.com/llvm/llvm-project/commit/970094d50b08e694c2302f7ee39b1c33d08f2405
Author: Lou <lou.knauer at sipearl.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
A llvm/test/tools/llvm-opt-report/Inputs/scalable.c
A llvm/test/tools/llvm-opt-report/Inputs/scalable.yaml
A llvm/test/tools/llvm-opt-report/scalabe.test
M llvm/tools/llvm-opt-report/OptReport.cpp
Log Message:
-----------
[llvm-opt-report] Show scalable vectorization factors (#123367)
Scalable vectorization factors are printed as "vscale x VF" where VF is
the known minimum number of elements, a integer. Currently,
llvm-opt-report always expects a integer (like for vectorization with
fixed-sized vectors), and does not display any vectorization factor in
the output (just 'V', but without a number).
This patch adds support for scalable vectorization factors and prints
them as "VNx<VF>", so for example "VNx4". The "Nx" is used to
differentiate between fixed-sized and scalable factors, and is
consistent with the way LLVM mangles scalable vectors in other places.
Commit: e5e55c04d6af4ae32c99d574f59e632595abf607
https://github.com/llvm/llvm-project/commit/e5e55c04d6af4ae32c99d574f59e632595abf607
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalMerge.cpp
Log Message:
-----------
[GlobalMerge][NFC] Skip sorting by profitability when it is not needed (#124146)
We were previously sorting by profitability even if we were choosing to
merge all globals together, which is not impacted by UsedGlobalSet
order.
We can also remove iteration of UsedGlobalSets in reverse order in both
cases. In the first csae, the order does not matter. In the second case,
we just sort by the order we need instead of sorting in the opposite
direction and calling reverse.
This change should only be an improvement on compile time. I have not
measured it, but I think it would never make things worse.
Commit: 77c780d64b950d6850d5ec1ee06cd0c21b38b89e
https://github.com/llvm/llvm-project/commit/77c780d64b950d6850d5ec1ee06cd0c21b38b89e
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port eb206e9ea84eff0a0596fed2de8316d924f946d1
Leave around an alias so users can move at their own pace.
Commit: acde3f722ff3766f6f793884108d342b78623fe4
https://github.com/llvm/llvm-project/commit/acde3f722ff3766f6f793884108d342b78623fe4
Author: Peter Hawkins <phawkins at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/Bindings/Python/IRModule.h
M mlir/python/mlir/dialects/_ods_common.py
M mlir/test/mlir-tblgen/op-python-bindings.td
M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
Log Message:
-----------
[mlir:python] Compute get_op_result_or_value in PyOpView's constructor. (#123953)
This logic is in the critical path for constructing an operation from
Python. It is faster to compute this in C++ than it is in Python, and it
is a minor change to do this.
This change also alters the API contract of
_ods_common.get_op_results_or_values to avoid calling
get_op_result_or_value on each element of a sequence, since the C++ code
will now do this.
Most of the diff here is simply reordering the code in IRCore.cpp.
Commit: f2b253b9613a858ae3dd5bf5ccbba87b64941688
https://github.com/llvm/llvm-project/commit/f2b253b9613a858ae3dd5bf5ccbba87b64941688
Author: Emma Pilkington <emma.pilkington95 at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
A llvm/test/DebugInfo/AMDGPU/debug-loc-copy.ll
Log Message:
-----------
[SelectionDAG] Fix an incorrect DebugLoc on a COPY (#122963)
Fixes: SWDEV-502134
Commit: 2068b1ba031e258a6448bea372005d19692c802a
https://github.com/llvm/llvm-project/commit/2068b1ba031e258a6448bea372005d19692c802a
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86CallingConv.cpp
M llvm/lib/Target/X86/X86CallingConv.td
M llvm/lib/Target/X86/X86ISelLowering.h
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/test/CodeGen/X86/addcarry.ll
M llvm/test/CodeGen/X86/apx/flags-copy-lowering.ll
M llvm/test/CodeGen/X86/avgflooru-i128.ll
M llvm/test/CodeGen/X86/fmuladd-soft-float.ll
M llvm/test/CodeGen/X86/i128-abi.ll
M llvm/test/CodeGen/X86/sadd_sat_vec.ll
M llvm/test/CodeGen/X86/ssub_sat_vec.ll
M llvm/test/CodeGen/X86/subcarry.ll
M llvm/test/CodeGen/X86/uadd_sat_vec.ll
M llvm/test/CodeGen/X86/usub_sat_vec.ll
Log Message:
-----------
[X86] Fix ABI for passing after i128 (#124134)
If we're passing an i128 value and we no longer have enough argument
registers (only r9 unallocated), the value gets passed via the stack.
However, r9 is still allocated as a shadow register, which means that a
following i64 argument will not use it. This doesn't match the x86-64
psABI.
Fix this by making i128 arguments as requiring consecutive registers,
and then adding a custom CC lowering that will allocate both parts of
the i128 at the same time, either to register or to stack, without
reserving a shadow register.
Fixes https://github.com/llvm/llvm-project/issues/123935.
Commit: 9cf52fe1f94fdcd8e27c76f7d33a80eeb2075833
https://github.com/llvm/llvm-project/commit/9cf52fe1f94fdcd8e27c76f7d33a80eeb2075833
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/test/Lower/OpenMP/derived-type-allocatable.f90
Log Message:
-----------
[flang][OpenMP][NFC] test the current private dealloc runtime calls (#124017)
It looks like in most cases we still don't make calls to deallocate
allocatable members of derived types which have been privatized.
This is just intended to add a test for the one case where we do, to
make sure this doesn't regress with my upcoming changes.
Commit: c546b5317c518987a5f45dd4c4d25321a955c758
https://github.com/llvm/llvm-project/commit/c546b5317c518987a5f45dd4c4d25321a955c758
Author: DianQK <dianqk at dianqk.net>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/implied-condition-samesign.ll
Log Message:
-----------
[ValueTracking] Pass changed predicate `SignedLPred` to `isImpliedByMatchingCmp` (#124271)
Fixes #124267.
Since we are using the new predicate, we should also update the
parameters of `isImpliedByMatchingCmp`.
Commit: a12d7e4b611f0db2525da68f5576beaeeb6c84ac
https://github.com/llvm/llvm-project/commit/a12d7e4b611f0db2525da68f5576beaeeb6c84ac
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
Log Message:
-----------
[SLP] getVectorCallCosts - don't provide scalar argument data for vector IntrinsicCostAttributes (#124254)
getVectorCallCosts determines the cost of a vector intrinsic, based off
an existing scalar intrinsic call - but we were including the scalar
argument data to the IntrinsicCostAttributes, which meant that not only
was the cost calculation not type-only based, it was making incorrect
assumptions about constant values etc.
This also exposed an issue that x86 relied on fallback calculations for
funnel shift costs - this is great when we have the argument data as
that improves the accuracy of uniform shift amounts etc., but meant that
type-only costs would default to Cost=2 for all custom lowered funnel
shifts, which was far too cheap.
This is the reverse of #124129 where we weren't including argument data
when we could.
Fixes #63980
Commit: 6c11b7e689c89ff46e4472810dd555434eab1010
https://github.com/llvm/llvm-project/commit/6c11b7e689c89ff46e4472810dd555434eab1010
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MachineInstr.cpp
Log Message:
-----------
[CodeGen] NFC: Change order of checks in MachineInstr->isDead() (#124207)
[[Change-Id:
Ic349022bb99ef91f5396e462ade0366bc772ae02](https://github.com/llvm/llvm-project/pull/123531)](https://github.com/llvm/llvm-project/pull/123531)
moved isDead() from DeadMachineInstrElim to MachineInstr . In the
process of moving, I reordered the checks to improve chances of early
exit, but this has caused a slight increase in compile time.
This PR reverts back to the original order of checks.
Commit: a94226f9e6f5be4d6978134e7813f22b0510f3d4
https://github.com/llvm/llvm-project/commit/a94226f9e6f5be4d6978134e7813f22b0510f3d4
Author: Eric Astor <epastor at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/MC/MCParser/COFFMasmParser.cpp
M llvm/lib/MC/MCParser/MasmParser.cpp
A llvm/test/tools/llvm-ml/bare_proc_error.asm
A llvm/test/tools/llvm-ml/no_section_error.asm
Log Message:
-----------
[llvm-ml] Remove unsafe getCurrentSegmentOnly() call (#123355)
This call was made unsafe recently, but was not fixed in
db48f1a1764023f8efeb055e343b967d1eb37d19 (the commit that fixed the
parallel code in AsmParser.cpp).
Fixes #123189
Commit: ec66c4af09263e68d800971906e60afc27d54a06
https://github.com/llvm/llvm-project/commit/ec66c4af09263e68d800971906e60afc27d54a06
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcanonicalize.mir
M llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll
Log Message:
-----------
[AMDGPU][True16][CodeGen] true16 codegen pattern for f16 canonicalize (#122000)
true16 codegen pattern for f16 canonicalize
Commit: 5d2393a222c751723b0906485bf90a28dd4e564b
https://github.com/llvm/llvm-project/commit/5d2393a222c751723b0906485bf90a28dd4e564b
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
Log Message:
-----------
[InstCombine] Avoid repeated hash lookups (NFC) (#124243)
Commit: 37bf0a10fb4cee10f4acbb7da453e7c19c8ee599
https://github.com/llvm/llvm-project/commit/37bf0a10fb4cee10f4acbb7da453e7c19c8ee599
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
A llvm/test/Analysis/ScalarEvolution/pr123550.ll
Log Message:
-----------
[SCEV] Add test for #123550 (NFC)
Commit: 256f40d0e6b2beb0e951b0f5f836847223c5695c
https://github.com/llvm/llvm-project/commit/256f40d0e6b2beb0e951b0f5f836847223c5695c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libc/src/stdlib/gpu/free.cpp
M libc/src/stdlib/gpu/malloc.cpp
M libc/test/src/stdlib/CMakeLists.txt
Log Message:
-----------
[libc] Use the NVIDIA device allocator for GPU malloc (#124277)
Summary:
This is a blocker on another patch in the OpenMP runtime. The problem is
that NVIDIA truly doesn't handle RPC-based allocations very well. It
cannot reliably update the MMU while a kernel is running and it will
usually deadlock if called from a separate thread due to internal use of
TLS.
This patch just removes the definition of `malloc` and `free` for NVPTX.
The result here is that they will be undefined, which is the cue for the
`nvlink` linker to define them for us. So, as far as `libc` is concerned
it still implements malloc.
Commit: 7842374103b26933d71a8fe354cd4d8715d55b1c
https://github.com/llvm/llvm-project/commit/7842374103b26933d71a8fe354cd4d8715d55b1c
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/utils/TableGen/InstrInfoEmitter.cpp
Log Message:
-----------
[NFC][TableGen] Emit nested namespaces in InstrInfoEmitter (#124210)
- Emit C++17 nested namespaces in InstrInfoEmitter.
Commit: cccb55491223cd410cb2f83973377dd75757cb60
https://github.com/llvm/llvm-project/commit/cccb55491223cd410cb2f83973377dd75757cb60
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/source/Host/common/PseudoTerminal.cpp
Log Message:
-----------
[lldb] Remove unused posix_openpt function definition for Android (#124257)
This was for the wrapper function that was in
source/Host/android/LibcGlue.cpp. Android added
support 10+ years ago.
Commit: 3da7de34a2bcfeef73747a9796652f6bff225de3
https://github.com/llvm/llvm-project/commit/3da7de34a2bcfeef73747a9796652f6bff225de3
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/include/flang/Common/api-attrs.h
M flang/runtime/stop.cpp
Log Message:
-----------
[flang][runtime] Disable optimization for traceback related functions. (#124172)
The backtrace may at least print the backtrace name in the call stack,
but this does not happen with the release builds of the runtime.
Surprisingly, specifying "no-omit-frame-pointer" did not work
with GCC, so I decided to fall back to -O0 for these functions.
Commit: a976036a100b7dd459b6cabac96159875fcd513d
https://github.com/llvm/llvm-project/commit/a976036a100b7dd459b6cabac96159875fcd513d
Author: lntue <lntue at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libc/test/src/math/exhaustive/exhaustive_test.h
Log Message:
-----------
[libc][NFC] Remove extra ; in exhaustive_test.h. (#124216)
These cause warnings when running check-libc.
Commit: ba6774f997ee28157b0a3b8816cc76b94ed1da17
https://github.com/llvm/llvm-project/commit/ba6774f997ee28157b0a3b8816cc76b94ed1da17
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
Log Message:
-----------
[mlir][xegpu] Fix verifier diagnostic recursion (#124148)
Uses global diagnostic message in operation verifier to avoid infinite
recursion on a warning.
Emitting diagnostics through the operation under verification creates a
loop where verifier runs again before printing the message.
Commit: d88293d8a2005b19f89a86252c60102cec6c9b01
https://github.com/llvm/llvm-project/commit/d88293d8a2005b19f89a86252c60102cec6c9b01
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
M mlir/test/Dialect/Vector/vector-break-down-bitcast.mlir
Log Message:
-----------
[mlir][vector] Disable `BreakDownVectorBitCast` for scalable vectors (#122725)
`BreakDownVectorBitCast` leverages
* `vector.extract_strided_slices` + `vector.insert_strided_slices`
As these Ops do not support extracting scalable sub-vectors (i.e.
extracting/inserting a fraction of a scalable dim), it's best to bail
out.
Commit: 474f5d2aefb44430b89ed72774a3c1d26a0adfb1
https://github.com/llvm/llvm-project/commit/474f5d2aefb44430b89ed72774a3c1d26a0adfb1
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/test/CodeGen/AArch64/cpu-supports-target.c
M clang/test/CodeGen/AArch64/cpu-supports.c
M clang/test/CodeGen/AArch64/fmv-dependencies.c
M clang/test/CodeGen/AArch64/fmv-features.c
M clang/test/CodeGen/AArch64/fmv-priority.c
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-version.c
M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
M clang/test/Sema/attr-target-version.c
M compiler-rt/lib/builtins/cpu_model/AArch64CPUFeatures.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/apple.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/mrs.inc
M llvm/include/llvm/TargetParser/AArch64CPUFeatures.inc
M llvm/lib/Target/AArch64/AArch64FMV.td
Log Message:
-----------
[FMV][AArch64] Remove features predres and ls64. (#124266)
These cannot be detected by reading the ID_AA64ISAR1_EL1 register since
their corresponding bitfields are hidden. Additionally the instructions
that these features enable are unusable from EL0.
ACLE: https://github.com/ARM-software/acle/pull/382
Commit: 5daecd4a3b9c6cca10ab6d44f539adf7310ace23
https://github.com/llvm/llvm-project/commit/5daecd4a3b9c6cca10ab6d44f539adf7310ace23
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Support/AArch64BuildAttributes.cpp
Log Message:
-----------
[Support] Fix namespace after #123990
https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions
Commit: c025b96ef9bb364c79f73fc3afb45c851c2efb17
https://github.com/llvm/llvm-project/commit/c025b96ef9bb364c79f73fc3afb45c851c2efb17
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lld/ELF/Symbols.cpp
Log Message:
-----------
[ELF] Symbol::extract : remove unneeded file->lazy check
Commit: 134401deea5e86d646bb99fab39c182cfa8e5292
https://github.com/llvm/llvm-project/commit/134401deea5e86d646bb99fab39c182cfa8e5292
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
M offload/plugins-nextgen/common/include/RPC.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/common/src/RPC.cpp
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.cpp
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.h
M offload/plugins-nextgen/cuda/src/rtl.cpp
A offload/test/libc/server.c
Log Message:
-----------
[Offload] Move RPC server handling to a dedicated thread (#112988)
Summary:
Handling the RPC server requires running through list of jobs that the
device has requested to be done. Currently this is handled by the thread
that does the waiting for the kernel to finish. However, this is not
sound on NVIDIA architectures and only works for async launches in the
OpenMP model that uses helper threads.
However, we also don't want to have this thread doing work
unnnecessarily. For this reason we track the execution of kernels and
cause the thread to sleep via a condition variable (usually backed by
some kind of futex or other intelligent sleeping mechanism) so that the
thread will be idle while no kernels are running.
Commit: bd8a8181288c9e16eb90fff78cbbc63b4687963a
https://github.com/llvm/llvm-project/commit/bd8a8181288c9e16eb90fff78cbbc63b4687963a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.cpp
M offload/plugins-nextgen/cuda/dynamic_cuda/cuda.h
Log Message:
-----------
[Offload] Add cuLaunchHostFunc to dynamic cuda
Summary:
This was missing, causing non-directly linked builds to fail.
Commit: 0cd794d4860e376698bb4da24bcdf8cbf331835c
https://github.com/llvm/llvm-project/commit/0cd794d4860e376698bb4da24bcdf8cbf331835c
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libcxx/docs/Status/Cxx20Issues.csv
M libcxx/docs/Status/FormatPaper.csv
M libcxx/include/CMakeLists.txt
M libcxx/include/__chrono/convert_to_tm.h
M libcxx/include/__chrono/formatter.h
M libcxx/include/__chrono/ostream.h
A libcxx/include/__chrono/utc_clock.h
M libcxx/include/chrono
M libcxx/include/module.modulemap
M libcxx/modules/std/chrono.inc
A libcxx/test/benchmarks/utc_clock.bench.cpp
M libcxx/test/libcxx/diagnostics/chrono.nodiscard.verify.cpp
A libcxx/test/libcxx/time/time.clock/time.clock.utc/get_leap_second_info.pass.cpp
A libcxx/test/libcxx/time/time.clock/time.clock.utc/time.clock.utc.members/from_sys.pass.cpp
A libcxx/test/libcxx/time/time.clock/time.clock.utc/time.clock.utc.members/to_sys.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/get_leap_second_info.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/leap_second_info.members.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/time.clock.utc.members/from_sys.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/time.clock.utc.members/now.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/time.clock.utc.members/to_sys.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/types.compile.pass.cpp
A libcxx/test/std/time/time.clock/time.clock.utc/utc_time.ostream.pass.cpp
A libcxx/test/std/time/time.syn/formatter.utc_time.pass.cpp
M libcxx/test/std/utilities/format/format.formattable/concept.formattable.compile.pass.cpp
Log Message:
-----------
[libc++][chrono] implements UTC clock. (#90393)
While implementing this feature and its associated LWG issues it turns
out
- LWG3316 Correctly define epoch for utc_clock / utc_timepoint only
added non-normative wording to the standard.
Implements parts of:
- P0355 Extending <chrono> to Calendars and Time Zones
- P1361 Integration of chrono with text formatting
- LWG3359 <chrono> leap second support should allow for negative leap
seconds
Commit: 12f82fbe072382bb78ab1cbdd3fbeb8ed44cbc81
https://github.com/llvm/llvm-project/commit/12f82fbe072382bb78ab1cbdd3fbeb8ed44cbc81
Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M compiler-rt/test/profile/Windows/binary-id.c
Log Message:
-----------
[compiler-rt] Fix Windows test after profile summary change (#124318)
Fix a Windows compiler-rt test that
https://github.com/llvm/llvm-project/pull/105915 broke.
Commit: 7293455cf292cfaa263ea04fc1bc2aee4ceab6a6
https://github.com/llvm/llvm-project/commit/7293455cf292cfaa263ea04fc1bc2aee4ceab6a6
Author: Dave Lee <davelee.com at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/bindings/interface/SBThreadExtensions.i
M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
M lldb/test/API/functionalities/location-list-lookup/TestLocationListLookup.py
M lldb/test/API/lang/cpp/std-function-recognizer/TestStdFunctionRecognizer.py
M lldb/test/API/lang/objc/print-obj/TestPrintObj.py
Log Message:
-----------
[lldb] Add SBThread.selected_frame property (#123981)
Adds a `selected_frame` property to `SBThread`. The setter accepts either a frame index (like `SetSelectedFrame`), or a frame object.
Updates a few tests to make use of the new `selected_frame`. While doing so I noticed some of the usage could be cleaned up, so I did that too.
Commit: a9ad601f7c5486919d6fabc5dd3cb6e96f63ac61
https://github.com/llvm/llvm-project/commit/a9ad601f7c5486919d6fabc5dd3cb6e96f63ac61
Author: Philip Reames <preames at rivosinc.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-select-addsub.ll
Log Message:
-----------
[RISCV] Use vrsub for select of add and sub of the same operands (#123400)
If we have a (vselect c, a+b, a-b), we can combine this to a+(vselect c,
b, -b). That by itself isn't hugely profitable, but if we reverse the
select, we get a form which matches a masked vrsub.vi with zero. The
result is that we can use a masked vrsub *before* the add instead of a
masked add or sub. This doesn't change the critical path (since we
already had the pass through on the masked second op), but does reduce
register pressure since a, b, and (a+b) don't need to all be alive at
once.
In addition to the vselect form, we can also see the same pattern with a
vector_shuffle encoding the vselect. I explored canonicalizing these to
vselects instead, but that exposes several unrelated missing combines.
Commit: 544a3cb65b6b9b1455f9294d1764f47a7b8673b7
https://github.com/llvm/llvm-project/commit/544a3cb65b6b9b1455f9294d1764f47a7b8673b7
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/CUFDeviceGlobal.cpp
M flang/test/Fir/CUDA/cuda-implicit-device-global.f90
Log Message:
-----------
[flang][cuda] Handle variable with initialization in device global pass (#124307)
Commit: d9b8120259a546ce7aa9f047566fef29479f59e8
https://github.com/llvm/llvm-project/commit/d9b8120259a546ce7aa9f047566fef29479f59e8
Author: Nico Weber <thakis at chromium.org>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lld/COFF/InputFiles.cpp
M lld/COFF/SymbolTable.cpp
M lld/test/COFF/start-lib.ll
Log Message:
-----------
[lld/COFF] Fix -start-lib / -end-lib more after reviews.llvm.org/D116434 (#124294)
This is a follow-up to #120452 in a way.
Since lld/COFF does not yet insert all defined in an obj file before all
undefineds (ELF and MachO do this, see #67445 and things linked from
there), it's possible that:
1. We add an obj file a.obj
2. a.obj contains an undefined that's in b.obj, causing b.obj to be
added
3. b.obj contains an undefined that's in a part of a.obj that's not yet
in the symbol table, causing a recursive load of a.obj, which adds the
symbols in there twice, leading to duplicate symbol errors.
For normal archives, `ArchiveFile::addMember()` has a `seen` check to
prevent this. For start-lib lazy objects, we can just check if the
archive is still lazy at the recursive call.
This bug is similar to issue #59162.
(Eventually, we'll probably want to do what the MachO and ELF ports do.)
Includes a test that caused duplicate symbol diagnostics before this
code change.
Commit: e4009ed3d68ba8d9e78721ce5afc2b3a7edd6f36
https://github.com/llvm/llvm-project/commit/e4009ed3d68ba8d9e78721ce5afc2b3a7edd6f36
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/docs/ConstantInterpreter.rst
M clang/www/OpenProjects.html
Log Message:
-----------
[clang][docs] Update bytecode interpreter docs (#124252)
Just a light update, not adding a lot of new information.
Commit: 825e712959d48f14b47e579871bcf9b5e25fff7a
https://github.com/llvm/llvm-project/commit/825e712959d48f14b47e579871bcf9b5e25fff7a
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaHLSL.cpp
R clang/test/AST/HLSL/ast-dump-comment-cbuffe-tbufferr.hlsl
A clang/test/AST/HLSL/ast-dump-comment-cbuffer-tbuffer.hlsl
A clang/test/AST/HLSL/cbuffer.hlsl
A clang/test/AST/HLSL/cbuffer_and_namespaces.hlsl
R clang/test/AST/HLSL/cbuffer_tbuffer.hlsl
M clang/test/AST/HLSL/pch_hlsl_buffer.hlsl
Log Message:
-----------
[HLSL] cbuffer: create host layout structs (#122820)
Creates layout struct for `cbuffer` in Sema which will contains only
declarations contributing to the constant buffer layout. Anything else
will be filtered out, such as static variables decls, struct and
function definitions, resources, or empty struct and zero-sized arrays.
If the constant buffer includes a struct that contains any of the above
undesirable declarations, a new version of this struct should be created
with these declarations filtered out as well.
The definition of buffer layout struct will be added to the
HLSLBufferDecl AST node as the last node. Any layout structs for
embedded structures will be added there as well.
Fixes #122553
Commit: 3861b9db882d5637725ceeccb801c2bb837e8fc5
https://github.com/llvm/llvm-project/commit/3861b9db882d5637725ceeccb801c2bb837e8fc5
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 0cd794d4860e
Commit: ab976a17121374ae3407374b2aa6306e95863eb3
https://github.com/llvm/llvm-project/commit/ab976a17121374ae3407374b2aa6306e95863eb3
Author: Stephen Long <63318318+steplong at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
A llvm/include/llvm/Transforms/Utils/LowerVectorIntrinsics.h
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
A llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
A llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-exp.ll
A llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/lit.local.cfg
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Log Message:
-----------
PreISelIntrinsicLowering: Lower llvm.exp/llvm.exp2 to a loop if scalable vec arg (#117568)
Commit: 83df39c649fe1b1dd556d8f2160999c65ce497eb
https://github.com/llvm/llvm-project/commit/83df39c649fe1b1dd556d8f2160999c65ce497eb
Author: junfengd-nv <junfengd at nvidia.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/lib/Transforms/Utils/Inliner.cpp
A mlir/test/Transforms/inlining-recursive-2.mlir
M mlir/test/Transforms/inlining-recursive.mlir
Log Message:
-----------
[mlir][inline] Fix Issue#82401: Infinite loop in MLIR inliner for indirect recursive call. (#124026)
Commit: 3b30f20c60d020e43f5700dae68cf1080158b725
https://github.com/llvm/llvm-project/commit/3b30f20c60d020e43f5700dae68cf1080158b725
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libcxx/include/__chrono/convert_to_tm.h
M libcxx/include/__chrono/formatter.h
M libcxx/include/__chrono/ostream.h
M libcxx/include/__chrono/utc_clock.h
Log Message:
-----------
[libc++][TZDB] Fixes CI.
The commit 24e70e3930724ce499ad05d669bfbc4423c542e0 changed internal
macros which were used in 0cd794d4860e376698bb4da24bcdf8cbf331835c.
This caused build failures on platforms without TZDB support
Commit: 95d993a838863269dc1b90de3808c1e40ac6d5f2
https://github.com/llvm/llvm-project/commit/95d993a838863269dc1b90de3808c1e40ac6d5f2
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/instructions.ll
Log Message:
-----------
[MLIR] Fix import of calls with mismatched variadic types (#124286)
Previously, an indirect call was incorrectly generated when
`llvm::CallBase::getCalledFunction` returned null due to a type mismatch
between the call and the function. This patch updates the code to use
`llvm::CallBase::getCalledOperand` instead.
Commit: 1b1270f30bbdb2c7a310009d0512e167b09bac48
https://github.com/llvm/llvm-project/commit/1b1270f30bbdb2c7a310009d0512e167b09bac48
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/test/Transforms/GlobalOpt/resolve-fmv-ifunc.ll
Log Message:
-----------
[FMV][GlobalOpt] Enable static resolution of non-FMV callers. (#124314)
The undetectable FMV features predres and ls64 have been removed,
therefore the optimization is now re-enabled. The llvm testsuite
Graviton4 bots are expected to remain green.
Commit: d398c0c97aa0bfaeed5647f75bc37c87b8142f79
https://github.com/llvm/llvm-project/commit/d398c0c97aa0bfaeed5647f75bc37c87b8142f79
Author: siya100 <85541510+siya100 at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libc/docs/CMakeLists.txt
M libc/docs/headers/index.rst
A libc/utils/docgen/cpio.yaml
Log Message:
-----------
[libc][cpio] Add cpio.h header. (#123798)
[libc][docs] add cpio to documentation and include related functi…
These changes ensure that the cpio header is documented properly
with respect to the issue
(https://github.com/llvm/llvm-project/issues/122006 ).
**Changes:**
1. **cpio.yaml**: Created a new YAML file for cpio with functions
and related macros.
2. **CMakeLists.txt**: Added cpio to the documentation
directories.
3. **index.rst**: Included `cpio` in the documentation index.
---------
Co-authored-by: siya <siya at Siya.com>
Commit: 074a25fb2678dacb4f3c6a24d5f907788c858e7a
https://github.com/llvm/llvm-project/commit/074a25fb2678dacb4f3c6a24d5f907788c858e7a
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoV.td
A llvm/test/MC/Disassembler/RISCV/vmask-carry-in.txt
A llvm/test/MC/RISCV/rvv/vmask-carry-in.s
Log Message:
-----------
[RISCV][MC] Create an AsmOperand for carry-in vmask (#124317)
Previously we used a fixed assembly string as well as encoding for the
carry-in vector mask, since it will always be there. However, this makes
both AsmParser and disassembler to either create a garbage MCOperand for
the mask or fail to add one as a whole. This wouldn't be a problem for
majority of the cases but tools like llvm-mca who relies on MCInst will
fail to account for the register dependency on these mask operands.
Commit: ae8b560899c00d1792fd87ec591558cd91add2ef
https://github.com/llvm/llvm-project/commit/ae8b560899c00d1792fd87ec591558cd91add2ef
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Analysis/MemoryProfileInfo.cpp
M llvm/test/Transforms/PGOProfile/memprof.ll
M llvm/test/Transforms/PGOProfile/memprof_loop_unroll.ll
M llvm/unittests/Analysis/MemoryProfileInfoTest.cpp
Log Message:
-----------
[MemProf] Disable hot hints by default (#124338)
By default we were marking some contexts as hot, and adding hot hints to
unambiguously hot allocations. However, there is not yet support for
cloning to expose hot allocation contexts, and none is planned for the
forseeable future.
While we convert hot contexts to notcold contexts during the cloning
step, their existence was greatly limiting the context trimming
performed when we add the MemProf profile to the IR. This change simply
disables the generation of hot contexts / hints by default, as few
allocations were unambiguously hot.
A subsequent change will address the issue when hot hints are optionally
enabled. See PR124219 for details.
This change resulted in significant overhead reductions for a large
target:
~48% reduction in the per-module ThinLTO bitcode summary sizes
~72% reduction in the distributed ThinLTO bitcode combined summary sizes
~68% reduction in thin link time
~34% reduction in thin link peak memory
Commit: ee054404dfde9913ed47d9bac5ea2be28926f5ad
https://github.com/llvm/llvm-project/commit/ee054404dfde9913ed47d9bac5ea2be28926f5ad
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
M flang/test/Fir/CUDA/cuda-launch.fir
Log Message:
-----------
[flang][cuda] Carry over the cuf.proc_attr attribute to gpu.launch_func (#124325)
Commit: df9b31f1e0cdb8096e9d2e0749e473dd815b39f7
https://github.com/llvm/llvm-project/commit/df9b31f1e0cdb8096e9d2e0749e473dd815b39f7
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/Sema/HeuristicResolver.cpp
M clang/unittests/Sema/HeuristicResolverTest.cpp
Log Message:
-----------
[clang][Sema] Handle undeduced auto types in HeuristicResolver (#124236)
Fixes https://github.com/clangd/clangd/issues/897
Commit: 73b462321c2968a450779f8f6c240f46a1830376
https://github.com/llvm/llvm-project/commit/73b462321c2968a450779f8f6c240f46a1830376
Author: Petr Hosek <phosek at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libc/include/strings.yaml
Log Message:
-----------
[libc] Include size_t type header in strings.h (#124352)
A number of functions in strings.h take size_t as an argument.
Commit: b41987beaedaa6ea78fd8dd11ba8c3b21eb8fa88
https://github.com/llvm/llvm-project/commit/b41987beaedaa6ea78fd8dd11ba8c3b21eb8fa88
Author: vporpo <vporpodas at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
Log Message:
-----------
[SandboxVec][DAG] Fix MemDGNode chain maintenance when move destination is non-mem (#124227)
This patch fixes a bug in the maintenance of the MemDGNode chain of the
DAG. Whenever we move a memory instruction, the DAG gets notified about
the move and maintains the chain of memory nodes. The bug was that if
the destination of the move was not a memory instruction, then the
memory node's next node would end up pointing to itself.
Commit: 425d25f5df4c6814e5551640b810bec53322f3df
https://github.com/llvm/llvm-project/commit/425d25f5df4c6814e5551640b810bec53322f3df
Author: Hiroshi Yamauchi <56735936+hjyamauchi at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/test/CodeGen/AArch64/stack-hazard-windows.ll
A llvm/test/CodeGen/AArch64/wincfi-missing-seh-directives.ll
Log Message:
-----------
[AArch64][WinCFI] Fix a crash due to missing seh directives (#123993)
https://github.com/llvm/llvm-project/issues/123808
Commit: 77c23fd0aa1534abe904c2d5256a6d7879dc3cf7
https://github.com/llvm/llvm-project/commit/77c23fd0aa1534abe904c2d5256a6d7879dc3cf7
Author: Jun Wang <jwang86 at yahoo.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
[AMDGPU] Update AMDGPUUsage.rst to document two intrinsics (#123816)
The AMDGPUUsage.rst file is updated to document two intrinsics:
llvm.amdgcn.mov.dpp and llvm.amdgcn.update.dpp.
Commit: 34c6c5e72f48de65a7e332033af9566576c1895d
https://github.com/llvm/llvm-project/commit/34c6c5e72f48de65a7e332033af9566576c1895d
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Passes/PLTCall.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
A bolt/test/AArch64/exceptions-plt.cpp
A bolt/test/runtime/exceptions-plt.cpp
Log Message:
-----------
[BOLT][AArch64] Fix PLT optimization (#124192)
Preserve C++ exception metadata while running PLT optimization on
AArch64.
Commit: 4b209c5d87c8b8eb4bbf2750ea9daa5927a13699
https://github.com/llvm/llvm-project/commit/4b209c5d87c8b8eb4bbf2750ea9daa5927a13699
Author: vporpo <vporpodas at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/SandboxIR/Region.h
M llvm/include/llvm/SandboxIR/Value.h
M llvm/lib/SandboxIR/Region.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.cpp
M llvm/unittests/SandboxIR/PassTest.cpp
M llvm/unittests/SandboxIR/RegionTest.cpp
Log Message:
-----------
[SandboxIR][Region] Add cost modeling to the region (#124354)
This patch implements cost modeling for Region. All instructions that
are added or removed get their cost counted in the Scoreboard. This is
used for checking if the region before or after a transformation is more
profitable.
Commit: 05fd4d5775e2c40c00057d7af195290bc3a39cd3
https://github.com/llvm/llvm-project/commit/05fd4d5775e2c40c00057d7af195290bc3a39cd3
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/test/Lower/CUDA/cuda-devptr.cuf
Log Message:
-----------
[flang][cuda] Perform inlined assignment when field is c_devptr (#124322)
When a field in a derived type is `c_devptr`, keep check if we can do a
memcpy instead of falling back to the runtime assignment.
Many internal CUDA Fortran derived type have a `c_devptr` field and this
would lead to stack overflow on the device if the assignment is
performed by the runtime function.
Commit: cff7ad56babc2e8e7c731b3f60d3c0b4c8aca96f
https://github.com/llvm/llvm-project/commit/cff7ad56babc2e8e7c731b3f60d3c0b4c8aca96f
Author: vporpo <vporpodas at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/SandboxIR/Utils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
Log Message:
-----------
[SandboxVec][Utils] Implement Utils::verifyFunction() (#124356)
This patch implements a wrapper function for the LLVM IR verifier for
functions, and calls it (flag-guarded) within the bottom-up-vectorizer
for finding IR bugs as soon as they happen.
Commit: d910fbcbd10c5e72d0771dd9607e7133ae51dc70
https://github.com/llvm/llvm-project/commit/d910fbcbd10c5e72d0771dd9607e7133ae51dc70
Author: Sam Elliott <quic_aelliott at quicinc.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[RISCV][NFC] cR Constraint Release Note
Commit: ac75d322801411f496fe5d1155c86453f915ae98
https://github.com/llvm/llvm-project/commit/ac75d322801411f496fe5d1155c86453f915ae98
Author: vporpo <vporpodas at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
M llvm/test/Transforms/SandboxVectorizer/cross_bbs.ll
M llvm/test/Transforms/SandboxVectorizer/pack.ll
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
Log Message:
-----------
[SandboxVec][VecUtils] Filter out instructions not in BB in VecUtils:getLowest() (#124360)
This patch changes the functionality of `VecUtils::getLowest(Vals, BB)`
such that it filters out any instructions in `Vals` that are not in BB.
This is useful when Vals contains instructions from different BBs,
because in that case we are only interested in one BB.
Commit: 4df9c17e5f436702ca4f5439322972b0385d629a
https://github.com/llvm/llvm-project/commit/4df9c17e5f436702ca4f5439322972b0385d629a
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M libcxx/include/__type_traits/result_of.h
M libcxx/test/libcxx/ranges/no_specializations.verify.cpp
M libcxx/test/libcxx/type_traits/no_specializations.verify.cpp
Log Message:
-----------
[libc++] Fix tests for clang::no_specializations for C++17 and C++20
Commit: e2005d1461942539f7533a518aa78017074f6bf9
https://github.com/llvm/llvm-project/commit/e2005d1461942539f7533a518aa78017074f6bf9
Author: Jacob Lalonde <jalalonde at fb.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M lldb/bindings/interface/SBSaveCoreOptionsDocstrings.i
Log Message:
-----------
[LLDB] Reapply #123873 SBSaveCore Docstrings (#124355)
In my last attempt at this (#123873), I didn't realize we needed semi
colons! Also fixed the bug that the feature summary didn't have a type
defined.
CC @JDevlieghere hope you get a laugh at needing to revert doc strings
for breaking the build....
Commit: 241e5d8c5c424155e02e05524e8f731fc524aa40
https://github.com/llvm/llvm-project/commit/241e5d8c5c424155e02e05524e8f731fc524aa40
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOPCInstructions.td
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_t16_err.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_t16_promote.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_t16_err.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_t16_promote.s
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp8.txt
Log Message:
-----------
[AMDGPU][True16][MC] true16 for v_cmpx_eq_f16 (#124038)
True16 format for v_cmpx_eq_f16.
Also cleaned up some stray gfx11 check line in gfx12 dasm test
Commit: d789915f35a976bb532441915249cd1b165c2fd5
https://github.com/llvm/llvm-project/commit/d789915f35a976bb532441915249cd1b165c2fd5
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M .github/workflows/containers/github-action-ci-windows/Dockerfile
M .github/workflows/containers/github-action-ci/Dockerfile
Log Message:
-----------
[Github] Bump Runner Version in Containers (#124324)
This patch bumps the runner version to v2.322.0 in the CI containers.
Nothing looks suspicious in the change log, and it is important to keep
the runner up to date or we will end up with containers that cannot
connect to Github due to having a version too old.
Commit: 280c7d719834a828895b8a39f8ea982527fdcc73
https://github.com/llvm/llvm-project/commit/280c7d719834a828895b8a39f8ea982527fdcc73
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M .ci/generate-buildkite-pipeline-premerge
M .ci/monolithic-windows.sh
Log Message:
-----------
[CI] Increase Configurability of Monolithic Windows Build (#124328)
This patch makes it so that the caller of monolithic-windows.sh can set
the maximum number of parallel compile/link jobs in an environment
variable rather than manually specifying it inside of the CMake.
Additionally, the env variable definitions for CC, CXX, and LD are sunk
into the shell script due to those config options being pretty inherent
to what the pipeline is testing.
This is intended to make things more flexible/useable for the new
premerge CI pipeline, particularly as we are looking at using larger
runners and want the increased flexibility to experiment.
Commit: 6409799bdcd86be3ed72e8d172181294d3e5ad09
https://github.com/llvm/llvm-project/commit/6409799bdcd86be3ed72e8d172181294d3e5ad09
Author: vporpo <vporpodas at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
M llvm/test/Transforms/SandboxVectorizer/pack.ll
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
Log Message:
-----------
[SandboxVec][Legality] Pack from different BBs (#124363)
When the inputs of the pack come from different BBs we need to make sure
we emit the pack instructions at the correct place.
Commit: 48657bf29b01e95749b5ecd8c7f675c14a7948d1
https://github.com/llvm/llvm-project/commit/48657bf29b01e95749b5ecd8c7f675c14a7948d1
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M flang/include/flang/Runtime/CUDA/kernel.h
M flang/lib/Optimizer/Transforms/CUFGPUToLLVMConversion.cpp
M flang/runtime/CUDA/kernel.cpp
M flang/test/Fir/CUDA/cuda-gpu-launch-func.mlir
Log Message:
-----------
[flang][cuda] Handle launch of cooperative kernel (#124362)
Add `CUFLaunchCooperativeKernel` entry points and lower gpu.launch_func
with grid_global attribute to this entry point.
Commit: c725a95e088dea14953c2d891d04429bc50b912e
https://github.com/llvm/llvm-project/commit/c725a95e088dea14953c2d891d04429bc50b912e
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/Analysis/MemoryProfileInfo.h
M llvm/lib/Analysis/MemoryProfileInfo.cpp
M llvm/test/Transforms/PGOProfile/memprof.ll
M llvm/unittests/Analysis/MemoryProfileInfoTest.cpp
Log Message:
-----------
[MemProf] Convert Hot contexts to NotCold early (#124219)
While we convert hot contexts to notcold contexts during the cloning
step, their existence was greatly limiting the context trimming
performed when we add the MemProf profile to the IR. To address this,
any hot contexts are converted to notcold contexts immediately after
first checking for unambiguous allocation types, and before checking it
again and before adding metadata while performing context trimming.
Note that hot hints are now disabled by default, however, this avoids
adding unnecessary overhead if they are re-enabled.
Commit: db1ee18eda6329d7577ad019a47822220b3e293d
https://github.com/llvm/llvm-project/commit/db1ee18eda6329d7577ad019a47822220b3e293d
Author: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
NFC: Typo fix
Change-Id: I08470bc617490558250136ea35a4964003fa9981
Commit: 1b4bd4e1a5120c8bb4daa44787a3bc4559b6b3b4
https://github.com/llvm/llvm-project/commit/1b4bd4e1a5120c8bb4daa44787a3bc4559b6b3b4
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
A bolt/test/AArch64/jump-table-heuristic-fail.s
M bolt/test/AArch64/test-indirect-branch.s
Log Message:
-----------
[BOLT][AArch64] Remove assertions from jump table heuristic (#124372)
The code for jump table detection on AArch64 asserts liberally whenever
the input instruction sequence does not match the expected pattern. As a
result, BOLT fails to process binaries with such sequences instead of
ignoring functions with unknown control flow.
Remove asserts in analyzeIndirectBranchFragment() and mark indirect
jumps as instructions with unknown control flow instead.
Commit: d92bac8a3ebb19106f6bca6b7613a27c52cb48ab
https://github.com/llvm/llvm-project/commit/d92bac8a3ebb19106f6bca6b7613a27c52cb48ab
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/include/clang/Basic/AddressSpaces.h
M clang/lib/AST/TypePrinter.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/TCE.h
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.h
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/Sema/SemaHLSL.cpp
R clang/test/AST/HLSL/ast-dump-comment-cbuffer-tbuffer.hlsl
A clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl
M clang/test/AST/HLSL/cbuffer.hlsl
M clang/test/AST/HLSL/cbuffer_and_namespaces.hlsl
M clang/test/AST/HLSL/packoffset.hlsl
M clang/test/AST/HLSL/pch_hlsl_buffer.hlsl
M clang/test/AST/HLSL/resource_binding_attr.hlsl
M clang/test/CodeGenHLSL/cbuf.hlsl
M clang/test/CodeGenHLSL/cbuf_in_namespace.hlsl
M clang/test/CodeGenHLSL/static_global_and_function_in_cb.hlsl
M clang/test/SemaTemplate/address_space-dependent.cpp
Log Message:
-----------
[HLSL] Introduce address space `hlsl_constant(2)` for constant buffer declarations (#123411)
Introduces a new address space `hlsl_constant(2)` for constant buffer
declarations.
This address space is applied to declarations inside `cbuffer` block.
Later on, it will also be applied to `ConstantBuffer<T>` syntax and the
default `$Globals` constant buffer.
Clang codegen translates constant buffer declarations to global
variables and loads from `hlsl_constant(2)` address space. More work
coming soon will include addition of metadata that will map these
globals to individual constant buffers and enable their transformation
to appropriate constant buffer load intrinsics later on in an LLVM pass.
Fixes #123406
Commit: 07ed8187acc31ac3f4779da452864a29d48799ac
https://github.com/llvm/llvm-project/commit/07ed8187acc31ac3f4779da452864a29d48799ac
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/test/OpenMP/assumes_include_nvptx.cpp
M clang/test/OpenMP/nvptx_target_firstprivate_codegen.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/always_inline_device.ll
M llvm/test/Transforms/OpenMP/attributor_module_slice_reproducer.ll
M llvm/test/Transforms/OpenMP/barrier_removal.ll
M llvm/test/Transforms/OpenMP/bug66687.ll
M llvm/test/Transforms/OpenMP/custom_state_machines.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_pre_lto.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_remarks.ll
M llvm/test/Transforms/OpenMP/deduplication_target.ll
M llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold.ll
M llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold_optnone.ll
M llvm/test/Transforms/OpenMP/global_constructor.ll
M llvm/test/Transforms/OpenMP/globalization_remarks.ll
M llvm/test/Transforms/OpenMP/gpu_kernel_detection_remarks.ll
M llvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.ll
M llvm/test/Transforms/OpenMP/is_spmd_exec_mode_fold.ll
M llvm/test/Transforms/OpenMP/nested_parallelism.ll
M llvm/test/Transforms/OpenMP/parallel_level_fold.ll
M llvm/test/Transforms/OpenMP/remove_globalization.ll
M llvm/test/Transforms/OpenMP/replace_globalization.ll
M llvm/test/Transforms/OpenMP/single_threaded_execution.ll
M llvm/test/Transforms/OpenMP/spmdization.ll
M llvm/test/Transforms/OpenMP/spmdization_assumes.ll
M llvm/test/Transforms/OpenMP/spmdization_constant_prop.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_indirect.ll
M llvm/test/Transforms/OpenMP/spmdization_no_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_remarks.ll
M llvm/test/Transforms/OpenMP/value-simplify-openmp-opt.ll
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
Log Message:
-----------
[OpenMP] Replace nvvm.annotation usage with kernel calling conventions (#122320)
Specifying a kernel with the `ptx_kernel` or `amdgpu_kernel` calling
convention is a more idiomatic and compile-time performant than using
the `nvvm.annoation !"kernel"` metadata.
Transition OMPIRBuilder to use calling conventions for PTX kernels and
no longer emit `nvvm.annoation`. Update OpenMPOpt to work with kernels
specified via calling convention as well as metadata. Update OpenMP
tests to use the calling conventions.
Commit: 4ea44eb1e292369b0b3f2f8ad4680081558f1e01
https://github.com/llvm/llvm-project/commit/4ea44eb1e292369b0b3f2f8ad4680081558f1e01
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/test/Driver/wasm-toolchain.c
Log Message:
-----------
[WebAssembly] Fix EH feature flags when compiling multiple files (#124374)
#124042 caused a problem that when invoking `clang` with multiple files,
the static `HasRun` variables were set when processing the first file so
the appropriate feature flags were not added from the second file. This
fixes the problem by making those `HasRun` variables just normal
variables within the enclosing function.
Commit: 8e31050bc2e02d7a3c654def7d7af899ce1cdb1d
https://github.com/llvm/llvm-project/commit/8e31050bc2e02d7a3c654def7d7af899ce1cdb1d
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in annotating overloaded co_await decl (#124240)
Fixes #124223.
Commit: 3b35b4c7f9141c59fbac415e335489494b7d507e
https://github.com/llvm/llvm-project/commit/3b35b4c7f9141c59fbac415e335489494b7d507e
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M mlir/include/mlir/IR/BuiltinDialectBytecode.td
M mlir/include/mlir/IR/Location.h
M mlir/lib/IR/Location.cpp
M mlir/test/Target/LLVMIR/llvmir-debug.mlir
Log Message:
-----------
[mlir] Allow fallback from file line col range to loc (#124321)
This was discussed during the original review but I made it stricter
than discussed. Making it a pure view but adding a helper for bytecode
serialization (I could avoid the helper, but it ends up with more logic
and stronger coupling).
Commit: ac1ba1f9dd7013852cd27f514467f57ee0e6ed16
https://github.com/llvm/llvm-project/commit/ac1ba1f9dd7013852cd27f514467f57ee0e6ed16
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/Register.h
M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
M llvm/lib/CodeGen/LiveIntervals.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
Log Message:
-----------
[CodeGen] Introduce a VirtRegOrUnit class to hold virtual reg or physical reg unit. NFC (#123768)
LiveIntervals and MachineVerifier were previously using Register to
store this, but reg units are different than physical registers. One
important difference is that 0 is a valid reg unit number, but it is not
a valid phyiscal register.
This patch introduces a new VirtRegOrUnit class that is distinct from
Register. It can be be converted to/from a virtual Register or a
MCRegUnit. I've made all conversions explicit and used assertions to
check the validity.
I also fixed a place in MachineVerifier that was ignoring reg unit 0.
Commit: 8a6b44bf4cfe5df3db687a6b9519e99dbce8cf54
https://github.com/llvm/llvm-project/commit/8a6b44bf4cfe5df3db687a6b9519e99dbce8cf54
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M libcxx/include/__type_traits/result_of.h
M libcxx/test/libcxx/ranges/no_specializations.verify.cpp
M libcxx/test/libcxx/type_traits/no_specializations.verify.cpp
Log Message:
-----------
Revert "[libc++] Fix tests for clang::no_specializations for C++17 and C++20"
This reverts commit 4df9c17e5f436702ca4f5439322972b0385d629a.
Reason: buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/24/builds/4598/steps/10/logs/stdio)
Commit: 1f26ac10ca1bef40a80be8f81a6f109713bc586f
https://github.com/llvm/llvm-project/commit/1f26ac10ca1bef40a80be8f81a6f109713bc586f
Author: mconst <mconst at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/test/CodeGen/X86/huge-stack-offset.ll
M llvm/test/CodeGen/X86/stack-clash-extra-huge.ll
Log Message:
-----------
[X86] Better handling of impossibly large stack frames (#124217)
If you try to create a stack frame of 4 GiB or larger with a 32-bit
stack pointer, we currently emit invalid instructions like `mov eax,
5000000000` (unless you specify `-fstack-clash-protection`, in which
case we emit a trap instead).
The trap seems nicer, so let's do that in all cases. This avoids
emitting invalid instructions, and also fixes the "can't have 32-bit
16GB stack frame" assertion in `X86FrameLowering::emitSPUpdate()` (which
used to be triggerable by user code, but is now correct).
This was originally part of #124041.
@phoebewang
Commit: f607e3fd23ef0019b2f3b289b4d46012400b8db5
https://github.com/llvm/llvm-project/commit/f607e3fd23ef0019b2f3b289b4d46012400b8db5
Author: Valentyn Yukhymenko <valentin.yukhymenko at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/CXX/temp/temp.decls/temp.variadic/fixed-expansion.cpp
M clang/test/SemaCXX/alias-template.cpp
Log Message:
-----------
[Clang][Sema] Reject declaring an alias template with the same name as its template parameter. (#123533)
The issue occurred because the template parameter scope was skipped
too early, before diagnosing the alias name shadowing.
To fix this, the patch moves it to after LookupName, such that the behavior
remains consistent with the typedef implementation.
Fixes llvm#123423
Commit: c216081e981ea14536024b86df79ddee9fe517e0
https://github.com/llvm/llvm-project/commit/c216081e981ea14536024b86df79ddee9fe517e0
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/AST/DeclTemplate.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124388)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect P to be nonnull.
Commit: 186d6546d9c5898a0a32f4616558021d9a908786
https://github.com/llvm/llvm-project/commit/186d6546d9c5898a0a32f4616558021d9a908786
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/Index/FileIndexRecord.cpp
Log Message:
-----------
[Index] Migrate away from PointerUnion::dyn_cast (NFC) (#124389)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect DclInfo.DeclOrMacro to be nonnull.
Commit: 62bd217b5a1cf6b231b2413b5522533986d4e5df
https://github.com/llvm/llvm-project/commit/62bd217b5a1cf6b231b2413b5522533986d4e5df
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaCodeComplete.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124391)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect DeclOrIterator to be nonnull.
Commit: 0cc74a8941884d56a4718c28cc5b8ef8dbe17047
https://github.com/llvm/llvm-project/commit/0cc74a8941884d56a4718c28cc5b8ef8dbe17047
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/ModuloSchedule.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#124392)
Commit: 72918fd11dd805b578bbc9c4f36bea3bc96f37b5
https://github.com/llvm/llvm-project/commit/72918fd11dd805b578bbc9c4f36bea3bc96f37b5
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
Log Message:
-----------
[GlobalISel] Avoid repeated hash lookups (NFC) (#124393)
Commit: 84d4037488f5b366e76be4fe723e0de7aeee264d
https://github.com/llvm/llvm-project/commit/84d4037488f5b366e76be4fe723e0de7aeee264d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M libcxx/include/__type_traits/result_of.h
M libcxx/test/libcxx/ranges/no_specializations.verify.cpp
M libcxx/test/libcxx/type_traits/no_specializations.verify.cpp
Log Message:
-----------
Reapply "[libc++] Fix tests for clang::no_specializations for C++17 and C++20"
The missing diagnostic pragmas have been added.
This reverts commit 8a6b44bf4cfe5df3db687a6b9519e99dbce8cf54.
Commit: 7974f12b1e3682514bd58b35c5a784f35938fa04
https://github.com/llvm/llvm-project/commit/7974f12b1e3682514bd58b35c5a784f35938fa04
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaHLSL.cpp
Log Message:
-----------
[HLSL] Suppress a warning in #122820 [-Wunused-but-set-variable]
Commit: 2696e4fb9567d23ce065a067e7f4909b310daf50
https://github.com/llvm/llvm-project/commit/2696e4fb9567d23ce065a067e7f4909b310daf50
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M libcxx/include/__type_traits/conjunction.h
Log Message:
-----------
[libc++] Reduce std::conjunction overhead (#124259)
The old and new implementation of `_And` are very close in terms of
performance according to my testing, but the new implementation can also
be used to implement `conjunction`, which make that ~50% faster.
Commit: 52bffdf9f5bb72eb86249a012d08a40c90316dfb
https://github.com/llvm/llvm-project/commit/52bffdf9f5bb72eb86249a012d08a40c90316dfb
Author: David Green <david.green at arm.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
A llvm/test/Transforms/FunctionSpecialization/solver-constant-strictfpmetadata.ll
Log Message:
-----------
[IPSCCP][FuncSpec] Protect against metadata access from call args. (#124284)
Fixes an issue reported from #114964, where metadata arguments were
attempted to be accessed as constants.
Commit: 1a53d4baeb0242e00c494fd0a2b2ce58bcbf28b6
https://github.com/llvm/llvm-project/commit/1a53d4baeb0242e00c494fd0a2b2ce58bcbf28b6
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/CMakeLists.txt
M clang/tools/driver/CMakeLists.txt
M clang/utils/perf-training/CMakeLists.txt
M clang/utils/perf-training/perf-helper.py
Log Message:
-----------
[clang][cmake] Apply bolt optimizations as part of the clang target (#119896)
This change removes the need to call the clang-bolt target in order to
apply bolt optimizations to clang. Now running `ninja clang` will build
a clang with bolt optimizations, and `ninja check-clang` and `ninja
install-clang` will test and install bolt optimized clang too.
The clang-bolt target has been kept for compatibilty reasons, but it is
now just an alias to the clang target.
Also, this new design for applying the bolt optimizations to clang will
be easier to generalize and use to optimize other binaries/libraries in
the project.
---------
Co-authored-by: Amir Ayupov <fads93 at gmail.com>
Co-authored-by: Petr Hosek <phosek at google.com>
Commit: de5ff8ad07ae824b86c5cefcba63f4b66607b759
https://github.com/llvm/llvm-project/commit/de5ff8ad07ae824b86c5cefcba63f4b66607b759
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M libcxx/docs/TestingLibcxx.rst
M libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
M libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp
M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp
M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp
M libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
M libcxx/utils/libcxx/test/params.py
Log Message:
-----------
[libc++][test] Improves C++ Standard filtering. (#89499)
Adds a new lit directive to improve C++ Standard filtering. This is
based on the
[Discourse](https://discourse.llvm.org/t/rfc-improving-c-standard-filtering-in-the-lit-tests/78474)
discussion.
Commit: 6383a12e3b4339fa4743bb97da4d51dea6d2e2ea
https://github.com/llvm/llvm-project/commit/6383a12e3b4339fa4743bb97da4d51dea6d2e2ea
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
M llvm/test/Transforms/LoopVectorize/vplan-printing-outer-loop.ll
M llvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
Log Message:
-----------
[VPlan] Refactor HCFG builder to preserve original vector latch (NFC).
Update HCFG builder to preserve the original latch block of the initial
VPlan, ensuring there is always a latch.
It also skips creating the BranchOnCond for the latch of the top-level
loop, instead of removing it later. Exiting via the latch is controlled
by later recipes.
This further unifies HCFG construction and prepares for use to also
build an initial VPlan (VPlan0) for inner loops.
Commit: 9325a61aa0960595c22867799ebd157c8160fd86
https://github.com/llvm/llvm-project/commit/9325a61aa0960595c22867799ebd157c8160fd86
Author: James Y Knight <jyknight at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalMerge.cpp
Log Message:
-----------
Revert "[GlobalMerge][NFC] Skip sorting by profitability when it is not needed" (#124411)
Reverts llvm/llvm-project#124146 -- new comparator is not a strict-weak
as required by stable_sort.
Co-authored-by: Michael Maitland <michaeltmaitland at gmail.com>
Commit: 21f04b1458c52ba875a23b58b02cf6b1f8db0661
https://github.com/llvm/llvm-project/commit/21f04b1458c52ba875a23b58b02cf6b1f8db0661
Author: Adam Paszke <adam.paszke at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M mlir/lib/Interfaces/SideEffectInterfaces.cpp
Log Message:
-----------
Hold a queue of iterator ranges (not operations) in wouldOpBeTriviallyDead (#123642)
Ranges let us push the whole blocks onto the queue in constant time. If
one of the first ops in the block is side-effecting we'll be able to
provide the answer quickly. The previous implementation had to walk the
block and queue all the operations only to start traversing them again,
which was a considerable slowdown for compile times of large MLIR
programs in our benchmarks.
---------
Co-authored-by: Jacques Pienaar <jpienaar at google.com>
Commit: 5cb2db3b51c2a9d516d57bd2f07d9899bd5fdae7
https://github.com/llvm/llvm-project/commit/5cb2db3b51c2a9d516d57bd2f07d9899bd5fdae7
Author: vporpo <vporpodas at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp
Log Message:
-----------
[SandboxVec][Scheduler] Forbid crossing BBs (#124369)
This patch updates the scheduler to forbid scheduling across BBs. It
should eventually be able to handle this, but we disable it for now.
Commit: 485b1ac8a265dcf19c55a98aeefff95158cc63a2
https://github.com/llvm/llvm-project/commit/485b1ac8a265dcf19c55a98aeefff95158cc63a2
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/docs/SandboxIR.md
Log Message:
-----------
[SandboxIR][Docs] C++ highlighting for code block
Commit: 14b44179cb61dd551c911dea54de57b588621005
https://github.com/llvm/llvm-project/commit/14b44179cb61dd551c911dea54de57b588621005
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M libcxx/include/__format/buffer.h
M libcxx/include/__format/format_functions.h
M libcxx/include/module.modulemap
M libcxx/test/std/utilities/format/format.functions/format_tests.h
Log Message:
-----------
[libc++][format][3/3] Improves formatting performance. (#108990)
This changes the __output_buffer to a new structure. This improves the
performace of std::format, std::format_to, std::format_to_n, and
std::formatted_size.
Commit: 8b6211472793680994f7bc15abb5910d0a916cc5
https://github.com/llvm/llvm-project/commit/8b6211472793680994f7bc15abb5910d0a916cc5
Author: Dave Lee <davelee.com at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbutil.py
M lldb/test/API/macosx/universal/TestUniversal.py
Log Message:
-----------
[lldb] Delete unused lldbutil.print_registers (NFC)
Commit: b178c2d63e0701655046dfd2ead195b36e0df397
https://github.com/llvm/llvm-project/commit/b178c2d63e0701655046dfd2ead195b36e0df397
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
Log Message:
-----------
[SandboxVec][DAG] Fix trim schedule
Fix trimSchedule by skipping instructions without a DAG Node.
Commit: aba0476f23fc2a851792e9d85c25ee34a5ea7ed0
https://github.com/llvm/llvm-project/commit/aba0476f23fc2a851792e9d85c25ee34a5ea7ed0
Author: Dave Lee <davelee.com at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbutil.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
Log Message:
-----------
[lldb] Delete lldbutil.PrintableRegex (NFC)
Use of this class wasn't making use of the original regex string. Note that `re.Pattern`
has a `pattern` property to access the original regex.
Commit: def50f701f6a2c1e0550bb341fd8b64bed299e72
https://github.com/llvm/llvm-project/commit/def50f701f6a2c1e0550bb341fd8b64bed299e72
Author: Hui <hui.xie1990 at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/Status/Cxx23Papers.csv
M libcxx/include/CMakeLists.txt
M libcxx/include/__flat_map/flat_map.h
A libcxx/include/__flat_map/flat_multimap.h
A libcxx/include/__flat_map/sorted_equivalent.h
A libcxx/include/__flat_map/utils.h
M libcxx/include/__functional/is_transparent.h
M libcxx/include/flat_map
M libcxx/include/module.modulemap
M libcxx/include/version
M libcxx/modules/std/flat_map.inc
A libcxx/test/libcxx/containers/container.adaptors/flat.map/assert.input_range.pass.cpp
A libcxx/test/libcxx/containers/container.adaptors/flat.map/assert.sorted_unique.pass.cpp
A libcxx/test/libcxx/containers/container.adaptors/flat.multimap/assert.input_range.pass.cpp
A libcxx/test/libcxx/containers/container.adaptors/flat.multimap/assert.sorted_equivalent.pass.cpp
R libcxx/test/libcxx/containers/containers.adaptors/flat.map/assert.input_range.pass.cpp
R libcxx/test/libcxx/containers/containers.adaptors/flat.map/assert.sorted_unique.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.map.syn/sorted_equivalent.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.capacity/empty.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.capacity/empty.verify.cpp
A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.compile.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.verify.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/default_noexcept.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.capacity/empty.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.capacity/empty.verify.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.capacity/max_size.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.capacity/size.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/alloc.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/assign_initializer_list.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/compare.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/containers.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_alloc.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.addressof.compile.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct.compile.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct.verify.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct_pmr.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/default.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/default_noexcept.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/dtor_noexcept.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/initializer_list.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/iter_iter.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_alloc.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_clears.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_exceptions.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_noexcept.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/pmr.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/range.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_container.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_initializer_list.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_iter_iter.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/iterator.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/iterator_comparison.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/iterator_concept_conformance.compile.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/range_concept_conformance.compile.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/reverse_iterator.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/clear.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/emplace.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/emplace_hint.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_iter.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_iter_iter.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_key.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_key_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/extract.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_cv.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_initializer_list.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_cv.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_iter.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_rv.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_range.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_rv.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_sorted_initializer_list.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_sorted_iter_iter.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/replace.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/swap_exception.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/swap_free.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/swap_member.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.observers/comp.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.observers/keys_values.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/contains.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/contains_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/count.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/count_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/equal_range.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/equal_range_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/find.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/find_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/lower_bound.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/lower_bound_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/upper_bound.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.operations/upper_bound_transparent.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/helpers.h
A libcxx/test/std/containers/container.adaptors/flat.multimap/incomplete_type.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/op_compare.pass.cpp
A libcxx/test/std/containers/container.adaptors/flat.multimap/types.compile.pass.cpp
A libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++] implement `std::flat_multimap` (#113835)
fixes https://github.com/llvm/llvm-project/issues/105190
---------
Co-authored-by: Hui Xie <huixie at Mac.broadband>
Co-authored-by: Hui Xie <huixie at Huis-MacBook-Pro.local>
Commit: d578d0bb135ca337b14aabe6696fe5b0a0932932
https://github.com/llvm/llvm-project/commit/d578d0bb135ca337b14aabe6696fe5b0a0932932
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port def50f701f6a
Commit: 2655ae54db6d7e9276a5ef4208cbeff1ae2ee72c
https://github.com/llvm/llvm-project/commit/2655ae54db6d7e9276a5ef4208cbeff1ae2ee72c
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M mlir/examples/toy/Ch4/mlir/Dialect.cpp
M mlir/examples/toy/Ch5/mlir/Dialect.cpp
M mlir/examples/toy/Ch6/mlir/Dialect.cpp
M mlir/examples/toy/Ch7/mlir/Dialect.cpp
Log Message:
-----------
[mlir] Fix deprecated pointer union casts in toy example (#124422)
Commit: 4bcd8184a093d2d9f0aad1053dbb1367891da6a5
https://github.com/llvm/llvm-project/commit/4bcd8184a093d2d9f0aad1053dbb1367891da6a5
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Pull similar code out of the forceExpandWideMUL into a helper. NFC (#124371)
These functions have similar code. One of them calculates the 2x width
full product from 2 sources. The other calculates the product from 2
sources that have low and high halves.
This patch introduces a new function that takes HiLHS and HiRHS as
optional values. If they are not null, they will be used in the
calculation of the Hi half. The Signed flag can only be set when
HiLHS/HiRHS are null.
Commit: 5e65f430414dd9df79ca6a1056b4943110ebc14b
https://github.com/llvm/llvm-project/commit/5e65f430414dd9df79ca6a1056b4943110ebc14b
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/extracts-non-extendable.ll
Log Message:
-----------
[SLP][NFC]Add a test, producing serie of extrtactelements, building non-extendable tree
Commit: e5b0132d157ad4c9a502dc8c4a61a3a3c83646c2
https://github.com/llvm/llvm-project/commit/e5b0132d157ad4c9a502dc8c4a61a3a3c83646c2
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/test/Analysis/ScalarEvolution/exit-count-non-strict.ll
Log Message:
-----------
SCEV: add samesign tests for exit-limit computation (#124304)
As the tests demonstrate, computeExitLimitFromICmp needs no additional
changes to compute exit limits from an icmp with samesign.
Commit: 89f2fee9f80658650524ba4fc12f01409e45000e
https://github.com/llvm/llvm-project/commit/89f2fee9f80658650524ba4fc12f01409e45000e
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/test/Transforms/InstCombine/fsh.ll
Log Message:
-----------
[InstCombine] Add test for incorrect retention of Range attribute in fshl
Commit: 77c325b646301e394bcd89c2980b4c2da8af49cd
https://github.com/llvm/llvm-project/commit/77c325b646301e394bcd89c2980b4c2da8af49cd
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/COFF/DLL.cpp
M lld/test/COFF/arm64ec-import.test
Log Message:
-----------
[LLD][COFF] Keep hasData true in NullChunk constructor (#124368)
`NullChunk` instances do write data, even if it's always zero. Setting
`hasData` to false causes `Writer::assignAddresses` to ignore them
when calculating `rawSize`. This typically isn't an issue, as null chunks
are usually positioned within a section, and later chunks adjust the
size accordingly.
However, on ARM64EC, the auxiliary IAT is placed at the end of the
`.rdata` section and terminates with a null chunk. As a result, `rawSize`
is never updated to account for it, and space for the null chunk is not
allocated. Consequently, when `NullChunk::writeTo` is called, it receives
an invalid pointer - either pointing to the next section or beyond the
allocated buffer.
Commit: 2131115be5b9d8b39af80973d9b64c0adc41d38d
https://github.com/llvm/llvm-project/commit/2131115be5b9d8b39af80973d9b64c0adc41d38d
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
M llvm/test/Transforms/InstCombine/fsh.ll
Log Message:
-----------
[InstCombine] Drop Range attribute when simplifying 'fshl' based on demanded bits (#124429)
When simplifying operands based on demanded bits, the return value range
of llvm.fshl might change. Keeping the Range attribute might cause
llvm.fshl to generate a poison and lead to miscompile. Drop the Range
attribute similar to `dropPosonGeneratingFlags` elsewhere.
Fix #124387
Commit: 1395cd015f2edf26f8c2567870183d63f4fdd753
https://github.com/llvm/llvm-project/commit/1395cd015f2edf26f8c2567870183d63f4fdd753
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
M llvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
Log Message:
-----------
[VPlan] Support multi-exit loops in HCFG builder.
Update HCFG construction to support multi-exit loops. If there is no
unique exit block, map the middle block of the initial plan to the exit
block from the latch.
This further unifies HCFG construction and prepares for use to also
build an initial VPlan (VPlan0) for inner loops.
Effectively NFC as this isn't used on the default code path yet.
Commit: 563c7c5539f05e7f8cbb42565c1f24466019f38b
https://github.com/llvm/llvm-project/commit/563c7c5539f05e7f8cbb42565c1f24466019f38b
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/include/clang/AST/APValue.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Lex/Preprocessor.h
M clang/lib/APINotes/APINotesManager.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/TemplateName.cpp
M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/tools/libclang/CIndexDiagnostic.cpp
Log Message:
-----------
[clang] Migrate away from PointerUnion::dyn_cast (NFC) (#124425)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
This patch migrates uses of PointerUnion::dyn_cast to
dyn_cast_if_present (see the definition of PointerUnion::dyn_cast).
Note that we cannot use dyn_cast in any of the migrations in this
patch; placing
assert(!X.isNull());
just before any of dyn_cast_if_present in this patch triggers some
failure in check-clang.
Commit: 04d5608057f73cf8deb66ddaeddf2f9254fd864b
https://github.com/llvm/llvm-project/commit/04d5608057f73cf8deb66ddaeddf2f9254fd864b
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/AST/DeclTemplate.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124430)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect P to be nonnull.
Commit: 19a6ac18ef3e92017db49668ee365e694157f317
https://github.com/llvm/llvm-project/commit/19a6ac18ef3e92017db49668ee365e694157f317
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/EhFrame.cpp
M lld/test/ELF/invalid-eh-frame2.s
M lld/test/ELF/invalid-eh-frame4.s
M lld/test/ELF/invalid-eh-frame6.s
Log Message:
-----------
[ELF] EhFrame: replace failOn with errOn
These diagnostics are mostly reported by a thread during writeSections.
In LLD_IN_TEST=2 mode, when a thread calls Fatal, there will be no
output even if the process exits with code 1.
Commit: 0f3c2884f3ccbdbe396e4388feb8be716b50dd68
https://github.com/llvm/llvm-project/commit/0f3c2884f3ccbdbe396e4388feb8be716b50dd68
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/AST/ParentMapContext.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124433)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect U to be nonnull.
Commit: d2c7cabe0453d6a6d03c15b7ae1800b53de9e182
https://github.com/llvm/llvm-project/commit/d2c7cabe0453d6a6d03c15b7ae1800b53de9e182
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/Sema/JumpDiagnostics.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124434)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect EWC->getObject(i) to be nonnull.
Commit: 4f480481716553aa89142131f49e53e7d53c1998
https://github.com/llvm/llvm-project/commit/4f480481716553aa89142131f49e53e7d53c1998
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/InputFiles.cpp
M lld/test/ELF/invalid/merge-invalid-size.s
M lld/test/ELF/invalid/merge-writable.s
Log Message:
-----------
[ELF] SHF_MERGE: avoid Fatal
In LLD_IN_TEST=2 mode, when a thread calls Fatal, there will be no
output even if the process exits with code 1.
Commit: c7579bfba5969377f7fb4239cc05d6cd4a077957
https://github.com/llvm/llvm-project/commit/c7579bfba5969377f7fb4239cc05d6cd4a077957
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/Writer.cpp
M lld/test/ELF/stdout.s
Log Message:
-----------
[ELF] -o -: suppress output if disableOutput
So that LLD_IN_TEST=2 ld.lld -o - a.o only writes the output once.
Commit: 7db789b5702714ffb6c96ad53c3136ca0a4300b2
https://github.com/llvm/llvm-project/commit/7db789b5702714ffb6c96ad53c3136ca0a4300b2
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/InputSection.cpp
M lld/test/ELF/compressed-input-err.s
M lld/test/ELF/invalid/section-alignment.test
M lld/test/ELF/invalid/section-alignment2.s
Log Message:
-----------
[ELF] Replace a few Fatal with Err
In LLD_IN_TEST=2 mode, when a thread calls Fatal, there will be no
output even if the process exits with code 1. Change a few Fatal to
recoverable Err.
Commit: 6b87f01aaaa9d7c6eef8b66e48f13eb8492c7503
https://github.com/llvm/llvm-project/commit/6b87f01aaaa9d7c6eef8b66e48f13eb8492c7503
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/InputSection.cpp
R lld/test/ELF/merge-string-error.s
M lld/test/ELF/mergeable-errors.s
M lld/test/ELF/relocation-past-merge-end.s
Log Message:
-----------
[ELF] MergeInputSection: replace Fatal with Err
In LLD_IN_TEST=2 mode, when a thread calls Fatal, there will be no
output even if the process exits with code 1. Change a few Fatal to
recoverable Err.
Commit: a9e92beb253d4bbd7636d99f100940534f3a7f36
https://github.com/llvm/llvm-project/commit/a9e92beb253d4bbd7636d99f100940534f3a7f36
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/Driver.cpp
Log Message:
-----------
[ELF] openAuxiliaryFile: open /dev/null if disableOutput and filename is "-"
So that LLD_IN_TEST=2 ld.lld --print-archive-stats=- a.o (and -Map -)
only writes the output once.
Commit: b7195e8e040d57bbf502f34ec84d71bd123f85b8
https://github.com/llvm/llvm-project/commit/b7195e8e040d57bbf502f34ec84d71bd123f85b8
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/test/ELF/basic.s
M lld/test/ELF/stdout.s
Log Message:
-----------
[ELF,test] Add env LLD_IN_TEST=1 to make some tests work if RUN_LLD_MAIN_TWICE
Commit: f21c35d54f8f7af9d0c64b566cabbc4f796a54df
https://github.com/llvm/llvm-project/commit/f21c35d54f8f7af9d0c64b566cabbc4f796a54df
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/Driver.cpp
M lld/ELF/InputFiles.cpp
M lld/ELF/Relocations.cpp
M lld/test/ELF/invalid/section-index.test
M lld/test/ELF/invalid/symbol-name.test
Log Message:
-----------
[ELF] Replace some Fatal with Err
In LLD_IN_TEST=2 mode, when a thread calls Fatal, there will be no
output even if the process exits with code 1. Change a few Fatal to
recoverable Err.
Commit: 988978f964fb84cb99c83e6cd260dcc395afb6c2
https://github.com/llvm/llvm-project/commit/988978f964fb84cb99c83e6cd260dcc395afb6c2
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/test/ELF/invalid/bad-reloc-target.test
M lld/test/ELF/lto/cache-warnings.ll
M lld/test/ELF/lto/ltopasses-custom.ll
M lld/test/ELF/lto/verify-invalid.ll
Log Message:
-----------
[ELF,test] Add env LLD_IN_TEST=1 to make some tests work if RUN_LLD_MAIN_TWICE
Commit: f359c1f524bf826eba355b8863a870450eb747b0
https://github.com/llvm/llvm-project/commit/f359c1f524bf826eba355b8863a870450eb747b0
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/Common/ErrorHandler.cpp
Log Message:
-----------
[ELF] Disable error handling script if disableOutput
Fix ELF/error-handling-script-linux.test when LLD_IN_TEST=2 is set.
Commit: 18335f4800ae5491a11e74a574969d716acddce7
https://github.com/llvm/llvm-project/commit/18335f4800ae5491a11e74a574969d716acddce7
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/Driver.cpp
Log Message:
-----------
[ELF] Ignore --time-trace if disableOutput
To avoid prevent generating two JSON for LLD_IN_TEST=2 ld.lld
--time-trace.
Commit: c1f10ef0a5c15f1dccf87ff07699055297c715a5
https://github.com/llvm/llvm-project/commit/c1f10ef0a5c15f1dccf87ff07699055297c715a5
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M lld/ELF/InputFiles.cpp
M lld/test/ELF/invalid/linkorder-invalid-sec.test
Log Message:
-----------
[ELF] SHF_LINK_ORDER: replace Fatal with ErrAlways
In LLD_IN_TEST=2 mode, when a thread calls Fatal, there will be no
output even if the process exits with code 1. Change the Fatal to
ErrAlways (not-recoverable) as subsequent code assumes SHF_LINK_ORDER
sh_link is correct.
Commit: c1ec5beb4ab36c2c4d99ed6d735d217e74364771
https://github.com/llvm/llvm-project/commit/c1ec5beb4ab36c2c4d99ed6d735d217e74364771
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTestTableGen.cpp
Log Message:
-----------
[clang-format] Fix a TableGen crash on comment after l_paren (#124380)
Fixes #124248.
Commit: 9b6990ff2531942d534c9ef7db728af2437c3329
https://github.com/llvm/llvm-project/commit/9b6990ff2531942d534c9ef7db728af2437c3329
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
[Github][CI] Add Windows Premerge Job for Testing (#122661)
This patch adds a windows premerge job for testing. We plan to enable
this by default soon once we have evaluated stability and have
reasonable reason to believe the system is reliable.
Commit: 6bb70a94da1b5c53143537f1d2e96602a74331ca
https://github.com/llvm/llvm-project/commit/6bb70a94da1b5c53143537f1d2e96602a74331ca
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M .github/workflows/release-binaries-all.yml
M .github/workflows/release-binaries.yml
Log Message:
-----------
workflows/release-binaries: Enable builds on Linux/AArch64 (#120786)
Commit: 44b85743498a88cb9fd1281bdfac47c93fcf6fee
https://github.com/llvm/llvm-project/commit/44b85743498a88cb9fd1281bdfac47c93fcf6fee
Author: Palmer <palmercox at gmail.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/test/MC/AArch64/basic-a64-instructions.s
Log Message:
-----------
[AArch64] Fix movk parsing with an .equ operand (#124428)
Prior to 5da801386c2b820a4596fc6d8da6b5f4a6da94b4, this code worked:
.equ p4_low_b0, 0x0000
movk x1, p4_low_b0, lsl 16
(The code above is from the isa-l project - I discovered this issue
while trying to compile it with clang 19 on MacOS on aarch64)
That commit fixed a different bug, but accidentally broke the case where
the second operand to movk is not a literal.
In 442f066fc464e953b7783230e95ccf2a67ebfb38, a fix was applied to handle
the case where the second operand is a value like "(Val) >> 16".
However, that didn't appear to fix the test case in this commit. In this
commit, we extend the change to handle the case where the second operand
is a identifier defined by .equ.
Fixes #124427
Commit: 753028bc81c1a556eaaaf45ac77ca0cf4c7a3b4a
https://github.com/llvm/llvm-project/commit/753028bc81c1a556eaaaf45ac77ca0cf4c7a3b4a
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/lib/Target/Xtensa/CMakeLists.txt
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.h
M llvm/lib/Target/Xtensa/XtensaISelDAGToDAG.cpp
M llvm/lib/Target/Xtensa/XtensaRegisterInfo.cpp
R llvm/lib/Target/Xtensa/XtensaUtils.cpp
R llvm/lib/Target/Xtensa/XtensaUtils.h
Log Message:
-----------
[Xtensa] Move XtensaUtils to MCTargetDesc
PR #121118 attempted to introduce `checkRegister` used by
XtensaDisassembler. Since `checkRegister` and other functions in
XtensaUtils.cpp cannot link against XtensaCodeGen, move them to
XtensaDesc, which can be used by XtensaDisassembler.
Pull Request: https://github.com/llvm/llvm-project/pull/123969
Commit: 37fdde6025c8ead27a7608643b63e0d4498211e2
https://github.com/llvm/llvm-project/commit/37fdde6025c8ead27a7608643b63e0d4498211e2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-25 (Sat, 25 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MachineOperand.h
M llvm/lib/CodeGen/MachineOperand.cpp
Log Message:
-----------
[CodeGen] Remove implict conversions from Register to unsigned from MachineOperand. NFC
Commit: f46eb1430992ba1abe246dfd0b4ccf8229fe0ab7
https://github.com/llvm/llvm-project/commit/f46eb1430992ba1abe246dfd0b4ccf8229fe0ab7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
M llvm/lib/Target/AMDGPU/SIMachineScheduler.h
Log Message:
-----------
[AMDGPU] Replace unsigned with Register in SIMachineScheduler. NFC
Some of these may eventually need to VirtRegOrUnit.
Commit: ab895ad2bfb6835e8c47d8e616edb6cadaf59b77
https://github.com/llvm/llvm-project/commit/ab895ad2bfb6835e8c47d8e616edb6cadaf59b77
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M clang/lib/AST/DeclTemplate.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124446)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Pattern to be nonnull.
Commit: f09a6f632584c2b34f8f2d048a5420b040bb1005
https://github.com/llvm/llvm-project/commit/f09a6f632584c2b34f8f2d048a5420b040bb1005
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaAPINotes.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124447)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect AnyFunc to be nonnull.
Commit: 850852e9a45f7883bd1a04c2a6b9fceb6dcdaba2
https://github.com/llvm/llvm-project/commit/850852e9a45f7883bd1a04c2a6b9fceb6dcdaba2
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/InlineSpiller.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#124455)
Commit: 8035d38daab028b8da3cf2b01090b5f0ceacd695
https://github.com/llvm/llvm-project/commit/8035d38daab028b8da3cf2b01090b5f0ceacd695
Author: Mats Petersson <mats.petersson at arm.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/resolve-directives.cpp
A flang/test/Lower/OpenMP/Todo/dispatch.f90
A flang/test/Parser/OpenMP/dispatch.f90
A flang/test/Semantics/OpenMP/dispatch.f90
Log Message:
-----------
[Flang][OpenMP]Add parsing support for DISPATCH construct (#121982)
This allows the Flang parser to accept the !$OMP DISPATCH and related
clauses.
Lowering is currently not implemented. Tests for unparse and parse-tree
dump is provided, and one for checking that the lowering ends in a "not
yet implemented"
---------
Co-authored-by: Kiran Chandramohan <kiran.chandramohan at arm.com>
Commit: 81d38da65e336dfb023df89f1bdc32633ad05fb2
https://github.com/llvm/llvm-project/commit/81d38da65e336dfb023df89f1bdc32633ad05fb2
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
A llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory.ll
Log Message:
-----------
[LV] Add more tests for narrowing interleave groups for AArch64.
Add additional tests for
https://github.com/llvm/llvm-project/pull/106441.
Commit: dec47b76f406242dfb9d36da4d7adfb171c71104
https://github.com/llvm/llvm-project/commit/dec47b76f406242dfb9d36da4d7adfb171c71104
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/ctlz-codesize.ll
M llvm/test/Analysis/CostModel/X86/ctlz-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/ctlz.ll
M llvm/test/Analysis/CostModel/X86/cttz-codesize.ll
M llvm/test/Analysis/CostModel/X86/cttz-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/cttz.ll
M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll
M llvm/test/Transforms/SLPVectorizer/X86/ctlz.ll
M llvm/test/Transforms/SLPVectorizer/X86/cttz.ll
Log Message:
-----------
[CostModel][X86] Update baseline CTTZ/CTLZ costs for x86_64 (#124312)
Followup to #123623 - now that the CMOV has been removed, the throughput has improved, reducing the benefit of vectorization on pre-x86-64-v3 CPUs
Commit: e4514293f99962b47d881d5b40722c6b56a1f425
https://github.com/llvm/llvm-project/commit/e4514293f99962b47d881d5b40722c6b56a1f425
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaLambda.cpp
M clang/test/SemaCXX/cxx1z-constexpr-lambdas.cpp
Log Message:
-----------
[Clang] Correctly determine constexprness of dependent lambdas. (#124468)
We skipped checking if a lambda is constexpr if the parent context was
dependent, even if the lambda itself wasn't (and there is no other
opportunity to establish constexprness)
Fixes #114234
Fixes #97958
Commit: 0c784851c50b6b5b844e6a1f21bbe73efac332d4
https://github.com/llvm/llvm-project/commit/0c784851c50b6b5b844e6a1f21bbe73efac332d4
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/include/llvm/Support/MathExtras.h
Log Message:
-----------
[MathExtras] Favor using the hexadecimal FP constants (#123180)
This just fixes a TODO now that we are using C++17.
Commit: 33ad474c45e6d7a0de7bc75e15e27cf6cb9ff895
https://github.com/llvm/llvm-project/commit/33ad474c45e6d7a0de7bc75e15e27cf6cb9ff895
Author: Manuel Sainz de Baranda y Goñi <manuel at zxe.io>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/test/Preprocessor/init-aarch64.c
M clang/test/Preprocessor/init-arm.c
M clang/test/Preprocessor/init-csky.c
M clang/test/Preprocessor/init-loongarch.c
M clang/test/Preprocessor/init-mips.c
M clang/test/Preprocessor/init-ppc.c
M clang/test/Preprocessor/init-ppc64.c
M clang/test/Preprocessor/init-s390x.c
M clang/test/Preprocessor/init-v7k-compat.c
M clang/test/Preprocessor/init-ve.c
M clang/test/Preprocessor/init-x86.c
M clang/test/Preprocessor/init.c
Log Message:
-----------
[Clang] Add predefined macros for integer constants (#123514)
This adds predefined macros for integer constants to implement section 7.18.4 of ISO/IEC 9899:1999 in `<stdint.h>` in a safe way:
```
__INT8_C(c)
__INT16_C(c)
__INT32_C(c)
__INT64_C(c)
__INTMAX_C(c)
__UINT8_C(c)
__UINT16_C(c)
__UINT32_C(c)
__UINT64_C(c)
__UINTMAX_C(c)
```
Which improves compatibility with GCC and makes it trivial to implement
section 7.18.4 of ISO/IEC 9899:1999.
Clang defines `__INT<N>_C_SUFFIX__`, `__UINT<N>_C_SUFFIX__`,
`__INTAX_C_SUFFIX__` and `__UINTMAX_C_SUFFIX__`, but these macros are
useless for this purpose.
Let's say, for example, that `__INT64_C_SUFFIX__` expands to `L` or
`LL`. If the user defines them as a macros, the compiler will produce
errors if `INT64_C` is implemented in `<stdint.h>` using
`__INT64_C_SUFFIX__`:
**minimal-test.c:**
```cpp
#if defined(__clang__) & !defined(__INT64_C)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wreserved-identifier"
# define __PSTDC_INT_C_(literal, suffix) literal##suffix
# define __PSTDC_INT_C(literal, suffix) __PSTDC_INT_C_(literal, suffix)
# define INT64_C(literal) __PSTDC_INT_C(literal, __INT64_C_SUFFIX__)
# pragma clang diagnostic pop
#elif defined(__GNUC__)
# define INT64_C __INT64_C
#endif
typedef __INT64_TYPE__ int64_t;
#define L "Make Clang produce an error"
#define LL "Make Clang produce an error"
int main(int argc, char **argv)
{
(void)argc; (void)argv;
int64_t v = INT64_C(9223372036854775807);
(void)v;
return 0;
}
```
<img width="697" alt="imagen"
src="https://github.com/user-attachments/assets/6df97af6-7cfd-4cf9-85b7-d7c854509325"
/>
**test.c:**
```cpp
#if defined(__clang__) && !defined(__INT8_C)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wreserved-identifier"
# define __PSTDC_INT_C_(literal, suffix) literal##suffix
# define __PSTDC_INT_C(literal, suffix) __PSTDC_INT_C_(literal, suffix)
# define INT8_C(literal) __PSTDC_INT_C(literal, __INT8_C_SUFFIX__)
# define INT16_C(literal) __PSTDC_INT_C(literal, __INT16_C_SUFFIX__)
# define INT32_C(literal) __PSTDC_INT_C(literal, __INT32_C_SUFFIX__)
# define INT64_C(literal) __PSTDC_INT_C(literal, __INT64_C_SUFFIX__)
# define INTMAX_C(literal) __PSTDC_INT_C(literal, __INTMAX_C_SUFFIX__)
# define UINT8_C(literal) __PSTDC_INT_C(literal, __UINT8_C_SUFFIX__)
# define UINT16_C(literal) __PSTDC_INT_C(literal, __UINT16_C_SUFFIX__)
# define UINT32_C(literal) __PSTDC_INT_C(literal, __UINT32_C_SUFFIX__)
# define UINT64_C(literal) __PSTDC_INT_C(literal, __UINT64_C_SUFFIX__)
# define UINTMAX_C(literal) __PSTDC_INT_C(literal, __UINTMAX_C_SUFFIX__)
# pragma clang diagnostic pop
#else
# define INT8_C __INT8_C
# define INT16_C __INT16_C
# define INT32_C __INT32_C
# define INT64_C __INT64_C
# define INTMAX_C __INTMAX_C
# define UINT8_C __UINT8_C
# define UINT16_C __UINT16_C
# define UINT32_C __UINT32_C
# define UINT64_C __UINT64_C
# define UINTMAX_C __UINTMAX_C
#endif
typedef __INT8_TYPE__ int8_t;
typedef __INT16_TYPE__ int16_t;
typedef __INT32_TYPE__ int32_t;
typedef __INT64_TYPE__ int64_t;
typedef __INTMAX_TYPE__ intmax_t;
typedef __UINT8_TYPE__ uint8_t;
typedef __UINT16_TYPE__ uint16_t;
typedef __UINT32_TYPE__ uint32_t;
typedef __UINT64_TYPE__ uint64_t;
typedef __UINTMAX_TYPE__ uintmax_t;
#define L "Make Clang produce an error"
#define LL "Make Clang produce an error"
#define U "Make Clang produce an error"
#define UL "Make Clang produce an error"
#define ULL "Make Clang produce an error"
int main(int argc, char **argv)
{
(void)argc; (void)argv;
int8_t a = INT8_C (127);
int16_t b = INT16_C (32767);
int32_t c = INT32_C (2147483647);
int64_t d = INT64_C (9223372036854775807);
intmax_t e = INTMAX_C (9223372036854775807);
uint8_t f = UINT8_C (255);
uint16_t g = UINT16_C (65535);
uint32_t h = UINT32_C (4294967295);
uint64_t i = UINT64_C (18446744073709551615);
uintmax_t j = UINTMAX_C(18446744073709551615);
(void)a; (void)b; (void)c; (void)d; (void)e;
(void)f; (void)g; (void)h; (void)i; (void)j;
return 0;
}
```
Commit: 2af819fa3d802e55027dcc1408186cb8738f08e6
https://github.com/llvm/llvm-project/commit/2af819fa3d802e55027dcc1408186cb8738f08e6
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/test/Transforms/PGOProfile/memprof.ll
Log Message:
-----------
[MemProf] Add test for hot hints (#124394)
The change in PR124219 required removing one of the tests added for
-memprof-use-hot-hints, since we no longer label any contexts as hot in
metadata, so add a new test that checks the hot attribute instead.
Commit: f8ab91f74f152c8a6d8aaedb8165109c497a618d
https://github.com/llvm/llvm-project/commit/f8ab91f74f152c8a6d8aaedb8165109c497a618d
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
Log Message:
-----------
[LVI][CVP] Add test for trunc bittest. (NFC)
Commit: e8e75e08c9214fe25b56535fc26f5435a875a137
https://github.com/llvm/llvm-project/commit/e8e75e08c9214fe25b56535fc26f5435a875a137
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/MachO/BPSectionOrderer.cpp
M lld/MachO/BPSectionOrderer.h
Log Message:
-----------
[lld-macho] Remove unneeded functions from BPSectionOrderer. NFC
Commit: ccc066e8d5a742f79b41a0f90ef309d5b9e92c2a
https://github.com/llvm/llvm-project/commit/ccc066e8d5a742f79b41a0f90ef309d5b9e92c2a
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M clang/utils/TableGen/MveEmitter.cpp
Log Message:
-----------
[TableGen] Avoid repeated map lookups (NFC) (#124448)
This patch avoids repeated map lookups and constructions of temporary
std::string instances by switching to DenseSet.
Commit: 1c4341d176492da5f276937b84a3d0c959e4cf5b
https://github.com/llvm/llvm-project/commit/1c4341d176492da5f276937b84a3d0c959e4cf5b
Author: Vasileios Porpodas <vporpodas at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
Log Message:
-----------
[SandboxVec][DAG] Fix interval check without Node
This patch moves the check of whether a node exists before the check of
whether it is contained in the interval.
Commit: fb01a289038c16e13c6133ee602a58254b349411
https://github.com/llvm/llvm-project/commit/fb01a289038c16e13c6133ee602a58254b349411
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/COFF/Chunks.cpp
M lld/COFF/DLL.cpp
M lld/COFF/InputFiles.cpp
M lld/COFF/InputFiles.h
A lld/test/COFF/arm64x-import.test
Log Message:
-----------
[LLD][COFF] Implement support for hybrid IAT on ARM64X (#124189)
In hybrid images, the PE header references a single IAT for both native
and EC views, merging entries where possible. When merging isn't
feasible, different imports are grouped together, and ARM64X relocations
are emitted as needed.
Commit: 80ab237c1187aa7e8a1f546175887d768fa14e2d
https://github.com/llvm/llvm-project/commit/80ab237c1187aa7e8a1f546175887d768fa14e2d
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/test/COFF/arm64x-import.test
Log Message:
-----------
[LLD][COFF] Add REQUIRE x86 to arm64x-import.test (NFC)
This ensures the disassembler can handle ARM64X binaries correctly. Fixes #124189.
Commit: e278e1b6ece025ace4238748c0f57fda3ca833f9
https://github.com/llvm/llvm-project/commit/e278e1b6ece025ace4238748c0f57fda3ca833f9
Author: Alexey Bader <alexey.bader at intel.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
Log Message:
-----------
[NFC][CodeGen] Fix typos in code comments. (#124382)
This fixes typos in `calcUniqueIDUpdateFlagsAndSize` function.
Commit: c9637afec7ed72904c74c2fc71e990d378f3d7a6
https://github.com/llvm/llvm-project/commit/c9637afec7ed72904c74c2fc71e990d378f3d7a6
Author: Shafik Yaghmour <shafik.yaghmour at intel.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M clang/lib/AST/ExprConstant.cpp
Log Message:
-----------
[Clang] Fix createConstexprUnknownAPValues to use zero offset when ceating APValue (#124478)
When implmenting P2280R4 here:
https://github.com/llvm/llvm-project/pull/95474
When creating the APValue to store and constexprUnknown value I used an
offset of CharUnits::One() but it should have been CharUnits::Zero().
This change just adjusts that value.
Commit: bfa7de0df5d8eb8dd284b0f49f10e7f0cd850693
https://github.com/llvm/llvm-project/commit/bfa7de0df5d8eb8dd284b0f49f10e7f0cd850693
Author: YunQiang Su <yunqiang at isrc.iscas.ac.cn>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/canonicalize-vars.ll
Log Message:
-----------
X86: Support FCANONICALIZE on f64/f80 for i686 with SSE2 or AVX (#123917)
Currently, FCANONICALIZE is not enabled for f64 with SSE2,
and is not enabled for f80 for 32bit system.
Let's enable them.
Commit: db79fb2a91df31a07f312f8e061936927ac5c506
https://github.com/llvm/llvm-project/commit/db79fb2a91df31a07f312f8e061936927ac5c506
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx2-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx2-intrinsics-i386.ll
Log Message:
-----------
[msan] Add handlers for AVX masked load/store intrinsics (#123857)
This patch adds explicit support for AVX masked load/store intrinsics,
largely by applying the intrinsics to the shadows (but subtly different
to handleIntrinsicByApplyingToShadow()).
We do not reuse the handleMaskedLoad/Store functions. The key challenge
is that the LLVM masked intrinsics require a vector of booleans, while
AVX masked intrinsics use the MSBs of a vector of integers.
X86InstCombineIntrinsic.cpp::simplifyX86MaskedLoad mentions that the x86
backend does not know how to efficiently convert from a vector of
booleans back into the AVX mask format; therefore, they (and we) do not
reduce AVX masked intrinsics into LLVM masked intrinsics.
Commit: 980e86f130eea02bd41b887f4ed896340fc90f6c
https://github.com/llvm/llvm-project/commit/980e86f130eea02bd41b887f4ed896340fc90f6c
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
A llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics.ll
Log Message:
-----------
[msan] Add avx512-intrinsics.ll and avx512-intrinsics-upgrade.ll test case (#123980)
These are forked from the corresponding files in llvm/test/CodeGen/X86/.
avx512-intrinsics.ll shows that many intrinsics are already
heuristically handled by MSan, and can be used to track refinements to
the intrinsic handling.
avx512-intrinsics-upgrade.ll tests intrinsics that LLVM "auto-upgrades";
for example, @llvm.x86.avx512.mask.store is converted into
@llvm.masked.store (which has the interesting side effect that
MemorySanitizer can already handle it via its existing
handleMaskedStore).
Commit: 84af3ee5124de3385b829c3a9980fd734f0d92e8
https://github.com/llvm/llvm-project/commit/84af3ee5124de3385b829c3a9980fd734f0d92e8
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/ELF/Arch/ARM.cpp
M lld/ELF/Arch/RISCV.cpp
M lld/ELF/InputFiles.cpp
Log Message:
-----------
[ELF] Replace Fatal with Err
Commit: a6044a05cd16d2c5dbca80757a160cba9a2cb037
https://github.com/llvm/llvm-project/commit/a6044a05cd16d2c5dbca80757a160cba9a2cb037
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
Log Message:
-----------
[msan] Fix-forward avx512-intrinsics-upgrade.ll (#124495)
I had added the test in https://github.com/llvm/llvm-project/pull/123980
and contemporaneously added AVX masked store/load intrinsics
(https://github.com/llvm/llvm-project/pull/123857) and forgot to update
the test output for the intersection. This patch fixes the output.
Commit: b9d301cc7e4fe4c442ec15169686fa4a18f5cdfc
https://github.com/llvm/llvm-project/commit/b9d301cc7e4fe4c442ec15169686fa4a18f5cdfc
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx2-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx2-intrinsics-i386.ll
Log Message:
-----------
Revert "[msan] Add handlers for AVX masked load/store intrinsics (#123857)"
This reverts commit db79fb2a91df31a07f312f8e061936927ac5c506.
Reason: buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/144/builds/16636/steps/6/logs/FAIL__LLVM__avx512-intrinsics-upgrade_ll)
Commit: b6eeec586fa6c0db4ab1b0e129111e82a97c7283
https://github.com/llvm/llvm-project/commit/b6eeec586fa6c0db4ab1b0e129111e82a97c7283
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
Log Message:
-----------
Revert "[msan] Fix-forward avx512-intrinsics-upgrade.ll (#124495)"
This reverts commit a6044a05cd16d2c5dbca80757a160cba9a2cb037.
Reason: buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/144/builds/16636/steps/6/logs/FAIL__LLVM__avx512-intrinsics-upgrade_ll)
Commit: b2647ffbf797dd5a457b6b19faab06956934d067
https://github.com/llvm/llvm-project/commit/b2647ffbf797dd5a457b6b19faab06956934d067
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
R llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
R llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics.ll
Log Message:
-----------
Revert "[msan] Add avx512-intrinsics.ll and avx512-intrinsics-upgrade.ll test case (#123980)"
This reverts commit 980e86f130eea02bd41b887f4ed896340fc90f6c.
Reason: buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/154/builds/10901/steps/5/logs/FAIL__LLVM__avx512-intrinsics-upgrade_ll)
Commit: 7107f55d82f8d1077d5478e8f58c94851385c06f
https://github.com/llvm/llvm-project/commit/7107f55d82f8d1077d5478e8f58c94851385c06f
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/AST/TemplateBase.cpp
Log Message:
-----------
[clang] NFC: remove redundant dyn_cast
Commit: 0e6b58202ca9c4d1ca814e4bea5bd3f0bac7f329
https://github.com/llvm/llvm-project/commit/0e6b58202ca9c4d1ca814e4bea5bd3f0bac7f329
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/test/ELF/lto/version-script.ll
M lld/test/ELF/lto/version-script2.ll
Log Message:
-----------
[ELF] Improve parseSymbolVersion tests in for compileBitcodeFiles
Otherwise, the tests won't catch a mistake that removes
`parseSymbolVersion`.
Commit: 2a26292388fcab0c857c91b2d08074c33abd37e8
https://github.com/llvm/llvm-project/commit/2a26292388fcab0c857c91b2d08074c33abd37e8
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/ELF/Driver.cpp
Log Message:
-----------
[ELF] Make isExported accurate early
LTO compilation might define symbols not in the symbol table (e.g.
__emutls_v.x in test/ELF/lto/wrap-unreferenced-before-codegen.test).
These symbols have a false `isExported` until
`demoteSymbolsAndComputeIsPreemptible`. This is usually benign as we do
not reference `isExported` that early.
Ensure that `isExported` is correct early. This helps remove a redundant
`isExported` computation in `demoteSymbolsAndComputeIsPreemptible`.
Commit: 1a4d6de1b532149b10522eae5dabce39e5f7c687
https://github.com/llvm/llvm-project/commit/1a4d6de1b532149b10522eae5dabce39e5f7c687
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Writer.cpp
Log Message:
-----------
[ELF] Remove redundant isExported computation
Commit 2a26292388fcab0c857c91b2d08074c33abd37e8 made `isExported`
accurate except a few linker-synthesized symbols in finalizeSections.
We can collect these linker-synthesized symbols into a vector
and avoid recomputation for other symbols.
Commit: b9efbed468ec18044070eea936c694fb8f6e244b
https://github.com/llvm/llvm-project/commit/b9efbed468ec18044070eea936c694fb8f6e244b
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M lld/ELF/Writer.cpp
R lld/test/ELF/hip-section-layout.s
Log Message:
-----------
Revert "Move HIP fatbin sections farther away from .text"
This reverts commit 048f35037779763963c4b4478a0884e828ea9538.
This reverts commit f7bbc40b0736cc417f57cd039b098b504cf6a71f.
Related to #95949. A developer with no prior lld contribution and very
little AMD contribution sneaked in these application-specific section
order rules we discourage.
Commit: 6805d7e8aa5f2ecea021acbb8c6b4c29ca432e78
https://github.com/llvm/llvm-project/commit/6805d7e8aa5f2ecea021acbb8c6b4c29ca432e78
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-26 (Sun, 26 Jan 2025)
Changed paths:
M llvm/test/tools/llvm-objcopy/ELF/remove-note.test
Log Message:
-----------
[test] Convert remove-note.test from \r\n to \n after #118739
Commit: 9452ee4f750a849148a391ac75eb31220343fa1e
https://github.com/llvm/llvm-project/commit/9452ee4f750a849148a391ac75eb31220343fa1e
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Treat uppercase identifiers after struct as macros (#124397)
This restores the behavior before llvmorg-20-init.
Fixes #94184.
Fixes #117477.
Fixes #122690.
Fixes #123142.
Commit: a01e1d4e044ec0147e04a5af9ca54ede550f5dc1
https://github.com/llvm/llvm-project/commit/a01e1d4e044ec0147e04a5af9ca54ede550f5dc1
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Sema/HeuristicResolver.cpp
M clang/unittests/Sema/HeuristicResolverTest.cpp
Log Message:
-----------
[clang][Sema] Handle dependent qualifier in HeuristicResolver::resolveDeclRefExpr() (#124515)
Commit: bd38c4993aa41d89a13cbc4dc457df4d81e410bf
https://github.com/llvm/llvm-project/commit/bd38c4993aa41d89a13cbc4dc457df4d81e410bf
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
A llvm/test/CodeGen/AArch64/zeroing-forms-frint-frecpx-fsqrt.ll
Log Message:
-----------
[AArch64] Generate zeroing forms of certain SVE2.2 instructions (8/11) (#116834)
SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.
This patch adds support for emitting the zeroing forms of certain
`FRINTx`, `FRECPX`, and `FSQRT` instructions.
Commit: 351ee30529c054d39ea742c1b9c738c9e70c131b
https://github.com/llvm/llvm-project/commit/351ee30529c054d39ea742c1b9c738c9e70c131b
Author: bernhardu <bernhardu at mailbox.org>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/interception/interception_win.cpp
M compiler-rt/lib/interception/tests/interception_win_test.cpp
Log Message:
-----------
[win/asan] GetInstructionSize: Support some more 6 byte instructions. (#124006)
This patch adds several instructions seen when trying to run a
executable built with ASan with llvm-mingw.
(x86 and x86_64, using the git tip in llvm-project).
Also includes instructions collected by
Roman Pišl and Eric Pouech in the Wine bug reports below.
```
Related: https://github.com/llvm/llvm-project/issues/96270
Co-authored-by: Roman Pišl <rpisl at seznam.cz>
https://bugs.winehq.org/show_bug.cgi?id=50993
https://bugs.winehq.org/attachment.cgi?id=70233
Co-authored-by: Eric Pouech <eric.pouech at gmail.com>
https://bugs.winehq.org/show_bug.cgi?id=52386
https://bugs.winehq.org/attachment.cgi?id=71626
```
Commit: bbf377060adc8607e1187952388c7eeea7cf4933
https://github.com/llvm/llvm-project/commit/bbf377060adc8607e1187952388c7eeea7cf4933
Author: bernhardu <bernhardu at mailbox.org>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/interception/interception_win.cpp
M compiler-rt/lib/interception/tests/interception_win_test.cpp
Log Message:
-----------
[win/asan] GetInstructionSize: Support some more 7 or 8 byte instructions. (#124011)
This patch adds several instructions seen when trying to run a
executable built with ASan with llvm-mingw.
(x86 and x86_64, using the git tip in llvm-project).
Also includes instructions collected by
Roman Pišl and Eric Pouech in the Wine bug reports below.
```
Related: https://github.com/llvm/llvm-project/issues/96270
Co-authored-by: Roman Pišl <rpisl at seznam.cz>
https://bugs.winehq.org/show_bug.cgi?id=50993
https://bugs.winehq.org/attachment.cgi?id=70233
Co-authored-by: Eric Pouech <eric.pouech at gmail.com>
https://bugs.winehq.org/show_bug.cgi?id=52386
https://bugs.winehq.org/attachment.cgi?id=71626
```
Commit: 7211bf48a62bfe3a181013f412f2fa6e112ae99f
https://github.com/llvm/llvm-project/commit/7211bf48a62bfe3a181013f412f2fa6e112ae99f
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/test/Driver/fsave-main-program.f90
M flang/test/Lower/fsave-main-program.f90
Log Message:
-----------
[flang][driver] add negative from of -fsave-main-program (#124110)
Add the `-fno` form for consistency and to make it easy to switch the
default for downstream users.
Commit: 3b5e9eed2f67c1fb6dcf7033e92509ba2b0381e9
https://github.com/llvm/llvm-project/commit/3b5e9eed2f67c1fb6dcf7033e92509ba2b0381e9
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
A llvm/test/CodeGen/NVPTX/convert-sm100.ll
Log Message:
-----------
[NVPTX] Add float to tf32 conversion intrinsics (#124316)
This patch adds the set of f32 -> tf32 cvt intrinsics introduced
in sm100 with ptx8.6. This builds on top of the recent PR #121507.
Tests are verified with a 12.8 ptxas executable.
PTX ISA link:
https://docs.nvidia.com/cuda/parallel-thread-execution/#data-movement-and-conversion-instructions-cvt
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: 87103a016fbfd480e1d3bb8eba23c27a9c74e70d
https://github.com/llvm/llvm-project/commit/87103a016fbfd480e1d3bb8eba23c27a9c74e70d
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/AST/Type.h
M clang/include/clang/Basic/AArch64SVEACLETypes.def
M clang/include/clang/Basic/TargetBuiltins.h
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaType.cpp
A clang/test/CodeGen/AArch64/builtin-shufflevector-fp8.c
A clang/test/CodeGen/AArch64/fp8-cast.c
M clang/test/CodeGen/arm-mfp8.c
M clang/test/CodeGenCXX/aarch64-mangle-neon-vectors.cpp
M clang/test/CodeGenCXX/mangle-neon-vectors.cpp
A clang/test/Sema/aarch64-fp8-cast.c
M clang/test/Sema/arm-mfp8.cpp
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
[AArch64] Implement NEON FP8 vectors as VectorType (#123603)
Reimplement Neon FP8 vector types using attribute `neon_vector_type`
instead of having them as builtin types.
This allows to implement FP8 Neon intrinsics without the need to add
special cases for these types when using `__builtin_shufflevector`
or bitcast (using C-style cast operator) between vectors, both
extensively used in the generated code in `arm_neon.h`.
Commit: 8f17f51deb12456f25d32b9a42ac1f00feabbfbc
https://github.com/llvm/llvm-project/commit/8f17f51deb12456f25d32b9a42ac1f00feabbfbc
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
Log Message:
-----------
[mlir][tosa] Fix comments format(NFC) (#124520)
This PR corrects the formatting of comments in Markdown. The previous
format was as follows:
https://mlir.llvm.org/docs/Dialects/TOSA/#tosaerf-mlirtosaerfop

https://mlir.llvm.org/docs/Dialects/TOSA/#tosarescale-mlirtosarescaleop

Commit: 14ffff384740f484b382a1225f4bd01aeebfdc3f
https://github.com/llvm/llvm-project/commit/14ffff384740f484b382a1225f4bd01aeebfdc3f
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/AST/TextNodeDumper.cpp
A clang/test/AST/ast-dump-APValue-lvalue.cpp
M clang/test/AST/ast-dump-APValue-todo.cpp
Log Message:
-----------
[clang] Add dump() support for lvalue APValues (#124476)
Add some lvalue information to the `dump()` output of lvalue APValues.
Commit: 43a50deb63453cd3c800f097514d500536f9d436
https://github.com/llvm/llvm-project/commit/43a50deb63453cd3c800f097514d500536f9d436
Author: Samuel Ginzburg <ginzburg.sam at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[MLIR][ROCDL] Add GFX940 SMFMAC (2:4 sparsity) instructions to the ROCDL dialect (#124435)
# Overview
This PR adds 2:4 structured sparsity (sparse A, dense B) matrix multiply
instructions to ROCDL.
# Testing
I've added tests to Dialect/mlir and Target/mlir
Commit: ac87d6b03642eca3901a7776d73be368299402e9
https://github.com/llvm/llvm-project/commit/ac87d6b03642eca3901a7776d73be368299402e9
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/test/Lower/Intrinsics/ieee_next.f90
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Dialect/Arith/canonicalize.mlir
Log Message:
-----------
[mlir][arith] Fold `arith.cmpi eq, %val, %one : i1` -> `%val` and `arith.cmpi ne, %val, %zero : i1 -> %val` (#124436)
https://alive2.llvm.org/ce/z/dNZMdC
Commit: ddbfe6f7d2075a828fa9e8e5f5734bf881cda13a
https://github.com/llvm/llvm-project/commit/ddbfe6f7d2075a828fa9e8e5f5734bf881cda13a
Author: Robert Dazi <14996868+v01dXYZ at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ExprCXX.h
M clang/lib/Sema/TreeTransform.h
A clang/test/SemaCXX/array-type-trait-with-template.cpp
Log Message:
-----------
[Sema] Fix __array_rank instantiation (#124491)
The type being queried was left as a template type parameter, making the
whole expression as dependent and thus not eligible to static_assert.
Fixes #123498
Co-authored-by: v01dxyz <v01dxyz at v01d.xyz>
Co-authored-by: cor3ntin <corentinjabot at gmail.com>
Commit: b7286dbef9dc1986860d29e390b092599e1d7db5
https://github.com/llvm/llvm-project/commit/b7286dbef9dc1986860d29e390b092599e1d7db5
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
Log Message:
-----------
Reland "[LoopVectorize] Add support for reverse loops in isDereferenceableAndAlignedInLoop #96752" (#123616)
The last attempt failed a sanitiser build because we were
creating a reference to a null Predicates pointer in
isDereferenceableAndAlignedInLoop. This was exposed by
the unit test IsDerefReadOnlyLoop in
unittests/Analysis/LoadsTest.cpp. I fixed this by falling
back on getConstantMaxBackedgeTakenCount if Predicates is
null - see line 316 in llvm/lib/Analysis/Loads.cpp. There
are no other changes.
Commit: b8d921003d1f20819b897b066e02d22787f11550
https://github.com/llvm/llvm-project/commit/b8d921003d1f20819b897b066e02d22787f11550
Author: David Truby <david.truby at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/test/HLFIR/unroll-loops.fir
M flang/test/Integration/unroll-loops.f90
Log Message:
-----------
[flang][NFC] Restrict -funroll-loops tests to known working targets (#123939)
If -funroll-loops tests are not restricted to specific targets the tests
may behave differently based on the host platform. This patch restricts
the tests to aarch64 and x86_64, and removes the PowerPC XFAIL.
Commit: 98e52db4a5e57f919bb70312f9ca7deb16ee6fcb
https://github.com/llvm/llvm-project/commit/98e52db4a5e57f919bb70312f9ca7deb16ee6fcb
Author: David Truby <david.truby at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/test/HLFIR/unroll-loops.fir
M flang/test/Integration/unroll-loops.f90
Log Message:
-----------
Revert "[flang][NFC] Restrict -funroll-loops tests to known working targets" (#124536)
Reverts llvm/llvm-project#123939
Commit: 6087c3049656bbaef51fffb48e2404e86f7e0d3f
https://github.com/llvm/llvm-project/commit/6087c3049656bbaef51fffb48e2404e86f7e0d3f
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Host/common/Host.cpp
Log Message:
-----------
[lldb] Simplify preprocessor conditional (#124522)
The long list of defines is just a very elaborate way to say "not
windows".
Commit: cfdd7d736a94aa65a23eb41258d9d6712cdb2b0d
https://github.com/llvm/llvm-project/commit/cfdd7d736a94aa65a23eb41258d9d6712cdb2b0d
Author: David CARLIER <devnexen at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
Log Message:
-----------
[compiler-rt][rtsan] sched cpu affinity for linux interception. (#124194)
Commit: e21b80464a44ef6491e44517ac59892c10ba2d6c
https://github.com/llvm/llvm-project/commit/e21b80464a44ef6491e44517ac59892c10ba2d6c
Author: David CARLIER <devnexen at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
Log Message:
-----------
[compiler-rt][rtsan] socketpair interception. (#124107)
Commit: d8ad1eef8ffeb4ef5474f0e38d6d340d82c53572
https://github.com/llvm/llvm-project/commit/d8ad1eef8ffeb4ef5474f0e38d6d340d82c53572
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
A llvm/test/CodeGen/AArch64/zeroing-forms-flogb.ll
Log Message:
-----------
[AArch64] Generate zeroing forms of certain SVE2.2 instructions (7/11) (#116833)
SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.
This patch adds support for emitting the zeroing forms of certain
`FLOGB` instructions.
Commit: b31e9747d0866ff97a1cd4a608b7eade31c0aa0b
https://github.com/llvm/llvm-project/commit/b31e9747d0866ff97a1cd4a608b7eade31c0aa0b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
M lldb/test/API/linux/aarch64/gcs/main.c
Log Message:
-----------
[lldb][AArch64] Fix expression evaluation with Guarded Control Stacks (#123918)
When the Guarded Control Stack (GCS) is enabled, returns cause the
processor to validate that the address at the location pointed to by
gcspr_el0 matches the one in the link register.
```
ret (lr=A) << pc
| GCS |
+=====+
| A |
| B | << gcspr_el0
Fault: tried to return to A when you should have returned to B.
```
Therefore when an expression wrapper function tries to return to the
expression return address (usually `_start` if there is a libc), it
would fault.
```
ret (lr=_start) << pc
| GCS |
+============+
| user_func1 |
| user_func2 | << gcspr_el0
Fault: tried to return to _start when you should have returned to user_func2.
```
To fix this we must push that return address to the GCS in
PrepareTrivialCall. This value is then consumed by the final return and
the expression completes as expected.
If for some reason that fails, we will manually restore the value of
gcspr_el0, because it turns out that PrepareTrivialCall
does not restore registers if it fails at all. So for now I am handling
gcspr_el0 specifically, but I have filed
https://github.com/llvm/llvm-project/issues/124269 to address the
general problem.
(the other things PrepareTrivialCall does are exceedingly likely to not
fail, so we have never noticed this)
```
ret (lr=_start) << pc
| GCS |
+============+
| user_func1 |
| user_func2 |
| _start | << gcspr_el0
No fault, we return to _start as normal.
```
The gcspr_el0 register will be restored after expression evaluation so
that the program can continue correctly.
However, due to restrictions in the Linux GCS ABI, we will not restore
the enable bit of gcs_features_enabled. Re-enabling GCS via ptrace is
not supported because it requires memory to be allocated by the kernel.
We could disable GCS if the expression enabled GCS, however this would
use up that state transition that the program might later rely on. And
generally it is cleaner to ignore the enable bit, rather than one state
transition of it.
We will also not restore the GCS entry that was overwritten with the
expression's return address. On the grounds that:
* This entry will never be used by the program. If the program branches,
the entry will be overwritten. If the program returns, gcspr_el0 will
point to the entry before the expression return address and that entry
will instead be validated.
* Any expression that calls functions will overwrite even more entries,
so the user needs to be aware of that anyway if they want to preserve
the contents of the GCS for inspection.
* An expression could leave the program in a state where restoring the
value makes the situation worse. Especially if we ever support this in
bare metal debugging.
I will later document all this on
https://lldb.llvm.org/use/aarch64-linux.html.
Tests have been added for:
* A function call that does not interact with GCS.
* A call that does, and disables it (we do not re-enable it).
* A call that does, and enables it (we do not disable it again).
* Failure to push an entry to the GCS stack.
Commit: ef54e0bbfbef59932a59a1640f1f9e14b70cc41b
https://github.com/llvm/llvm-project/commit/ef54e0bbfbef59932a59a1640f1f9e14b70cc41b
Author: David Green <david.green at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Features.td
M llvm/lib/Target/AArch64/AArch64InstrAtomics.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
Log Message:
-----------
[AArch64] Avoid generating LDAPUR on certain cores (#124274)
On the CPUs listed below, we want to avoid LDAPUR for performance
reasons. Add a tuning feature to disable them when using:
-mcpu=neoverse-v2
-mcpu=neoverse-v3
-mcpu=cortex-x3
-mcpu=cortex-x4
-mcpu=cortex-x925
Commit: 347fb208c1e390a4f108e566efc81bd945837307
https://github.com/llvm/llvm-project/commit/347fb208c1e390a4f108e566efc81bd945837307
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libclc/clc/include/clc/relational/relational.h
M libclc/clc/lib/generic/relational/clc_isequal.cl
M libclc/clc/lib/generic/relational/clc_isgreater.cl
M libclc/clc/lib/generic/relational/clc_isgreaterequal.cl
M libclc/clc/lib/generic/relational/clc_isless.cl
M libclc/clc/lib/generic/relational/clc_islessequal.cl
M libclc/clc/lib/generic/relational/clc_islessgreater.cl
M libclc/clc/lib/generic/relational/clc_isnotequal.cl
Log Message:
-----------
[libclc] Optimize CLC vector relational builtins (#124537)
Clang knows how to perform relational operations on OpenCL vectors, so
we don't need to use the Clang builtins. The builtins we were using
didn't support vector types, so we were previously scalarizing.
This commit generates the same LLVM fcmp operations as before, just
without the scalarization.
Commit: e9e06bea8661ddd474557a0db2cdc8770a55b66f
https://github.com/llvm/llvm-project/commit/e9e06bea8661ddd474557a0db2cdc8770a55b66f
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
Log Message:
-----------
[lldb][AArch64][NFC] Move a comment in GCS tests
Got put in the wrong place during a rebase.
Commit: d7e561b913d2a75c7c1807bf1c1e0bddc270a2b3
https://github.com/llvm/llvm-project/commit/d7e561b913d2a75c7c1807bf1c1e0bddc270a2b3
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Optimizer/OpenMP/GenericLoopConversion.cpp
M flang/test/Lower/OpenMP/loop-directive.f90
Log Message:
-----------
[flang][OpenMP] Support `bind` clause code-gen for standalone `loop`s (#122674)
Extends rewriting of `loop` directives by supporting `bind` clause for
standalone directives. This follows both the spec and the current state
of clang as follows:
* No `bind` or `bind(thread)`: the `loop` is rewritten to `simd`.
* `bind(parallel)`: the `loop` is rewritten to `do`.
* `bind(teams)`: the `loop` is rewritten to `distribute`.
This is a follow-up PR for
https://github.com/llvm/llvm-project/pull/122632, only the latest commit
in this PR is relevant to the PR.
Commit: e7592d83e0ac58f61cfe8dcf61bcc8e7a8bd67b3
https://github.com/llvm/llvm-project/commit/e7592d83e0ac58f61cfe8dcf61bcc8e7a8bd67b3
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M offload/plugins-nextgen/common/include/RPC.h
M offload/plugins-nextgen/common/src/RPC.cpp
Log Message:
-----------
[Offload][NFC] Make sure the thread is not running already
Commit: 86705eb6242b5e2d6153708ddedffbfc95491756
https://github.com/llvm/llvm-project/commit/86705eb6242b5e2d6153708ddedffbfc95491756
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/test/CodeGen/X86/huge-stack-offset.ll
Log Message:
-----------
[X86] huge-stack-offset.ll - add gnux32 test coverage
This should match x86 for the basic implementation, but its useful to check it actually runs correctly.
Commit: 3684ec425904424fc4dc80c8661f82bc676d7197
https://github.com/llvm/llvm-project/commit/3684ec425904424fc4dc80c8661f82bc676d7197
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Tools/TargetSetup.h
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] IEEE underflow control for Arm (#124170)
Update IEEE_SUPPORT_UNDERFLOW_CONTROL, IEEE_GET_UNDERFLOW_MODE, and
IEEE_SET_UNDERFLOW_MODE code for Arm.
Commit: 3a4376b8f90686f754ee51b296a064ab03c12895
https://github.com/llvm/llvm-project/commit/3a4376b8f90686f754ee51b296a064ab03c12895
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/test/Analysis/LoopAccessAnalysis/pointer-phis.ll
M llvm/test/Transforms/LoopDistribute/pointer-phi-in-loop.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/loop-distribute.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/loop-distribute.ll.expected
Log Message:
-----------
LAA: handle 0 return from getPtrStride correctly (#124539)
getPtrStride returns 0 when the PtrScev is loop-invariant, and this is
not an erroneous value: it returns std::nullopt to communicate that it
was not able to find a valid pointer stride. In analyzeLoop, we call
getPtrStride with a value_or(0) conflating the zero return value with
std::nullopt. Fix this, handling loop-invariant loads correctly.
Commit: f07505849c8e683bf8f444e205d3dd3284759b7d
https://github.com/llvm/llvm-project/commit/f07505849c8e683bf8f444e205d3dd3284759b7d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M offload/plugins-nextgen/common/src/PluginInterface.cpp
Log Message:
-----------
[Offload] Fix server thread from being shut down if unused
Commit: 54928a10c8dba7c07c6224c1ead5c02a335890e6
https://github.com/llvm/llvm-project/commit/54928a10c8dba7c07c6224c1ead5c02a335890e6
Author: Dipesh Sharma <76941383+dipeshs809 at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/LangOptions.h
M clang/lib/Basic/Targets/OSTargets.cpp
A clang/test/Preprocessor/deprecate-threads-macro-definition-msvc1939.c
M clang/test/Preprocessor/init-aarch64.c
Log Message:
-----------
[clang] __STDC_NO_THREADS__ is no longer necessary for VS 2022 1939 and above (#117149)
Since `__STDC_NO_THREADS__` is a reserved identifier,
- If `MSVC version < 17.9`
- C version < C11(201112L)
- When `<threads.h>` is unavailable `!__has_include(<threads.h>)` is
`__has_include` is defined.
Closes #115529
Commit: f95a8bde3425ada0ef004186eb8ccda6e723241c
https://github.com/llvm/llvm-project/commit/f95a8bde3425ada0ef004186eb8ccda6e723241c
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/Basic/AArch64SVEACLETypes.def
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/Type.cpp
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/utils/TableGen/SveEmitter.cpp
Log Message:
-----------
[AArch64] Refactor implementation of FP8 types (NFC) (#123604)
- The FP8 scalar type (`__mfp8`) was described as a vector type
- The FP8 vector types were described/assumed to have integer element
type (the element type ought to be `__mfp8`)
- Add support for `m` type specifier (denoting `__mfp8`) in
`DecodeTypeFromStr` and create builtin function prototypes using that
specifier, instead of `int8_t`
Commit: f1d5e70a00fbc80f42977800e9299353b06d48cb
https://github.com/llvm/llvm-project/commit/f1d5e70a00fbc80f42977800e9299353b06d48cb
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Do not check poison values for corresponding vectorized entries
No need to check poison values if they have been vectorized and/or mark
them as vectorized, it should work only for instructions.
Commit: eaa5897534cbd263d0cdbf780f72133c2fe8d8d4
https://github.com/llvm/llvm-project/commit/eaa5897534cbd263d0cdbf780f72133c2fe8d8d4
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libclc/clc/include/clc/relational/relational.h
M libclc/clc/lib/generic/relational/clc_isordered.cl
M libclc/clc/lib/generic/relational/clc_isunordered.cl
Log Message:
-----------
[libclc] Optimize CLC vector is(un)ordered builtins (#124546)
These are similar to 347fb208, but these builtins are expressed in terms
of other builtins. The LLVM IR generated features the same fcmp ord/uno
comparisons as before, but consistently in vector form.
Commit: 561132e71b29d9b747dfda1509f715847852f77b
https://github.com/llvm/llvm-project/commit/561132e71b29d9b747dfda1509f715847852f77b
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/Decl.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
Log Message:
-----------
[Clang] Fix immediate escalation of template function specializations. (#124404)
We record whether an expression is immediate escalating in the
FunctionScope.
However, that only happen when parsing or transforming an expression.
This might not happen when transforming a non dependent expression.
This patch fixes that by considering a function immediate when
instantiated from an immediate function.
Fixes #123405
Commit: 081723b9db84e78d7dd240b46af2aeb3b51b00be
https://github.com/llvm/llvm-project/commit/081723b9db84e78d7dd240b46af2aeb3b51b00be
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
M lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
M lldb/unittests/Symbol/TestTypeSystemClang.cpp
M lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
Log Message:
-----------
[lldb][TypeSystem] Ensure that ParmVarDecls have the correct DeclContext (#124279)
While sifting through this part of the code I noticed that when we parse
C++ methods, `DWARFASTParserClang` creates two sets of `ParmVarDecls`,
one in `ParseChildParameters` and once in `AddMethodToCXXRecordType`.
The former is unused when we're dealing with methods. Moreover, the
`ParmVarDecls` we created in `ParseChildParameters` were created with an
incorrect `clang::DeclContext` (namely the DeclContext of the function,
and not the function itself). In Clang, there's
`ParmVarDecl::setOwningFunction` to adjust the DeclContext of a
parameter if the parameter was created before the FunctionDecl. But we
never used it.
This patch removes the `ParmVarDecl` creation from
`ParseChildParameters` and instead creates a
`TypeSystemClang::CreateParameterDeclarations` that ensures we set the
DeclContext correctly.
Note there is one differences in how `ParmVarDecl`s would be created
now: we won't set a ClangASTMetadata entry for any of the parameters. I
don't think this was ever actually useful for parameter DIEs anyway.
This wasn't causing any concrete issues (that I know of), but was quite
surprising. And this way of setting the parameters seems easier to
reason about (in my opinion).
Commit: 5c5bbffe75caaaefdc68305e85a625a057b09159
https://github.com/llvm/llvm-project/commit/5c5bbffe75caaaefdc68305e85a625a057b09159
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/AST/ASTImporter.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[clang][ASTImporter] Import source location of explicit object parameter instead of copying it (#124305)
We used to copy the `SourceLocation` instead of importing it, which
isn't correct since the `SourceManager`'s of the source and target
ASTContext might differ.
Also adds test that confirms that we import the explicit object
parameter location for `ParmVarDecl`s. This is how Clang determines
whether a parameter `isExplicitObjectParamater`. The LLDB expression
evaluator relies on this for calling "explicit object member functions".
Commit: 1f5335c1db5d54b4465677c224b48e0ffc78e6d9
https://github.com/llvm/llvm-project/commit/1f5335c1db5d54b4465677c224b48e0ffc78e6d9
Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Arith/Utils/Utils.cpp
M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
M mlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir
M mlir/test/Dialect/Linalg/data-layout-propagation.mlir
M mlir/test/Dialect/Linalg/fuse-with-reshape-by-collapsing.mlir
M mlir/test/Dialect/Linalg/fusion-push-reshape.mlir
M mlir/test/Dialect/Linalg/reshape_fusion.mlir
M mlir/test/Dialect/Tensor/bufferize.mlir
Log Message:
-----------
Make index computation used divsi/remsi (#124390)
The index computation is meant to be signed. Using unsigned could lead
to subtle errors. Fix places where some index math was using unsigned
operations.
Signed-off-by: MaheshRavishankar <mahesh.ravishankar at gmail.com>
Commit: 27c917307563eae93c7fef9c3944e56e1f5b5f6d
https://github.com/llvm/llvm-project/commit/27c917307563eae93c7fef9c3944e56e1f5b5f6d
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/AST/ExprCXX.h
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/test/SemaTemplate/concepts-out-of-line-def.cpp
Log Message:
-----------
[Clang] Remove unnecessary Decl transform & profiles for SizeOfPackExpr (#124533)
We used to always transform the pattern declaration for SizeOfPackExpr
to ensure the constraint expression's profile produced the desired
result. However, this approach failed to handle pack expansions when the
pack referred to function parameters. In such cases, the function
parameters were formerly expanded to 1 to avoid building Subst* nodes
(see e6974daa7). That workaround caused us to transform a pack without a
proper ArgumentPackSubstitutionIndex, leading to crashes when
transforming the pattern.
It turns out that profiling the pattern for partially substituted
SizeOfPackExprs is unnecessary because their transformed forms are also
profiled within the partial arguments.
Fixes https://github.com/llvm/llvm-project/issues/124161
Commit: 092372da15e5165be14cdbb7cac3cf4976fd82d0
https://github.com/llvm/llvm-project/commit/092372da15e5165be14cdbb7cac3cf4976fd82d0
Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
M mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
M mlir/lib/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.cpp
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
M mlir/lib/Dialect/Utils/StaticValueUtils.cpp
M mlir/lib/Interfaces/InferTypeOpInterface.cpp
M mlir/test/Dialect/Linalg/resolve-shaped-type-result-dims.mlir
M mlir/test/Dialect/Tensor/fold-empty-op.mlir
Log Message:
-----------
[mlir][Tensor] Rework `ReifyRankedShapedTypeInterface` implementation for `tensor.expand_shape` op. (#113501)
The op carries the output-shape directly. This can be used directly.
Also adds a method to get the shape as a `SmallVector<OpFoldResult>`.
Signed-off-by: MaheshRavishankar <mahesh.ravishankar at gmail.com>
Commit: 62340ff8d844fc02cd1bd34ff6235f1f0e1e464f
https://github.com/llvm/llvm-project/commit/62340ff8d844fc02cd1bd34ff6235f1f0e1e464f
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOPCInstructions.td
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_t16_err.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_t16_promote.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_t16_err.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_t16_promote.s
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx_dpp8.txt
Log Message:
-----------
[AMDGPU][True16][MC] true16 for v_cmpx_xx_f16 (#123419)
A bulk commit of true16 support for v_cmpx_xx_f16 instructions
including:
v_cmpx_f_f16
v_cmpx_le_f16
v_cmpx_gt_f16
v_cmpx_lg_f16
v_cmpx_ge_f16
v_cmpx_o_f16
v_cmpx_u_f16
v_cmpx_nge_f16
v_cmpx_nlg_f16
v_cmpx_ngt_f16
v_cmpx_nle_f16
v_cmpx_neq_f16
v_cmpx_nlt_f16
v_cmpx_t_f16
v_cmpx_eq_f16 is not in this patch and will be added in the following
patch
Commit: 5aafc6d58f3405662902cee006be11e599801b88
https://github.com/llvm/llvm-project/commit/5aafc6d58f3405662902cee006be11e599801b88
Author: Christian Clauss <cclauss at me.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M polly/docs/Architecture.rst
M polly/docs/doxygen.cfg.in
M polly/include/polly/CodeGen/RuntimeDebugBuilder.h
M polly/include/polly/DependenceInfo.h
M polly/include/polly/ScopInfo.h
M polly/include/polly/Support/SCEVAffinator.h
M polly/include/polly/Support/ScopHelper.h
M polly/lib/Analysis/ScopBuilder.cpp
M polly/lib/Analysis/ScopDetectionDiagnostic.cpp
M polly/lib/CodeGen/IslNodeBuilder.cpp
M polly/lib/CodeGen/Utils.cpp
M polly/lib/Support/SCEVAffinator.cpp
M polly/lib/Support/ScopHelper.cpp
M polly/lib/Transform/DeLICM.cpp
M polly/lib/Transform/ManualOptimizer.cpp
M polly/lib/Transform/MatmulOptimizer.cpp
M polly/lib/Transform/ScheduleOptimizer.cpp
M polly/lib/Transform/ScheduleTreeTransform.cpp
M polly/test/CodeGen/LoopParallelMD/do_not_mutate_debug_info.ll
M polly/test/CodeGen/multiple-codegens.ll
M polly/test/CodeGen/multiple-scops-in-a-row.ll
M polly/test/CodeGen/reduction_2.ll
M polly/test/CodeGen/scalar-store-from-same-bb.ll
M polly/test/CodeGen/test-invalid-operands-for-select.ll
M polly/test/DeLICM/load-in-cond-inf-loop.ll
M polly/test/DeLICM/pr41656.ll
M polly/test/DeLICM/pr48783.ll
M polly/test/DeLICM/reject_outofquota.ll
M polly/test/IstAstInfo/reduction_modulo_schedule_multiple_dimensions_2.ll
M polly/test/IstAstInfo/reduction_modulo_schedule_multiple_dimensions_3.ll
M polly/test/IstAstInfo/reduction_modulo_schedule_multiple_dimensions_4.ll
M polly/test/ScheduleOptimizer/pattern-matching-based-opts-after-delicm.ll
M polly/test/ScheduleOptimizer/pattern-matching-based-opts-after-delicm_2.ll
M polly/test/ScopDetect/scev_remove_max.ll
M polly/test/ScopDetectionDiagnostics/ReportLoopHasNoExit.ll
M polly/test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
M polly/test/ScopInfo/allow-all-parameters-dereferencable.ll
M polly/test/ScopInfo/invariant_same_loop_bound_multiple_times-1.ll
M polly/test/ScopInfo/invariant_same_loop_bound_multiple_times-2.ll
M polly/test/ScopInfo/multidim_gep_pointercast2.ll
M polly/test/ScopInfo/multidim_many_references.ll
M polly/test/ScopInfo/scalar_to_array.ll
M polly/test/ScopInfo/zero_ext_of_truncate.ll
M polly/test/create_ll.sh
M polly/utils/pyscop/isl.py
M polly/www/changelog.html
M polly/www/get_started.html
M polly/www/index.html
M polly/www/projects.html
M polly/www/publications.html
Log Message:
-----------
[Polly] Fix typos discovered by codespell (#124545)
Patch created using the following command line:
```bash
codespell polly --skip="*.pdf,polly/lib/External/*" --write-changes \
--ignore-words-list=couter,createor,distribues,doble,identty,indention,indx,olt,ore,padd,sais,te,theses
```
Commit: e14962a39cc6476bebba65e5639b74b0318c7fc3
https://github.com/llvm/llvm-project/commit/e14962a39cc6476bebba65e5639b74b0318c7fc3
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CodeGenFunction.h
M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
Log Message:
-----------
[NFC][DebugInfo] Use iterators for instruction insertion in more places (#124291)
As part of the "RemoveDIs" work to eliminate debug intrinsics, we're
replacing methods that use Instruction*'s as positions with iterators.
This patch changes some more complex call-sites, those crossing file
boundaries and where I've had to perform some minor rewrites.
Commit: 212f344b84b400c0a9dedfa3c1ec6af9d9d30223
https://github.com/llvm/llvm-project/commit/212f344b84b400c0a9dedfa3c1ec6af9d9d30223
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/test/Transforms/InstCombine/add2.ll
Log Message:
-----------
[InstCombine] Handle constant expression result in tryFactorization()
If IRBuilder folds the result to a constant expression, don't try
to set nowrap flags on it.
Fixes https://github.com/llvm/llvm-project/issues/124526.
Commit: 559287575b5b747cfc01652adb647ee5516aa626
https://github.com/llvm/llvm-project/commit/559287575b5b747cfc01652adb647ee5516aa626
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalMerge.cpp
Log Message:
-----------
[GlobalMerge][NFC] Reland "Skip sorting by profitability when it is not needed"
Relands #124146 but without changes to the sorting algorithm and the following
reverse.
Commit: 1eb4e9f88b827f9adbcdd5f385f75406aa604812
https://github.com/llvm/llvm-project/commit/1eb4e9f88b827f9adbcdd5f385f75406aa604812
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] arm build fix (#124562)
Commit: 20f72d19fc58a394df765d407d9008a381e02b91
https://github.com/llvm/llvm-project/commit/20f72d19fc58a394df765d407d9008a381e02b91
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/runtime/exceptions.cpp
Log Message:
-----------
Revert "[flang] arm build fix" (#124569)
Reverts llvm/llvm-project#124562
Commit: 3322ba493ad7d203cdd6c545b7d9d9589c44357f
https://github.com/llvm/llvm-project/commit/3322ba493ad7d203cdd6c545b7d9d9589c44357f
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Tools/TargetSetup.h
M flang/runtime/exceptions.cpp
Log Message:
-----------
Revert "[flang] IEEE underflow control for Arm" (#124570)
Reverts llvm/llvm-project#124170
Commit: 1e2d5f7943d09d658a5fbacf661d2c6c361f857c
https://github.com/llvm/llvm-project/commit/1e2d5f7943d09d658a5fbacf661d2c6c361f857c
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Optimizer/OpenMP/GenericLoopConversion.cpp
M flang/test/Transforms/generic-loop-rewriting-todo.mlir
M flang/test/Transforms/generic-loop-rewriting.mlir
Log Message:
-----------
[NFC][mlir][OpenMP] Remove mentions of `target` from generic `loop` rewrite (#124528)
This removes mentions of `target` from the generic `loop` rewrite pass
since there is not need for it anyway. It is enough to detect `loop`'s
nesting within `teams` or `parallel` directives.
Commit: e492083f55d98144ba9a049450cb429d7fd52510
https://github.com/llvm/llvm-project/commit/e492083f55d98144ba9a049450cb429d7fd52510
Author: Scott Manley <rscottmanley at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/test/Dialect/OpenACC/ops.mlir
Log Message:
-----------
[OpenACC] Add AutomaticAllocationScope to recipe ops (#124337)
The recipe operations should have AutomaticAllocationScope so recipes can
be converted using operators that require parent ops to have
AutomaticAllocationScope
Commit: f95f10c7e65b9abd9b4e2ed71190d08565952ec0
https://github.com/llvm/llvm-project/commit/f95f10c7e65b9abd9b4e2ed71190d08565952ec0
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
A llvm/test/CodeGen/AArch64/zeroing-forms-urecpe-ursqrte-sqabs-sqneg.ll
Log Message:
-----------
[AArch64] Generate zeroing forms of certain SVE2.2 instructions (9/11) (#116835)
SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.
This patch adds support for emitting the zeroing forms of certain
`URECPE`, `URSQRTE`, `SQABS` and `SQNEG` instructions.
Commit: cb6f021af2354761357684ffa26ebbe718615244
https://github.com/llvm/llvm-project/commit/cb6f021af2354761357684ffa26ebbe718615244
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll
M llvm/test/CodeGen/RISCV/rvv/vl-opt.ll
Log Message:
-----------
[RISCV][VLOPT] Remove unnecessary passthru restriction (#124549)
We currently check for passthrus in two places, on the instruction to
reduce in isCandidate, and on the users in checkUsers.
We cannot reduce the VL if an instruction has a user that's a passthru,
because the user will read elements past VL in the tail.
However it's fine to reduce an instruction if it itself contains a
non-undef passthru. Since the VL can only be reduced, not increased, the
previous tail will always remain the same.
Commit: 178f47143a3b3c547df6d1f07e9707792f5d9fd4
https://github.com/llvm/llvm-project/commit/178f47143a3b3c547df6d1f07e9707792f5d9fd4
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/reduction.ll
M llvm/test/Transforms/PhaseOrdering/X86/hadd.ll
M llvm/test/Transforms/PhaseOrdering/X86/hsub.ll
M llvm/test/Transforms/VectorCombine/X86/extract-binop-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/X86/extract-binop.ll
M llvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll
Log Message:
-----------
[CostModel][X86] getShuffleCost - shuffles with only one defined element are always cheap (#124412)
If we're just moving a single element around inside a 128-bit lane (probably as an alternative to extracting it), we can assume this is cheap as a single PSRLDQ/PSHUFD/SHUFPS.
I've got the horrid feeling we're moving towards matching all SSE shuffle patterns inside the cost model, but I'm going to do my best to avoid this for now :|
Commit: 16e9601e193e026d7f3f27e87f0adb81acf5969b
https://github.com/llvm/llvm-project/commit/16e9601e193e026d7f3f27e87f0adb81acf5969b
Author: ssijaric-nv <ssijaric at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
M flang/test/Fir/boxproc.fir
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/TargetParser/Triple.cpp
Log Message:
-----------
[Flang] Adjust the trampoline size for AArch64 and PPC (#118678)
Set the trampoline size to match that in compiler-rt/lib/builtins/trampoline_setup.c
and AArch64 and PPC lowering.
Commit: 7f24b9acd189e12e1289d47f7dc6fe0dfffbcbcc
https://github.com/llvm/llvm-project/commit/7f24b9acd189e12e1289d47f7dc6fe0dfffbcbcc
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M .ci/metrics/metrics.py
Log Message:
-----------
[CI] Support multiple jobs in metrics container (#124457)
This patch makes it so that the metrics script can support multiple jobs
in a single workflow. This is needed so that we do not crash on an
assertion now that the windows job has been enabled within the premerge
workflow.
Commit: ad2b2aa50bc8516970387420097b1fe2b0613c2c
https://github.com/llvm/llvm-project/commit/ad2b2aa50bc8516970387420097b1fe2b0613c2c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/test/Transforms/PhaseOrdering/vector-trunc-inseltpoison.ll
M llvm/test/Transforms/PhaseOrdering/vector-trunc.ll
Log Message:
-----------
[PhaseOrdering] vector-trunc.ll - use -passes="default<O2>" to allow DOS to correctly evaluate the RUN command
Necessary for running update_test_checks.py on windows
Commit: 1bb784a7489e901fd46ce9b77cdc0ab8840a4f3d
https://github.com/llvm/llvm-project/commit/1bb784a7489e901fd46ce9b77cdc0ab8840a4f3d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-minimal.ll
Log Message:
-----------
[LowerMatrixIntrinsics] multiply-minimal.ll - use -passes="..." to allow DOS to correctly evaluate the RUN command
Necessary for running update_test_checks.py on windows
Commit: 749443a307e8e47a25a5552cbeb27f69845e6ce8
https://github.com/llvm/llvm-project/commit/749443a307e8e47a25a5552cbeb27f69845e6ce8
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/SandboxIR/Instruction.cpp
M llvm/lib/SandboxIR/Tracker.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[NFC][DebugInfo] Mop up final instruction-insertion call sites (#124289)
These are the final places in the monorepo that make use of instruction
insertion for methods like insertBefore and moveBefore. As part of the
RemoveDIs project, instead use iterators for insertion. (see:
https://discourse.llvm.org/t/rfc-instruction-api-changes-needed-to-eliminate-debug-intrinsics-from-ir/68939
).
Commit: 09a29fcc8dbbb2cc1c0fdf26ef4f8fafab4e03d9
https://github.com/llvm/llvm-project/commit/09a29fcc8dbbb2cc1c0fdf26ef4f8fafab4e03d9
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
Log Message:
-----------
[VPlan] Don't collect live-ins in collectUsersInExitBlocks. (NFC) (#123819)
Live-ins don't need to be handled, other than adding to the exit phi
recipe. Do that early and assert that otherwise the exit value is
defined in the vector loop region.
This should enable simply skipping other exit values that do not need
further fixing, e.g. if handling the exit value from the early exit
directly in handleUncountableEarlyExit.
PR: https://github.com/llvm/llvm-project/pull/123819
Commit: 5f5cdf40382f06a8c417c42ec591f97aa76eeb67
https://github.com/llvm/llvm-project/commit/5f5cdf40382f06a8c417c42ec591f97aa76eeb67
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Log Message:
-----------
[lldb][TypeSystemClang] CreateParameterDeclarations: don't specify SmallVector size
This was causing Ubuntu buildbot failures:
```
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp: In member function ‘llvm::SmallVector<clang::ParmVarDecl*> lldb_private::TypeSystemClang::CreateParameterDeclarations(clang::FunctionDecl*, const clang::FunctionProtoType&, const llvm::SmallVector<llvm::StringRef>&)’:
/home/buildbot/buildbot-root/cross-project-tests-sie-ubuntu-dwarf5/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp:7728:10: error: could not convert ‘params’ from ‘SmallVector<[...],12>’ to ‘SmallVector<[...],6>’
7728 | return params;
| ^~~~~~
| |
| SmallVector<[...],12>
```
It's unclear why 12 was chosen here. Given we don't set the
size in other places where we parse parameters, this patch
just removes the constant.
Commit: 81d18ad86419fc612c7071e888d11aa923eaeb8a
https://github.com/llvm/llvm-project/commit/81d18ad86419fc612c7071e888d11aa923eaeb8a
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
M llvm/include/llvm/IR/BasicBlock.h
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
M llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/lib/Transforms/IPO/IROutliner.cpp
M llvm/lib/Transforms/IPO/SCCP.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
M llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
M llvm/lib/Transforms/Utils/IRNormalizer.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
Log Message:
-----------
[NFC][DebugInfo] Make some block-start-position methods return iterators (#124287)
As part of the "RemoveDIs" work to eliminate debug intrinsics, we're
replacing methods that use Instruction*'s as positions with iterators. A
number of these (such as getFirstNonPHIOrDbg) are sufficiently
infrequently used that we can just replace the pointer-returning version
with an iterator-returning version, hopefully without much/any
disruption.
Thus this patch has getFirstNonPHIOrDbg and
getFirstNonPHIOrDbgOrLifetime return an iterator, and updates all
call-sites. There are no concerns about the iterators returned being
converted to Instruction*'s and losing the debug-info bit: because the
methods skip debug intrinsics, the iterator head bit is always false
anyway.
Commit: 6ff86f2c0a5b58b07921ee895f0d16d8cd3d4015
https://github.com/llvm/llvm-project/commit/6ff86f2c0a5b58b07921ee895f0d16d8cd3d4015
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/amdgpu-toolchain.c
Log Message:
-----------
[AMDGPU] Use the AMDGPUToolChain when targeting C/C++ directly (#99687)
Summary:
The `getToolChain` pass uses the triple to determine which toolchain to
create. Currently the `amdgcn-amd-amdhsa` triple maps to the
`ROCmToolChain` which uses things expected to be provided by `ROCm`.
This is neded for OpenCL, but directly targeting C++ does not want this
since it's primarily being used for creating GPU runtime code. As far as
I know I'm the only user of this, so this shouldn't change anything.
Unfortunately, there's no good logic for detercting this, so I simply
checked ahead of time if the input is either `foo.cl` or `-x cl foo.c`
to choose between the two. This allows us to use the AMDGPU target
normally, as otherwise it will error without passing `-nogpulib`.
Commit: 38b3f45a811282511c014cffd09a8ae2a96435ba
https://github.com/llvm/llvm-project/commit/38b3f45a811282511c014cffd09a8ae2a96435ba
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M offload/plugins-nextgen/common/src/PluginInterface.cpp
Log Message:
-----------
[Offload] Fix offload-info interface
Summary:
The offload info tool doesn't initialize things properly, just check
this first instead.
Commit: c3a0fcc982061f9a69cfc1199dc91bd1fc3158c0
https://github.com/llvm/llvm-project/commit/c3a0fcc982061f9a69cfc1199dc91bd1fc3158c0
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libclc/clc/lib/generic/relational/clc_all.cl
M libclc/clc/lib/generic/relational/clc_any.cl
Log Message:
-----------
[libclc] Optimize CLC vector any/all builtins (#124568)
By using the vector reduction buitins we can avoid scalarization.
Targets that don't support vector reductions will scalarize later on
anyway. The vector reduction builtins should be well-enough supported by
the middle-end to be a generic solution.
This produces conceptually equivalent code: all vector elements are
OR'd/AND'd together and the final scalar is bit-shifted and masked to
produce the final result.
The 'normalize' builtin uses 'all' so its code has similarly improved in
places.
Commit: 038b42ba5b47b1aa2d47ef5706a713f6bfbbc37c
https://github.com/llvm/llvm-project/commit/038b42ba5b47b1aa2d47ef5706a713f6bfbbc37c
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/docs/ModFiles.md
M flang/include/flang/Common/Fortran-features.h
M flang/include/flang/Evaluate/type.h
M flang/include/flang/Semantics/semantics.h
M flang/include/flang/Semantics/symbol.h
M flang/lib/Evaluate/type.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/symbol.cpp
M flang/lib/Semantics/tools.cpp
A flang/test/Semantics/modfile71.F90
Log Message:
-----------
[flang] Safer hermetic module file reading (#121002)
When a hermetic module file is read, use a new scope to hold its
dependent modules so that they don't conflict with any modules in the
global scope.
Commit: 34b139594aa20fe712bc2ad68544632b3e4d8512
https://github.com/llvm/llvm-project/commit/34b139594aa20fe712bc2ad68544632b3e4d8512
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Coroutines/CoroInstr.h
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
Log Message:
-----------
[NFC][DebugInfo] Switch more call-sites to using iterator-insertion (#124283)
To finalise the "RemoveDIs" work removing debug intrinsics, we're
updating call sites that insert instructions to use iterators instead.
This set of changes are those where it's not immediately obvious that
just calling getIterator to fetch an iterator is correct, and one or two
places where more than one line needs to change.
Overall the same rule holds though: iterators generated for the start of
a block such as getFirstNonPHIIt need to be passed into insert/move
methods without being unwrapped/rewrapped, everything else can use
getIterator.
Commit: 512b44d5e1534ef60b5db7a99818e1021cf6064c
https://github.com/llvm/llvm-project/commit/512b44d5e1534ef60b5db7a99818e1021cf6064c
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Evaluate/intrinsics.cpp
M flang/test/Semantics/atomic01.f90
M flang/test/Semantics/atomic02.f90
M flang/test/Semantics/atomic03.f90
M flang/test/Semantics/atomic04.f90
M flang/test/Semantics/atomic05.f90
M flang/test/Semantics/atomic06.f90
M flang/test/Semantics/atomic07.f90
M flang/test/Semantics/atomic08.f90
M flang/test/Semantics/atomic09.f90
M flang/test/Semantics/atomic10.f90
M flang/test/Semantics/atomic11.f90
Log Message:
-----------
[flang] Define ATOMIC_ADD as an intrinsic procedure (#122993)
This one appears to have been omitted when other ATOMIC_xxx intrinsic
procedures were defined. There's already tests for it, but they
apparently work even when ATOMIC_ADD must be interpreted as an external
procedure with an implicit interface. Extend the tests with INTRINSIC
NONE(EXTERNAL, TYPE) statements to ensure that they require the
intrinsic interpretation.
Commit: 2625510ef8094457413661ef0ce2651844f584d2
https://github.com/llvm/llvm-project/commit/2625510ef8094457413661ef0ce2651844f584d2
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Semantics/tools.h
M flang/lib/Semantics/check-coarray.cpp
M flang/lib/Semantics/check-declarations.cpp
M flang/lib/Semantics/tools.cpp
M flang/test/Semantics/call04.f90
M flang/test/Semantics/critical02.f90
M flang/test/Semantics/doconcurrent01.f90
M flang/test/Semantics/event01b.f90
M flang/test/Semantics/event02b.f90
M flang/test/Semantics/sync-stat-list.f90
Log Message:
-----------
[flang] Refine EVENT_TYPE/LOCK_TYPE usage checks (#123244)
The event variable in an EVENT POST/WAIT statement can be a coarray
reference, and need not be an entire coarray.
Variables and potential subobject components with EVENT_TYPE/LOCK_TYPE
must be coarrays, unless they are potential subobjects nested within
coarrays or pointers.
Commit: 4e231014c1980d64812a0322223a4759798d1be3
https://github.com/llvm/llvm-project/commit/4e231014c1980d64812a0322223a4759798d1be3
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
A llvm/test/CodeGen/AArch64/zeroing-forms-rev.ll
Log Message:
-----------
[AArch64] Generate zeroing forms of certain SVE2.2 instructions (10/11) (#116836)
SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.
This patch adds support for emitting the zeroing forms of certain
`RBIT`, `REVB`, `REVH`, `REVW`, and `REVD` instructions.
Commit: 73f9034036c942058827877a657d72071dd766e7
https://github.com/llvm/llvm-project/commit/73f9034036c942058827877a657d72071dd766e7
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Evaluate/fold-implementation.h
A flang/test/Evaluate/fold-arr-char-component.f90
Log Message:
-----------
[flang] Fix failure to fold character array (#123418)
When a character component reference is applied to a constant array of
derived type, ensure that the length of the resulting character array is
properly defined.
Fixes https://github.com/llvm/llvm-project/issues/123362.
Commit: 73db9ee1e87b4cfccbc9d67d2b47d9476f92413f
https://github.com/llvm/llvm-project/commit/73db9ee1e87b4cfccbc9d67d2b47d9476f92413f
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaDecl.cpp
M clang/test/Sema/attr-cpuspecific.c
M clang/test/Sema/attr-target-mv.c
M clang/test/Sema/attr-target-version.c
Log Message:
-----------
[clang][Sema][FMV] Add a note to the 'cannot become multiversioned' diagnostic (#124364)
... pointing out the previous declaration.
Commit: 210e675cfd7be3d7e0d93c29368acd27b51f9a17
https://github.com/llvm/llvm-project/commit/210e675cfd7be3d7e0d93c29368acd27b51f9a17
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Semantics/resolve-labels.cpp
A flang/test/Semantics/label19.f90
Log Message:
-----------
[flang] Accept CHANGE TEAM/END TEAM as branch target (#123822)
It is valid to jump to a CHANGE TEAM statement from anywhere in the
containing executable part, and valid to jump to an END TEAM statement
from within the construct.
Commit: b16c989697208795f6428432f9ab05c5535b6085
https://github.com/llvm/llvm-project/commit/b16c989697208795f6428432f9ab05c5535b6085
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Semantics/check-call.cpp
M flang/test/Semantics/call13.f90
Log Message:
-----------
[flang] Fix check for coarray actual passed to implicit interface (#123836)
The check for a coarray actual argument being passed to a procedure with
an implicit interface was incorrect, yielding false positives for
coindexed objects. Fix.
Commit: 3ac00784ac3cd8b435c0c6be36f81f786ca5e489
https://github.com/llvm/llvm-project/commit/3ac00784ac3cd8b435c0c6be36f81f786ca5e489
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/bug123538.f90
Log Message:
-----------
[flang] Fix crash on erroneous program (#123843)
Catch and report multiple initializations of the same procedure pointer
rather than assuming that control wouldn't reach a given point in name
resolution in that case.
Fixes https://github.com/llvm/llvm-project/issues/123538.
Commit: f5ddb1012de1c7c7c958aa288932caead9607b07
https://github.com/llvm/llvm-project/commit/f5ddb1012de1c7c7c958aa288932caead9607b07
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
A flang/test/Semantics/bug123534.f90
Log Message:
-----------
[flang] Fix crash in module file generation (#123859)
An assertion in module file generation didn't allow for a case that has
arisen in a test; remove it, extend commentary, and add a regression
test.
Fixes https://github.com/llvm/llvm-project/issues/123534.
Commit: ec6b2c63d93d8f8edeafcc7330d0b2349463d73d
https://github.com/llvm/llvm-project/commit/ec6b2c63d93d8f8edeafcc7330d0b2349463d73d
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Evaluate/fold-implementation.h
A flang/test/Evaluate/bug123766.f90
Log Message:
-----------
[flang] Fold character array constructor with unknown length (#123983)
When a character array constructor does not have an explicit type with a
constant length, the compiler can still fold it if all of its elements
are constants. These array constructors will have been wrapped up in the
internal %SET_LENGTH operation, which will determine the final length of
the folded value, so use the maximum length of the constant elements as
the length of the folded array constructor.
Fixes https://github.com/llvm/llvm-project/issues/123766.
Commit: d1d952c206efc3a651270c69331b180330ac3efc
https://github.com/llvm/llvm-project/commit/d1d952c206efc3a651270c69331b180330ac3efc
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Common/default-kinds.cpp
M flang/lib/Frontend/CompilerInstance.cpp
M flang/test/Semantics/kinds04_q10.f90
Log Message:
-----------
[flang] Interpret 'Q' exponent letter as kind=16 even on x86 (#124158)
The compiler was interpreting 'Q' as an exponent letter in a literal
real constant as meaning real(kind=10) on x86-64, which is the legacy
80387 80-bit extended precision floating-point type. It turns out that
'Q' means kind=16 with all other compilers, even for x86-64 targets.
Change to conform.
Commit: c596aae47ad8cfaee0fe4af3c104cb89a1125ac5
https://github.com/llvm/llvm-project/commit/c596aae47ad8cfaee0fe4af3c104cb89a1125ac5
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Semantics/check-declarations.cpp
M flang/test/Semantics/bind-c06.f90
Log Message:
-----------
[flang] Catch assumed-length interoperability error (#124179)
An assumed-length character dummy argument is interoperable only if it
is neither a pointer nor allocatable.
Commit: b0fab14e9ca24a9160581ea26c19661c6f3a053f
https://github.com/llvm/llvm-project/commit/b0fab14e9ca24a9160581ea26c19661c6f3a053f
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Semantics/check-call.cpp
M flang/test/Semantics/call38.f90
Log Message:
-----------
[flang] Fix spurious error in character sequence association (#124204)
When an allocatable or pointer was being associated as a storage
sequence with a dummy argument, the checks were using the actual storage
size of the allocatable or pointer's descriptor, not the size of the
storage that it references.
Fixes https://github.com/llvm/llvm-project/issues/123807.
Commit: 873426bea3dd67d80dd10650e64e91c69796614f
https://github.com/llvm/llvm-project/commit/873426bea3dd67d80dd10650e64e91c69796614f
Author: John Harrison <harjohn at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/tools/lldb-dap/CMakeLists.txt
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAP.h
M lldb/tools/lldb-dap/IOStream.h
M lldb/tools/lldb-dap/OutputRedirector.cpp
M lldb/tools/lldb-dap/OutputRedirector.h
M lldb/tools/lldb-dap/lldb-dap.cpp
Log Message:
-----------
[lldb-dap] Ensure the IO forwarding threads are managed by the DAP object lifecycle. (#122783)
This moves the ownership of the threads that forward stdout/stderr to
the DAP object itself to ensure that the threads are joined and that the
forwarding is cleaned up when the DAP connection is disconnected.
This is part of a larger refactor to allow lldb-dap to run in a
listening mode and accept multiple connections.
This reverts the previous revert and now that the underlying Windows
issue was fixed by 3ea2b546a8d17014d3ecf05356ecfaadf26ed846.
Commit: fee393e4ea2b53139ee7924e3aa818433d70cfc7
https://github.com/llvm/llvm-project/commit/fee393e4ea2b53139ee7924e3aa818433d70cfc7
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/runtime/io-api.cpp
Log Message:
-----------
[flang][runtime] Don't crash on ASYNCHRONOUS='NO' in child I/O (#124208)
When ASYNCHRONOUS='NO' appears in a data transfer statement control item
list, don't crash if it isn't appropriate for the kind of I/O under way
(such as child I/O).
Fixes https://github.com/llvm/llvm-project/issues/124135.
Commit: e252c402104bd7c23341748663e1a182451c2ec8
https://github.com/llvm/llvm-project/commit/e252c402104bd7c23341748663e1a182451c2ec8
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Evaluate/shape.h
M flang/lib/Evaluate/shape.cpp
A flang/test/Evaluate/bug124191.f90
Log Message:
-----------
[flang] Fix spurious error due to bad expression shape calculation (#124323)
GetShape() needed to be called with a FoldingContext in order to
properly construct an extent expression for the shape of an array
constructor whose elements (nested in an implied DO loop) were not
scalars.
Fixes https://github.com/llvm/llvm-project/issues/124191.
Commit: 08c364280a790cb2a80fff86beb5ea69782ce667
https://github.com/llvm/llvm-project/commit/08c364280a790cb2a80fff86beb5ea69782ce667
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Evaluate/tools.cpp
M flang/test/Semantics/complex01.f90
Log Message:
-----------
[flang] Improve error message on bad complex literal. (#124331)
A complex literal constant can have one BOZ component, since the type
and value of the literal can be determined by converting the BOZ value
to the type of the other component. But a complex literal constant with
two BOZ components doesn't have a well-defined type. The error message
was confusing in the case; emit a better one.
Fixes https://github.com/llvm/llvm-project/issues/124201.
Commit: b80965efc1ea3f30cbdac090d869b1000fca5d2b
https://github.com/llvm/llvm-project/commit/b80965efc1ea3f30cbdac090d869b1000fca5d2b
Author: Josh Stone <jistone at redhat.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Support/MemAlloc.cpp
Log Message:
-----------
[Support] Report OOM from `allocate_buffer` (#85449)
Previously, it called `::operator new` which may throw `std::bad_alloc`,
regardless of whether LLVM itself was built with exception handling, and
this can cause safety issues if outside code has destructors that will
call back into LLVM. Now we use `::operator new(..., nothrow)` and call
`llvm::report_bad_alloc_error` when allocation fails, which will abort
when LLVM is built without exceptions.
Ref: https://github.com/llvm/llvm-project/issues/85281
Commit: e7de6036983641ccf0fb45afd3eb96ff962525aa
https://github.com/llvm/llvm-project/commit/e7de6036983641ccf0fb45afd3eb96ff962525aa
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] combineCMov - pull out repeated getValueType calls. NFC.
Commit: 44c9e46fce12badae8cd3f5bd53fe1c2b1248940
https://github.com/llvm/llvm-project/commit/44c9e46fce12badae8cd3f5bd53fe1c2b1248940
Author: Shubham Sandeep Rastogi <srastogi22 at apple.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MachineFunction.cpp
Log Message:
-----------
[InstrRef] Fix mismatch between LiveDebugValues and salvageCopySSA (#124233)
The LiveDebugValues pass and the instruction selector (which calls
salvageCopySSA) need to be consistent on what they consider a copy
instruction. With https://github.com/llvm/llvm-project/pull/75184, the
definition of what a copy instruction is was narrowed for AArch64 to
exclude a w->x ORR and treat it as a zero-extend rather than a copy
However, to make sure LiveDebugValues still treats a w->x ORR as a copy,
the new function, isCopyLikeInstr was created. We need to make sure that
salvageCopySSA also calls that function.
This patch addresses this mismatch.
Commit: 1e89355dadce13a162882b58a0e7f181669ba65f
https://github.com/llvm/llvm-project/commit/1e89355dadce13a162882b58a0e7f181669ba65f
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Treat `f<N | M>(a)` as template function call (#124438)
Fixes #123144.
Commit: 19f052443df05df373ef1c695055886db16de376
https://github.com/llvm/llvm-project/commit/19f052443df05df373ef1c695055886db16de376
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
Log Message:
-----------
[Clang] fix test on 32 bits target after 561132e (#124593)
Commit: 99bd2e3f123baf9a14acc9b31ee0f557288118a6
https://github.com/llvm/llvm-project/commit/99bd2e3f123baf9a14acc9b31ee0f557288118a6
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenFunction.h
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_cvt.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_cvt.c
M clang/utils/TableGen/NeonEmitter.cpp
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
A llvm/test/CodeGen/AArch64/neon-fp8-cvt.ll
Log Message:
-----------
[AArch64] Add Neon FP8 conversion intrinsics (#123612)
The patch adds the following intrinsics:
bfloat16x8_t vcvt1_bf16_mf8_fpm(mfloat8x8_t vn, fpm_t fpm)
bfloat16x8_t vcvt1_low_bf16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
bfloat16x8_t vcvt2_bf16_mf8_fpm(mfloat8x8_t vn, fpm_t fpm)
bfloat16x8_t vcvt2_low_bf16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
bfloat16x8_t vcvt1_high_bf16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
bfloat16x8_t vcvt2_high_bf16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
float16x8_t vcvt1_f16_mf8_fpm(mfloat8x8_t vn, fpm_t fpm)
float16x8_t vcvt1_low_f16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
float16x8_t vcvt2_f16_mf8_fpm(mfloat8x8_t vn, fpm_t fpm)
float16x8_t vcvt2_low_f16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
float16x8_t vcvt1_high_f16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
float16x8_t vcvt2_high_f16_mf8_fpm(mfloat8x16_t vn, fpm_t fpm)
mfloat8x8_t vcvt_mf8_f32_fpm(float32x4_t vn, float32x4_t vm, fpm_t fpm)
mfloat8x16_t vcvt_high_mf8_f32_fpm(mfloat8x8_t vd, float32x4_t vn,
float32x4_t vm, fpm_t fpm)
mfloat8x8_t vcvt_mf8_f16_fpm(float16x4_t vn, float16x4_t vm, fpm_t fpm)
mfloat8x16_t vcvtq_mf8_f16_fpm(float16x8_t vn, float16x8_t vm, fpm_t
fpm)
Co-Authored-By: Caroline Concatto <caroline.concatto at arm.com>
Commit: 658f8500c84fcdcfbf5470ae7b4f732ef4a3c32f
https://github.com/llvm/llvm-project/commit/658f8500c84fcdcfbf5470ae7b4f732ef4a3c32f
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Remove obsolete mlir-cpu-runner alias
Commit: 88cca8ea209bb034eaec6af09a0227fb8cc7303e
https://github.com/llvm/llvm-project/commit/88cca8ea209bb034eaec6af09a0227fb8cc7303e
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libcxx/include/__locale
M libcxx/include/__locale_dir/locale_base_api.h
M libcxx/include/__locale_dir/support/bsd_like.h
M libcxx/include/__locale_dir/support/fuchsia.h
M libcxx/include/__locale_dir/support/windows.h
M libcxx/src/iostream.cpp
M libcxx/src/locale.cpp
M libcxx/src/support/win32/locale_win32.cpp
Log Message:
-----------
[libc++] Add more missing bits to the locale base API (#122531)
This patch adds the following pieces to the locale base API:
- __setlocale (for std::setlocale)
- __lconv_t (for std::lconv)
- _LIBCPP_FOO_MASK and _LIBCPP_LC_ALL
This should be sufficient to implement all of the platform-agnostic
localization support in libc++ without relying directly on any public
API names from the C library. This makes it possible to port libc++ to
platforms that don't provide the usual locale APIs.
Commit: 7b1becd940cb93f8b63c9872e1af7431dea353d1
https://github.com/llvm/llvm-project/commit/7b1becd940cb93f8b63c9872e1af7431dea353d1
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
A libc/cmake/caches/gpu.cmake
M libc/docs/gpu/building.rst
Log Message:
-----------
[libc] Add CMake cache file for the GPU build (#124589)
Summary:
This introduces libc cache files and adds one for building the GPU
support. The cache files will set defaults for these arguments which can
be overridden if the user needs to. They also serve as documentation for
how the builid is expected to look.
Commit: 610e33a547751019ff514d34f95f72d58118249c
https://github.com/llvm/llvm-project/commit/610e33a547751019ff514d34f95f72d58118249c
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M polly/include/polly/CodeGen/IslExprBuilder.h
M polly/lib/CodeGen/IslExprBuilder.cpp
M polly/lib/CodeGen/IslNodeBuilder.cpp
Log Message:
-----------
[Polly] Ensure i1 preload condition
If the preload condition is a constant, ExprBuilder::create returns an
integer of the native integer while an i1 is expected. Cast the result
to i1 if that happens.
Fixes #123932
Commit: 1782168c527bbb9756c96a95f82397b5952d32b4
https://github.com/llvm/llvm-project/commit/1782168c527bbb9756c96a95f82397b5952d32b4
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
Log Message:
-----------
[X86] Fix a warning
This patch fixes:
llvm/lib/Target/X86/X86TargetTransformInfo.cpp:1583:47: error:
comparison of integers of different signs: 'size_t' (aka 'unsigned
long') and 'typename iterator_traits<const int *>::difference_type'
(aka 'long') [-Werror,-Wsign-compare]
Commit: 754b94638e8935e1c1ed6121e0037fdae8b3c63c
https://github.com/llvm/llvm-project/commit/754b94638e8935e1c1ed6121e0037fdae8b3c63c
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/test/ELF/archive-thin-missing-member.s
M lld/test/ELF/arm-thumb-thunk-v6m-xo.s
M lld/test/ELF/arm-thunk-section-too-large.s
M lld/test/ELF/arm-thunk-toolargesection.s
M lld/test/ELF/arm-v5-reloc-error.s
M lld/test/ELF/bad-archive.s
M lld/test/ELF/fatlto/fatlto.invalid.s
M lld/test/ELF/invalid-cie-reference.s
M lld/test/ELF/invalid/comdat-broken.test
M lld/test/ELF/invalid/data-encoding.test
M lld/test/ELF/invalid/dynamic-section-broken.test
M lld/test/ELF/invalid/invalid-elf.test
M lld/test/ELF/invalid/invalid-file-class.test
M lld/test/ELF/invalid/sht-group-wrong-section.test
M lld/test/ELF/invalid/sht-group.test
M lld/test/ELF/invalid/symtab-sh-info.s
M lld/test/ELF/invalid/verneed-shared.test
M lld/test/ELF/lto/bitcode-nodatalayout.ll
M lld/test/ELF/lto/bitcode-wrapper.ll
M lld/test/ELF/unsupported-emachine.test
M lld/test/lit.cfg.py
Log Message:
-----------
[lld] Support RUN_LLD_MAIN_TWICE for the ELF port (#124441)
This enables the LLD_IN_TEST=2 testing mode for
```
path/to/llvm-lit -sv --param RUN_LLD_MAIN_TWICE=1 lld/test/ELF
```
When `Fatal` is called, `RunSafely` will return false.
For the first invocation in LLD_IN_TEST=2 mode, `inTestOutputDisabled`
is true and lld will not write to stdout/stderr, making many tests fail.
(This essentially discourages `Fatal` calls in the source code.)
Add XFAIL: main-run-twice to these tests similar to
https://reviews.llvm.org/D112898 for Mach-O
```
comment="This test intentionally checks for fatal errors, and fatal errors aren't supported for testing when main is run twice."
xargs </tmp/0 sed -Ei "1s/(;|#|\/\/) REQUIRES: .*/\0\n\1 "$comment"\n\1 XFAIL: main-run-twice/;t;1s/^/# "$comment"\n# XFAIL: main-run-twice\n/"
```
Commit: 5d6d982df61d16b6d498e6d59dd91c059679d3d8
https://github.com/llvm/llvm-project/commit/5d6d982df61d16b6d498e6d59dd91c059679d3d8
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
A llvm/test/CodeGen/AArch64/zeroing-forms-ext.ll
Log Message:
-----------
[AArch64] Generate zeroing forms of certain SVE2.2 instructions (11/11) (#116837)
SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.
This patch adds support for emitting the zeroing forms of certain
`SXTB`, `UXTB`, `SXTH`, `UXTH`, `SXTW`, and `UXTW` instructions.
Commit: dc6411d3e1ab903750a4c80571ee0ebd7e26a62c
https://github.com/llvm/llvm-project/commit/dc6411d3e1ab903750a4c80571ee0ebd7e26a62c
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/AST/Decl.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124502)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect TemplateOrSpecialization to be nonnull.
Commit: 4075915ebdfc7b69381388c96781e6abfa5f4407
https://github.com/llvm/llvm-project/commit/4075915ebdfc7b69381388c96781e6abfa5f4407
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaDeclCXX.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124503)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect U.first to be nonnull.
Commit: 5d2434166787e36312f037538119d3820c5af5e6
https://github.com/llvm/llvm-project/commit/5d2434166787e36312f037538119d3820c5af5e6
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/MachO/ObjC.cpp
M lld/MachO/Writer.cpp
Log Message:
-----------
[lld] Migrate away from PointerUnion::dyn_cast (NFC) (#124504)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
This patch migrates uses of PointerUnion::dyn_cast to
dyn_cast_if_present (see the definition of PointerUnion::dyn_cast).
Note that we cannot use dyn_cast in any of the migrations in this
patch; placing
assert(!X.isNull());
just before any of dyn_cast_if_present in this patch triggers some
failure in check-lld.
Commit: e0c5a8553d62124c983e3d8bdc3ea31ed1ea0b96
https://github.com/llvm/llvm-project/commit/e0c5a8553d62124c983e3d8bdc3ea31ed1ea0b96
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Log Message:
-----------
[memprof] Migrate away from PointerUnion::dyn_cast (NFC) (#124505)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses cast
because we know which alternative to expect in the ternary expression.
Commit: 817e777296a508356f55d5e1a06cba714c0fe13b
https://github.com/llvm/llvm-project/commit/817e777296a508356f55d5e1a06cba714c0fe13b
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#124506)
Commit: 4e812756745e59e02dca12abaed50638b5eb273f
https://github.com/llvm/llvm-project/commit/4e812756745e59e02dca12abaed50638b5eb273f
Author: Meng Zhuo <mengzhuo1203 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/tsan/go/buildgo.sh
Log Message:
-----------
[tsan] Add support for linux/riscv64 in lib/tsan/go/buildgo.sh (#124557)
Commit: d1139b32d251c1e258abeb6556d5fff045d7ae12
https://github.com/llvm/llvm-project/commit/d1139b32d251c1e258abeb6556d5fff045d7ae12
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/test/CodeGen/AMDGPU/mad.u16.ll
Log Message:
-----------
[AMDGPU][True16][CodeGen] true16 codegen pats for v_mad_u16 (#124000)
true16 codegen pats for v_mad_u16 (mul+add)
Commit: e77d428e46d94e1be6e5f38205b01d3f528d5e3f
https://github.com/llvm/llvm-project/commit/e77d428e46d94e1be6e5f38205b01d3f528d5e3f
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
Log Message:
-----------
[AMDGPU] Do not remat instructions with PhysReg uses (#124366)
This blocks rematerialization during scheduling if the instruction has a
non accepted PhysReg use.
Currently, there aren't any checks like this in place, and we may create
invalid code: https://godbolt.org/z/xjPjdcorf
Commit: 1bcf44be4c6a01407d608cd7bd17571dc31dbcf5
https://github.com/llvm/llvm-project/commit/1bcf44be4c6a01407d608cd7bd17571dc31dbcf5
Author: Peter Rong <peterrong96 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/CMakeLists.txt
Log Message:
-----------
[MLOpt] Add tf_xla_runtime to LLVMDevelopmentExport (#124610)
We need to use tf on assert builds, thus requires it to be export as
well.
Signed-off-by: Peter Rong <PeterRong at meta.com>
Commit: 539b2e06542f7c099885533e4472e6fb3084aa96
https://github.com/llvm/llvm-project/commit/539b2e06542f7c099885533e4472e6fb3084aa96
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
M llvm/test/CodeGen/WebAssembly/exception.ll
Log Message:
-----------
[WebAssembly] Fix catch block type in wasm64 (#124381)
`try_table`'s `catch` or `catch_ref`'s target block's return type should
be `i64` and `(i64, exnref)` in case of wasm64.
Commit: aa34a6ab299027ac31929173287e42db0dbdb06b
https://github.com/llvm/llvm-project/commit/aa34a6ab299027ac31929173287e42db0dbdb06b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
M llvm/test/CodeGen/RISCV/machinelicm-address-pseudos.ll
M llvm/test/CodeGen/RISCV/macro-fusion-lui-addi.ll
Log Message:
-----------
[RISCV] Add register allocation hints for lui/auipc+addi fusion. (#123860)
Spotted the auipc case while looking at code for P550. I'm not sure this
is the right long term fix. We're still missing rematerialization
opportunities for these pairs so a pseudo might be better. That would
interfere with folding auipc+add into load/store addressing though.
Fixes #76779.
Commit: 2e5a5237daf82a657561c490845c406e13657311
https://github.com/llvm/llvm-project/commit/2e5a5237daf82a657561c490845c406e13657311
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
M flang/lib/Optimizer/Transforms/DebugTypeGenerator.h
M flang/test/Integration/debug-cyclic-derived-type-3.f90
Log Message:
-----------
[flang][debug] Avoid redundant debug data generation for derived types. (#124473)
Since https://github.com/llvm/llvm-project/pull/122770, we have seen
that compile time have become extremely slow for cyclic derived types.
In #122770, we made the criteria to cache a derived type very strict. As
a result, some types which are safe to cache were also being
re-generated every type they were required. This increased the compile
time and also the size of the debug info.
Please see the description of PR# 122770. We decided that when
processing `t1`, the type generated for `t2` and `t3` were not safe to
cached. But our algorithm also denied caching to `t1` which as top level
type was safe.
```
type t1
type(t2), pointer :: p1
end type
type t2
type(t3), pointer :: p2
end type
type t3
type(t1), pointer :: p3
end type
```
I have tinkered the check a bit so that top level type is always cached.
To detect a top level type, we use a depth counter that get incremented
before call to `convertRecordType` and decremented after it returns.
After this change, the following
[file](https://github.com/fujitsu/compiler-test-suite/blob/main/Fortran/0394/0394_0031.f90)
from Fujitsu get compiled around 40s which is same as it was before
#122770.
The smaller testcase present in issue #124049 takes less than half a
second. I also added check to make sure that duplicate entries of the
`DICompositeType` are not present in the IR.
Fixes #124049 and #123960.
Commit: 1e9b60cfa4316246f9fe325ec57daf185120d34e
https://github.com/llvm/llvm-project/commit/1e9b60cfa4316246f9fe325ec57daf185120d34e
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Semantics/check-call.cpp
M flang/test/Semantics/event_query.f90
Log Message:
-----------
[flang] Recognize and check EVENT_QUERY (#123429)
Recognize the intrinsic subroutine EVENT_QUERY and enforce semantic
requirements on calls to it.
Commit: d732c86c928271cf3a829d95a1fcc560894ab8e4
https://github.com/llvm/llvm-project/commit/d732c86c928271cf3a829d95a1fcc560894ab8e4
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Evaluate/characteristics.h
M flang/lib/Evaluate/characteristics.cpp
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Lower/CallInterface.cpp
M flang/lib/Semantics/check-call.cpp
M flang/test/Semantics/call08.f90
Log Message:
-----------
[flang] Don't take corank from actual intrinsic argument (#124029)
When constructing the characteristics of a particular reference to an
intrinsic procedure that was passed a non-coindexed reference to local
coarray data as an actual argument, don't add the corank of the actual
argument to those characteristics.
Also clean up the TypeAndShape characteristics class a little; the
Attr::Coarray is redundant since the corank() accessor can be used to
the same effect.
Commit: 08a18efc664a85b4db8ca46ac986ec2d154ae433
https://github.com/llvm/llvm-project/commit/08a18efc664a85b4db8ca46ac986ec2d154ae433
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/20.rst
M libcxx/docs/Status/Cxx23Papers.csv
Log Message:
-----------
[libc++][doc] Update the release notes for LLVM 20. (#124403)
This is a preparation for the upcoming LLVM 20 release.
Commit: c4c76eabb88f8ee5b92fa9a84452875b0cb67d0d
https://github.com/llvm/llvm-project/commit/c4c76eabb88f8ee5b92fa9a84452875b0cb67d0d
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Tools/TargetSetup.h
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] IEEE underflow control for Arm (#124617)
Update IEEE_SUPPORT_UNDERFLOW_CONTROL, IEEE_GET_UNDERFLOW_MODE, and
IEEE_SET_UNDERFLOW_MODE code for Arm.
Commit: a85b2dc45a5f1312d6ee5e2522c24e81a086bf60
https://github.com/llvm/llvm-project/commit/a85b2dc45a5f1312d6ee5e2522c24e81a086bf60
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/AST/ASTLambda.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
Log Message:
-----------
[Clang] only inherit the parent eval context inside of lambdas (#124426)
As we create defaul constructors lazily, we should not inherit from the
parent evaluation context.
However, we need to make an exception for lambdas (in particular their
conversion operators, which are also implicitly defined).
As a drive-by, we introduce a generic way to query whether a function is
a member of a lambda.
This fixes a regression introduced by baf6bd3.
Fixes #118000
Commit: 285009f202ca8bfcc6b607eba0e919867559e725
https://github.com/llvm/llvm-project/commit/285009f202ca8bfcc6b607eba0e919867559e725
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGObjCRuntime.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
Log Message:
-----------
[NFC][DebugInfo] Rewrite more call-sites to insert with iterators (#124288)
As part of the "RemoveDIs" work to eliminate debug intrinsics, we're
replacing methods that use Instruction*'s as positions with iterators. The
call-sites updated in this patch are those where the dyn_cast_or_null cast
utility doesn't compose well with iterator insertion. It can distinguish
between nullptr and a "present" (non-null) Instruction pointer, but not
between a legal and illegal instruction iterator. This can lead to
end-iterator dereferences and thus crashes.
We can improve this in the future (as parent-pointers can now be accessed
from ilist nodes), but for the moment, add explicit tests for end()
iterators at the five call sites affected by this.
Commit: bd5d361c059814435bab24189e79e01d94c7039d
https://github.com/llvm/llvm-project/commit/bd5d361c059814435bab24189e79e01d94c7039d
Author: Chao Chen <chao.chen at intel.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorLinearize.cpp
M mlir/test/Dialect/Vector/linearize.mlir
Log Message:
-----------
[mlir][vector] add support for linearizing vector.bitcast in VectorLinearize (#123110)
This PR adds support for converting Vector::BitCastOp working on ND
(N >1) vectors into the same op working on linearized (1D) vectors.
Commit: e734f01bffb87d035d9037ade8d8ba1e96639c2b
https://github.com/llvm/llvm-project/commit/e734f01bffb87d035d9037ade8d8ba1e96639c2b
Author: André Brand <andre.brand at mailbox.org>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
A clang/test/SemaCXX/member-enum-declarations.cpp
Log Message:
-----------
[clang] Prevent duplicated instantiation of enumerators of unscoped member enumerations (#124407)
This commit addresses a bug occurring when an unscoped member enumeration
of a class template is introduced with an opaque-enum-declaration and later
redeclared with an enum-specifier (per C++23 [class.mem] p6).
Previously, the enumerators, or EnumConstantDecl, of the enum-specifier
were instantiated at both declarations, leading to different issues:
* erroneous ambiguities when referencing the enumerators,
* duplicated diagnostics in the enumerator-list.
The issue is resolved by ensuring that enumerators are instantiated only
at the first instantiated declaration, analogous to nested classes.
Fixes #124405
Commit: 0cbb1d5673dd76112460a109c8c2af6c32c5a16d
https://github.com/llvm/llvm-project/commit/0cbb1d5673dd76112460a109c8c2af6c32c5a16d
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalMerge.cpp
Log Message:
-----------
[GlobalMerge] Use constructor to set all bits in BitVector. NFC (#124375)
The constructor has an optional bool for the starting value for each
bit. Use that instead of calling set().
Commit: c24e5f982e2791768aeea8b1fb55e951f80aad75
https://github.com/llvm/llvm-project/commit/c24e5f982e2791768aeea8b1fb55e951f80aad75
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalMerge.cpp
Log Message:
-----------
[GlobalMerge] Fix inaccurate debug print. (#124377)
This message was not updated when MinSize was added.
Commit: 3bf8e671dbc808a3317a25c37017af7aa843d581
https://github.com/llvm/llvm-project/commit/3bf8e671dbc808a3317a25c37017af7aa843d581
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libcxx/test/std/utilities/format/format.formattable/concept.formattable.compile.pass.cpp
M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.tests.h
Log Message:
-----------
[libc++][format] Add tests for flat_(|multi)map formatting (#124418)
These types should be formattable out-of-the-box. This patch validates
that is true.
Commit: 804b81d39f2d50743fd2090aed72dad29f5fb388
https://github.com/llvm/llvm-project/commit/804b81d39f2d50743fd2090aed72dad29f5fb388
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenFunction.h
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_fdot.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_fdot.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
A llvm/test/CodeGen/AArch64/fp8-neon-fdot.ll
Log Message:
-----------
[AArch64] Add FP8 Neon intrinsics for dot-product (#123613)
This patch adds the following intrinsics:
float16x4_t vdot_f16_mf8_fpm(float16x4_t vd, mfloat8x8_t vn, mfloat8x8_t
vm, fpm_t fpm)
float16x8_t vdotq_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, fpm_t fpm)
float16x4_t vdot_lane_f16_mf8_fpm(float16x4_t vd, mfloat8x8_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float16x4_t vdot_laneq_f16_mf8_fpm(float16x4_t vd, mfloat8x8_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float16x8_t vdotq_lane_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float16x8_t vdotq_laneq_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x2_t vdot_f32_mf8_fpm(float32x2_t vd, mfloat8x8_t vn, mfloat8x8_t
vm, fpm_t fpm)
float32x4_t vdotq_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, fpm_t fpm)
float32x2_t vdot_lane_f32_mf8_fpm(float32x2_t vd, mfloat8x8_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x2_t vdot_laneq_f32_mf8_fpm(float32x2_t vd, mfloat8x8_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vdotq_lane_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vdotq_laneq_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
Commit: ad9da92cf6f735747ef04fd56937e1d76819e503
https://github.com/llvm/llvm-project/commit/ad9da92cf6f735747ef04fd56937e1d76819e503
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
M llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
M llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp
Log Message:
-----------
[LoopUnroll] Add RuntimeUnrollMultiExit to loop unroll options (NFC) (#124462)
Add an extra knob to RuntimeUnrollMultiExit to let backends control
whether to allow multi-exit unrolling on a per-loop basis.
This gives backends more fine-grained control on deciding if multi-exit
unrolling is profitable for a given loop and uarch. Similar to
4226e0a0c75.
PR: https://github.com/llvm/llvm-project/pull/124462
Commit: 5815a311050ae218ebcda53adeee24ed96851943
https://github.com/llvm/llvm-project/commit/5815a311050ae218ebcda53adeee24ed96851943
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
A clang/test/CodeGenCXX/gh119046.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
Log Message:
-----------
[Clang] call HandleImmediateInvocation before checking for immediate escacalating expressions (#124414)
HandleImmediateInvocation can call MarkExpressionAsImmediateEscalating
and should always be called before
CheckImmediateEscalatingFunctionDefinition.
However, we were not doing that in `ActFunctionBody`.
We simply move CheckImmediateEscalatingFunctionDefinition to
PopExpressionEvaluationContext.
Fixes #119046
Commit: 713482fccf82d33c5c4ddb24538958617e1eb957
https://github.com/llvm/llvm-project/commit/713482fccf82d33c5c4ddb24538958617e1eb957
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/invariant-replicate-region.ll
M llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
M llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
M llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
M llvm/test/Transforms/LoopVectorize/induction.ll
M llvm/test/Transforms/LoopVectorize/load-deref-pred-neg-off.ll
Log Message:
-----------
[VPlan] Use State.get to extract lane mask for BranchOnMask.
Simplifies the code slightly and avoids redundant extracts/broadcasts if
the operand is live-in or already scalar.
Commit: 6578790076fed5467bf613e48f7a0ad2f50f041a
https://github.com/llvm/llvm-project/commit/6578790076fed5467bf613e48f7a0ad2f50f041a
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
M llvm/cmake/modules/HandleLLVMOptions.cmake
Log Message:
-----------
Reapply "[Fuchsia][cmake] Allow using FatLTO when building runtimes" (#119252) (#121820)
The previous failures were addressed with CMake changes in #121819
Commit: aca08a8515d48baff48328df5d54300fc7180bea
https://github.com/llvm/llvm-project/commit/aca08a8515d48baff48328df5d54300fc7180bea
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/Target/Target.td
M llvm/lib/TableGen/Main.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/test/TableGen/BitsInit.td
A llvm/test/TableGen/BitsInitErrors.td
M llvm/test/TableGen/HwModeSelect.td
M llvm/utils/TableGen/Common/CodeGenHwModes.cpp
M mlir/test/mlir-tblgen/attr-or-type-builder-invalid.td
Log Message:
-----------
[TableGen] Add assert to validate `Objects` list for `HwModeSelect` (#123794)
- Bail out of TableGen if any asserts fail before running the backend.
- Add asserts to validate that the `Objects` and `Modes` lists for
various `HwModeSelect` subclasses are of same length.
- Eliminate equivalent check in CodeGenHWModes.cpp
Commit: b707d52fc557d24c4269987a80dc270e7adad942
https://github.com/llvm/llvm-project/commit/b707d52fc557d24c4269987a80dc270e7adad942
Author: Jens Reidel <adrian at travitia.xyz>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/safestack/safestack_platform.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
Log Message:
-----------
[compiler-rt][Mips] Properly guard references to _ABIN32 (#124492)
When targeting ABIO32 (mips32), _ABIN32 is undefined and the
preprocessor directives cause compile errors. Guard references to
_ABIN32 with defined(_ABIN32), just like the references to _ABIO32.
Signed-off-by: Jens Reidel <adrian at travitia.xyz>
Commit: 5d1c596ab47b9412bb36bdfb0520d9af1343a5ce
https://github.com/llvm/llvm-project/commit/5d1c596ab47b9412bb36bdfb0520d9af1343a5ce
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp8.txt
Log Message:
-----------
[AMDGPU][True16][MC] true16 for minimummaximum/max/min/max3/min3 (#124184)
true16 support for gfx12 instructions including:
v_minimummaximum_f16
v_maximumminimum_f16
v_maximum_f16
v_minimum_f16
v_maximum3_f16
v_minimum3_f16
Commit: c310b4e7bd2a6e736fbcd8d4885ff46b45ab9977
https://github.com/llvm/llvm-project/commit/c310b4e7bd2a6e736fbcd8d4885ff46b45ab9977
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Lex/PPMacroExpansion.cpp
M clang/test/Headers/__cpuidex_conflict.c
R clang/test/Preprocessor/builtin_aux_info.cpp
Log Message:
-----------
Revert "[Clang] __has_builtin should return false for aux triple builtins (#121839) (#124626)
This reverts commit 1c28b9237382b093f477479c993c80181922ca6a.
Breaks CUDA on ARM, see
[here](https://github.com/llvm/llvm-project/pull/121839#issuecomment-2616858927).
Commit: 5a81a559d69fb84e1e8ef623ac4b642081c14c51
https://github.com/llvm/llvm-project/commit/5a81a559d69fb84e1e8ef623ac4b642081c14c51
Author: David Green <david.green at arm.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/test/CodeGen/AArch64/bf16-instructions.ll
M llvm/test/CodeGen/AArch64/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.set.inactive.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-contents-legalization.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx1200.ll
M llvm/test/CodeGen/AMDGPU/fp-atomics-gfx950.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgpu-cs-chain-cc.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.read.tr.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.pk.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ptr.buffer.atomic.fadd_rtn_errors.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.writelane.ll
M llvm/utils/TableGen/GlobalISelEmitter.cpp
Log Message:
-----------
[GISel] Explicitly disable BF16 tablegen patterns. (#124113)
We currently have an issue where bf16 patters can be used to match fp16
types, as GISel does not know about the difference between the two. This
patch explicitly disables them to make sure that they are never used.
The opposite can also happen too, where fp16 patterns are used for
operators that should be bf16. So this also changes any operations with
bf16 types to now cause a fallback to SDAG.
The pass setup for GISel has been slightly adjusted to make sure that a
verify pass does not get added between AMD-SDAG and SIFixSGPRCopiesPass,
which otherwise can cause verifier issues when falling back.
Commit: 3b2b7ec07d970b225b63af9e96d7a9c09334cd27
https://github.com/llvm/llvm-project/commit/3b2b7ec07d970b225b63af9e96d7a9c09334cd27
Author: Shilei Tian <i at tianshilei.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
A llvm/test/CodeGen/AMDGPU/promote-alloca-invariant-marks.ll
Log Message:
-----------
[AMDGPU] Handle invariant marks in `AMDGPUPromoteAllocaPass` (#124607)
Fixes SWDEV-509327.
Commit: a7a4c16c672bdd8e245af533a1f170522e26e42a
https://github.com/llvm/llvm-project/commit/a7a4c16c672bdd8e245af533a1f170522e26e42a
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/LowerVectorShapeCast.cpp
M mlir/test/Dialect/Vector/vector-shape-cast-lowering-transforms.mlir
Log Message:
-----------
[mlir][Vector] Support efficient shape cast lowering for n-D vectors (#123497)
This PR implements a generalization of the existing more efficient
lowering of shape casts from 2-D to 1D and 1-D to 2-D vectors. This
significantly reduces code size and generates more performant code for
n-D shape casts that make their way to LLVM/SPIR-V.
Commit: 89c5576ff9038ba53025ca82209fdc5f5b5d0bb4
https://github.com/llvm/llvm-project/commit/89c5576ff9038ba53025ca82209fdc5f5b5d0bb4
Author: Christian Clauss <cclauss at me.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M openmp/runtime/tools/summarizeStats.py
Log Message:
-----------
OpenMP: Fix Python 3 SyntaxErrors (#123940)
1. `print()` is a function in Python 3.
2. New-style exceptions are required in Python 3.
Commit: 0e372c3ea31da276ac67c5972e4ef63514577e9c
https://github.com/llvm/llvm-project/commit/0e372c3ea31da276ac67c5972e4ef63514577e9c
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
R clang/test/CodeGenCXX/gh119046.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
Log Message:
-----------
Revert "[Clang] call HandleImmediateInvocation before checking for immediate escacalating expressions" (#124646)
Reverts llvm/llvm-project#124414
Turns out to be an important compile time regression, I'll come up with
a less disruptive approach
Commit: 7fd58339b4c783f240904aa5c1007e017378ada1
https://github.com/llvm/llvm-project/commit/7fd58339b4c783f240904aa5c1007e017378ada1
Author: Aidan Goldfarb <agoldfa7 at u.rochester.edu>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/TokenKinds.def
M clang/test/Sema/nullptr-prec2x.c
M clang/test/Sema/nullptr.c
Log Message:
-----------
[clang] Add __nullptr as a keyword to C (#123119)
This PR resolves #121503.
---------
Co-authored-by: Aidan <aidan.goldfarb at mail.mcgill.ca>
Co-authored-by: Erich Keane <ekeane at nvidia.com>
Co-authored-by: Aaron Ballman <aaron at aaronballman.com>
Commit: 8cc83b66e20e72cdb3bb5fbd549c941797b0e0c9
https://github.com/llvm/llvm-project/commit/8cc83b66e20e72cdb3bb5fbd549c941797b0e0c9
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
Log Message:
-----------
[MLGO] Count LR Evictions Rather than Relying on Cascade (#124440)
This patch adjusts the mlregalloc-max-cascade flag (renaming it to
mlregalloc-max-eviction-count) to actually count evictions rather than
just looking at the cascade number. The cascade number is not very
representative of how many times a LR has been evicted, which can lead
to some problems in certain cases, where we might end up with many
eviction problems where we have now masked off all the interferences and
are forced to evict the candidate.
This is probably what I should've done in the first place. No test case
as this only shows up in quite large functions post ThinLTO and it would
be hard to construct something that would serve as a nice regression
test without being super brittle. I've tested this on the pathological
cases that we have come across so far and it works.
Fixes #122829
Commit: 8b1edc0f0ceb8ee4255d54ed9c4ada8563a3861a
https://github.com/llvm/llvm-project/commit/8b1edc0f0ceb8ee4255d54ed9c4ada8563a3861a
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Writer.cpp
Log Message:
-----------
Revert "[ELF] Remove redundant isExported computation"
This reverts commit 1a4d6de1b532149b10522eae5dabce39e5f7c687.
It causes problems with `-static-pie`. See repro at
https://github.com/llvm/llvm-project/commit/1a4d6de1b532149b10522eae5dabce39e5f7c687#commitcomment-151827775
Commit: e98b2028c758a5c333b715c1e4d5b63d09c104be
https://github.com/llvm/llvm-project/commit/e98b2028c758a5c333b715c1e4d5b63d09c104be
Author: Mingming Liu <mingmingl at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Log Message:
-----------
[NFCI]Refactor AsmPrinter around jump table emission (#124645)
Add method `AsmPrinter::emitJumpTableImpl`. It takes an array-ref of jump table indices.
This splits refactor of PR https://github.com/llvm/llvm-project/pull/122215
Commit: fa6e976602a41dad849d6e99692db437d328354b
https://github.com/llvm/llvm-project/commit/fa6e976602a41dad849d6e99692db437d328354b
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/unittests/tools/llvm-exegesis/PowerPC/TargetTest.cpp
M llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
M llvm/unittests/tools/llvm-exegesis/X86/TestBase.h
Log Message:
-----------
[llvm-exegesis] Use TestBase for TargetTest (#121895)
This patch makes the PPC and X86 Exegesis TargetTests use TestBase to
provide initial setup rather than doing it themselves. This promotes
code reuse a little bit and makes the tests a bit more consistent (with
MIPS and with the initial RISC-V tests landing soon).
Commit: 934532d8b18adbe3c1d671d2287abd23885b7eaa
https://github.com/llvm/llvm-project/commit/934532d8b18adbe3c1d671d2287abd23885b7eaa
Author: mingmingl <mingmingl at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Log Message:
-----------
remove unused var after refactoring
Commit: a34159f85ee01c197cc9d938bd1fc40c4c7dba51
https://github.com/llvm/llvm-project/commit/a34159f85ee01c197cc9d938bd1fc40c4c7dba51
Author: Julian Lettner <yln at users.noreply.github.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp
R compiler-rt/lib/tsan/rtl/tsan_spinlock_defs_mac.h
Log Message:
-----------
[TSan][Apple] Fix interceptor build error (#124351)
In certain cases, the SDK headers declare
`OSSpinLock*` APIs as macros (instead of
functions), so users can be transparently
forwarded to non-deprecated APIs.
When enabled, building of TSan interceptors failed
because these macros interfere with the
interceptor machinery, i.e., they prevent proper
forward declaration of intercepted APIs.
In a previous change [1], we misattributed this to
the deprecation of `OSSpinLock*` APIs.
[1] ae484c21c05668f84b13304c28bc39f753e493de
rdar://143193907
Commit: f94c481543bdd3b11a668ad78d46593cf974788f
https://github.com/llvm/llvm-project/commit/f94c481543bdd3b11a668ad78d46593cf974788f
Author: antangelo <contact at antangelo.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/include/clang/AST/DeclCXX.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[clang] Track source deduction guide for alias template deduction guides (#123875)
For deduction guides generated from alias template CTAD, store the
deduction guide they were originated from. The source kind is also
maintained for future expansion in CTAD from inherited constructors.
This tracking is required to determine whether an alias template already
has a deduction guide corresponding to some deduction guide on the
original template, in order to support deduction guides for the alias
from deduction guides declared after the initial usage.
Commit: 3cfda4f11842ceaab983345333870bef7980aa85
https://github.com/llvm/llvm-project/commit/3cfda4f11842ceaab983345333870bef7980aa85
Author: mcbarton <matthew.c.barton at hotmail.co.uk>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/cmake/modules/HandleLLVMOptions.cmake
Log Message:
-----------
Don't use -z,defs linker flag when building shared libraries with emscripten (#123396)
Commit: aa65f93b71dee8cacb22be1957673c8be6a3ec24
https://github.com/llvm/llvm-project/commit/aa65f93b71dee8cacb22be1957673c8be6a3ec24
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
Log Message:
-----------
Revert "[MLGO] Count LR Evictions Rather than Relying on Cascade (#124440)"
This reverts commit 8cc83b66e20e72cdb3bb5fbd549c941797b0e0c9.
This was causing builbot failures.
https://lab.llvm.org/buildbot/#/builders/90/builds/4198
https://lab.llvm.org/buildbot/#/builders/110/builds/3616
Commit: f949f876daeda520a5b7dbeb2cbb35b8c4383acb
https://github.com/llvm/llvm-project/commit/f949f876daeda520a5b7dbeb2cbb35b8c4383acb
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
M clang/test/AST/ast-dump-decl.c
M clang/test/AST/ast-dump-records.c
M clang/test/AST/ast-dump-records.cpp
M clang/test/AST/attr-counted-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-struct-ptrs.c
M clang/test/AST/attr-counted-by-struct-ptrs.c
M clang/test/AST/attr-sized-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-struct-ptrs.c
M clang/test/AST/attr-sized-by-struct-ptrs.c
M clang/test/Import/cxx-anon-namespace/test.cpp
M clang/test/Modules/odr_hash.cpp
M clang/test/SemaTemplate/aggregate-deduction-candidate.cpp
M clang/test/SemaTemplate/deduction-crash.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
Log Message:
-----------
[clang] improve print / dump of anonymous declarations (#124605)
ast-print: A DeclRef to an anonymous NTTP will print
'value-parameter-DEPTH-INDEX',
similar to how type parameters are printed.
ast-dump: A bareDeclRef to an anonymous entity will print some extra
identifying information,
instead of an empty name, like indexes.
Falls back to source locations if nothing else is available.
Commit: f75860f89522453f361e1ef54d7a33be2a2d75b1
https://github.com/llvm/llvm-project/commit/f75860f89522453f361e1ef54d7a33be2a2d75b1
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenFunction.h
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_fmla.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_fmla.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
A llvm/test/CodeGen/AArch64/fp8-neon-fmla.ll
Log Message:
-----------
[AArch64] Implement NEON FP8 intrinsics for fused multiply-add (#123615)
This patch adds the following intrinsics:
* Fused multiply-add non-indexed
float16x8_t vmlalbq_f16_mf8_fpm(float16x8_t, mfloat8x16_t, mfloat8x16_t,
fpm_t)
float16x8_t vmlaltq_f16_mf8_fpm(float16x8_t, mfloat8x16_t, mfloat8x16_t,
fpm_t)
float32x4_t vmlallbbq_f32_mf8_fpm(float32x4_t, mfloat8x16_t,
mfloat8x16_t, fpm_t)
float32x4_t vmlallbtq_f32_mf8_fpm(float32x4_t, mfloat8x16_t,
mfloat8x16_t, fpm_t)
float32x4_t vmlalltbq_f32_mf8_fpm(float32x4_t, mfloat8x16_t,
mfloat8x16_t, fpm_t)
float32x4_t vmlallttq_f32_mf8_fpm(float32x4_t, mfloat8x16_t,
mfloat8x16_t, fpm_t)
* Floating-point multiply-add long to half-precision (vector, by
element)
float16x8_t vmlalbq_lane_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float16x8_t vmlalbq_laneq_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float16x8_t vmlaltq_lane_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float16x8_t vmlaltq_laneq_f16_mf8_fpm(float16x8_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
* Floating-point multiply-add long-long to single-precision (vector, by
element)
float32x4_t vmlallbbq_lane_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlallbbq_laneq_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlallbtq_lane_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlallbtq_laneq_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlalltbq_lane_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlalltbq_laneq_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlallttq_lane_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x8_t vm, __builtin_constant_p(lane), fpm_t fpm)
float32x4_t vmlallttq_laneq_f32_mf8_fpm(float32x4_t vd, mfloat8x16_t vn,
mfloat8x16_t vm, __builtin_constant_p(lane), fpm_t fpm)
Commit: 194c74e0166876ef2c5e0ff5e98a4b5a5442138c
https://github.com/llvm/llvm-project/commit/194c74e0166876ef2c5e0ff5e98a4b5a5442138c
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Sema/HeuristicResolver.cpp
Log Message:
-----------
[clang][Sema] Null-check type in resolveMemberExpr() before checking for auto type (#124628)
Fixes https://github.com/clangd/clangd/issues/2301
Commit: d839e765f03cf76e3770921d2f8e8bf510136dca
https://github.com/llvm/llvm-project/commit/d839e765f03cf76e3770921d2f8e8bf510136dca
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[TargetLowering] Inline the only caller of one of the forceExpandWideMUL functions. NFC
This caller does not need the libcall portion so it can directly
call forceExpandMultiply.
Commit: eeefa72f7c7287a3aa26f6278b9669eb76e8d1be
https://github.com/llvm/llvm-project/commit/eeefa72f7c7287a3aa26f6278b9669eb76e8d1be
Author: Sirraide <aeternalmail at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
Log Message:
-----------
[Clang] [NFC] Introduce `ConstDynamicRecursiveASTVisitor` (#122991)
After some discussion around #116823, it was decided that it would be
nice to have a `const` variant of `DynamicRecursiveASTVisitor`, so this
pr does exactly that by making the main DRAV implementation a template
with a single `bool` template parameter that turns several function
parameters from a `T*` or `T&` to a `const T*` or `const T&`.
Since that made the implementation of a bunch of DRAV functions quite a
bit more verbose, I’ve moved most of them to be stamped out by a macro,
which imo makes it easier to understand what’s actually going on there.
For functions which already accepted `const` parameters in the original
RAV implementation, the parameter is `const` in both versions (e.g.
`TraverseTemplateArgument()` always takes a `const TemplateArgument&`);
conversely, parameters that are passed by value (e.g. in
`TraverseType()`, which takes a `QualType` by value) are *not* `const`
in either variant (i.e. the `QualType` argument is always just a
`QualType`, never a `const QualType`).
As a sanity check, I’ve also migrated some random visitor in the static
analyser to the `const` version (and indeed, it ends up simplifying the
code around that particular visitor actually). It would make sense to do
a pass over all visitors and change all which can be `const` use the
`const` version, but that can be done in a follow-up pr.
The [performance
impact](https://llvm-compile-time-tracker.com/compare.php?from=e3cd88a7be1dfd912bb6e7c7e888e7b442ffb5de&to=d55c5afe4a485b6d0431386e6f45cb44c1fc8883&stat=instructions:u)
of this change seems to be negligible. Clang’s binary size went up by
0.5%, but that’s expected considering that this effectively adds an
extra instantiation of `RecursiveASTVisitor`. Fortunately, this is of
course a one-time cost.
Commit: 740e6aeccdb2f8eeee549ba80b15ff3d5dd3392e
https://github.com/llvm/llvm-project/commit/740e6aeccdb2f8eeee549ba80b15ff3d5dd3392e
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/amdgpu-toolchain.c
Log Message:
-----------
Revert "[AMDGPU] Use the AMDGPUToolChain when targeting C/C++ directly (#99687)"
Breaks some downstream AMD stuff apparently.
This reverts commit 6ff86f2c0a5b58b07921ee895f0d16d8cd3d4015.
Commit: 8900c09ebfd782bfd41bac63ac5266f80fe29602
https://github.com/llvm/llvm-project/commit/8900c09ebfd782bfd41bac63ac5266f80fe29602
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/lib/Dialect/NVGPU/Transforms/OptimizeSharedMemory.cpp
M mlir/test/Dialect/NVGPU/optimize-shared-memory.mlir
Log Message:
-----------
[mlir][nvgpu] Fix crash when handling 0D memref in OptimizeSharedMemoryPass (#124517)
This PR adds a check for 0D memref types to prevent a crash. Fixes
#119855.
Commit: 7873d3b50b447213c3f689449a674b2c35f83f9f
https://github.com/llvm/llvm-project/commit/7873d3b50b447213c3f689449a674b2c35f83f9f
Author: Sirraide <aeternalmail at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
Log Message:
-----------
Revert "[Clang] [NFC] Introduce `ConstDynamicRecursiveASTVisitor`" (#124667)
Reverts llvm/llvm-project#122991
One of the bots is breaking; I’ll have to investigate what the issue is;
this might be because I haven’t updated the branch in a while.
Commit: 760a786d1580d2d933664a95cf1b5273d30ccdf6
https://github.com/llvm/llvm-project/commit/760a786d1580d2d933664a95cf1b5273d30ccdf6
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/Internalize.cpp
M offload/DeviceRTL/src/Misc.cpp
Log Message:
-----------
[Clang] Prevent `mlink-builtin-bitcode` from internalizing the RPC client (#118661)
Summary:
Currently, we only use `-mlink-builtin-bitcode` for non-LTO NVIDIA
compiliations. This has the problem that it will internalize the RPC
client symbol which needs to be visible to the host. To counteract that,
I put `retain` on it, but this also prevents optimizations on the global
itself, so the passes we have that remove the symbol don't work on
OpenMP anymore. This patch does the dumbest solution, adding a special
string check for it in clang. Not the best solution, the runner up would
be to have a clang attribute for `externally_initialized` because those
can't be internalized, but that might have some unfortunate
side-effects. Alternatively we could make NVIDIA compilations do LTO all
the time, but that would affect some users and it's harder than I
thought.
Commit: ad697b28f4794af5b308ada2aac2bf3cd6c5f9ea
https://github.com/llvm/llvm-project/commit/ad697b28f4794af5b308ada2aac2bf3cd6c5f9ea
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/docs/ReleaseNotes.rst
Log Message:
-----------
ReleaseNotes: add lld/ELF notes
Pull Request: https://github.com/llvm/llvm-project/pull/124508
Commit: 641694729df1564710c91d6778ca4f9c841b561a
https://github.com/llvm/llvm-project/commit/641694729df1564710c91d6778ca4f9c841b561a
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Host/common/Socket.cpp
Log Message:
-----------
[lldb] Clean up Socket headers for Android (#124453)
Commit: 5ece348f77e9df1cafe49e565e47308fbbc2eb37
https://github.com/llvm/llvm-project/commit/5ece348f77e9df1cafe49e565e47308fbbc2eb37
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lldb/source/Host/common/Host.cpp
Log Message:
-----------
[lldb] Android 9 has added the spawn.h header (#124452)
Commit: c4891089125d4ba312204cc9a666339abbfc4db2
https://github.com/llvm/llvm-project/commit/c4891089125d4ba312204cc9a666339abbfc4db2
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/HLFIR/HLFIROpBase.td
M flang/include/flang/Optimizer/HLFIR/HLFIROps.td
M flang/lib/Lower/HlfirIntrinsics.cpp
M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
M flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp
M flang/test/HLFIR/invalid.fir
A flang/test/HLFIR/reshape-lowering.fir
A flang/test/HLFIR/reshape.fir
A flang/test/Lower/HLFIR/reshape.f90
Log Message:
-----------
[flang] Added hlfir.reshape definition/lowering/codegen. (#124226)
Lower Fortran RESHAPE intrinsic into hlfir.reshape, and then lower
hlfir.reshape into a runtime call.
A later patch will add hlfir.reshape inlining as hlfir.elemental.
Commit: e0c7f081f1582d49f81ec4c6cdbf5d6ef13c58ba
https://github.com/llvm/llvm-project/commit/e0c7f081f1582d49f81ec4c6cdbf5d6ef13c58ba
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
R lld/Common/BPSectionOrdererBase.cpp
M lld/Common/CMakeLists.txt
M lld/MachO/BPSectionOrderer.cpp
M lld/MachO/BPSectionOrderer.h
M lld/MachO/CMakeLists.txt
R lld/include/lld/Common/BPSectionOrdererBase.h
A lld/include/lld/Common/BPSectionOrdererBase.inc
Log Message:
-----------
[lld-macho] Refactor BPSectionOrderer with CRTP. NFC
PR #117514 refactored BPSectionOrderer to be used by the ELF port
but introduced some inefficiency:
* BPSectionBase/BPSymbol are wrappers around a single pointer.
The numbers of sections and symbols could be huge, and the extra
allocations are memory inefficient.
* Reconstructing the returned DenseMap (since BPSectionBase != InputSectin)
is wasteful.
This patch refactors BPSectionOrderer with Curiously Recurring Template
Pattern and eliminates the inefficiency. In addition,
`symbolToSectionIdxs` is removed and `rootSymbolToSectionIdxs` building
is moved to lld/MachO: while getting sections for symbols is cheap in
Mach-O, it is awkward and inefficient in the ELF port.
While here, add a file-level comment and replace some `StringMap<*>`
(which copies strings) with `DenseMap<CachedHashStringRef, *>`.
Pull Request: https://github.com/llvm/llvm-project/pull/124482
Commit: 0bbfd96a3a8e9cf2d4e79ef0826f7c189a017598
https://github.com/llvm/llvm-project/commit/0bbfd96a3a8e9cf2d4e79ef0826f7c189a017598
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/lld/Common/BUILD.gn
Log Message:
-----------
[gn build] Port e0c7f081f158
Commit: ba789c6f82a911f90a5d20b637e02df4439d0153
https://github.com/llvm/llvm-project/commit/ba789c6f82a911f90a5d20b637e02df4439d0153
Author: Thirumalai Shaktivel <74826228+Thirumalai-Shaktivel at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/resolve-directives.cpp
A flang/test/Semantics/OpenMP/cray-pointer-usage.f90
Log Message:
-----------
[Flang] Add semantics checks for CrayPointer usage in DSA list (#123171)
Follow-up PR to fix the failure caused here:
https://github.com/llvm/llvm-project/pull/121028
Failure:
https://lab.llvm.org/buildbot/#/builders/89/builds/14474
Problems:
- Cray pointee cannot be used in the DSA list (If used results in segmentation fault)
- Cray pointer has to be in the DSA list when Cray pointee is used in the default (none) region
Fix: Added required semantic checks along the tests
Reference from the documentation (OpenMP 5.0: 2.19.1):
- Cray pointees have the same data-sharing attribute as the storage with
which their Cray pointers are associated.
Commit: 9c1d2f84e91f39cdd17519ca61bd2aacd8bcbd84
https://github.com/llvm/llvm-project/commit/9c1d2f84e91f39cdd17519ca61bd2aacd8bcbd84
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/aarch64.cpp
Log Message:
-----------
[JITLink] Add "Pointer64Authenticated" string to aarch64::getEdgeKindName.
No testcase: this change just allows edge names to be correctly reported in
debug dumps of LinkGraphs. (Previously Pointer64Authenticated edges were
reported as "<Unrecognized edge kind>").
Commit: 6e4105574ebb1c4a664c5b24a4fb2b6cbc51d73e
https://github.com/llvm/llvm-project/commit/6e4105574ebb1c4a664c5b24a4fb2b6cbc51d73e
Author: Shilei Tian <i at tianshilei.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-invariant-markers.ll
R llvm/test/CodeGen/AMDGPU/promote-alloca-invariant-marks.ll
Log Message:
-----------
[NFC][AMDGPU] Improve code introduced in #124607 (#124672)
Commit: 8b29c5ccddb87ac7336a700877dc08cdc57ac65b
https://github.com/llvm/llvm-project/commit/8b29c5ccddb87ac7336a700877dc08cdc57ac65b
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/aarch64.cpp
Log Message:
-----------
[JITLink] Move debugging output helper array into LLVM_DEBUG. NFC.
This doesn't need a separate guard.
Commit: 79685b59b78804f99e46f12ac888edbc0a6d1472
https://github.com/llvm/llvm-project/commit/79685b59b78804f99e46f12ac888edbc0a6d1472
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/aarch64.cpp
A llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ptrauth_dependencies.s
Log Message:
-----------
[JITLink][aarch64] Fix dependence tracking for Pointer64Authenticated edges.
Transform Pointer64Authenticated edges into KeepAlive edges, rather than
removing them, in order to preserve symbol dependence information.
The lowerPointer64AuthEdgesToSigningFunction pass is responsible for
transforming Pointer64Authenticated edges to a signing function that can be run
in the executing process to initialize global PAC pointers. Removing the edges
entirely in this pass results in loss of dependence tracking, which can in turn
cause ORC to report PAC pointers as ready before the pointers targets have
completed materialization (resulting in a use-before-finalize error, often
manifesting as access to uninitialized / unprotected memory).
This commit addresses the issue by leaving the edges in the graph and simply
changing their kind to KeepAlive, a no-op for fixup purposes but followed for
dependence tracking purposes.
Commit: 08d14e10ca4bdd4626cbe1c893961416f9703d5c
https://github.com/llvm/llvm-project/commit/08d14e10ca4bdd4626cbe1c893961416f9703d5c
Author: Han-Kuan Chen <hankuan.chen at sifive.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/revec.ll
M llvm/test/Transforms/SLPVectorizer/revec-shufflevector.ll
Log Message:
-----------
[SLP] Fix CommonMask will be transformed into an incorrect mask if createShuffle is called multiple times. (#124244)
We have two types of mask in SLP: a scalar mask and a vector mask.
When vectorizing four i32 additions into <4 x i32>, SLP creates a mask
of length 4.
When vectorizing four <2 x i32> additions into <8 x i32>, SLP also
creates a mask of length 4.
We refer to the first case as a scalar mask (because the mask element
represents a scalar, i32), and the second case as a vector mask (because
the mask element represents a vector, <4 x i32>).
At some point, we must convert the scalar mask into a vector mask
(otherwise, calling TTI cost functions or IRBuilderBase functions may
yield incorrect results).
Since both ShuffleCostEstimator and ShuffleInstructionBuilder can modify
the CommonMask, we have decided to perform the mask transformation only
within createShuffle. However, we do not store the transformed result,
as createShuffle may be called multiple times.
Commit: 5ab43c3e7d9b5dc0ca4fffa58c65fc6f7283d3c0
https://github.com/llvm/llvm-project/commit/5ab43c3e7d9b5dc0ca4fffa58c65fc6f7283d3c0
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/aarch64.cpp
Log Message:
-----------
[JITLink] Use continue to reduce loop indentation and improve readability. NFC.
Commit: fa9ac62d02fd6b5028f301ee398c3d3a1c0eacae
https://github.com/llvm/llvm-project/commit/fa9ac62d02fd6b5028f301ee398c3d3a1c0eacae
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
M llvm/test/Transforms/lower-builtin-allow-check.ll
Log Message:
-----------
[ubsan] Parse and use <cutoffs[0,1,2]=70000;cutoffs[5,6,8]=90000> in LowerAllowCheckPass (#124211)
This adds and utilizes a cutoffs parameter for LowerAllowCheckPass, via the Options parameter (introduced in https://github.com/llvm/llvm-project/pull/122994).
Future work will connect -fsanitize-skip-hot-cutoff (introduced patch in https://github.com/llvm/llvm-project/pull/121619) in the clang frontend to the cutoffs parameter used here.
Commit: 334a1cdbfaafc5424c5932663728334d1cc46285
https://github.com/llvm/llvm-project/commit/334a1cdbfaafc5424c5932663728334d1cc46285
Author: vporpo <vporpodas at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/SandboxIR/Context.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] createFunction() should always create a function (#124665)
This patch removes the assertion that checks for an existing function.
If one exists it will remove it and create a new one. This helps remove
a crash when a function declaration object already exists and we are
about to create a SandboxIR object for the definition.
Commit: cc97653d534e80745a0cfb0143972e8d4dec9f74
https://github.com/llvm/llvm-project/commit/cc97653d534e80745a0cfb0143972e8d4dec9f74
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
Log Message:
-----------
AMDGPU: Custom lower 32-bit element shuffles (#123711)
This is so we can try to make use of v_pk_mov_b32 when available.
Note this currently has little observable effect. The combiner
will undo the common extract of shuffle pattern. The lack
of test changes should demonstrate this change is minimally
correct.
We should probably try to make better use of wider extracts in
even aligned cases, but I'm trying to avoid some really ugly
regalloc regressions in some MFMA tests. The DAG scheduler ends
up doing a worse job if we use vector extracts, resulting
in failure to do 3 address conversion of MFMAs.
Commit: bd8578bf2e8f3cfcccea232d3a83f4dbeae41fdb
https://github.com/llvm/llvm-project/commit/bd8578bf2e8f3cfcccea232d3a83f4dbeae41fdb
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ptrauth_dependencies.s
Log Message:
-----------
[JITLink] Add 'REQUIRES: asserts' to MachO_ptrauth_dependencies.s.
This test depends on debugging output.
Commit: 2d0688797cc31ef10572d3216bb7ef4dbb8019b7
https://github.com/llvm/llvm-project/commit/2d0688797cc31ef10572d3216bb7ef4dbb8019b7
Author: quic_hchandel <quic_hchandel at quicinc.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M llvm/docs/RISCVUsage.rst
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/MC/RISCV/xqciac-invalid.s
M llvm/test/MC/RISCV/xqciac-valid.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Renaming muladdi to muliadd as per v0.5 spec. (#124237)
muliadd is more relevant to the operation performed, i.e. multiply by
immediate.
The latest spec can be found at:
https://github.com/quic/riscv-unified-db/releases/latest
Commit: 7109f521975e9cc2e8ba4f52ac2a8e1140bd49b5
https://github.com/llvm/llvm-project/commit/7109f521975e9cc2e8ba4f52ac2a8e1140bd49b5
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/test/ELF/gc-sections.s
M lld/test/ELF/lto/devirt_vcall_vis_export_dynamic.ll
M lld/test/ELF/lto/internalize-exportdyn.ll
M lld/test/ELF/lto/relocation-model-pic.ll
M lld/test/ELF/lto/relocation-model-static.ll
M lld/test/ELF/partition-errors.s
M lld/test/ELF/partition-icf.s
M lld/test/ELF/partition-move-to-main-startstop.s
M lld/test/ELF/partition-thunk-reuse.s
M lld/test/ELF/partitions.s
Log Message:
-----------
[ELF,test] Don't rely on --export-dynamic --gc-sections behavior for non-pie static linking
This mode does not retain definitions in GNU ld. While we do, it's not
consistent with the decision that there is no .dynsym . We will change
this and simplify some internal representations.
Commit: 7f37b34d31914120a5bb6bd341e7616773df7613
https://github.com/llvm/llvm-project/commit/7f37b34d31914120a5bb6bd341e7616773df7613
Author: Shourya Goel <shouryagoel10000 at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/CMakeLists.txt
A libc/cmake/modules/LLVMLibCCheckMPC.cmake
M libc/src/__support/CMakeLists.txt
M libc/src/__support/CPP/type_traits.h
A libc/src/__support/complex_basic_ops.h
M libc/src/__support/complex_type.h
M libc/src/complex/generic/CMakeLists.txt
M libc/src/complex/generic/conj.cpp
M libc/src/complex/generic/conjf.cpp
M libc/src/complex/generic/conjf128.cpp
M libc/src/complex/generic/conjf16.cpp
M libc/src/complex/generic/conjl.cpp
M libc/src/complex/generic/cproj.cpp
M libc/src/complex/generic/cprojf.cpp
M libc/src/complex/generic/cprojf128.cpp
M libc/src/complex/generic/cprojf16.cpp
M libc/src/complex/generic/cprojl.cpp
M libc/test/UnitTest/FPMatcher.h
M libc/test/src/CMakeLists.txt
M libc/test/src/complex/CMakeLists.txt
M libc/test/src/complex/cprojf_test.cpp
M libc/utils/CMakeLists.txt
A libc/utils/MPCWrapper/CMakeLists.txt
A libc/utils/MPCWrapper/MPCUtils.cpp
A libc/utils/MPCWrapper/MPCUtils.h
A libc/utils/MPCWrapper/check_mpc.cpp
M libc/utils/MPFRWrapper/CMakeLists.txt
A libc/utils/MPFRWrapper/MPCommon.cpp
A libc/utils/MPFRWrapper/MPCommon.h
M libc/utils/MPFRWrapper/MPFRUtils.cpp
M libc/utils/MPFRWrapper/MPFRUtils.h
Log Message:
-----------
[libc][complex] Testing infra for MPC (#121261)
This PR aims to add the groundwork to test the precision of libc complex
functions against MPC. I took `cargf` as a test to verify that the infra
works fine.
Commit: 3c64f86314fbf9a3cd578419f16e621a4de57eaa
https://github.com/llvm/llvm-project/commit/3c64f86314fbf9a3cd578419f16e621a4de57eaa
Author: Hongren Zheng <i at zenithal.me>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir/IR/CMakeLists.txt
M mlir/include/mlir/IR/OpAsmInterface.td
M mlir/include/mlir/IR/OpImplementation.h
M mlir/lib/IR/AsmPrinter.cpp
A mlir/test/IR/op-asm-interface.mlir
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/lib/Dialect/Test/TestTypeDefs.td
M mlir/test/lib/Dialect/Test/TestTypes.cpp
Log Message:
-----------
[mlir] Add OpAsmTypeInterface for pretty-print (#121187)
See
https://discourse.llvm.org/t/rfc-introduce-opasm-type-attr-interface-for-pretty-print-in-asmprinter/83792
for detailed introduction.
This PR acts as the first part of it
* Add `OpAsmTypeInterface` and `getAsmName` API for deducing ASM name
from type
* Add default impl in `OpAsmOpInterface` to respect this API when
available.
The `OpAsmAttrInterface` / hooking into Alias system part should be
another PR, using a `getAlias` API.
### Discussion
* Instead of using `StringRef getAsmName()` as the API, I use `void
getAsmName(OpAsmSetNameFn)`, as returning StringRef might be unsafe
(std::string constructed inside then returned a _ref_; and this aligns
with the design of `getAsmResultNames`.
* On the result packing of an op, the current approach is that when not
all of the result types are `OpAsmTypeInterface`, then do nothing (old
default impl)
### Review
Cc @j2kun and @Alexanderviand-intel for downstream; Cc @River707 and
@joker-eph for relevent commit history; Cc @ftynse for discourse.
Commit: 3a439e2caf0bb545ee451df1de5b02ea068140f7
https://github.com/llvm/llvm-project/commit/3a439e2caf0bb545ee451df1de5b02ea068140f7
Author: Hongren Zheng <i at zenithal.me>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir/Analysis/DataFlowFramework.h
M mlir/lib/Analysis/DataFlowFramework.cpp
Log Message:
-----------
[mlir][dataflow] disallow outside use of propagateIfChanged for DataFlowSolver (#120885)
Detailed writeup is in https://github.com/google/heir/issues/1153. See
also https://github.com/llvm/llvm-project/pull/120881. In short,
`propagateIfChanged` is used outside of the `DataFlowAnalysis` scope,
because it is public, but it does not propagate as expected as the
`DataFlowSolver` has stopped running.
To solve such misuse, `propagateIfChanged` should be made
protected/private.
For downstream users affected by this, to correctly propagate the
change, the Analysis should be re-run (check #120881) instead of just a
`propagateIfChanged`
The change to `IntegerRangeAnalysis` is just a expansion of the
`solver->propagateIfChanged`. The `Lattice` has already been updated by
the `join`. Propagation is done by `onUpdate`.
Cc @Mogball for review
Commit: d50ebd47ae57812e5d2db1e3d3157f26b8d9d159
https://github.com/llvm/llvm-project/commit/d50ebd47ae57812e5d2db1e3d3157f26b8d9d159
Author: Gedare Bloom <gedare at rtems.org>
Date: 2025-01-27 (Mon, 27 Jan 2025)
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/TokenAnnotator.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Add style option `PenaltyBreakBeforeMemberAccess` (#118409)
The penalty for breaking before a member access is hard-coded to 150.
Add a configuration option to allow setting it.
---------
Co-authored-by: Owen Pan <owenpiano at gmail.com>
Commit: d606f68a2e37440729f223616062b9ebb28e6482
https://github.com/llvm/llvm-project/commit/d606f68a2e37440729f223616062b9ebb28e6482
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/lld/BUILD.bazel
Log Message:
-----------
[bazel] Fix build after e0c7f081f1582d49f81ec4c6cdbf5d6ef13c58ba
Commit: 839cdb58e71fa7b8a132ac9497580cc23a3ae7f7
https://github.com/llvm/llvm-project/commit/839cdb58e71fa7b8a132ac9497580cc23a3ae7f7
Author: Shourya Goel <shouryagoel10000 at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/utils/MPFRWrapper/CMakeLists.txt
Log Message:
-----------
[libc][complex] remove -ffreestanding flag from MPFRUtils compile options (#124702)
Fixes buildbot error in #121261
Commit: 42432ada8e0b9ebd716a5522f799698ec49cd3db
https://github.com/llvm/llvm-project/commit/42432ada8e0b9ebd716a5522f799698ec49cd3db
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
Log Message:
-----------
[AMDGPU][NFC] Sort AMDGPUPassRegistry entries alphabetically (#124544)
Commit: 6a9d0e53ae04a60222c8e39d8ced3183aa30588a
https://github.com/llvm/llvm-project/commit/6a9d0e53ae04a60222c8e39d8ced3183aa30588a
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
Log Message:
-----------
[llvm-cov] Prevent assertion failure in sumMCDCPairs
Since #112694, MCDCRecord::isCondFolded() has returned true for
"partially folded" conditions. Besides,
isConditionIndependencePairCovered() returns true if the unfolded
condition is satisfied. This might break consistency
(CoveredPairs <= NumPairs).
Commit: f10441ad003236ef3b9e5415a571d2be0c0ce5ce
https://github.com/llvm/llvm-project/commit/f10441ad003236ef3b9e5415a571d2be0c0ce5ce
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Symbols.cpp
M lld/ELF/Writer.cpp
M lld/test/ELF/partition-errors.s
Log Message:
-----------
[ELF] Refine includeInDynsym condition
`includeInDynsym` has a special case for isUndefWeak and
--no-dynamic-linker, which can be removed if we simplify disallow
dynamic symbols for static-pie.
The partition feature reports errors only when a symbol `isExported`.
We need to link in a DSO to trigger the mips error.
Commit: d4af658323c6e2492ca1224930488c390a08c720
https://github.com/llvm/llvm-project/commit/d4af658323c6e2492ca1224930488c390a08c720
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
A llvm/test/CodeGen/RISCV/zdinx-memoperand.ll
Log Message:
-----------
[RISCV] Support multiple memory operands in expandRV32ZdinxStore.
TailMerge can create stores with multiple memory operands. We
need to split all of them instead of assuming there is only one.
Commit: 952685a43d0436577df95ea318b2460438f67982
https://github.com/llvm/llvm-project/commit/952685a43d0436577df95ea318b2460438f67982
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/test/ELF/weak-undef-lib.s
Log Message:
-----------
[ELF,test] Add static-pie test related to demoted lazy symbol
The reverted
1a4d6de1b532149b10522eae5dabce39e5f7c687
("[ELF] Remove redundant isExported computation")
had incorrect
```
+ if (sym->includeInDynsym(ctx))
+ sym->isExported = true;
```
causing undefined weak symbols (defined in archives, demoted; e.g.
__cxa_finalize) to be exported for static-pie.
Add a regression test for this corner case. The issue actually exposed
another issue related to includeInDynsym, which has been fixed by
f10441ad003236ef3b9e5415a571d2be0c0ce5ce.
Commit: 4167ea2cb082a2acb00b8b1dc09aa780dc0e3110
https://github.com/llvm/llvm-project/commit/4167ea2cb082a2acb00b8b1dc09aa780dc0e3110
Author: Petr Hosek <phosek at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M libcxx/src/include/overridable_function.h
M libcxx/src/new.cpp
M libcxxabi/src/stdlib_new_delete.cpp
Log Message:
-----------
Revert "[libcxx] Use alias for detecting overriden function" (#124431)
Reverts llvm/llvm-project#120805
This change while desirable has two issues we discovered:
- It is incompatible with `-funique-internal-linkage-names`, see
https://github.com/llvm/llvm-project/pull/120805#discussion_r1913709817
- It is incompatible with `-fvisibility-global-new-delete=force-hidden`,
see
https://github.com/llvm/llvm-project/issues/123224#issuecomment-2607963878
We were hoping to address both of these issues with
https://github.com/llvm/llvm-project/pull/122983, but that change has
other issues we haven't yet managed to resolve. For now, we have decided
to revert the change to avoid shipping a broken feature in LLVM 20, and
we plan to follow up with a new approach post branch.
Commit: b593110d89aea76b8b10152b24ece154bff3e4b5
https://github.com/llvm/llvm-project/commit/b593110d89aea76b8b10152b24ece154bff3e4b5
Author: Petr Hosek <phosek at google.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/CMakeLists.txt
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[compiler-rt] Deprecate LLVM_ENABLE_PROJECTS in favor of LLVM_ENABLE_RUNTIMES (#124016)
We plan to make this a hard error in the LLVM 21 release.
Link #124012
Commit: 8f8a640e9ab579ec2297dfe97249bb4f6bd6e021
https://github.com/llvm/llvm-project/commit/8f8a640e9ab579ec2297dfe97249bb4f6bd6e021
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/test/ELF/riscv-gp.s
Log Message:
-----------
[ELF,test] Test static-pie __global_pointer$
Commit: 5e43dd5bde99bf0e1f58efb4bb4fd3eb1a78d253
https://github.com/llvm/llvm-project/commit/5e43dd5bde99bf0e1f58efb4bb4fd3eb1a78d253
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/test/ELF/lto/devirt_vcall_vis_export_dynamic.ll
Log Message:
-----------
[test] Add missing -triple=x86_64
Fixes 7109f521975e9cc2e8ba4f52ac2a8e1140bd49b5
Commit: 085f7fb560ee08a4d78a51dbf247ea816f8515a7
https://github.com/llvm/llvm-project/commit/085f7fb560ee08a4d78a51dbf247ea816f8515a7
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Writer.cpp
Log Message:
-----------
[ELF] Remove redundant isExported computation
Commit 2a26292388fcab0c857c91b2d08074c33abd37e8 made `isExported`
accurate except a few linker-synthesized symbols in finalizeSections.
We can collect these linker-synthesized symbols into a vector
and avoid recomputation for other symbols.
This is reland of 1a4d6de1b532149b10522eae5dabce39e5f7c687 after
`isExported` has been made accurate by f10441ad003236ef3b9e5415a571d2be0c0ce5ce
Commit: ea9993a9a3500c3fdda3faa731c458389458eaa6
https://github.com/llvm/llvm-project/commit/ea9993a9a3500c3fdda3faa731c458389458eaa6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCV.td
M llvm/lib/Target/RISCV/RISCVProcessors.td
A llvm/lib/Target/RISCV/RISCVSchedSiFiveP500.td
A llvm/test/tools/llvm-mca/RISCV/SiFiveP500/alu.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP500/fp.s
A llvm/test/tools/llvm-mca/RISCV/SiFiveP500/load.s
Log Message:
-----------
[RISCV] Add P550 scheduler model. (#124639)
P550 falls between P450 and P650. It has 1 additional FEX pipe over
P450. Mul and cpop latency are 3 instead of 2.
I've set the MicroOpBufferSize to 96 instead of 56 based on the ROB size
measurement from
https://chipsandcheese.com/p/inside-sifives-p550-microarchitecture I
believe we set this value too low for P450 and P650 and should update
them in a separate PR.
Commit: b968fd95026639a2a1d2057627b41622f3b5c97d
https://github.com/llvm/llvm-project/commit/b968fd95026639a2a1d2057627b41622f3b5c97d
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
R clang/include/clang/Basic/BuiltinsNVPTX.def
A clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/module.modulemap
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/test/CodeGen/builtins-nvptx.c
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
Log Message:
-----------
[StrTable] Mechanically convert NVPTX builtins to use TableGen (#122873)
This switches them to use tho common TableGen layer, extending it to
support the missing features needed by the NVPTX backend.
The biggest thing was to build a TableGen system that computes the
cumulative SM and PTX feature sets the same way the macros did. That's
done with some string concatenation tricks in TableGen, but they worked
out pretty neatly and are very comparable in complexity to the macro
version.
Then the actual defines were mapped over using a very hacky Python
script. It was never productionized or intended to work in the future,
but for posterity:
https://gist.github.com/chandlerc/10bdf8fb1312e252b4a501bace184b66
Last but not least, there was a very odd "bug" in one of the converted
builtins' prototype in the TableGen model: it didn't handle uses of `Z`
and `U` both as *qualifiers* of a single type, treating `Z` as its own
`int32_t` type. So my hacky Python script converted `ZUi` into two
types, an `int32_t` and an `unsigned int`. This produced a very wrong
prototype. But the tests caught this nicely and I fixed it manually
rather than trying to improve the Python script as it occurred in
exactly one place I could find.
This should provide direct benefits of allowing future refactorings to
more directly leverage TableGen to express builtins more structurally
rather than textually. It will also make my efforts to move builtins to
string tables significantly more effective for the NVPTX backend where
the X-macro approach resulted in *significantly* less efficient string
tables than other targets due to the long repeated feature strings.
Commit: 0cb7636a462a8d4209e2b6344304eb43f02853eb
https://github.com/llvm/llvm-project/commit/0cb7636a462a8d4209e2b6344304eb43f02853eb
Author: Djordje Todorovic <djordje.todorovic at htecgroup.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M llvm/docs/RISCVUsage.rst
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCV.h
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
A llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
M llvm/lib/Target/RISCV/RISCVProcessors.td
M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/test/CodeGen/RISCV/select-and.ll
M llvm/test/CodeGen/RISCV/select-bare.ll
M llvm/test/CodeGen/RISCV/select-cc.ll
M llvm/test/CodeGen/RISCV/select-or.ll
A llvm/test/MC/RISCV/xmips-invalid.s
A llvm/test/MC/RISCV/xmips-valid.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Add MIPS extensions (#121394)
Adding two extensions for MIPS p8700 CPU:
1. cmove (conditional move)
2. lsp (load/store pair)
The official product page here:
https://mips.com/products/hardware/p8700
Commit: 00f692b94f9aa08ede4aaba6f2aafe17857599c4
https://github.com/llvm/llvm-project/commit/00f692b94f9aa08ede4aaba6f2aafe17857599c4
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
Log Message:
-----------
Reland "[MLGO] Count LR Evictions Rather than Relying on Cascade (#124440)"
This reverts commit aa65f93b71dee8cacb22be1957673c8be6a3ec24.
This relands commit 8cc83b66e20e72cdb3bb5fbd549c941797b0e0c9.
It looks like this was a transitive include issue.
Commit: aab25f20f6c06bab7aac6fb83d54705ec4cdfadd
https://github.com/llvm/llvm-project/commit/aab25f20f6c06bab7aac6fb83d54705ec4cdfadd
Author: Adam Yang <hanbyang at microsoft.com>
Date: 2025-01-27 (Mon, 27 Jan 2025)
Changed paths:
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/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveMax-errors.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/DirectX/WaveActiveMax.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveMax.ll
Log Message:
-----------
[HLSL][SPIRV][DXIL] Implement `WaveActiveMax` intrinsic (#123428)
``` - add clang builtin to Builtins.td
- link builtin in hlsl_intrinsics
- add codegen for spirv intrinsic and two directx intrinsics to retain
signedness information of the operands in CGBuiltin.cpp
- add semantic analysis in SemaHLSL.cpp
- add lowering of spirv intrinsic to spirv backend in
SPIRVInstructionSelector.cpp
- add lowering of directx intrinsics to WaveActiveOp dxil op in
DXIL.td
- add test cases to illustrate passespendent pr merges.
```
Resolves #99170
Commit: 0865ecc5150b9a55ba1f9e30b6d463a66ac362a6
https://github.com/llvm/llvm-project/commit/0865ecc5150b9a55ba1f9e30b6d463a66ac362a6
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang-tools-extra/clangd/Diagnostics.cpp
M clang-tools-extra/clangd/Diagnostics.h
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/Diagnostic.h
M clang/include/clang/Basic/DiagnosticCategories.h
M clang/include/clang/Basic/DiagnosticIDs.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Basic/Diagnostic.cpp
M clang/lib/Basic/DiagnosticIDs.cpp
M clang/lib/Frontend/LogDiagnosticPrinter.cpp
M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
M clang/lib/Frontend/TextDiagnosticPrinter.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
A clang/test/Frontend/custom-diag-werror-interaction.c
M clang/test/Sema/diagnose_if.c
A clang/test/SemaCXX/diagnose_if-warning-group.cpp
M clang/tools/diagtool/ListWarnings.cpp
M clang/tools/diagtool/ShowEnabledWarnings.cpp
M clang/tools/libclang/CXStoredDiagnostic.cpp
M flang/lib/Frontend/TextDiagnosticPrinter.cpp
Log Message:
-----------
[clang] Extend diagnose_if to accept more detailed warning information, take 2 (#119712)
This is take two of #70976. This iteration of the patch makes sure that
custom
diagnostics without any warning group don't get promoted by `-Werror` or
`-Wfatal-errors`.
This implements parts of the extension proposed in
https://discourse.llvm.org/t/exposing-the-diagnostic-engine-to-c/73092/7.
Specifically, this makes it possible to specify a diagnostic group in an
optional third argument.
Commit: 7e22180c20fa3b4e0add41ad620d2eaac2b47fcc
https://github.com/llvm/llvm-project/commit/7e22180c20fa3b4e0add41ad620d2eaac2b47fcc
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
R clang/include/clang/Basic/BuiltinsHexagon.def
A clang/include/clang/Basic/BuiltinsHexagon.td
R clang/include/clang/Basic/BuiltinsHexagonDep.def
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/module.modulemap
M clang/lib/Basic/Targets/Hexagon.cpp
Log Message:
-----------
[StrTable] Mechanically convert Hexagon builtins to use TableGen (#123460)
This switches them to use the common builtin TableGen emission.
The fancy feature string preprocessor tricks are replaced with a fairly
direct translation into TableGen.
All of the actual definitions were created using a quite hack-y Python
script that was never intended to be productionized. It preserves the
order, spacing, and even comments from the original files. For
posterity, the script used is here:
https://gist.github.com/chandlerc/f53c7d735e33eecf388529bd9a6010df
The original `.def` file appears to be generated by some out-of-tree
`iset.py` script, which because it is out of tree I couldn't update. It
should be very straightforward though to update it to generate a similar
structure as was used to produce the `.td` file.
In addition to helping move towards TableGen for all of the builtins,
these builtins in particular can be *much* more efficiently handled
using TableGen when we start emitting string tables for them because it
allows de-duplicating all of the feature strings.
The commit sha parent at the time the PR was made is
7253c6fde498c4c9470b681df47d46e6930d6a02 and at that commit, the
resulting TableGen file produces a `.inc` file that only differs in
whitespace and the order of the builtins defined.
Commit: c8d3ccfa165d0193edf42ce1a0ba3077133c85e8
https://github.com/llvm/llvm-project/commit/c8d3ccfa165d0193edf42ce1a0ba3077133c85e8
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
Log Message:
-----------
[RISCV] Use llvm::reverse instead of make_range(rbegin, rend). NFC
Commit: 8e97f50eed71ff59b5a6fcb31e3e1af3fb30cdb4
https://github.com/llvm/llvm-project/commit/8e97f50eed71ff59b5a6fcb31e3e1af3fb30cdb4
Author: Balázs Kéri <balazs.keri at ericsson.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/AST/ASTImporter.cpp
A clang/test/Analysis/Inputs/ctu-test-import-failure-import.cpp
A clang/test/Analysis/Inputs/ctu-test-import-failure-import.cpp.externalDefMap.ast-dump.txt
A clang/test/Analysis/ctu-test-import-failure.cpp
Log Message:
-----------
[clang][ASTImporter] Fix possible crash at import of function template (#124273)
During import of a function template at specific conditions an assertion
"TemplateOrSpecialization.isNull()" can be triggered. This can
happen when the new AST is already incompatible after import failures.
Problem is fixed by returning import failure at the assert condition.
Commit: cd57c9530b915aafac251b9f2757eca15027dc10
https://github.com/llvm/llvm-project/commit/cd57c9530b915aafac251b9f2757eca15027dc10
Author: Aaditya <115080342+easyonaadit at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
M llvm/test/CodeGen/AMDGPU/nested-calls.ll
M llvm/test/CodeGen/AMDGPU/sibling-call.ll
Log Message:
-----------
[NFC][AMDGPU] Autogenerating test cases (#124507)
Commit: f4de28a63c81c909df28b6b065fad19e2189c54e
https://github.com/llvm/llvm-project/commit/f4de28a63c81c909df28b6b065fad19e2189c54e
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
M llvm/include/llvm/ADT/StringTable.h
M llvm/include/llvm/TableGen/StringToOffsetTable.h
M llvm/lib/IR/Intrinsics.cpp
M llvm/test/TableGen/MixedCasedMnemonic.td
M llvm/test/TableGen/SDNodeInfoEmitter/ambiguous-constraints.td
M llvm/test/TableGen/SDNodeInfoEmitter/basic.td
M llvm/test/TableGen/SDNodeInfoEmitter/namespace.td
M llvm/test/TableGen/SDNodeInfoEmitter/skipped-nodes.td
M llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
M llvm/utils/TableGen/OptionParserEmitter.cpp
M llvm/utils/TableGen/SDNodeInfoEmitter.cpp
Log Message:
-----------
[StrTable] Switch intrinsics to StringTable and work around MSVC (#123548)
Historically, the main example of *very* large string tables used the
`EmitCharArray` to work around MSVC limitations with string literals,
but that was switched (without removing the API) in order to consolidate
on a nicer emission primitive.
While this large string table in `IntrinsicsImpl.inc` seems to compile
correctly on MSVC without the work around in `EmitCharArray` (and that
this PR adds back to the nicer emission path), other users have
repeatedly hit this MSVC limitation as you can see in the discussion on
PR https://github.com/llvm/llvm-project/pull/120534. This PR teaches the
string offset table emission to look at
the size of the table and switch to the char array emission strategy
when the table becomes too large.
This work around does have the downside of making compile times worse
for large string tables, but that appears unavoidable until we can
identify known good MSVC versions and switch to requiring them for all
LLVM users. It also reduces searchability of the generated string table
-- I looked at emitting a comment with each string but it is tricky
because the escaping rules for an inline comment are different from
those of of a string literal, and there's no real way to turn the string
literal into a comment.
While improving the output in this way, also clean up the output to not
emit an extraneous empty string at the end of the string table, and
update the `StringTable` class to not look for that. It isn't actually
used by anything and is wasteful.
This PR also switches the `IntrinsicsImpl.inc` string tables over to the
new `StringTable` runtime abstraction. I didn't want to do this until
landing the MSVC workaround in case it caused even this example to start
hitting the MSVC bug, but I wanted to switch here so that I could
simplify the API for emitting the string table with the workaround
present. With the two different emission strategies, its important to
use a very exact syntax and that seems better encapsulated in the API.
Last but not least, the `SDNodeInfoEmitter` is updated, including its
tests to match the new output.
This PR should unblock landing
https://github.com/llvm/llvm-project/pull/120534 and letting us switch
all of
Clang's builtins to use string tables. That PR has all the details
motivating the overall effort.
Follow-up patches will try to consolidate the remaining users onto the
single interface, but those at least were easy to separate into
follow-ups and keep this PR somewhat smaller.
Commit: f76f534e8c81c01d7ee2c8ab36cb28b9542531ca
https://github.com/llvm/llvm-project/commit/f76f534e8c81c01d7ee2c8ab36cb28b9542531ca
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/test/lit.cfg.py
Log Message:
-----------
[NVPTX][Script] Update lit.cfg.py (#124395)
This patch updates lit.cfg.py to include
the latest ptxas executable versions upto
12.8.
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: 458542f454cdb769801f0b6459405b429503e00a
https://github.com/llvm/llvm-project/commit/458542f454cdb769801f0b6459405b429503e00a
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/invalid.mlir
Log Message:
-----------
[mlir][linalg] Relax structured op region filler check (#123741)
Removes assert on output type from structure op region filler to allow
more graceful error handling.
Commit: 1295aa2e814d1747d69520e34e2c5fb2888e666d
https://github.com/llvm/llvm-project/commit/1295aa2e814d1747d69520e34e2c5fb2888e666d
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/Driver/SanitizerArgs.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/CodeGen/integer-overflow.c
A clang/test/CodeGen/pointer-overflow.c
M clang/test/Driver/clang_wrapv_opts.c
M clang/test/Sema/tautological-pointer-comparison.c
Log Message:
-----------
[Clang] Add -fwrapv-pointer flag (#122486)
GCC supports three flags related to overflow behavior:
* `-fwrapv`: Makes signed integer overflow well-defined.
* `-fwrapv-pointer`: Makes pointer overflow well-defined.
* `-fno-strict-overflow`: Implies `-fwrapv -fwrapv-pointer`, making both
signed integer overflow and pointer overflow well-defined.
Clang currently only supports `-fno-strict-overflow` and `-fwrapv`, but
not `-fwrapv-pointer`.
This PR proposes to introduce `-fwrapv-pointer` and adjust the semantics
of `-fwrapv` to match GCC.
This allows signed integer overflow and pointer overflow to be
controlled independently, while `-fno-strict-overflow` still exists to
control both at the same time (and that option is consistent across GCC
and Clang).
Commit: 0f61558b97aab16fedd38648f88377ff3f860e06
https://github.com/llvm/llvm-project/commit/0f61558b97aab16fedd38648f88377ff3f860e06
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LoopVectorize][NFC] Remove unused variable in addUsersInExitBlocks (#124553)
We were allocating a VPTypeAnalysis object on the stack,
but never using it for anything.
Commit: 4a00c84fbb74e6bc3e010d9046324488cd612ad4
https://github.com/llvm/llvm-project/commit/4a00c84fbb74e6bc3e010d9046324488cd612ad4
Author: Csanád Hajdú <csanad.hajdu at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
A llvm/test/CodeGen/AArch64/arm64-prefetch-addrmode.ll
Log Message:
-----------
[AArch64] Allow register offset addressing mode for prefetch (#124534)
Previously instruction selection failed to generate PRFM instructions
with register offsets because `AArch64ISD::PREFETCH` is not a
`MemSDNode`.
Commit: cfc8ef0ad8f70be22b44a8e1b56856795eb18282
https://github.com/llvm/llvm-project/commit/cfc8ef0ad8f70be22b44a8e1b56856795eb18282
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A libclc/clc/include/clc/math/clc_copysign.h
A libclc/clc/include/clc/shared/binary_def.inc
M libclc/clc/lib/clspv/SOURCES
M libclc/clc/lib/generic/SOURCES
A libclc/clc/lib/generic/math/clc_copysign.cl
M libclc/clc/lib/spirv/SOURCES
M libclc/clc/lib/spirv64/SOURCES
M libclc/generic/lib/math/copysign.cl
Log Message:
-----------
[libclc] Move copysign to CLC library; fix & optimize (#124598)
This commit moves the implementation of the copysign builtin to the CLC
library.
It simultaneously optimizes it for vector types by avoiding
scalarization. It does so by using the __builtin_elementwise_copysign
clang builtins, which can handle vector types.
It also fixes a bug in the half/fp16 implementation of the builtin. This
version was using an incorrect mask (0x7FFFF instead of 0x7FFF) and was
thus preserving the original sign bit, rather than masking it out.
Commit: 9c92824dd63852f3e1145b383d7e6a0cdf1bb97d
https://github.com/llvm/llvm-project/commit/9c92824dd63852f3e1145b383d7e6a0cdf1bb97d
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libcxx/src/system_error.cpp
Log Message:
-----------
[libc++] Remove Android header no longer in use (#124691)
929f159777bec47c80a3b302f190261d426e1c3b removed the use of
`__ANDROID_API__`
Commit: de4bbbfdccb6172c563b07889ecfb06bc4974a7e
https://github.com/llvm/llvm-project/commit/de4bbbfdccb6172c563b07889ecfb06bc4974a7e
Author: SivanShani-Arm <sivan.shani at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/Support/AArch64BuildAttributes.h
M llvm/lib/Support/AArch64BuildAttributes.cpp
A llvm/lib/Support/ARMBuildAttributes.cpp
R llvm/lib/Support/ARMBuildAttrs.cpp
M llvm/lib/Support/CMakeLists.txt
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
Log Message:
-----------
[Build Attributes] Standardize names according to convention. (#124556)
The de-facto convention for build attributes file and class names seems
to be 'Attrs' in the class name and 'Attributes' in the file name.
Accordingly, change file ARMBuildAttrs.cpp -> ARMBuildAttributes.cpp And
class AArch64BuildAttrs --> AArch64BuildAttributes
Commit: d69b785733554f31d6538bbd6faaa2f018dd320e
https://github.com/llvm/llvm-project/commit/d69b785733554f31d6538bbd6faaa2f018dd320e
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[bazel] Add Builtins for #122873(NVPTX) and #123460(Hexagon)
Commit: 8fe7860610e3ff699831e11e4d57e38a198c40e8
https://github.com/llvm/llvm-project/commit/8fe7860610e3ff699831e11e4d57e38a198c40e8
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/test/Analysis/LoopAccessAnalysis/invariant-dependence-before.ll
Log Message:
-----------
LAA/test: cover invariant stores with unit stride (#124586)
LoopAccessAnalysis is missing coverage of the special-case of invariant
stores with unit stride. It was previously determined that
stride-versioning for stores is not profitable, but test coverage is
missing. Fix this.
Commit: 71ab44a8193c56e4ef9aede4d9bac8e14760c6c6
https://github.com/llvm/llvm-project/commit/71ab44a8193c56e4ef9aede4d9bac8e14760c6c6
Author: Wolfgang Pieb <wolfgang.pieb at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/CodeGenOptions.h
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/extend-variable-liveness.c
Log Message:
-----------
[Clang] Add "extend lifetime" flags and release note (#110000)
Following the commit that added the fake use intrinsic to LLVM, this patch
adds a pair of flags for the clang frontend that emit fake use intrinsics,
for the purpose of extending the lifetime of variables (either all source
variables, or just the `this` pointer). This patch does not implement the
fake use intrinsic emission of the flags themselves, it simply adds the flags,
the corresponding release note, and the attachment of the `has_fake_uses`
attribute to affected functions; the remaining functionality appears in the
next patch.
Co-authored-by: Stephen Tozer <stephen.tozer at sony.com>
Commit: 7cd6f85578147573af63dffe74e14fa7713ba18e
https://github.com/llvm/llvm-project/commit/7cd6f85578147573af63dffe74e14fa7713ba18e
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/RegisterCoalescer.h
Log Message:
-----------
[CodeGen][NFC] Format RegisterCoalescer sources (#124697)
Commit: 0165e3346fdb1a3f51352821227d6ff1af5aee59
https://github.com/llvm/llvm-project/commit/0165e3346fdb1a3f51352821227d6ff1af5aee59
Author: Bushev Dmitry <111585886+dybv-sc at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/Object/SymbolicFile.h
M llvm/unittests/Object/SymbolicFileTest.cpp
Log Message:
-----------
[llvm][Object] Add missing const qualifier for value_type in content_iterator (#124106)
value_type was defined as non-const for content_iterator, although it's
methods returned a const pointers/references. This prevented it from
using in some algorithms from STLExtras.h
Commit: b29bf3de051bfc696a266367102a9b68b0cabfe1
https://github.com/llvm/llvm-project/commit/b29bf3de051bfc696a266367102a9b68b0cabfe1
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[llvm][Docs] Re-order the LLDB release notes
To put generic changes first, moving into target specific changes
at the end.
Commit: cdea38f91afcae93cc2a552cd96c41d8d3ab2ad6
https://github.com/llvm/llvm-project/commit/cdea38f91afcae93cc2a552cd96c41d8d3ab2ad6
Author: Nicholas Guy <nicholas.guy at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
M llvm/lib/Transforms/Vectorize/VPlan.h
A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll
Log Message:
-----------
Reland "[LoopVectorizer] Add support for chaining partial reductions #120272" (#124282)
Change `getScaledReduction` to take an existing vector, rather than
creating and returning a new one each call.
Rename `getScaledReduction` to `getScaledReductions` to more accurately
reflect what it's now doing.
---------
Co-authored-by: Karlo Basioli <68535415+basioli-k at users.noreply.github.com>
Commit: 2c934dc5e1a3ef7b717400f27d6b9ea21f4e20a0
https://github.com/llvm/llvm-project/commit/2c934dc5e1a3ef7b717400f27d6b9ea21f4e20a0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/Context.cpp
M clang/test/AST/ByteCode/cxx2a.cpp
Log Message:
-----------
[clang][bytecode] Always compile most recent function decl (#124722)
Commit: db6fa74dfea30c025e5d4c30ca4e31e20b69b04d
https://github.com/llvm/llvm-project/commit/db6fa74dfea30c025e5d4c30ca4e31e20b69b04d
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_reinterpret.c
M clang/utils/TableGen/NeonEmitter.cpp
Log Message:
-----------
[AArch64] Implement FP8 Neon reinterpret intrinsics (#120476)
Commit: 97aa56ada5d25803112901ff06764975506ce7a6
https://github.com/llvm/llvm-project/commit/97aa56ada5d25803112901ff06764975506ce7a6
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lld/COFF/Config.h
M lld/COFF/DLL.cpp
M lld/COFF/DLL.h
M lld/COFF/Driver.cpp
M lld/COFF/SymbolTable.h
M lld/COFF/Writer.cpp
Log Message:
-----------
[LLD][COFF] Move delayLoadHelper and tailMergeUnwindInfoChunk to SymbolTable (NFC) (#124729)
In preparation for ARM64X delay-load import support (#124600).
Commit: 8017ca1d0056907331ff7542ac9ff1ff5ec969a2
https://github.com/llvm/llvm-project/commit/8017ca1d0056907331ff7542ac9ff1ff5ec969a2
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/const-shift-of-constmasked.ll
M llvm/test/CodeGen/AArch64/extract-bits.ll
M llvm/test/CodeGen/AArch64/fpenv.ll
M llvm/test/CodeGen/AArch64/xbfiz.ll
Log Message:
-----------
Reapply "[AArch64] Combine and and lsl into ubfiz" (#123356) (#124576)
Patch was reverted due to test case (added) exposing an infinite loop in
combiner, where (shl C1, C2) create by performSHLCombine isn't
constant-folded:
Combining: t14: i64 = shl t12, Constant:i64<1>
Creating new node: t36: i64 = shl
OpaqueConstant:i64<-2401053089408754003>, Constant:i64<1>
Creating new node: t37: i64 = shl t6, Constant:i64<1>
Creating new node: t38: i64 = and t37, t36
... into: t38: i64 = and t37, t36
...
Combining: t38: i64 = and t37, t36
Creating new node: t39: i64 = and t6,
OpaqueConstant:i64<-2401053089408754003>
Creating new node: t40: i64 = shl t39, Constant:i64<1>
... into: t40: i64 = shl t39, Constant:i64<1>
and subsequently gets simplified by DAGCombiner::visitAND:
// Simplify: (and (op x...), (op y...)) -> (op (and x, y))
if (N0.getOpcode() == N1.getOpcode())
if (SDValue V = hoistLogicOpWithSameOpcodeHands(N))
return V;
before being folded by performSHLCombine once again and so on.
The combine in performSHLCombine should only be done if (shl C1, C2) can
be constant-folded, it may otherwise be unsafe and generally have a
worse end result. Thanks to Dave Sherwood for his insight on this one.
This reverts commit f719771f251d7c30eca448133fe85730f19a6bd1.
Commit: 65f81df473904d2df2b9eaa91ff4fcbe69f8fb00
https://github.com/llvm/llvm-project/commit/65f81df473904d2df2b9eaa91ff4fcbe69f8fb00
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/docs/RemoveDIsDebugInfo.md
Log Message:
-----------
[Docs][DebugInfo] Summarise what people need to do for RemoveDIs now (#124725)
Replace the "what I need to do" section of the RemoveDIs docs with a
paragraph about preserving start-of-block iterators. Hopefully this is
concise enough to remain in peoples heads going forwards!
Commit: 75aa5a35568b9e0b3eabd1e7f991a6a0f5525e0c
https://github.com/llvm/llvm-project/commit/75aa5a35568b9e0b3eabd1e7f991a6a0f5525e0c
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h
M lldb/source/Plugins/Process/elf-core/RegisterUtilities.h
M lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
A lldb/test/API/linux/aarch64/gcs/corefile
Log Message:
-----------
[lldb][AArch64] Add Guarded Control Stack support for Linux core files (#124293)
This allows you to read the same registers as you would for a live
process.
As the content of proc/pid/smaps is not included in the core file, we
don't get the "ss" marker that tell us that it is shadow stack. The GCS
region is still in the list though.
Commit: 7f845cba2ccc2ab637b8e40fbafb9f83a2d67c70
https://github.com/llvm/llvm-project/commit/7f845cba2ccc2ab637b8e40fbafb9f83a2d67c70
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M .github/workflows/libcxx-build-and-test.yaml
M libcxx/include/__configuration/compiler.h
M libcxx/include/__cxx03/__memory/uninitialized_algorithms.h
M libcxx/include/__type_traits/promote.h
M libcxx/src/experimental/time_zone.cpp
M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
M libcxx/test/libcxx/clang_tidy.gen.py
M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp
M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp
M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp
M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp
M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp
M libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
M libcxx/test/std/containers/views/views.span/span.cons/array.pass.cpp
M libcxx/test/std/experimental/simd/simd.class/simd_copy.pass.cpp
M libcxx/test/std/experimental/simd/simd.class/simd_unary.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete.pass.cpp
M libcxx/test/std/numerics/c.math/signbit.pass.cpp
M libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp
M libcxx/test/std/utilities/format/format.arguments/format.arg/visit.pass.cpp
M libcxx/test/std/utilities/format/format.arguments/format.arg/visit.return_type.pass.cpp
M libcxx/test/std/utilities/format/format.arguments/format.arg/visit_format_arg.deprecated.verify.cpp
M libcxx/test/std/utilities/meta/meta.rel/is_virtual_base_of.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.verify.cpp
M libcxx/test/std/utilities/utility/pairs/pairs.pair/nttp.equivalence.compile.pass.cpp
M libcxx/test/std/utilities/utility/pairs/pairs.pair/nttp.verify.cpp
M libcxx/test/std/utilities/variant/variant.visit.member/robust_against_adl.pass.cpp
M libcxx/test/std/utilities/variant/variant.visit.member/visit.pass.cpp
M libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp
Log Message:
-----------
[libc++] Update the CI to Clang-20 and drop Clang-17 support (#117429)
Commit: 304a99091c84f303ff5037dc6bf5455e4cfde7a1
https://github.com/llvm/llvm-project/commit/304a99091c84f303ff5037dc6bf5455e4cfde7a1
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/examples/IRTransforms/SimplifyCFG.cpp
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
M llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[NFC][DebugInfo] Use iterators for insertion at some final callsites
These are the callsites that have materialised in the last three weeks
since I last built with deprecation warnings.
Commit: 6d0dd3d5c41e5b564714de9226c0623012538051
https://github.com/llvm/llvm-project/commit/6d0dd3d5c41e5b564714de9226c0623012538051
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/docs/use/aarch64-linux.md
Log Message:
-----------
[lldb][Docs] Add Guarded Control Stack to AArch64 Linux page (#117860)
The meat of this is how we execute expressions and deal with the
aftermath. For most users this will never be a concern, so it functions
more as a design doc than anything else.
Commit: 1b551e76a2fec3a1ab7d36476ab99f2504e6f6c9
https://github.com/llvm/llvm-project/commit/1b551e76a2fec3a1ab7d36476ab99f2504e6f6c9
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lld/COFF/DLL.cpp
Log Message:
-----------
[LLD][COFF] Call setLocation on DelayAddressChunk when inserting into the addresses vector (NFC) (#124736)
This change prepares for ARM64X delay-load imports support (#124600).
Delaying the `setLocation` call is problematic on ARM64X because the
order of addresses may not align with the order of symbols.
Commit: 83433d936195c612a51b54397f82ab0d97369d86
https://github.com/llvm/llvm-project/commit/83433d936195c612a51b54397f82ab0d97369d86
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
A mlir/test/Target/LLVMIR/omptarget-nowait-host-only.mlir
Log Message:
-----------
[OpenMP][IRBuilder] Handle `target ... nowait` when codegen targets host (#124720)
Fixes https://github.com/llvm/llvm-project/issues/124578
Handles the `nowait` clause for `omp.target` ops when the actual target
is the host (i.e. there is no target device). Rather than only checking
for the `HasNoWait` boolean, we also check for the presence/absence of a
`DeviceID` value. We only emit the target task if both are present.
Commit: c5840cc609a3674cf7453a45946f7e4a2a73590b
https://github.com/llvm/llvm-project/commit/c5840cc609a3674cf7453a45946f7e4a2a73590b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
M lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
Log Message:
-----------
[lldb][AArch64] Add register fields for Guarded Control Stack registers (#124295)
The features and locked registers hold the same bits, the latter
is a lock for the former. Tested with core files and live processes.
I thought about setting a non-zero lock register in the core file,
however:
* We can be pretty sure it's reading correctly because its between
the 2 other GCS registers in the same core file note.
* I can't make the test case modify lock bits because userspace
can't clear them (without using ptrace) and we don't know what the libc
has locked
(probably all feature bits).
Commit: 3a51466caf93b179f859175b7fe87018a2607e6c
https://github.com/llvm/llvm-project/commit/3a51466caf93b179f859175b7fe87018a2607e6c
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lld/COFF/DLL.cpp
A lld/test/COFF/arm64x-delayimport.test
Log Message:
-----------
[LLD][COFF] Add support for delay-load imports on ARM64X (#124600)
For each imported module, emit null-terminated native import entries,
followed by null-terminated EC entries. If a view lacks imports for a
given module, only terminators are emitted. Use ARM64X relocations to
skip native entries in the EC view.
Move `delayLoadHelper` and `tailMergeUnwindInfoChunk` to `SymbolTable`
since they are different for each symbol table.
Commit: 431024506c6f5597fe476e1283a08c9f8fa72ad7
https://github.com/llvm/llvm-project/commit/431024506c6f5597fe476e1283a08c9f8fa72ad7
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel] Remove DebugInfo files covered by more specific targets (#124138)
For example, `include/llvm/DebugInfo/DWARF/DWARFContext.h` is included
as part of both the generic "DebugInfo" target as well as the specific
"DebugInfoDWARF" target. It should only be in one. Tooling that manages
build dependencies should be more accurate now.
Commit: a7f4044bd01919df2bf2204d203ee0378e2e9fb2
https://github.com/llvm/llvm-project/commit/a7f4044bd01919df2bf2204d203ee0378e2e9fb2
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/AST/Decl.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/AST/Decl.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaStmt.cpp
A clang/test/Sema/aarch64-sme-attrs-openmp-captured-region.c
Log Message:
-----------
[clang][SME] Emit error for OpenMP captured regions in SME functions (#124590)
Currently, these generate incorrect code, as streaming/SME attributes
are not propagated to the outlined function. As we've yet to work on
mixing OpenMP and streaming functions (and determine how they should
interact with OpenMP's runtime), we think it is best to disallow this
for now.
Commit: 8353aa2a53b307bfeebb7f8592cc15bb00656c78
https://github.com/llvm/llvm-project/commit/8353aa2a53b307bfeebb7f8592cc15bb00656c78
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[llvm][Docs] Add LLDB AArch64 GCS Release note
https://github.com/llvm/llvm-project/pull/124295 just
went in and that's the last piece of functionality.
Commit: 8ea018ce1de016a2923ebc48d39abc1c06cce41e
https://github.com/llvm/llvm-project/commit/8ea018ce1de016a2923ebc48d39abc1c06cce41e
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AMDGPU/mmra.ll
Log Message:
-----------
[DAGISel] Fix MMRA Handling in copyExtraInfo (#124730)
#78569 did not implement this correctly and an edge case breaks it by
triggering `Assertion `!Leafs.empty()' failed.`
Fixes SWDEV-507698
Commit: 500a1834d92d701fea914ab5de10d82d6c90dbd9
https://github.com/llvm/llvm-project/commit/500a1834d92d701fea914ab5de10d82d6c90dbd9
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vl-opt-op-info.mir
Log Message:
-----------
[RISCV][VLOPT] Fix some typos in vl-opt-op-info.mir test. NFC
vleN_v_incompatible_emul reassigns to %x and
vsuxeiN_v_idx_incompatible_eew has a dead instruction
Commit: 4424c44c8c4ec8e071f5c5999fba216d36fb92c9
https://github.com/llvm/llvm-project/commit/4424c44c8c4ec8e071f5c5999fba216d36fb92c9
Author: Wolfgang Pieb <wolfgang.pieb at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGCleanup.h
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/EHScopeStack.h
A clang/test/CodeGen/extend-variable-liveness-except.cpp
A clang/test/CodeGen/extend-variable-liveness-wide-scalar.cpp
A clang/test/CodeGen/extend-variable-liveness.c
A clang/test/CodeGen/fake-use-determinism.c
A clang/test/CodeGen/fake-use-lambda.cpp
A clang/test/CodeGen/fake-use-landingpad.c
A clang/test/CodeGen/fake-use-noreturn.cpp
A clang/test/CodeGen/fake-use-return-line.c
A clang/test/CodeGen/fake-use-sanitizer.cpp
A clang/test/CodeGen/fake-use-scalar.c
A clang/test/CodeGen/fake-use-this.cpp
A clang/test/CodeGen/fake-use-while.c
Log Message:
-----------
[Clang] Add fake use emission to Clang with -fextend-lifetimes (#110102)
Following the previous patch which adds the "extend lifetimes" flag
without (almost) any functionality, this patch adds the real feature by
allowing Clang to emit fake uses. These are emitted as a new form of cleanup,
set for variable addresses, which just emits a fake use intrinsic when the
variable falls out of scope. The code for achieving this is simple, with most
of the logic centered on determining whether to emit a fake use for a given
address, and on ensuring that fake uses are ignored in a few cases.
Co-authored-by: Stephen Tozer <stephen.tozer at sony.com>
Commit: c0861e9cbbc3b342e49a8688cdc15aa7c8e9f29a
https://github.com/llvm/llvm-project/commit/c0861e9cbbc3b342e49a8688cdc15aa7c8e9f29a
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/include/flang/Tools/TargetSetup.h
M flang/runtime/exceptions.cpp
Log Message:
-----------
Revert "[flang] IEEE underflow control for Arm (#124617)"
This reverts commit c4c76eabb88f8ee5b92fa9a84452875b0cb67d0d.
This breaks LLVM build on Windows:
https://lab.llvm.org/buildbot/#/builders/161/builds/4322
Commit: e1b5826c2b9dafbdf627b2abbf0157ae12306657
https://github.com/llvm/llvm-project/commit/e1b5826c2b9dafbdf627b2abbf0157ae12306657
Author: Mészáros Gergely <gergely.meszaros at intel.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/cmake/modules/HandleLLVMOptions.cmake
Log Message:
-----------
[LLVM][CMake][MSVC] Wrap linker options for ICX with LLVM_BUILD_INSTUMENTED (#124573)
RFC:
https://discourse.llvm.org/t/rfc-cmake-linker-flags-need-wl-equivalent-for-intel-c-icx-on-windows/82446
The Intel C++ Compiler (ICX) passes linker flags through the driver
unlike MSVC and clang-cl, and therefore needs them to be prefixed with
`/Qoption,link` (the equivalent of `-Wl,` for gcc on *nix).
Previous PRs did not catch this because I did not try building with
`LLVM_BUILD_INSTRUMENTED=ON`.
`CMAKE_CXX_LINKER_WRAPPER_FLAG` is empty for plain clang-cl (icx on
windows behaves as clang-cl), so this is NFC for clang-cl.
Commit: afa4681ce443e88a5f196b808300fe3c133e96fd
https://github.com/llvm/llvm-project/commit/afa4681ce443e88a5f196b808300fe3c133e96fd
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
A flang/test/Integration/debug-common-block-1.f90
A flang/test/Transforms/debug-common-block.fir
M flang/test/Transforms/debug-module-1.fir
M flang/test/Transforms/debug-module-2.fir
Log Message:
-----------
[flang][debug] Add support for common blocks. (#112398)
This PR adds debug support for common block in flang. As variable which
are part of a common block don't have a special marker to recognize
them, we use the following check to find them.
%0 = fir.address_of(@a)
%1 = fir.convert %0
%2 = fir.coordinate_of %1, %c0
%3 = fir.convert %2
%4 = fircg.ext_declare %3
If the memref of a fircg.ext_declare points to a fir.coordinate_of and
that in turn points to an fir.address_of (ignoring immediate
fir.convert) then we assume that it is a common block variable. The
fir.address_of gives us the global symbol which is the storage for
common block and fir.coordinate_of provides the offset in this storage.
The debug hierarchy looks like as
subroutine f3
integer :: x, y
common /a/ x, y
end subroutine
@a_ = global { ... } { ... }, !dbg !26, !dbg !28
!23 = !DISubprogram(name: "f3"...)
!24 = !DICommonBlock(scope: !23, name: "a", ...)
!25 = !DIGlobalVariable(name: "x", scope: !24 ...)
!26 = !DIGlobalVariableExpression(var: !25, expr: !DIExpression())
!27 = !DIGlobalVariable(name: "y", scope: !24 ...)
!28 = !DIGlobalVariableExpression(var: !27, expr:
!DIExpression(DW_OP_plus_uconst, 4))
This required following changes:
1. Instead of using DIGlobalVariableAttr in the FusedLoc of GlobalOp, we
use DIGlobalVariableExpressionAttr. This allows us the generate the
DIExpression where we have the information.
2. Previously, only one DIGlobalVariableExpressionAttr could be linked
to one global op. I recently removed this restriction in mlir. To make
use of it, we add an ArrayAttr to the FusedLoc of a GlobalOp. This
allows us to pass multiple DIGlobalVariableExpressionAttr.
3. I was depending on the name of global for the name of the common
block. The name gets a '_' appended. I could not find a utility function
in flang to remove it so I have to brute force it.
Commit: 62c16d82194f4c209fe9431deddf302827d37fb4
https://github.com/llvm/llvm-project/commit/62c16d82194f4c209fe9431deddf302827d37fb4
Author: Alex Bradbury <asb at igalia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A llvm/test/ExecutionEngine/MCJIT/fma3-jit.ll
A llvm/test/ExecutionEngine/MCJIT/frem.ll
A llvm/test/ExecutionEngine/MCJIT/mov64zext32.ll
A llvm/test/ExecutionEngine/MCJIT/test-interp-vec-arithm_float.ll
A llvm/test/ExecutionEngine/MCJIT/test-interp-vec-arithm_int.ll
A llvm/test/ExecutionEngine/MCJIT/test-interp-vec-logical.ll
A llvm/test/ExecutionEngine/MCJIT/test-interp-vec-setcond-fp.ll
A llvm/test/ExecutionEngine/MCJIT/test-interp-vec-setcond-int.ll
R llvm/test/ExecutionEngine/fma3-jit.ll
R llvm/test/ExecutionEngine/frem.ll
R llvm/test/ExecutionEngine/mov64zext32.ll
R llvm/test/ExecutionEngine/test-interp-vec-arithm_float.ll
R llvm/test/ExecutionEngine/test-interp-vec-arithm_int.ll
R llvm/test/ExecutionEngine/test-interp-vec-logical.ll
R llvm/test/ExecutionEngine/test-interp-vec-setcond-fp.ll
R llvm/test/ExecutionEngine/test-interp-vec-setcond-int.ll
Log Message:
-----------
[MCJIT][test] Move MCJIT non-interpreter tests to MCJIT subdirectory (#124463)
Moving to the MCJIT subdirectory means they can be gated by a common
lit.local.cfg. I remove the `; UNSUPPORTED: target=loongarch{{.*}}`
lines because of this (as the logic in `MCJIT/lit.local.cfg` should be
sufficient).
The move is motivated by my desire to enable more of these tests for
RISCV, and it seems like it would be wrong to keep extending the
`UNSUPPORTED` lines for these individual tests.
This patch does not move the MCJIT tests in the top-level directory that
do `-force-interpreter=true`.
Commit: 8ad9e1ecb7e565c2f99b4ef67517d1f37d1c80d0
https://github.com/llvm/llvm-project/commit/8ad9e1ecb7e565c2f99b4ef67517d1f37d1c80d0
Author: Stephen Tozer <Stephen.Tozer at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGDecl.cpp
M clang/test/CodeGen/fake-use-sanitizer.cpp
Log Message:
-----------
[Clang] Fix use of deprecated method and missing triple
Fixes two buildbot errors caused by 4424c44c (#110102):
The first error, seen on some sanitizer bots:
https://lab.llvm.org/buildbot/#/builders/51/builds/9901
The initial commit used the deprecated getDeclaration intrinsic instead
of the non-deprecated getOrInsert- equivalent. This patch trivially
updates the code in question to use the new intrinsic.
The second error, seen on the clang-armv8-quick bot:
https://lab.llvm.org/buildbot/#/builders/154/builds/10983
One of the tests depends on a particular triple to get the exact output
expected by the test, but did not specify this triple; this patch adds
the triple in question.
Commit: 606cf887416ba2f136f3104ac12469fc81f73968
https://github.com/llvm/llvm-project/commit/606cf887416ba2f136f3104ac12469fc81f73968
Author: Alex Bradbury <asb at igalia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/test/ExecutionEngine/lit.local.cfg
Log Message:
-----------
[ExecutionEngine][test][RISCV] Don't mark RISCV as unsupported (#124464)
Although MCJIT is unsupported, we can and should be running the other
tests. Stacks on top of #124463 (needed to avoid unsupported MCJIT tests
in the top-level test/ExecutionEngine directory running when they
shouldn't).
This effectively reverts b8feeba0b407e703385738af7e415d0c8972a420.
ninja check-llvm-executionengine before:
Total Discovered Tests: 335
Unsupported: 335 (100.00%)
ninja check-llvm-executionengine after:
Total Discovered Tests: 335
Unsupported : 125 (37.31%)
Passed : 209 (62.39%)
Expectedly Failed: 1 (0.30%)
Commit: 015aed18ee357ee6db4e72cba2e65aeaafa333c9
https://github.com/llvm/llvm-project/commit/015aed18ee357ee6db4e72cba2e65aeaafa333c9
Author: abhishek-kaushik22 <abhishek.kaushik at intel.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
A llvm/test/CodeGen/X86/pr124255.ll
Log Message:
-----------
[SelectionDAG] WidenVecOp_INSERT_SUBVECTOR - Replace `INSERT_SUBVECTOR` with series of `INSERT_VECTOR_ELT` (#124420)
If the operands to `INSERT_SUBVECTOR` can't be widened legally, just
replace the `INSERT_SUBVECTOR` with a series of `INSERT_VECTOR_ELT`.
Closes #124255 (and possibly #102016)
Commit: 13dcc95dcd4999ff99f2de89d881f1aed5b21709
https://github.com/llvm/llvm-project/commit/13dcc95dcd4999ff99f2de89d881f1aed5b21709
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/test/CodeGenCUDA/offloading-entries.cu
M clang/test/Driver/linker-wrapper-image.c
M clang/test/OpenMP/declare_mapper_codegen.cpp
M clang/test/OpenMP/declare_target_codegen.cpp
M clang/test/OpenMP/declare_target_link_codegen.cpp
M clang/test/OpenMP/nvptx_target_requires_unified_shared_memory.cpp
M clang/test/OpenMP/openmp_offload_registration.cpp
M clang/test/OpenMP/target_codegen.cpp
M clang/test/OpenMP/target_codegen_registration.cpp
M clang/test/OpenMP/target_depend_codegen.cpp
M clang/test/OpenMP/target_indirect_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_simd_codegen.cpp
M clang/test/OpenMP/target_simd_codegen_registration.cpp
M clang/test/OpenMP/target_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_codegen_registration.cpp
M clang/test/OpenMP/target_teams_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
M llvm/include/llvm/Frontend/Offloading/Utility.h
M llvm/lib/Frontend/Offloading/OffloadWrapper.cpp
M llvm/lib/Frontend/Offloading/Utility.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
M offload/include/PluginManager.h
M offload/src/PluginManager.cpp
M offload/test/offloading/requires.c
M offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp
M openmp/docs/ReleaseNotes.rst
Log Message:
-----------
[Offload] Rework offloading entry type to be more generic (#124018)
Summary:
The previous offloading entry type did not fit the current use-cases
very well. This widens it and adds a version to prevent further
annoyances. It also includes the kind to better sort who's using it.
The first 64-bytes are reserved as zero so the OpenMP runtime can detect
the old format for binary compatibilitry.
Commit: e84f6b6a88c1222d512edf0644c8f869dd12b8ef
https://github.com/llvm/llvm-project/commit/e84f6b6a88c1222d512edf0644c8f869dd12b8ef
Author: Luohao Wang <luohaothu at live.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir/Conversion/LLVMCommon/PrintCallHelper.h
M mlir/include/mlir/Dialect/LLVMIR/FunctionCallUtils.h
M mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
M mlir/lib/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.cpp
M mlir/lib/Conversion/LLVMCommon/Pattern.cpp
M mlir/lib/Conversion/LLVMCommon/PrintCallHelper.cpp
M mlir/lib/Conversion/MemRefToLLVM/AllocLikeConversion.cpp
M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp
M mlir/test/Conversion/MemRefToLLVM/invalid.mlir
Log Message:
-----------
[mlir] Fix conflict of user defined reserved functions with internal prototypes (#123378)
On lowering from `memref` to LLVM, `malloc` and other intrinsic
functions from `libc` will be declared in the current module. User's
redefinition of these reserved functions will poison the internal
analysis with wrong prototype. This patch adds assertion on the found
function's type and reports if it mismatch with the intended type.
Related to #120950
---------
Co-authored-by: Luohao Wang <Luohaothu at users.noreply.github.com>
Commit: 1d5fbe83c3bcdd27a8ce1d57a68fb7be35e6cbbf
https://github.com/llvm/llvm-project/commit/1d5fbe83c3bcdd27a8ce1d57a68fb7be35e6cbbf
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
Log Message:
-----------
[SLP]Adjust NumberOfParts value for adjusted number of buildvector scalars
Need to adjust NumParts value, when GatheredScalars scalars are adjusted
after extractelements analysis, to fix compiler crash
Commit: 0cf6714279d4146ee5d6a5e34195d6fae56ed475
https://github.com/llvm/llvm-project/commit/0cf6714279d4146ee5d6a5e34195d6fae56ed475
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
Log Message:
-----------
[lldb][AArch64] Fix GCS register field detection
Fixes c5840cc609a3674cf7453a45946f7e4a2a73590b.
On platforms where UL is 32 bit, like Windows or 32 bit Linux,
this shift was not correct, so we assumed GCS was not present.
Use ULL instead, to match the other HWCAP constants.
Commit: 11db7fb09b36e656a801117d6a2492133e9c2e46
https://github.com/llvm/llvm-project/commit/11db7fb09b36e656a801117d6a2492133e9c2e46
Author: Renat Idrisov <4032256+parsifal-47 at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
A llvm/test/MachineVerifier/test_g_incompatible_range.mir
Log Message:
-----------
[GlobalISel] Catching inconsistencies in load memory, result, and range metadata type (#121247)
This is a fix for:
https://github.com/llvm/llvm-project/issues/97290
Please let me know if that is the right way to address the issue. Thank
you!
---------
Co-authored-by: Renat Idrisov <parsifal-47 at users.noreply.github.com>
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: 37b595cb3715fb8c453c0d3981d6c4f4d208d372
https://github.com/llvm/llvm-project/commit/37b595cb3715fb8c453c0d3981d6c4f4d208d372
Author: Nico Weber <thakis at chromium.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
Log Message:
-----------
[gn] port b968fd950266 (BuiltinsNVPTX.td)
Commit: 22687aa97bdae2f0ea0be9baf208247c18d69c06
https://github.com/llvm/llvm-project/commit/22687aa97bdae2f0ea0be9baf208247c18d69c06
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
A llvm/test/CodeGen/X86/fake-use-remove-loads.mir
Log Message:
-----------
[CodeGen] Correctly handle non-standard cases in RemoveLoadsIntoFakeUses (#111551)
In the RemoveLoadsIntoFakeUses pass, we try to remove loads that are
only used by fake uses, as well as the fake use in question. There are
two existing errors with the pass however: it incorrectly examines every
operand of each FAKE_USE, when only the first is relevant (extra
operands will just be "killed" regs assigned by a previous pass), and it
ignores cases where the FAKE_USE register is not an exact match for the
loaded register, which is incorrect as regalloc may choose to load a
wider value than the FAKE_USE required pre-regalloc. This patch fixes
both of these cases.
Commit: a1ab5b4c87256ce7e99d6fd4bd0c62641e6ce853
https://github.com/llvm/llvm-project/commit/a1ab5b4c87256ce7e99d6fd4bd0c62641e6ce853
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/ARM/main-gep-with-non-matching-reqs.ll
Log Message:
-----------
[SLP]Check the MainOp matches the requirements for the instructions
Need to include MainOp into the analysis of the instructions in
getSameOpcode to be sure that it is checked for the requirements to
prevent crashes during further analysis.
Commit: 79499f010d2bfe809187a9a5f042d4e4ee1f1bcc
https://github.com/llvm/llvm-project/commit/79499f010d2bfe809187a9a5f042d4e4ee1f1bcc
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Instruction.cpp
Log Message:
-----------
[NFC][DebugInfo] Deprecate iterator-taking moveBefore and getFirstNonPHI (#124290)
The RemoveDIs project [0] makes debug intrinsics obsolete and to support
this instruction iterators carry an extra bit of debug information. To
maintain debug information accuracy insertion needs to be performed with a
BasicBlock::iterator rather than with Instruction pointers, otherwise the
extra bit of debug information is lost.
To that end, we're deprecating getFirstNonPHI and moveBefore for
instruction pointers. They're replaced by getFirstNonPHIIt and an
iterator-taking moveBefore: switching to the replacement is
straightforwards, and 99% of call-sites need only to unwrap the iterator
with &* or call getIterator() on an Instruction pointer.
The exception is when inserting instructions at the start of a block: if
you call getFirstNonPHI() (or begin() or getFirstInsertionPt()) and then
insert something at that position, you must pass the BasicBlock::iterator
returned into the insertion method. Unwrapping with &* and then calling
getIterator strips the debug-info bit we wish to preserve. Please do
contact us about any use case that's confusing or unclear [1].
[0] https://llvm.org/docs/RemoveDIsDebugInfo.html
[1] https://discourse.llvm.org/t/psa-ir-output-changing-from-debug-intrinsics-to-debug-records/79578
Commit: 4bd2307a2085f0ace05e0b1b11c1c47ff3870110
https://github.com/llvm/llvm-project/commit/4bd2307a2085f0ace05e0b1b11c1c47ff3870110
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/AST/ExprConstant.cpp
M clang/test/SemaCXX/constant-expression-cxx11.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
Log Message:
-----------
[clang][ExprConst] Don't diagnose a non-existent init as not constant (#124575)
This test:
```c++
extern Swim& trident; // expected-note {{declared here}}
constexpr auto& gallagher = typeid(trident); // expected-error {{constexpr variable 'gallagher' must be initialized by a constant expression}}
// expected-note at -1 {{initializer of 'trident' is not a constant expression}}
```
diagnosed the initializer of `trident` as not constant, but `trident`
doesn't even have an initializer. Remove that diagnostic in this case.
Commit: 3a975d697f11b5cccda2f2778c3792c179eecb74
https://github.com/llvm/llvm-project/commit/3a975d697f11b5cccda2f2778c3792c179eecb74
Author: Nico Weber <thakis at chromium.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
Log Message:
-----------
[gn] port 7e22180c20f (BuiltinsHexagon.td)
Commit: 78b5bb702fe97fe85f66d72598d0dfa7c49fe001
https://github.com/llvm/llvm-project/commit/78b5bb702fe97fe85f66d72598d0dfa7c49fe001
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A libclc/clc/include/clc/math/clc_subnormal_config.h
A libclc/clc/include/clc/math/math.h
A libclc/clc/include/clc/math/tables.h
M libclc/clspv/lib/math/fma.cl
M libclc/clspv/lib/subnormal_config.cl
R libclc/generic/include/config.h
M libclc/generic/include/math/clc_ldexp.h
M libclc/generic/lib/math/acos.cl
M libclc/generic/lib/math/acosh.cl
M libclc/generic/lib/math/acospi.cl
M libclc/generic/lib/math/asin.cl
M libclc/generic/lib/math/asinh.cl
M libclc/generic/lib/math/asinpi.cl
M libclc/generic/lib/math/atan.cl
M libclc/generic/lib/math/atan2.cl
M libclc/generic/lib/math/atan2pi.cl
M libclc/generic/lib/math/atanh.cl
M libclc/generic/lib/math/atanpi.cl
M libclc/generic/lib/math/cbrt.cl
M libclc/generic/lib/math/clc_exp10.cl
M libclc/generic/lib/math/clc_fma.cl
M libclc/generic/lib/math/clc_fmod.cl
M libclc/generic/lib/math/clc_hypot.cl
M libclc/generic/lib/math/clc_ldexp.cl
M libclc/generic/lib/math/clc_pow.cl
M libclc/generic/lib/math/clc_pown.cl
M libclc/generic/lib/math/clc_powr.cl
M libclc/generic/lib/math/clc_remainder.cl
M libclc/generic/lib/math/clc_remquo.cl
M libclc/generic/lib/math/clc_rootn.cl
M libclc/generic/lib/math/clc_tan.cl
M libclc/generic/lib/math/clc_tanpi.cl
M libclc/generic/lib/math/cos.cl
M libclc/generic/lib/math/cosh.cl
M libclc/generic/lib/math/cospi.cl
M libclc/generic/lib/math/ep_log.cl
M libclc/generic/lib/math/ep_log.h
M libclc/generic/lib/math/erf.cl
M libclc/generic/lib/math/erfc.cl
M libclc/generic/lib/math/exp.cl
M libclc/generic/lib/math/exp2.cl
M libclc/generic/lib/math/exp_helper.cl
M libclc/generic/lib/math/expm1.cl
M libclc/generic/lib/math/fdim.cl
M libclc/generic/lib/math/fma.cl
M libclc/generic/lib/math/ilogb.cl
M libclc/generic/lib/math/ldexp.cl
M libclc/generic/lib/math/lgamma_r.cl
M libclc/generic/lib/math/log10.cl
M libclc/generic/lib/math/log1p.cl
M libclc/generic/lib/math/log2.cl
M libclc/generic/lib/math/log_base.h
M libclc/generic/lib/math/logb.cl
R libclc/generic/lib/math/math.h
M libclc/generic/lib/math/modf.cl
M libclc/generic/lib/math/sin.cl
M libclc/generic/lib/math/sincos_helpers.cl
M libclc/generic/lib/math/sincos_helpers.h
M libclc/generic/lib/math/sinh.cl
M libclc/generic/lib/math/sinpi.cl
M libclc/generic/lib/math/tables.cl
R libclc/generic/lib/math/tables.h
M libclc/generic/lib/math/tanh.cl
M libclc/generic/lib/math/tgamma.cl
M libclc/generic/lib/subnormal_config.cl
M libclc/r600/lib/math/fmax.cl
M libclc/r600/lib/math/fmin.cl
M libclc/spirv/lib/subnormal_config.cl
M libclc/spirv64/lib/subnormal_config.cl
Log Message:
-----------
[libclc][NFC] Move key math headers to CLC (#124739)
Commit: 820c6ac7f5e438cc268ecb1fa2c6b17f0d168000
https://github.com/llvm/llvm-project/commit/820c6ac7f5e438cc268ecb1fa2c6b17f0d168000
Author: cor3ntin <corentinjabot at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDecl.cpp
A clang/test/CodeGenCXX/gh119046.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
Log Message:
-----------
[Clang] call HandleImmediateInvocation before checking for immediate escacalating expressions (reland) (#124708)
HandleImmediateInvocation can call MarkExpressionAsImmediateEscalating
and should always be called before
CheckImmediateEscalatingFunctionDefinition.
However, we were not doing that in `ActFunctionBody`.
Fixes #119046
Commit: 3007f31e7458442cafb7fbd7f5c8b7228b5bd98e
https://github.com/llvm/llvm-project/commit/3007f31e7458442cafb7fbd7f5c8b7228b5bd98e
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A llvm/test/Transforms/LoopUnroll/AArch64/apple-unrolling-multi-exit.ll
Log Message:
-----------
[LoopUnroll] Add AArch64 tests for multi-exit loop unrolling.
Test coverage to https://github.com/llvm/llvm-project/pull/124751.
Commit: ee1c6a6bc15091155f294d62d0ab67f75a90b7fb
https://github.com/llvm/llvm-project/commit/ee1c6a6bc15091155f294d62d0ab67f75a90b7fb
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A llvm/test/MachineVerifier/AMDGPU/test_g_incompatible_range.mir
R llvm/test/MachineVerifier/test_g_incompatible_range.mir
Log Message:
-----------
MachineVerifier: Move test into AMDGPU directory
Fixes failures for builds without AMDGPU enabled for test
added in 11db7fb09b36e656a801117d6a2492133e9c2e46
Commit: 6cb71d7e85d551ce71ba0f7c33fd94cb35a5a966
https://github.com/llvm/llvm-project/commit/6cb71d7e85d551ce71ba0f7c33fd94cb35a5a966
Author: David Truby <david.truby at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
R flang/test/HLFIR/unroll-loops.fir
M flang/test/Integration/unroll-loops.f90
A flang/test/Lower/HLFIR/unroll-loops.fir
Log Message:
-----------
[flang][NFC] Restrict -funroll-loops tests to known working targets (#124594)
If -funroll-loops tests are not restricted to specific targets the tests
may behave differently based on the host platform. This patch restricts
the tests to aarch64 and x86_64, and removes the PowerPC XFAIL.
Commit: 9d8d538e40ef040cb53e8db7a32f3024865187f3
https://github.com/llvm/llvm-project/commit/9d8d538e40ef040cb53e8db7a32f3024865187f3
Author: Romaric Jodin <rjodin at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libclc/clc/lib/clspv/SOURCES
Log Message:
-----------
libclc: clspv: add missing clc_isnan.cl dependency (#124614)
clc_isnan.cl is needed since
https://github.com/llvm/llvm-project/pull/124097
Commit: 68d90cff580fe181ad28247584d32837f3b9940e
https://github.com/llvm/llvm-project/commit/68d90cff580fe181ad28247584d32837f3b9940e
Author: Daniil Fukalov <dfukalov at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Fix assert on APInt creation. (#124608)
Since 3494ee95902cef62f767489802e469c58a13ea04 APInt stopped to
implicitly truncate values, therefore it asserts on a big signed value
converted to (implicitly) unsigned APInt.
The change explicitly marks offset as a signed value.
Commit: 7d172f96ff2c4c7cf5c428b79a3c18e067ce0079
https://github.com/llvm/llvm-project/commit/7d172f96ff2c4c7cf5c428b79a3c18e067ce0079
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
Log Message:
-----------
[CostModel][X86] getShuffleCosts - convert all shuffle cost tables to be CostKind compatible. NFC. (#124753)
No change in actual costs yet, but split the costs per cost kind to make it easier to tweak the numbers in future patches.
Commit: 2abde54aabc4b8878a5665e4d70a0525e9041456
https://github.com/llvm/llvm-project/commit/2abde54aabc4b8878a5665e4d70a0525e9041456
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Log Message:
-----------
[gn build] Port de4bbbfdccb6
Commit: a0b049055df592759e4ac1d8032139f385581c63
https://github.com/llvm/llvm-project/commit/a0b049055df592759e4ac1d8032139f385581c63
Author: Venkata Ramanaiah Nalamothu <quic_vnalamot at quicinc.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
A llvm/test/CodeGen/RISCV/debug-line.ll
M llvm/test/CodeGen/RISCV/kcfi-mir.ll
M llvm/test/CodeGen/RISCV/live-sp.mir
M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
M llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
M llvm/test/CodeGen/RISCV/stack-inst-compress.mir
M llvm/test/CodeGen/RISCV/zcmp-cm-popretz.mir
M llvm/test/CodeGen/RISCV/zcmp-cm-push-pop.mir
M llvm/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
Log Message:
-----------
[RISC-V] Fix incorrect epilogue_begin setting in debug line table (#120623)
The DwarfDebug.cpp implementation expects the epilogue instructions to
have source location of last non-debug instruction after which the epilogue
instructions are inserted. The epilogue_begin is set on location of the first
FrameDestroy instruction with source line information that has been seen in
the epilogue basic block.
In the trunk, the risc-v backend sets the epilogue_begin after the epilogue has
actually begun i.e. after callee saved register reloads and the source line
information is not set on those reload instructions. This is leading to #120553
where, while debugging, breaking on or single stepping to the epilogue_begin
location will make accessing the variables from wrong place as the FP has been
restored to the parent frame's FP.
To fix that, this patch sets FrameSetup/FrameDestroy flags on the callee saved
register spill/reload instructions which is actually correct. Then the
RISCVInstrInfo::loadRegFromStackSlot uses FrameDestroy flag to identify a
reload of the callee saved register in the epilogue and copies the source
line information from insert position instruction to that reload instruction.
Requires PR #120622
Fixes #120553
Commit: d459784cbea334d167b2dca48e0c26115c68e5d3
https://github.com/llvm/llvm-project/commit/d459784cbea334d167b2dca48e0c26115c68e5d3
Author: Mats Jun Larsen <mats at jun.codes>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
Log Message:
-----------
[IR][SPIR-V] Replace of PointerType::get(Type) with opaque version (NFC) (#124755)
Commit: 75622e3f8d9d18de693988f95c44a0011de9208f
https://github.com/llvm/llvm-project/commit/75622e3f8d9d18de693988f95c44a0011de9208f
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/examples/toy/Ch4/mlir/ShapeInferencePass.cpp
M mlir/examples/toy/Ch5/mlir/LowerToAffineLoops.cpp
M mlir/examples/toy/Ch5/mlir/ShapeInferencePass.cpp
M mlir/examples/toy/Ch6/mlir/LowerToAffineLoops.cpp
M mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
M mlir/examples/toy/Ch6/mlir/ShapeInferencePass.cpp
M mlir/examples/toy/Ch7/mlir/LowerToAffineLoops.cpp
M mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
M mlir/examples/toy/Ch7/mlir/ShapeInferencePass.cpp
Log Message:
-----------
[MLIR] Define `getArgument()` for Toy tutorial passes
This is important during debugging to be able to dump a pass pipeline.
It is also what is used by `--mlir-print-ir-tree-dir` to compute filenames
during dumps.
Commit: 48df9480dab57f99aa466ade1df6c46e71da25b5
https://github.com/llvm/llvm-project/commit/48df9480dab57f99aa466ade1df6c46e71da25b5
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/BasicBlock.h
M llvm/lib/IR/BasicBlock.cpp
Log Message:
-----------
[NFC] Suppress spurious deprecation warning with MSVC (#124764)
gcc and clang won't complain about calls to deprecated functions, if
you're calling from a function that is deprecated too. However, MSVC
does care, and expands into maaany deprecation warnings for
getFirstNonPHI.
Suppress this by converting the inlineable copy of getFirstNonPHI into a
non-inline copy.
Commit: e38f4f6904b774dfdd90d78c3fb282f8cc9d07c1
https://github.com/llvm/llvm-project/commit/e38f4f6904b774dfdd90d78c3fb282f8cc9d07c1
Author: Dmitri Gribenko <gribozavr at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
M clang/test/AST/ast-dump-decl.c
M clang/test/AST/ast-dump-records.c
M clang/test/AST/ast-dump-records.cpp
M clang/test/AST/attr-counted-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-struct-ptrs.c
M clang/test/AST/attr-counted-by-struct-ptrs.c
M clang/test/AST/attr-sized-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-struct-ptrs.c
M clang/test/AST/attr-sized-by-struct-ptrs.c
M clang/test/Import/cxx-anon-namespace/test.cpp
M clang/test/Modules/odr_hash.cpp
M clang/test/SemaTemplate/aggregate-deduction-candidate.cpp
M clang/test/SemaTemplate/deduction-crash.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
Log Message:
-----------
Revert "[clang] improve print / dump of anonymous declarations (#124605)"
This reverts commit f949f876daeda520a5b7dbeb2cbb35b8c4383acb.
This commit introduces an llvm_unreachable call that is actually
reachable. I posted a reproducer on the pull request discussion.
Commit: 8ce0d05b88f3369ba99866195f587a58a2d75f4c
https://github.com/llvm/llvm-project/commit/8ce0d05b88f3369ba99866195f587a58a2d75f4c
Author: c8ef <c8ef at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libc/include/spawn.yaml
Log Message:
-----------
[libc] Revise the definition of `posix_spawn`. (#124686)
Closes #124635.
Some parameter types in the definition of `posix_spawn` currently do not
match the standard. This patch resolves the issue.
ref: https://man7.org/linux/man-pages/man3/posix_spawn.3.html
Commit: a8c82d5fde1dab47a1a3fe27bb8ced8f0eb33ab9
https://github.com/llvm/llvm-project/commit/a8c82d5fde1dab47a1a3fe27bb8ced8f0eb33ab9
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libclc/clc/include/clc/relational/relational.h
M libclc/clc/lib/generic/relational/clc_isfinite.cl
M libclc/clc/lib/generic/relational/clc_isinf.cl
M libclc/clc/lib/generic/relational/clc_isnan.cl
M libclc/clc/lib/generic/relational/clc_isnormal.cl
M libclc/clc/lib/generic/relational/clc_signbit.cl
Log Message:
-----------
[libclc] Optimize isfpclass-like CLC builtins (#124145)
The builtins we were using to implement __clc_is(finite|inf|nan|normal)
-- __builtin_isfinite, etc. -- don't take vector types so we were
previously scalarizing. The __builtin_isfpclass builtin does take vector
types and thus allows us to keep things in vectors.
There is no change in codegen to the scalar versions of any of these
builtins.
Commit: 5a8fe9e9a777094dba05bdaca8f2dd83af183a0f
https://github.com/llvm/llvm-project/commit/5a8fe9e9a777094dba05bdaca8f2dd83af183a0f
Author: c8ef <c8ef at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libc/include/sys/resource.yaml
Log Message:
-----------
[libc] Revise the definition of `{get, set}rlimit`. (#124701)
Closes #124633.
Some parameter types in the definition of `{get, set}rlimit` currently
do not match the standard. This patch resolves the issue.
ref: https://man7.org/linux/man-pages/man2/getrlimit.2.html
Commit: a58e774fba42e13aa00667d644e96b783fc914b4
https://github.com/llvm/llvm-project/commit/a58e774fba42e13aa00667d644e96b783fc914b4
Author: Jack Frankland <jack.frankland at arm.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.h
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeDepthwise.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaReduceTransposes.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
M mlir/test/Dialect/Tosa/canonicalize.mlir
M mlir/test/Dialect/Tosa/constant-op-fold.mlir
M mlir/test/Dialect/Tosa/invalid.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-depthwise.mlir
M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
M mlir/test/Dialect/Tosa/tosa-reduce-transposes.mlir
Log Message:
-----------
[mlir][tosa] Make TOSA MUL's Shift an Input (#121953)
The TOSA-v1.0 specification makes the shift attribute of the MUL
(Hammard product) operator an input. Move the `shift` parameter of the
MUL operator in the MILR TOSA dialect from an attribute to an input and
update any lit tests appropriately.
Expand the verifier of the `tosa::MulOp` operation to check the various
constraints defined in the TOSA-v1.0 specification. Specifically, ensure
that all input operands (excluding the optional shift) are of the same
rank. This means that broadcasting tests which previously checked rank-0
tensors would be broadcast are no longer valid and are removed.
Signed-off-by: Jack Frankland <jack.frankland at arm.com>
Co-authored-by: TatWai Chong <tatwai.chong at arm.com>
Commit: df122fc734ce002632f3bfe8a5fc5010349dba16
https://github.com/llvm/llvm-project/commit/df122fc734ce002632f3bfe8a5fc5010349dba16
Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVAPI.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
M llvm/lib/Target/SPIRV/SPIRVSubtarget.h
M llvm/unittests/Target/SPIRV/CMakeLists.txt
M llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
Log Message:
-----------
[SPIR-V] Change a way SPIR-V Backend API works with user facing options (#124745)
This PR fixes https://github.com/llvm/llvm-project/issues/124703:
* added a new API call `SPIRVTranslate` that is to replace entirely old
`SPIRVTranslateModule` after existing clients switch into the new
function;
* the new `SPIRVTranslate` doesn't require option parsing, replacing the
`Opts` argument with explicit `CodeGenOptLevel` and `Triple` arguments;
* the old `SPIRVTranslateModule` call is a wrapper for `SPIRVTranslate`,
it doesn't require option parsing either and doesn't hold any logic
inside except for converting string options into `CodeGenOptLevel` and
`Triple` arguments;
* usage of the extensions list is reworked to avoid writes to the global
cl::opt variable `lib/Target/SPIRV/SPIRVSubtarget.cpp::Extensions` --
instead a new class member in SPIRVSubtarget.cpp is implemented that
allows to replace supported extensions after SPIRVSubtarget.cpp is
created;
* both API calls don't require option parsing and don't write to global
cl::opt variables.
Other related/required changes:
* SPIRV::Capability::Shader is marked as an capability of lesser
priority for OpenCL environment (to remediate absence of the
"avoid-spirv-capabilities" command line option in API calls);
* unit tests are updated and extended to cover testing of a newer API
call;
* old API call is marked with TODO to remove it after existing clients
switch into the new function.
Commit: 56a0a7f6d188b13be69962654f068dc01dfd37b5
https://github.com/llvm/llvm-project/commit/56a0a7f6d188b13be69962654f068dc01dfd37b5
Author: Renaud Kauffmann <rkauffmann at nvidia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/module/cudadevice.f90
M flang/test/Lower/CUDA/cuda-device-proc.cuf
Log Message:
-----------
[flang][cuda] Adding support for more atomic calls (#124671)
The PR follows the earlier
https://github.com/llvm/llvm-project/pull/123840 PR for atomic operation
support in CUF
Commit: 648912582ccb9bda36427244957843fbdd95abaf
https://github.com/llvm/llvm-project/commit/648912582ccb9bda36427244957843fbdd95abaf
Author: c8ef <c8ef at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libc/include/llvm-libc-macros/unistd-macros.h
Log Message:
-----------
[libc] Add `FILENO` related macros to `unistd.h`. (#124688)
Closes #124637.
This is necessary to build LLVM with LLVM-libc and align the behavior
with other libc implementations.
ref: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/unistd.h.html
Commit: f388ca3d9d9a58e3d189458b590ba68dfd9e5a2d
https://github.com/llvm/llvm-project/commit/f388ca3d9d9a58e3d189458b590ba68dfd9e5a2d
Author: c8ef <c8ef at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Support/Unix/Path.inc
Log Message:
-----------
[NFC] Remove redundant `sys/file.h` header. (#124684)
Closes #124652.
This header was introduced in
https://github.com/llvm/llvm-project/commit/536736995bf5d073853c7e884968c9847b4ae64d,
but it appears that including only `fnctl.h` should be enough.
Hopefully, this patch will not cause build issues on other Unix
platforms.
Commit: ef92e6b99fc2a881f70c4e21bbdd6ae7a0c446c8
https://github.com/llvm/llvm-project/commit/ef92e6b99fc2a881f70c4e21bbdd6ae7a0c446c8
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/test/CodeGen/allow-ubsan-check.c
M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
M llvm/test/Instrumentation/BoundsChecking/runtimes.ll
Log Message:
-----------
[BoundsChecking] Update ubsantrap to use GuardKind (#124613)
This change makes it consistent with other uses of ubsantrap.
This also updates the tests. Notably, BoundsChecking/runtimes.ll had guard=3 which passed only because the method of calculating the parameter (`IRB.GetInsertBlock()->getParent()->size()`) happened to give the same answer.
Commit: d76ea250c8b91f59664594b92eb5ab966eb8be90
https://github.com/llvm/llvm-project/commit/d76ea250c8b91f59664594b92eb5ab966eb8be90
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-cmp.ll
Log Message:
-----------
Reland [InstCombine] Teach foldSelectOpOp about samesign (#124320)
Changes: There was a serious bug in the previous patch, leading to a
miscompile. See #122723 for the miscompile report from Alexander, and
the follow-up investigation by Nikita. The patch has since been
reworked, and now includes the testcase from the miscompile.
Follow up on 4a0d53a (PatternMatch: migrate to CmpPredicate) to get rid
of one of the FIXMEs it introduced by replacing a predicate comparison
with CmpPredicate::getMatching.
Co-authored-by: Nikita Popov <npopov at redhat.com>
Commit: a080498c92e4c00f099dab1a3d5dac48f14b7492
https://github.com/llvm/llvm-project/commit/a080498c92e4c00f099dab1a3d5dac48f14b7492
Author: lntue <lntue at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/utils/MPFRWrapper/CMakeLists.txt
Log Message:
-----------
[libc] Update include directory for libcMPCommon target when LLVM_LIBC_MPFR_INSTALL_PATH is set. (#124765)
Fix the current riscv32 bot failures.
Commit: 822954b4a97753b0c7accc606287529518e9d425
https://github.com/llvm/llvm-project/commit/822954b4a97753b0c7accc606287529518e9d425
Author: gbMattN <146744444+gbMattN at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A clang/docs/TypeSanitizer.rst
M clang/docs/UsersManual.rst
M clang/docs/index.rst
Log Message:
-----------
[TySan] Add initial documentation for Type Sanitizer (#123595)
Add some initial documentation for type sanitizer [From issue #122522]
Commit: 1bc5fe669f5477eadd84270e971591a718693bba
https://github.com/llvm/llvm-project/commit/1bc5fe669f5477eadd84270e971591a718693bba
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/python/mlir/dialects/linalg/__init__.py
M mlir/test/python/dialects/linalg/ops.py
Log Message:
-----------
[mlir][python] implement GenericOp bindings (#124496)
Commit: 947d8ebbf33724245bd419d7b5f750d6aef1057e
https://github.com/llvm/llvm-project/commit/947d8ebbf33724245bd419d7b5f750d6aef1057e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/partial-vec-invalid-cost.ll
Log Message:
-----------
[SLP]Unify getNumberOfParts use
Adds getNumberOfParts and uses it instead of similar code across code
base, fixes analysis of non-vectorizable types in
computeMinimumValueSizes.
Reviewers: RKSimon
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/124774
Commit: 2f077dfbdf769d2e568ccdcda0e1937af046f81f
https://github.com/llvm/llvm-project/commit/2f077dfbdf769d2e568ccdcda0e1937af046f81f
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/ConvertToFIR.cpp
A flang/test/HLFIR/getextent-codegen.fir
Log Message:
-----------
[flang] Support non-index shape in hlfir.get_extent codegen. (#124622)
hlfir.reshape inlining uncovered an existing bug that non-index shapes
result in failures during hlfir.get_extent conversion to FIR.
I could have "fixed" the shape during hlfir.reshape inlining,
but this seems like a better fix.
Commit: 9dd762e8b10586e749b0ddf3542e5dccf8392395
https://github.com/llvm/llvm-project/commit/9dd762e8b10586e749b0ddf3542e5dccf8392395
Author: Matthias Gehre <matthias.gehre at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir-c/BuiltinAttributes.h
M mlir/lib/Bindings/Python/IRAttributes.cpp
M mlir/lib/CAPI/IR/BuiltinAttributes.cpp
M mlir/test/python/dialects/builtin.py
M mlir/test/python/ir/array_attributes.py
M mlir/test/python/ir/attributes.py
Log Message:
-----------
[mlir][python] allow DenseIntElementsAttr for index type (#118947)
Model the `IndexType` as `uint64_t` when converting to a python integer.
With the python bindings,
```python
DenseIntElementsAttr(op.attributes["attr"])
```
used to `assert` when `attr` had `index` type like `dense<[1, 2, 3, 4]>
: vector<4xindex>`.
---------
Co-authored-by: Christopher McGirr <christopher.mcgirr at amd.com>
Co-authored-by: Tiago Trevisan Jost <tiago.trevisanjost at amd.com>
Commit: 1b729c3d70cecd89504927fed56498f851f0d74d
https://github.com/llvm/llvm-project/commit/1b729c3d70cecd89504927fed56498f851f0d74d
Author: Matthias Gehre <matthias.gehre at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir-c/BuiltinAttributes.h
M mlir/lib/Bindings/Python/IRAttributes.cpp
M mlir/lib/CAPI/IR/BuiltinAttributes.cpp
M mlir/test/python/dialects/builtin.py
M mlir/test/python/ir/array_attributes.py
M mlir/test/python/ir/attributes.py
Log Message:
-----------
Revert "[mlir][python] allow DenseIntElementsAttr for index type (#118947)"
This reverts commit 9dd762e8b10586e749b0ddf3542e5dccf8392395.
Commit: 0b80491cd5e7dcb6d5432727d0a2c746a9a9438e
https://github.com/llvm/llvm-project/commit/0b80491cd5e7dcb6d5432727d0a2c746a9a9438e
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/test/Fir/convert-to-llvm.fir
Log Message:
-----------
[flang] Support non-index shape/shift/slice for CG box operations. (#124625)
That is another problem uncovered during hlfir.reshape inlining,
where the shape bits could be any integer type.
This patch adds explicit convertions to `index` type where needed.
Commit: bb95335982774c187984c4465202242b9d70cdb3
https://github.com/llvm/llvm-project/commit/bb95335982774c187984c4465202242b9d70cdb3
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libclc/generic/lib/math/clc_ldexp.cl
Log Message:
-----------
[libclc][NFC] Clang-format includes
Commit: 17d1523207c6d5fb6b1b47ccf0406a0bb58cb38d
https://github.com/llvm/llvm-project/commit/17d1523207c6d5fb6b1b47ccf0406a0bb58cb38d
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/Headers/amdgpuintrin.h
M clang/lib/Headers/nvptxintrin.h
Log Message:
-----------
[Clang] Minor fixes to 'gpuintrin.h' header
Summary:
The bitmask gives different results to the AMDGPU implementation so it's
not needed. Also fix some comments and casts.
Commit: 063db51cd4467b0ec5d76e4fd41b056a82401278
https://github.com/llvm/llvm-project/commit/063db51cd4467b0ec5d76e4fd41b056a82401278
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx2-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx2-intrinsics-i386.ll
Log Message:
-----------
Reapply "[msan] Add handlers for AVX masked load/store intrinsics (#123857)"
This reverts commit b9d301cc7e4fe4c442ec15169686fa4a18f5cdfc i.e.,
relands db79fb2a91df31a07f312f8e061936927ac5c506.
I had mistakenly thought this caused a buildbot breakage (the actual
culprit was my other patch,
https://github.com/llvm/llvm-project/pull/123980, which landed at the
same time) and thus had reverted it even though AFAIK it is not broken.
Commit: cfdd937b30acc007016ebbe4afab7bb4d6449e0a
https://github.com/llvm/llvm-project/commit/cfdd937b30acc007016ebbe4afab7bb4d6449e0a
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Support/Unix/Threading.inc
Log Message:
-----------
[llvm] Android has sched_getaffinity() now (#124689)
Commit: 822f74a91106b7ca10e85508eb642e62ef945afa
https://github.com/llvm/llvm-project/commit/822f74a91106b7ca10e85508eb642e62ef945afa
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/CodeGen/fake-use-sanitizer.cpp
M clang/test/CodeGen/fake-use-this.cpp
M clang/test/Driver/extend-variable-liveness.c
M llvm/test/CodeGen/MIR/X86/fake-use-tailcall.mir
M llvm/test/CodeGen/X86/fake-use-simple-tail-call.ll
M llvm/test/CodeGen/X86/fake-use-zero-length.ll
M llvm/test/DebugInfo/AArch64/fake-use-global-isel.ll
M llvm/test/DebugInfo/X86/fake-use.ll
M llvm/test/Transforms/CodeGenPrepare/X86/fake-use-split-ret.ll
M llvm/test/Transforms/GVN/fake-use-constprop.ll
Log Message:
-----------
[Clang] Cleanup docs and comments relating to -fextend-variable-liveness (#124767)
This patch contains a number of changes relating to the above flag;
primarily it updates comment references to the old flag names,
"-fextend-lifetimes" and "-fextend-this-ptr" to refer to the new names,
"-fextend-variable-liveness[={all,this}]". These changes are all NFC.
This patch also removes the explicit -fextend-this-ptr-liveness flag
alias, and shortens the help-text for the main flag; these are both
changes that were meant to be applied in the initial PR (#110000), but
due to some user-error on my part they were not included in the merged
commit.
Commit: 8578b816fa9050c33561f06d631459e12645953a
https://github.com/llvm/llvm-project/commit/8578b816fa9050c33561f06d631459e12645953a
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/Driver/Options.td
Log Message:
-----------
[Driver] Fix a build error
This patch fixes:
clang/include/clang/Driver/Options.td:4356:3: error: Expected comma
before next argument
Commit: a4d17c44f14984f8f031d0715ea4d1387e96b741
https://github.com/llvm/llvm-project/commit/a4d17c44f14984f8f031d0715ea4d1387e96b741
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/Sema/HeuristicResolver.cpp
M clang/unittests/Sema/HeuristicResolverTest.cpp
Log Message:
-----------
[clang][Sema] Generalize HeuristicResolver::resolveTypeToRecordDecl() to resolveTypeToTagDecl() (#124699)
Commit: b108fbe6ea4247e5a3019a4facf611d5a42d465c
https://github.com/llvm/llvm-project/commit/b108fbe6ea4247e5a3019a4facf611d5a42d465c
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Fixes for 7f37b34, 0165e33 and 3c64f86
Commit: eb10e94180dd722cf54cfaf1ed9d32aa0bb134a0
https://github.com/llvm/llvm-project/commit/eb10e94180dd722cf54cfaf1ed9d32aa0bb134a0
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
Log Message:
-----------
NFC: convert clang/test/AST/HLSL/StructuredBuffers-AST.hlsl to unix line endings
Commit: e29c085812e259910a3d8b6c2d2f471d1c3eede4
https://github.com/llvm/llvm-project/commit/e29c085812e259910a3d8b6c2d2f471d1c3eede4
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
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/SemaLookup.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/test/CXX/drs/cwg0xx.cpp
M clang/test/CXX/drs/cwg12xx.cpp
M clang/test/CXX/drs/cwg3xx.cpp
M clang/test/CXX/expr/expr.const/p3-0x.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-0x.cpp
M clang/test/Modules/cxx-templates.cpp
M clang/test/SemaObjCXX/noescape.mm
M clang/test/SemaTemplate/cwg2398.cpp
M clang/test/SemaTemplate/default-arguments.cpp
M clang/test/SemaTemplate/instantiate-template-template-parm.cpp
M clang/test/SemaTemplate/instantiation-default-2.cpp
M clang/test/SemaTemplate/nested-template.cpp
M clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp
M clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp
M clang/test/SemaTemplate/temp_arg_template.cpp
M clang/test/SemaTemplate/temp_arg_template_p0522.cpp
Log Message:
-----------
[clang] disallow narrowing when matching template template parameters (#124313)
This fixes the core issue described in P3579, following the design
intent of P0522 to not introduce any new cases where a template template
parameter match is allowed for a template which is not valid for all
possible uses.
With this patch, narrowing conversions are disallowed for TTP matching.
This reuses the existing machinery for diagnosing narrowing in a
converted constant expression.
Since P0522 is a DR and we apply it all the way back to C++98, this
brings that machinery to use in older standards, in this very narrow
scope of TTP matching.
This still doesn't solve the ambiguity when partial ordering NTTPs of
different integral types, this is blocked by a different bug which will
be fixed in a subsequent patch (but the test cases are added).
Commit: 986581f6bcef8736c942a9fec9cf12bfbc57c1f6
https://github.com/llvm/llvm-project/commit/986581f6bcef8736c942a9fec9cf12bfbc57c1f6
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/AST/DeclTemplate.h
M clang/lib/AST/DeclTemplate.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124674)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
This patch migrates uses of PointerUnion::dyn_cast to
dyn_cast_if_present (see the definition of PointerUnion::dyn_cast).
Note that we already have dyn_cast_if_present<T*>(ExplicitInfo)
elsewhere in ClassTemplateSpecializationDecl and
VarTemplateSpecializationDecl, meaning that ExplicitInfo is not
guaranteed to be nonnull in those classes.
Commit: 2ef497e5b02650c59aa71676b7d891a138519685
https://github.com/llvm/llvm-project/commit/2ef497e5b02650c59aa71676b7d891a138519685
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/Sema/TreeTransform.h
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124675)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect TransExpr to be nonnull.
Commit: 69c9bed21b902bf83828c78d69691925f5452c35
https://github.com/llvm/llvm-project/commit/69c9bed21b902bf83828c78d69691925f5452c35
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/Serialization/ASTReaderDecl.cpp
Log Message:
-----------
[Serialization] Migrate away from PointerUnion::dyn_cast (NFC) (#124676)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect FD->TemplateOrSpecialization to be nonnull.
Commit: 1d5ce614a7cd266909169bc251d7b1aee743e5a3
https://github.com/llvm/llvm-project/commit/1d5ce614a7cd266909169bc251d7b1aee743e5a3
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/SelectOptimize.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#124677)
Commit: ef232a7e3486b9494c087ad25830f00bc15d739a
https://github.com/llvm/llvm-project/commit/ef232a7e3486b9494c087ad25830f00bc15d739a
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M bolt/lib/Core/BinaryFunction.cpp
A bolt/test/AArch64/remove-nops.s
Log Message:
-----------
[BOLT][AArch64] Remove nops in functions with defined control flow (#124705)
When a function has an indirect branch with unknown control flow, we
preserve nops in order to keep all instruction offsets (from the start
of the function) the same in case the indirect branch is used by a
PC-relative jump table. However, when we know the control flow of the
function, we should be able to safely remove nops.
Commit: 589bef333eb3b4f619ac6a7e7819295b47c05ce6
https://github.com/llvm/llvm-project/commit/589bef333eb3b4f619ac6a7e7819295b47c05ce6
Author: mgcsysinfcat <143941278+mgcsysinfcat at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A mlir/utils/emacs/tblgen-lsp-client.el
Log Message:
-----------
[emacs][lsp][tblgen] add tblgen-lsp-server support for emacs lsp-mode (#76337)
Co-authored-by: mgcsysinfcat <p779yqwdf at mozmail.com>
Co-authored-by: Ronan Keryell <ronan.keryell at amd.com>
Commit: de9b0ddedc43302117b15518ca21f3341cf6b5ff
https://github.com/llvm/llvm-project/commit/de9b0ddedc43302117b15518ca21f3341cf6b5ff
Author: Stephen Tozer <Stephen.Tozer at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/test/CodeGen/extend-variable-liveness.c
M clang/test/CodeGen/fake-use-determinism.c
M clang/test/CodeGen/fake-use-noreturn.cpp
M clang/test/CodeGen/fake-use-this.cpp
Log Message:
-----------
Add explicit triple to fix errors from #110102
Attempted fix for errors observed on:
https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-windows-x64/b8724497761651154417/overview
Several tests that required an explicit triple had none present; this
patch adds those triples.
Commit: 964565c868c4a255f8ebdf412b307beeb390a6bc
https://github.com/llvm/llvm-project/commit/964565c868c4a255f8ebdf412b307beeb390a6bc
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/HIPSupport.rst
Log Message:
-----------
[NFC][docs][HIP] Update HIP docs around `hipstdpar` and SPIR-V (#124803)
This addresses an odd ommision from the 19 release cycle, wherein we
upstreamed HIPSTDPAR support without adding the relevant documentation.
As an added bonus, we also remove a reference to `amdgcnspirv` not
mixing with concrete targets, as that limitation has been addressed.
Commit: 310f55875f2fc69af310b6259e65136f0de4404a
https://github.com/llvm/llvm-project/commit/310f55875f2fc69af310b6259e65136f0de4404a
Author: Artem Belevich <tra at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/test/CodeGen/builtins-nvptx.c
Log Message:
-----------
[CUDA] Make target intrinsics work with ptx 8.7 (#124818)
Fixes build break with CUDA-12.8 introduced in #123398
Commit: 5dab5bf0851f523602944355a2c1c17e7f78ef36
https://github.com/llvm/llvm-project/commit/5dab5bf0851f523602944355a2c1c17e7f78ef36
Author: Oleksandr T. <oleksandr.tarasiuk at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/SemaCXX/warn-unused-private-field.cpp
Log Message:
-----------
[Clang] handle [[warn_unused]] attribute for unused private fields (#120734)
Fixes #62472
Commit: a255da0c5373f4ebd10c91b011cd572e4d2a6b4c
https://github.com/llvm/llvm-project/commit/a255da0c5373f4ebd10c91b011cd572e4d2a6b4c
Author: Alex Prabhat Bara <alexpbara at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/include/locale.h.def
M libc/include/locale.yaml
M libc/include/math.h.def
M libc/include/setjmp.h.def
M libc/include/stdlib.h.def
M libc/include/stdlib.yaml
M libc/include/string.h.def
M libc/include/string.yaml
M libc/include/sys/time.h.def
M libc/include/sys/time.yaml
M libc/include/wchar.h.def
Log Message:
-----------
[libc] clean up duplicated includes in generated headers (#124524)
Fixes: #124149
Commit: b1972689a43175451f27098b8fd6f58cf7275229
https://github.com/llvm/llvm-project/commit/b1972689a43175451f27098b8fd6f58cf7275229
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/TreeTransform.h
M clang/test/SemaTemplate/cwg2398.cpp
Log Message:
-----------
[clang] fix template argument conversion (#124386)
Converted template arguments need to be converted again, if the
corresponding template parameter changed, as different conversions might
apply in that case.
Commit: bfefa15cc18f6f4b0b07849c619989c1a8c5aef9
https://github.com/llvm/llvm-project/commit/bfefa15cc18f6f4b0b07849c619989c1a8c5aef9
Author: Yi Zhang <cathyzhyi at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
Log Message:
-----------
[mlir][bufferization] Use original type when convert arg for users (#124826)
This change will keep the memory space information for the tensor if
there is any.
Commit: 7bd9c780e36399394fe8eae9678eb448d53e33f0
https://github.com/llvm/llvm-project/commit/7bd9c780e36399394fe8eae9678eb448d53e33f0
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Log Message:
-----------
[msan][NFCI] Generalize handleIntrinsicByApplyingToShadow to allow alternative intrinsic for shadows (#124831)
https://github.com/llvm/llvm-project/pull/124159 uses
handleIntrinsicByApplyingToShadow for horizontal add/sub, but Vitaly
recommends always using the add version to avoid false negatives for
fully uninitialized data
(https://github.com/llvm/llvm-project/issues/124662).
This patch lays the groundwork by generalizing
handleIntrinsicByApplyingToShadow to allow using a different intrinsic
(of the same type as the original intrinsic) for the shadow. Planned
work will apply it to horizontal sub.
Commit: 9d8dc45d17088300e9e2086594ca581b119193c8
https://github.com/llvm/llvm-project/commit/9d8dc45d17088300e9e2086594ca581b119193c8
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/include/flang/Tools/TargetSetup.h
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] IEEE underflow control for Arm (#124807)
Update IEEE_SUPPORT_UNDERFLOW_CONTROL, IEEE_GET_UNDERFLOW_MODE, and
IEEE_SET_UNDERFLOW_MODE code for Arm.
Commit: 9f660625bee629d2cc644e2b8ac698ed3288693c
https://github.com/llvm/llvm-project/commit/9f660625bee629d2cc644e2b8ac698ed3288693c
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libcxx/include/__new/allocate.h
Log Message:
-----------
[libc++] Disable CFI in __libcpp_allocate (#124805)
Since we're casting uninitialized memory, we must disable CFI checks.
Commit: c47a57393c2bb773e95bcda397a6467f4fffcf9f
https://github.com/llvm/llvm-project/commit/c47a57393c2bb773e95bcda397a6467f4fffcf9f
Author: lntue <lntue at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/cospif16_test.cpp
M libc/test/src/math/smoke/exp2m1f16_test.cpp
M libc/test/src/math/smoke/sinpif16_test.cpp
Log Message:
-----------
[libc] Fix conversion warnings for float16 tests. (#124830)
Fixes https://github.com/llvm/llvm-project/issues/124801.
Commit: 6338bde5681cada2181febb4bf64feb51207995e
https://github.com/llvm/llvm-project/commit/6338bde5681cada2181febb4bf64feb51207995e
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
Log Message:
-----------
[VPlan] Use cast<VPRecipeBase> in verifier (NFC).
All users of VPValue must be a VPRecipeBase, use cast.
Commit: ed199c8d7668c14e9e9e8e4bfa59793e3f7f0266
https://github.com/llvm/llvm-project/commit/ed199c8d7668c14e9e9e8e4bfa59793e3f7f0266
Author: lntue <lntue at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/src/__support/FPUtil/except_value_utils.h
Log Message:
-----------
[libc] Workaround for gcc complaining about implicit conversions with the ternary ?: operator. (#124820)
Fixes https://github.com/llvm/llvm-project/issues/120427,
https://github.com/llvm/llvm-project/issues/122745
This is caused by a -Wconversion false-positive bug in gcc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101537
Commit: 2cbf2798ae55ddc36aac130df21353fc82891bcf
https://github.com/llvm/llvm-project/commit/2cbf2798ae55ddc36aac130df21353fc82891bcf
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/test/SemaTemplate/cwg2398.cpp
Log Message:
-----------
[clang] fix nondeduced mismatch with nullptr template arguments (#124498)
In deduction, when comparing template arguments of value kind, we should
check if the value matches. Values of different types can still match.
For example, `short(0)` matches `int(0)`.
Values of nullptr kind always match each other, since there is only one
such possible value. Similarly to integrals, the type does not matter.
Commit: 26f4e2a701f7c303f18ed8f97d263138e14bcd48
https://github.com/llvm/llvm-project/commit/26f4e2a701f7c303f18ed8f97d263138e14bcd48
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libc/docs/gpu/rpc.rst
Log Message:
-----------
[libc][docs] Fix the RPC documentation leaking ports
Summary:
Forgot to close it, that'll make it deadlock after awhile.
Commit: 9d7999885a6aa2c4afc252a645448b4f1666e951
https://github.com/llvm/llvm-project/commit/9d7999885a6aa2c4afc252a645448b4f1666e951
Author: Alex Langford <alangford at apple.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/include/lldb/API/LLDB.h
M lldb/include/lldb/API/SBDefines.h
Log Message:
-----------
[lldb] Update API headers for SBProgress (#124836)
Some clients only include LLDB.h and they won't get access to SBProgress
without this.
Commit: e89e7c4685aa673173220eace7a0a8b64dbd2391
https://github.com/llvm/llvm-project/commit/e89e7c4685aa673173220eace7a0a8b64dbd2391
Author: Dave Lee <davelee.com at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/utils/lldb-dotest/lldb-dotest.in
Log Message:
-----------
[lldb] Fix lldb-dotest.in to use args determined by CMake (#124811)
This change is required as a result of the changes made in D132642
(bb26ebb4d18c1877cc6fd17aa803609abeb95096).
Commit: a06c89387621b0a040e6203e7f1a2d8243f5be33
https://github.com/llvm/llvm-project/commit/a06c89387621b0a040e6203e7f1a2d8243f5be33
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M libcxxabi/src/cxa_exception_storage.cpp
Log Message:
-----------
[libc++abi] Make once_flag constinit in cxa_exception_storage (#124627)
This makes it clearer that initialization of this global variable is
taking place at compile-time, reducing the likelihood of static
initialization order fiasco.
Commit: 35df525fd00c2037ef144189ee818b7d612241ff
https://github.com/llvm/llvm-project/commit/35df525fd00c2037ef144189ee818b7d612241ff
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/Vector/IR/Vector.td
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
M mlir/include/mlir/Transforms/Passes.td
M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRVPass.cpp
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/lib/Transforms/CMakeLists.txt
M mlir/lib/Transforms/Canonicalizer.cpp
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
M mlir/test/Conversion/VectorToSPIRV/vector-to-spirv.mlir
M mlir/test/Dialect/Vector/canonicalize.mlir
M mlir/test/Dialect/Vector/invalid.mlir
M mlir/test/Dialect/Vector/ops.mlir
Log Message:
-----------
[mlir][Vector] Add support for poison indices to `Extract/IndexOp` (#123488)
Following up on #122188, this PR adds support for poison indices to
`ExtractOp` and `InsertOp`. It also includes canonicalization patterns
to turn extract/insert ops with poison indices into `ub.poison`.
Commit: c2fba023475fddb893eac29dc9f34dfbdb221cd5
https://github.com/llvm/llvm-project/commit/c2fba023475fddb893eac29dc9f34dfbdb221cd5
Author: goldsteinn <35538541+goldsteinn at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/phi-known-bits.ll
Log Message:
-----------
[ValueTracking] Fix bug of using wrong condition for deducing KnownBits (#124481)
- **[ValueTracking] Add test for issue 124275**
- **[ValueTracking] Fix bug of using wrong condition for deducing
KnownBits**
Fixes https://github.com/llvm/llvm-project/issues/124275
Bug was introduced by https://github.com/llvm/llvm-project/pull/114689
Now that computeKnownBits supports breaking out of recursive Phi
nodes, `IncValue` can be an operand of a different Phi than `P`. This
breaks the previous assumptions we had when using the possibly
condition at `CxtI` to constrain `IncValue`.
Commit: 1f7eb6f403bc0e453b76d9274994d840561e96cf
https://github.com/llvm/llvm-project/commit/1f7eb6f403bc0e453b76d9274994d840561e96cf
Author: Alex Langford <alangford at apple.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M lldb/include/lldb/API/SBProgress.h
M lldb/source/API/SBProgress.cpp
Log Message:
-----------
[lldb] Make SBProgress move-only (#124843)
I wanted to clarify the semantics around SBProgress. Given the nature of
Progress events, copying seems like the wrong idea. Making SBProgress
move-only (like SBStream) seems like the better choice here.
Commit: 4eb7c349a616827a3ec9bea57718516409103caa
https://github.com/llvm/llvm-project/commit/4eb7c349a616827a3ec9bea57718516409103caa
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Fix build after 35df525fd00c2037ef144189ee818b7d612241ff
Commit: 6bb6c305752adef5a0034e4a039df19487ce8945
https://github.com/llvm/llvm-project/commit/6bb6c305752adef5a0034e4a039df19487ce8945
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
Log Message:
-----------
[clang] NFC: cleanup check template argument (#124668)
Commit: 3a1e157454ecd186404eafe75882b88bce772340
https://github.com/llvm/llvm-project/commit/3a1e157454ecd186404eafe75882b88bce772340
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] More fixes for 35df525fd00c2037ef144189ee818b7d612241ff
I missed a couple spots in my previous attempt to fix the build
(4eb7c349a616827a3ec9bea57718516409103caa).
Commit: 548ecde42886149dd4d69366d7c2dc02076a7083
https://github.com/llvm/llvm-project/commit/548ecde42886149dd4d69366d7c2dc02076a7083
Author: Stephen Tozer <Stephen.Tozer at sony.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/test/CodeGen/extend-variable-liveness-except.cpp
Log Message:
-----------
Add extra explicit triple to fix errors from #110102
Attempted fix for errors observed on:
https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-windows-x64/b8724466517233166081/overview
Following the previous fixes, one test that needed an explicit triple
was missed; this commit adds that triple.
Commit: 4a426079d60a664419dfc98855a798c4103fbbf0
https://github.com/llvm/llvm-project/commit/4a426079d60a664419dfc98855a798c4103fbbf0
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx2-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/mmx-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/avx2-intrinsics-i386.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/mmx-intrinsics.ll
Log Message:
-----------
[msan] Use horizontal add to compute shadow for horizontal sub (#124835)
This improves the horizontal sub handling (from
https://github.com/llvm/llvm-project/pull/124159), by always using
horizontal add for the shadow, as recommended by Vitaly.
Fixes https://github.com/llvm/llvm-project/issues/124662
Commit: 381218950e9c0fc17256e1fe4093fd108acc2ac4
https://github.com/llvm/llvm-project/commit/381218950e9c0fc17256e1fe4093fd108acc2ac4
Author: nerix <nero.9 at hotmail.de>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGDebugInfo.cpp
A clang/test/CodeGenCXX/debug-info-ms-novtable.cpp
Log Message:
-----------
[clang-cl]: generate debug info when `novtable` is specified (#124643)
When no vtable is emitted in the debug info because a record was marked
`__declspec(novtable)`, only a forward declaration of that type will be
emitted. This PR fixes that by not omitting the definition for the
`RecordDecl` in this case.
Fixes #124638.
Commit: 38902153fe66cb7a0685728a5a489dff944b4033
https://github.com/llvm/llvm-project/commit/38902153fe66cb7a0685728a5a489dff944b4033
Author: gulfemsavrun <gulfem at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/test/Other/new-pm-lto-defaults.ll
Log Message:
-----------
[PassBuilder] Add RelLookupTableConverterPass to LTO (#124053)
[PassBuilder] Add RelLookupTableConverterPass to LTO
This patch adds RelLookupTableConverterPass into the LTO
post-link optimization pass pipeline. This optimization
converts lookup tables to relative lookup tables to make
them PIC-friendly, which is already included in the non-LTO
pass pipeline. This patch adds this optimization to the
post-link optimization pipeline to discover more
opportunities in the LTO context.
Commit: 437040fe3df48eeb8584c25b45f0058e8fbac098
https://github.com/llvm/llvm-project/commit/437040fe3df48eeb8584c25b45f0058e8fbac098
Author: Raphael Kubo da Costa <rakuco at FreeBSD.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/cmake/config-ix.cmake
Log Message:
-----------
[CMake] Use shm_open, not clock_gettime, to detect librt (#120727)
On systems with glibc, clock_gettime() was moved from librt to libc in
version 2.17, in which case the current librt detection attempt would
always fail.
Look for shm_open instead, like other parts of the tree also do when
looking for librt.
Co-authored-by: Raphael Kubo da Costa <kubo at igalia.com>
Commit: e7f02241ad4d38fc50b63ad589a024323e6bc3c6
https://github.com/llvm/llvm-project/commit/e7f02241ad4d38fc50b63ad589a024323e6bc3c6
Author: Prabhuk <prabhukr at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/IR/DataLayout.cpp
M llvm/lib/MC/MCContext.cpp
M llvm/lib/MC/TargetRegistry.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
M llvm/lib/Target/X86/X86MCInstLower.cpp
M llvm/lib/Target/X86/X86Subtarget.h
Log Message:
-----------
[nfc][llvm] Clean up isUEFI checks (#124845)
The check for `isOSWindows() || isUEFI()` is used in several places
across the codebase. Introducing `isOSWindowsOrUEFI()` in Triple.h
to simplify these checks.
Commit: 8aae191cb6ad1f2dfc468975e4f5e564fea3cbfd
https://github.com/llvm/llvm-project/commit/8aae191cb6ad1f2dfc468975e4f5e564fea3cbfd
Author: yonghong-song <yhs at fb.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Target/BPF/BPFMIPeephole.cpp
A llvm/test/CodeGen/BPF/may_goto_1.ll
A llvm/test/CodeGen/BPF/may_goto_2.ll
Log Message:
-----------
[BPF] Remove 'may_goto 0' instructions (#123482)
Emil Tsalapatis from Meta reported such a case where 'may_goto 0' insn
is generated by clang compiler. But 'may_goto 0' insn is actually a
no-op so it makes sense to remove that in llvm. The patch is also able
to handle the following code pattern
```
...
may_goto 2
may_goto 1
may_goto 0
...
```
where three may_goto insns can all be removed.
---------
Co-authored-by: Yonghong Song <yonghong.song at linux.dev>
Commit: b8cdc5ea2741c7e4062bb211bac7033189b4d802
https://github.com/llvm/llvm-project/commit/b8cdc5ea2741c7e4062bb211bac7033189b4d802
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
A llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics.ll
Log Message:
-----------
Reapply "[msan] Add avx512-intrinsics.ll and avx512-intrinsics-upgrade.ll test case (#123980)" (#124500)
This reverts commit b2647ffbf797dd5a457b6b19faab06956934d067 i.e.,
relands https://github.com/llvm/llvm-project/commit/980e86f130eea02bd41b887f4ed896340fc90f6c.
I had reverted the original patch because of buildbot failures (e.g., https://lab.llvm.org/buildbot/#/builders/13/builds/4938/steps/5/logs/FAIL__LLVM__avx512-intrinsics-upgrade_ll). This reland addresses the likely root cause; namely, that the target datalayout had not been specified.
Additionally, this reland improves the test case by replacing undef with extra parameters.
Commit: 28507ac62928d79f647804de4df60409b3ebb364
https://github.com/llvm/llvm-project/commit/28507ac62928d79f647804de4df60409b3ebb364
Author: Fabian Tschopp <fabian.tschopp at modular.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/lib/Bindings/Python/IRAttributes.cpp
Log Message:
-----------
[MLIR] Fix thread safety of the deleter in PyDenseResourceElementsAttribute (#124832)
In general, `PyDenseResourceElementsAttribute` can get deleted at any
time and any thread, where unlike the `getFromBuffer` call, the Python
interpreter may not be initialized and the GIL may not be held.
This PR fixes segfaults caused by `PyBuffer_Release` when the GIL is not
being held by the thread calling the deleter.
Commit: 617278e7b0c937fccbf7d67d14f053c3409bc33f
https://github.com/llvm/llvm-project/commit/617278e7b0c937fccbf7d67d14f053c3409bc33f
Author: Sam Clegg <sbc at chromium.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
A lld/test/wasm/shared-lazy.s
M lld/wasm/SymbolTable.cpp
Log Message:
-----------
[lld][WebAssembly] Fix for shared library symbols WRT replacing lazy symbols (#124619)
The rule here, which I'm copying from the ELF linker, is that shared
library symbols should take presence, unless the symbol has already be
extracted from the archive. e.g:
```
$ wasm-ld foo.a foo.so ref.o // .so wins
$ wasm-ld foo.a ref.o foo.so // .a wins
```
In the first case the shared library takes precedence because the lazy
symbol is replaced by the .so symbol before it is extracted from the
archive. In the second example the ref.o file causes the archive to be
exracted before the .so file is processed, so in that case the archive
file wins.
Fixes: https://github.com/emscripten-core/emscripten/issues/23501
Commit: 98d6dd39887361ff2161401614da0b7854234419
https://github.com/llvm/llvm-project/commit/98d6dd39887361ff2161401614da0b7854234419
Author: Veera <32646674+veera-sivarajan at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
[LLVM][LangRef][noalias] Remove Redundant Line and Improve Wording (#124685)
Removes a redundant line and improves punctuation and wording in the
paragraph describing the `noalias` attribute.
Commit: 6b654a09c2b689438237252d6f0fbcb25c993703
https://github.com/llvm/llvm-project/commit/6b654a09c2b689438237252d6f0fbcb25c993703
Author: andrewjcg <agallagher at fb.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_suppressions.cpp
M compiler-rt/lib/asan/asan_suppressions.h
A compiler-rt/test/asan/TestCases/suppressions-alloc-dealloc-mismatch.cpp
Log Message:
-----------
[sanitizer] Support "alloc_dealloc_mismatch" suppressions (#124197)
This adds a stack-based suppression for alloc-dealloc-mismatch
violations, using the function name to match.
Commit: 79cbad188afd5268235b00267d37ce39544dbd3c
https://github.com/llvm/llvm-project/commit/79cbad188afd5268235b00267d37ce39544dbd3c
Author: vporpo <vporpodas at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.h
M llvm/lib/SandboxIR/Context.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/CMakeLists.txt
A llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerTest.cpp
Log Message:
-----------
[SandboxVec] Clear Context's state within runOnFunction() (#124842)
`sandboxir::Context` is defined at a pass-level scope with the
`SandboxVectorizerPass` class because the function pass manager `FPM`
object depends on it, and that is in pass-level scope to avoid
recreating the pass pipeline every single time `runOnFunction()` is
called.
This means that the Context's state lives on across function passes. The
problem is twofold:
(i) the LLVM IR to Sandbox IR map can grow very large including objects
from different functions, which is of no use to the vectorizer, as it's
a function-level pass.
(ii) this can result in stale data in the LLVM IR to Sandbox IR object
map, as other passes may delete LLVM IR objects.
To fix both issues this patch introduces a `Context::clear()` function
that clears the `LLVMValueToValueMap`.
Commit: d0052ebbe2e2f691ec42cad3c8613ef387abc53f
https://github.com/llvm/llvm-project/commit/d0052ebbe2e2f691ec42cad3c8613ef387abc53f
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
Log Message:
-----------
[ORC][LLJIT] Install eh-frame registration plugin during platform setup.
Attempt to install the EHFrameRegistrationPlugin during GenericLLVMIRPlatform
setup, rather than object linking layer creation time.
Platform classes are responsible for exception handling: installing the plugin
unconditionally during linking-layer construction could result in frames being
registered more than once when native platform classes are used.
This is a precursor to re-landing compact unwind support (4f0325873fa).
Commit: 60927405f5612158ae0419798838be45a1637911
https://github.com/llvm/llvm-project/commit/60927405f5612158ae0419798838be45a1637911
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/CMakeLists.txt
M clang/include/clang/Basic/Version.inc.in
M clang/lib/Frontend/CompilerInvocation.cpp
Log Message:
-----------
Don't use CLANG_VERSION_MAJOR to check that the value passed to -fclang-abi-compat= is valid (#123998)
Use LLVM_VERSION_MAJOR instead as the maximum allowed value. This change
is needed to fix regression tests that fail when vendors set
CLANG_VERSION_MAJOR to a value that is lower than LLVM_VERSION_MAJOR
when building the compiler.
For example, clang/test/CodeGenCXX/mangle-concept.cpp fails with the
following error if -DCLANG_VERSION_MAJOR=17 is passed to cmake:
invalid value '19' in '-fclang-abi-compat=19'
Commit: ff271d04a2fe0af0ad43e9c0bce1cbb10912dc32
https://github.com/llvm/llvm-project/commit/ff271d04a2fe0af0ad43e9c0bce1cbb10912dc32
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/test/CodeGen/RISCV/rvv/vl-opt.mir
Log Message:
-----------
[RISCV][VLOPT] Fix assertion failure across blocks (#124734)
Whilst adding a cross-block test, I encountered an assertion failure in
the second pass where we check the instruction popped off the worklist
is a candidate.
The leaf instruction %c in this case will be added to the worklist when
its VL is VLMAX, but during the first pass it will have its VL reduced
to 1.
Then in the second pass when its processed via the worklist, isCandidate
will no longer be true due to its VL == 1.
This fixes it by moving the VL == 1 check to tryReduceVL, keeping it
alongside the other VL check for bailing out early as an optimisation.
Commit: fdadef9be33fb3f0844b85c35a63a8a4137382dd
https://github.com/llvm/llvm-project/commit/fdadef9be33fb3f0844b85c35a63a8a4137382dd
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics.ll
Log Message:
-----------
[msan] Handle x86_avx512_(min|max)_p[sd]_512 intrinsics (#124421)
The AVX/SSE variants are already handled heuristically (maybeHandleSimpleNomemIntrinsic via handleUnknownIntrinsic), but the AVX512 variants contain an additional parameter (the rounding method) which fails to match heuristically. This patch generalizes maybeHandleSimpleNomemIntrinsic to allow additional flags (ignored by MSan) and explicitly call it to handle AVX512 min/max ps/pd intrinsics.
It also updates the test added in https://github.com/llvm/llvm-project/pull/123980
Commit: 8c2574832ed2064996389e4259eaf0bea0fa7951
https://github.com/llvm/llvm-project/commit/8c2574832ed2064996389e4259eaf0bea0fa7951
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
M clang/test/AST/ast-dump-decl.c
M clang/test/AST/ast-dump-records.c
M clang/test/AST/ast-dump-records.cpp
M clang/test/AST/attr-counted-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-struct-ptrs.c
M clang/test/AST/attr-counted-by-struct-ptrs.c
M clang/test/AST/attr-sized-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-struct-ptrs.c
M clang/test/AST/attr-sized-by-struct-ptrs.c
A clang/test/Analysis/anonymous-parameter.cpp
M clang/test/Import/cxx-anon-namespace/test.cpp
M clang/test/Modules/odr_hash.cpp
M clang/test/SemaTemplate/aggregate-deduction-candidate.cpp
M clang/test/SemaTemplate/deduction-crash.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
Log Message:
-----------
Reland: [clang] improve print / dump of anonymous declarations (#124858)
Commit: 3bd3e06f3fe418e24af65457877f40cee0544f9d
https://github.com/llvm/llvm-project/commit/3bd3e06f3fe418e24af65457877f40cee0544f9d
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang/docs/ReleaseNotes.rst
M cmake/Modules/LLVMVersion.cmake
M libcxx/docs/ReleaseNotes.rst
A libcxx/docs/ReleaseNotes/21.rst
M libcxx/include/__config
M lld/docs/ReleaseNotes.rst
M llvm/docs/ReleaseNotes.md
M llvm/utils/gn/secondary/llvm/version.gni
M llvm/utils/lit/lit/__init__.py
M openmp/docs/ReleaseNotes.rst
M pstl/docs/ReleaseNotes.rst
Log Message:
-----------
Bump version to 21.0.0git (#124870)
Also clear the release notes.
Commit: 3a3377579f137a0a6e14b60d891a9736707e7e8d
https://github.com/llvm/llvm-project/commit/3a3377579f137a0a6e14b60d891a9736707e7e8d
Author: Hyunsung Lee <ita9naiwa at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp
M mlir/test/Dialect/Math/expand-math.mlir
M mlir/test/mlir-runner/test-expand-math-approx.mlir
Log Message:
-----------
[mlir][math]Update `convertPowfOp` `ExpandPatterns.cpp` (#124402)
The current implementation of `convertPowfOp` requires a calculation of
`a * a` but, max\<fp16\> ~= 65,504, and if `a` is about 16, it will
overflow so get INF in fp8 or fp16 easily.
Remove support when `a < 0`. Overhead of handling negative value of `a`
is large and easy to overflow;
- related issue in iree:
https://github.com/iree-org/iree/issues/15936
Commit: 23763a1200edfe209d1e334d1d1ff71b2a992b3a
https://github.com/llvm/llvm-project/commit/23763a1200edfe209d1e334d1d1ff71b2a992b3a
Author: David CARLIER <devnexen at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
Log Message:
-----------
[compiler-rt][rtsan] mremap for Linux interception. (#124234)
Commit: 4c7aa6f983685e93ebb8ad0cc41247bca0d6db9b
https://github.com/llvm/llvm-project/commit/4c7aa6f983685e93ebb8ad0cc41247bca0d6db9b
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Log Message:
-----------
[msan] Fix -Wunused-variable in non-assertion builds after #124421
Commit: cdced8e5bc422a28b42d1bdfb74629cc720a4dfe
https://github.com/llvm/llvm-project/commit/cdced8e5bc422a28b42d1bdfb74629cc720a4dfe
Author: Alan Li <me at alanli.org>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
M mlir/test/Dialect/Vector/vector-emulate-narrow-type-unaligned.mlir
Log Message:
-----------
[MLIR] Implement emulation of static indexing subbyte type vector stores (#115922)
This patch enables unaligned, statically indexed storing of vectors with
sub emulation width element types.
To illustrate the mechanism, consider the example of storing
vector<7xi2> into memref<3x7xi2>[1, 0].
In this case the linearized indices of those bits being overwritten are
[14, 28), which are:
* the last 2 bits of byte no.2
* byte no.3
* first 4 bits of byte no.4
Because memory accesses are in bytes, byte no.2 and no.4 in the above
example are only being modified partially.
In the case of multi-threading scenario, in order to avoid data
contention, these two bytes must be handled atomically.
Commit: 8675cd3facc063673c47ed585bd4b7013119fe1f
https://github.com/llvm/llvm-project/commit/8675cd3facc063673c47ed585bd4b7013119fe1f
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/test/CodeGen/RISCV/rvv/vl-opt.mir
M llvm/test/CodeGen/RISCV/rvv/vlopt-same-vl.ll
Log Message:
-----------
[RISCV][VLOPT] Compute demanded VLs up front (#124530)
This replaces the worklist by instead computing what VL is demanded by
each instruction's users first, which is done via checkUsers.
The demanded VLs are stored in a DenseMap, and then we can just do a
single forward pass of tryReduceVL where we check if a candidate's
demanded VL is less than its VLOp.
This means the pass should now be linear in complexity, and allows us to
relax the restriction on tied operands in more easily as in #124066.
Commit: 9052b37ab1aa67a039b34356f37236fecc42bac2
https://github.com/llvm/llvm-project/commit/9052b37ab1aa67a039b34356f37236fecc42bac2
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/tools/lli/lli.cpp
Log Message:
-----------
[ORC][LLI] Remove redundant eh-frame registration plugin construction from lli.
As of d0052ebbe2e the setUpGenericLLVMIRPlatform function will automatically
add an instance of the EHFrameRegistrationPlugin (for LLJIT instances whose
object linking layers are ObjectLinkingLayers, not RTDyldObjectLinkingLayers).
This commit removes the redundant plugin creation in the object linking
layer constructor function in lli.cpp to prevent duplicate registration of
eh-frames, which is likely the cause of recent bot failures, e.g.
https://lab.llvm.org/buildbot/#/builders/108/builds/8685.
Commit: 654b76321a602db4d68734e9fd11efbb7d8eb617
https://github.com/llvm/llvm-project/commit/654b76321a602db4d68734e9fd11efbb7d8eb617
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M flang/CMakeLists.txt
M flang/include/flang/Optimizer/Builder/Runtime/Main.h
A flang/include/flang/Runtime/CUDA/init.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Optimizer/Builder/Runtime/Main.cpp
M flang/runtime/CUDA/CMakeLists.txt
A flang/runtime/CUDA/init.cpp
M flang/runtime/environment.cpp
M flang/runtime/environment.h
Log Message:
-----------
[flang][cuda] Allow to set the stack limit size (#124859)
This patch adds a call to the CUFInit function just after `ProgramStart`
when CUDA Fortran is enabled to initialize the CUDA context. This allows
us to set up some context information like the stack limit that can be
defined by an environment variable `ACC_OFFLOAD_STACKSIZE=<value>`.
Commit: 9ec4f474c0f4846fccbd770adeec784c83a9a060
https://github.com/llvm/llvm-project/commit/9ec4f474c0f4846fccbd770adeec784c83a9a060
Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/Support/GlobPattern.h
Log Message:
-----------
[GlobPattern] Fix doxygen docs (#124361)
Fix the docs for the `GlobPattern` class.
https://llvm.org/docs/doxygen/classllvm_1_1GlobPattern.html
I've tried to fix this a few times, but I finally got around to building
`doxygen-llvm` to verify that my fixed worked.
For some reason, `\p` does not work well with `/`. Instead I'm using
<code>`</code> to make a codespan, which is more correct anyway.
https://www.doxygen.nl/manual/markdown.html#md_codespan
Commit: b28e879a8323189ee05733a0ef3779a6768a9ea3
https://github.com/llvm/llvm-project/commit/b28e879a8323189ee05733a0ef3779a6768a9ea3
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M clang/unittests/Format/ConfigParseTest.cpp
Log Message:
-----------
[clang-format] Simplify ConfigParseTest for int/unsigned options (#124704)
Also add a number of missing tests for unsigned options.
Commit: ab6d41eae12b29bcb99ed66ca8edb48296ccfe42
https://github.com/llvm/llvm-project/commit/ab6d41eae12b29bcb99ed66ca8edb48296ccfe42
Author: Andarwinux <144242044+Andarwinux at users.noreply.github.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/cmake/modules/AddLLVM.cmake
Log Message:
-----------
Add llvm-driver to the list of toolchain tools (#123083)
If LLVM_TOOL_LLVM_DRIVER_BUILD is enabled, make sure
LLVM_TOOLCHAIN_TOOLS includes llvm-driver, otherwise with
LLVM_INSTALL_TOOLCHAIN_ONLY will install an invalid toolchain
Co-authored-by: Andarwinux <Andarwinux at users.noreply.github.com>
Commit: d4159e2a1d1d640077b2e5cde66b0a284049955f
https://github.com/llvm/llvm-project/commit/d4159e2a1d1d640077b2e5cde66b0a284049955f
Author: Srinivasa Ravi <srinivasar at nvidia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/test/Dialect/LLVMIR/nvvm.mlir
M mlir/test/Target/LLVMIR/nvvmir.mlir
Log Message:
-----------
[MLIR][NVVM] Add support for griddepcontrol Ops (#124603)
Adds `griddepcontrol.wait` and `griddepcontrol.launch.dependents`
MLIR Ops to generate griddepcontrol instructions.
`griddepcontrol` - Allows dependent and prerequisite grids as defined by
the runtime to control execution in the following ways:
- `griddepcontrol.wait` - causes the executing thread to wait until all
prerequisite grids in flight have completed and all the memory
operations from the prerequisite grids are performed and made visible
to the current grid.
- `griddepcontrol.launch.dependents` - signals that specific dependents
the runtime system designated to react to this instruction can be
scheduled as soon as all other CTAs in the grid issue the same
instruction or have completed.
PTX Spec Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/#parallel-synchronization-and-communication-instructions-griddepcontrol
Commit: b0924ed64e0d814ab23fa474c2047030dd3a2f46
https://github.com/llvm/llvm-project/commit/b0924ed64e0d814ab23fa474c2047030dd3a2f46
Author: natedal <125322768+natedal at users.noreply.github.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/test/Transforms/AggressiveInstCombine/memchr.ll
Log Message:
-----------
[AggressiveInstCombine] Add tests for memchr inline threshold (NFC) (#121711)
This adds a test checking that, if length=2, memchr is called. This is
undesirable as it would be faster to directly compare the two array
elements with the target element, rather than calling the external
memchr function.
Commit: 77e44e59665e6c12c3d74c57650040d82e1c7161
https://github.com/llvm/llvm-project/commit/77e44e59665e6c12c3d74c57650040d82e1c7161
Author: Nico Weber <thakis at chromium.org>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
Log Message:
-----------
[gn] port 60927405f561
Commit: 3feb724496238ce10d32e8c2bd84b4ea50f9977e
https://github.com/llvm/llvm-project/commit/3feb724496238ce10d32e8c2bd84b4ea50f9977e
Author: Mingming Liu <mingmingl at google.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
M llvm/include/llvm/Target/TargetLoweringObjectFile.h
M llvm/include/llvm/Target/TargetMachine.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/CodeGen/StaticDataSplitter.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Target/TargetLoweringObjectFile.cpp
M llvm/test/CodeGen/X86/jump-table-partition.ll
Log Message:
-----------
[AsmPrinter][ELF] Support profile-guided section prefix for jump tables' (read-only) data sections (#122215)
https://github.com/llvm/llvm-project/pull/122183 adds a codegen pass to
infer machine jump table entry's hotness from the MBB hotness. This is a
follow-up PR to produce `.hot` and or `.unlikely` section prefix for
jump table's (read-only) data sections in the relocatable `.o` files.
When this patch is enabled, linker will see {`.rodata`, `.rodata.hot`,
`.rodata.unlikely`} in input sections. It can map `.rodata.hot` and
`.rodata` in the input sections to `.rodata.hot` in the executable, and
map `.rodata.unlikely` into `.rodata` with a pending extension to
`--keep-text-section-prefix` like
https://github.com/llvm/llvm-project/commit/059e7cbb66a30ce35f3ee43197eed1a106b50c5b,
or with a linker script.
1. To partition hot and jump tables, the AsmPrinter pass slices a function's jump table indices into two groups, one for hot and the other for cold jump tables. It then emits hot jump tables into a `.hot`-prefixed data section and cold ones into a `.unlikely`-prefixed data section, retaining the relative order of `LJT<N>` labels within each group.
2. [ELF only] To have data sections with _dynamic_ names (e.g., `.rodata.hot[.func]`), we implement
`TargetLoweringObjectFile::getSectionForJumpTable` method that accepts a `MachineJumpTableEntry` parameter, and update `selectELFSectionForGlobal` to generate `.hot` or `.unlikely` based on
MJTE's hotness.
- The dynamic JT section name doesn't depend on `-ffunction-section=true` or `-funique-section-names=true`, even though it leverages the similar underlying mechanism to have a MCSection with on-demand name as `-ffunction-section` does.
3. The new code path is off by default.
- Typically, `TargetOptions` conveys clang or LLVM tools' options to code generation passes. To follow the pattern, add option `EnableStaticDataPartitioning` bit in `TargetOptions` and make it
readable through `TargetMachine`.
- To enable the new code path in tools like `llc`, `partition-static-data-sections` option is introduced in
`CodeGen/CommandFlags.h/cpp`.
- A subsequent patch
([draft](https://github.com/llvm/llvm-project/commit/8f36a1374365862b3ca9be5615dd38f02a318c45)) will add a clang option to enable the new code path.
---------
Co-authored-by: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Commit: 1c3ea59daac23f17dadb30903ae1df085ce38a4a
https://github.com/llvm/llvm-project/commit/1c3ea59daac23f17dadb30903ae1df085ce38a4a
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/Transforms/Vectorize/SandboxVectorizer/BUILD.gn
Log Message:
-----------
[gn build] Port 79cbad188afd
Commit: 2ec27848c00cda734697619047e640eadb254555
https://github.com/llvm/llvm-project/commit/2ec27848c00cda734697619047e640eadb254555
Author: Matthias Gehre <matthias.gehre at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Utils.h
M mlir/lib/Dialect/Affine/Utils/Utils.cpp
M mlir/lib/Dialect/MemRef/Transforms/NormalizeMemRefs.cpp
M mlir/test/Dialect/MemRef/normalize-memrefs.mlir
Log Message:
-----------
[MLIR] normalize-memrefs: Normalize memref.alloca (#123293)
The pass was only handling `memref.alloc` and this extends it to also
handle `memref.alloca`.
Commit: d34462409757731e158909250d2a4be4f9d2de80
https://github.com/llvm/llvm-project/commit/d34462409757731e158909250d2a4be4f9d2de80
Author: Matthias Gehre <matthias.gehre at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/test/lit.cfg.py
Log Message:
-----------
MLIR: asan: Fix python tests under asan on Linux (#123303)
Running MLIR python tests unders asan currently fails with
```
executed command: 'LD_PRELOAD=$(/usr/bin/clang++-17' '-print-file-name=libclang_rt.asan-x86_64.so)' /scratch/slx-llvm/.venv-3.10/bin/python3.10 /scratch/slx-llvm/mlir/test/python/ir/context_lifecycle.py
| 'LD_PRELOAD=$(/usr/bin/clang++-17': command not found
```
because lit doesn't quite understand the syntax.
To fix, we resolve the path to `libclang_rt.asan-x86_64.so` within the
lit configuration. This has the additional benefit that we don't have to
call `clang++` for every test.
Co-authored-by: Philipp-Jan Honysz <Philipp.Honysz at amd.com>
Commit: d1997322cb89c1db345750729f34c4f75d1ff1d1
https://github.com/llvm/llvm-project/commit/d1997322cb89c1db345750729f34c4f75d1ff1d1
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M llvm/utils/TableGen/RegisterInfoEmitter.cpp
Log Message:
-----------
[TableGen] Use MCRegister::id() to avoid an implicit conversion from MCRegister to unsigned. NFC
Commit: 267e293510ad0e273443bc1b6c3655f6307e3992
https://github.com/llvm/llvm-project/commit/267e293510ad0e273443bc1b6c3655f6307e3992
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[bazel] Introduce MAX_CLANG_ABI_COMPAT_VERSION (for #123998)
Commit: 71edfd6230268af93a2195896827cd45d203a250
https://github.com/llvm/llvm-project/commit/71edfd6230268af93a2195896827cd45d203a250
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
Log Message:
-----------
[AMDGPU][NewPM] Sketch out a AMDGPUPassRegistry skeleton (#124785)
Add a dummy pass skeleton list to help track the progress in porting
passes to NPM.
Commit: a3aa452a21f983237873fa85c866b9f0224789bd
https://github.com/llvm/llvm-project/commit/a3aa452a21f983237873fa85c866b9f0224789bd
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/RegisterCoalescer.cpp
Log Message:
-----------
[CodeGen] RegisterCoalescer: Remove unused AliasAnalysis dependency (#124773)
Commit: 07efe2c18a63423943a4f9d9daeada23601f84c8
https://github.com/llvm/llvm-project/commit/07efe2c18a63423943a4f9d9daeada23601f84c8
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/ScalarEvolution/pr123550.ll
Log Message:
-----------
[SCEV] Check correct value for UB (#124302)
This is a followup to #117152. That patch introduced a check for
UB/poison on BEValue. However, the SCEV we're actually going to use is
Shifted. In some cases, it's possible for Shifted to contain UB, while
BEValue doesn't.
In the test case the values are:
BEValue: (-1 * (zext i8 (-83 + ((-83 /u {1,+,1}<%loop>) *
{-1,+,-1}<%loop>)) to i32))<nuw><nsw>
Shifted: (-173 + (-1 * (zext i8 ((-83 /u {0,+,1}<%loop>) *
{0,+,-1}<%loop>) to i32))<nuw><nsw>)<nuw><nsw>
Fixes https://github.com/llvm/llvm-project/issues/123550.
Commit: c836b8956d393f98e0d4e136799a33f1bd06e5f5
https://github.com/llvm/llvm-project/commit/c836b8956d393f98e0d4e136799a33f1bd06e5f5
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/no_vector_instructions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization.ll
M llvm/test/Transforms/LoopVectorize/AArch64/streaming-vectorization.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt-outerloop-scevaddrec.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt-vplan.ll
M llvm/test/Transforms/LoopVectorize/ARM/arm-ieee-vectorize.ll
M llvm/test/Transforms/LoopVectorize/RISCV/force-vect-msg.ll
M llvm/test/Transforms/LoopVectorize/RISCV/reg-usage-bf16.ll
M llvm/test/Transforms/LoopVectorize/RISCV/reg-usage-f16.ll
M llvm/test/Transforms/LoopVectorize/RISCV/reg-usage.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-interleaved.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reduction-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i16-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i32-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i64-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i8-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-01uu.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i32-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i64-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-load-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-store-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-scatter-i32-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-scatter-i64-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i32.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i64.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-store-i8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/scatter-i16-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/scatter-i32-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/scatter-i64-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/scatter-i8-with-i8-index.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i32.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i64.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i8.ll
M llvm/test/Transforms/LoopVectorize/explicit_outer_detection.ll
M llvm/test/Transforms/LoopVectorize/explicit_outer_nonuniform_inner.ll
M llvm/test/Transforms/LoopVectorize/explicit_outer_uniform_diverg_branch.ll
M llvm/test/Transforms/LoopVectorize/loop-vect-memdep.ll
M llvm/test/Transforms/LoopVectorize/nounroll.ll
M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-limitations.ll
M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll
M llvm/test/Transforms/LoopVectorize/scalable-vf-hint.ll
M llvm/test/Transforms/LoopVectorize/scalarized-bitcast.ll
M llvm/test/Transforms/LoopVectorize/uncountable-single-exit-loops.ll
M llvm/test/Transforms/LoopVectorize/vect.stats.ll
M llvm/test/Transforms/LoopVectorize/vplan-unused-interleave-group.ll
Log Message:
-----------
[LoopVectorize][NFC] Disable output for tests that don't need it (#124747)
There are a lot of tests that do not depend upon the IR output
for validation, relying instead on the debug output. For these
tests we can add the -disable-output command line argument.
Commit: 5d3ae5161210c068d01ffba36c8e0761e9971179
https://github.com/llvm/llvm-project/commit/5d3ae5161210c068d01ffba36c8e0761e9971179
Author: Matthias Gehre <matthias.gehre at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir-c/BuiltinAttributes.h
M mlir/lib/Bindings/Python/IRAttributes.cpp
M mlir/lib/CAPI/IR/BuiltinAttributes.cpp
M mlir/test/python/dialects/builtin.py
M mlir/test/python/ir/array_attributes.py
M mlir/test/python/ir/attributes.py
Log Message:
-----------
Reapply "[mlir][python] allow DenseIntElementsAttr for index type (#118947)" (#124804)
This reapplies #118947 and adapts to nanobind.
Commit: 9326633abd0e59fc77072488ee8cded4fe83c8a1
https://github.com/llvm/llvm-project/commit/9326633abd0e59fc77072488ee8cded4fe83c8a1
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
Log Message:
-----------
[lldb] Remove PATH workaround for Android (#124682)
Commit: 51c7338cc671c90ba9345b53c7ca01dc461341ed
https://github.com/llvm/llvm-project/commit/51c7338cc671c90ba9345b53c7ca01dc461341ed
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/cxx2a.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
Log Message:
-----------
[clang][bytecode] Fix dummy handling for p2280r4 (#124396)
This makes some other problems show up like the fact that we didn't
suppress diagnostics during __builtin_constant_p evaluation.
Commit: e811cb00e533e9737db689e35ee6cb0d5af536cc
https://github.com/llvm/llvm-project/commit/e811cb00e533e9737db689e35ee6cb0d5af536cc
Author: Jean-Didier PAILLEUX <jean-di.pailleux at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Parser/Fortran-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/canonicalize-directives.cpp
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Integration/unroll.f90
A flang/test/Lower/unroll.f90
M flang/test/Parser/compiler-directives.f90
M flang/test/Semantics/loop-directives.f90
Log Message:
-----------
[flang] Implement !DIR$ UNROLL [N] (#123331)
This patch implements support for the UNROLL directive to control how
many times a loop should be unrolled.
It must be placed immediately before a `DO LOOP` and applies only to the
loop that follows. N is an integer that specifying the unrolling factor.
This is done by adding an attribute to the branch into the loop in LLVM
to indicate that the loop should unrolled.
The code pushed to support the directive `VECTOR ALWAYS` has been
modified to take account of the fact that several directives can be used
before a `DO LOOP`.
Commit: 5a34e6fdceac40da3312d96273e4b5d767f4a481
https://github.com/llvm/llvm-project/commit/5a34e6fdceac40da3312d96273e4b5d767f4a481
Author: Jean-Didier PAILLEUX <jean-di.pailleux at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/docs/Intrinsics.md
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
M flang/include/flang/Runtime/extensions.h
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
M flang/runtime/extensions.cpp
A flang/test/Lower/Intrinsics/chdir.f90
Log Message:
-----------
[flang] Implement CHDIR intrinsic (#124280)
This intrinsic is a gnu extension
(https://gcc.gnu.org/onlinedocs/gfortran/CHDIR.html) and is used in
FLEUR (https://github.com/JuDFTteam/FLEUR).
Commit: e902cf2df1718b46f83ff132bf4ec5f84b163209
https://github.com/llvm/llvm-project/commit/e902cf2df1718b46f83ff132bf4ec5f84b163209
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M lld/COFF/Driver.cpp
M lld/test/COFF/arm64x-export.test
Log Message:
-----------
[LLD][COFF] Write both native and EC export symbols to the import library on ARM64X (#124833)
Commit: 1ac3665e66c7ddb20ef26bc275ad005186ab09fb
https://github.com/llvm/llvm-project/commit/1ac3665e66c7ddb20ef26bc275ad005186ab09fb
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGenHLSL/builtins/dot-builtin.hlsl
M clang/test/CodeGenHLSL/implicit-norecurse-attrib.hlsl
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/SemaHLSL/BuiltIns/mad-errors.hlsl
Log Message:
-----------
[clang] Restrict the use of scalar types in vector builtins (#119423)
This commit restricts the use of scalar types in vector math builtins,
particularly the `__builtin_elementwise_*` builtins.
Previously, small scalar integer types would be promoted to `int`, as
per the usual conversions. This would silently do the wrong thing for
certain operations, such as `add_sat`, `popcount`, `bitreverse`, and
others. Similarly, since unsigned integer types were promoted to `int`,
something like `add_sat(unsigned char, unsigned char)` would perform a
*signed* operation.
With this patch, promotable scalar integer types are not promoted to
int, and are kept intact. If any of the types differ in the binary and
ternary builtins, an error is issued. Similarly an error is issued if
builtins are supplied integer types of different signs. Mixing enums of
different types in binary/ternary builtins now consistently raises an
error in all language modes.
This brings the behaviour surrounding scalar types more in line with
that of vector types. No change is made to vector types, which are both
not promoted and whose element types must match.
Fixes #84047.
RFC:
https://discourse.llvm.org/t/rfc-change-behaviour-of-elementwise-builtins-on-scalar-integer-types/83725
Commit: 2a1f79582f93505020339d47b0963d616541a6ab
https://github.com/llvm/llvm-project/commit/2a1f79582f93505020339d47b0963d616541a6ab
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Target/LLVMIR/ModuleImport.h
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/instructions.ll
Log Message:
-----------
[MLIR] Fix import of invokes with mismatched variadic types (#124828)
This resolves the same issue addressed in
https://github.com/llvm/llvm-project/pull/124286, but for invoke
operations. The issue arose from duplicated logic for both imports. This
PR also refactors the common import code for call and invoke
instructions to mitigate issues in the future.
Commit: 776ef9d1bec66875c554e8a5bd0e3ae8c9543d9a
https://github.com/llvm/llvm-project/commit/776ef9d1bec66875c554e8a5bd0e3ae8c9543d9a
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
M llvm/test/Transforms/LoopVectorize/single_early_exit.ll
M llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
Log Message:
-----------
[LoopVectorize][NFC] Regenerate some early exit test CHECK lines (#124900)
Commit: 9ea64dd8781328d831d7c69a586f0c84dece1c11
https://github.com/llvm/llvm-project/commit/9ea64dd8781328d831d7c69a586f0c84dece1c11
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M lldb/docs/resources/build.rst
M lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h
M lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb] Make Python >= 3.8 required for LLDB 21 (#124735)
As decided on
https://discourse.llvm.org/t/rfc-lets-document-and-enforce-a-minimum-python-version-for-lldb/82731.
LLDB 20 recommended `>= 3.8` but did not remove support for anything
earlier. Now we are in what will become LLDB 21, so I'm removing that
support and making
`>= 3.8` required.
See https://docs.python.org/3/c-api/apiabiversion.html#c.PY_VERSION_HEX
for the format of PY_VERSION_HEX.
Commit: db567eaca07133a374991153635a119d9eec066b
https://github.com/llvm/llvm-project/commit/db567eaca07133a374991153635a119d9eec066b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
Log Message:
-----------
[lldb][NFC] Format part of ScriptInterpreterPython.cpp
Was flagged in https://github.com/llvm/llvm-project/pull/124735
but done separately so it didn't get in the way of that.
Commit: 89e767f1277b43862ca417810f23f70596536b81
https://github.com/llvm/llvm-project/commit/89e767f1277b43862ca417810f23f70596536b81
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
Log Message:
-----------
[LoopIdiom] Move up atomic checks for memcpy/memmove (NFC) (#124535)
This patch moves up the checks that verify if it is legal to replace the
atomic load/store with memcpy. Currently these checks are done after we
determine to convert the load/store to memcpy/memmove, which makes the
logic a bit confusing.
This patch is a prelude to #50892
Commit: e80d934aa6c1a0adc18a1d7327eec5623fa68357
https://github.com/llvm/llvm-project/commit/e80d934aa6c1a0adc18a1d7327eec5623fa68357
Author: Alex Bradbury <asb at igalia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
R llvm/test/ExecutionEngine/2010-01-15-UndefValue.ll
A llvm/test/ExecutionEngine/Interpreter/2010-01-15-UndefValue.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-target-ext-type.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-cast.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-insertelement.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-insertextractvalue.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-loadstore.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-select.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-shift.ll
A llvm/test/ExecutionEngine/Interpreter/test-interp-vec-shuffle.ll
R llvm/test/ExecutionEngine/test-interp-target-ext-type.ll
R llvm/test/ExecutionEngine/test-interp-vec-cast.ll
R llvm/test/ExecutionEngine/test-interp-vec-insertelement.ll
R llvm/test/ExecutionEngine/test-interp-vec-insertextractvalue.ll
R llvm/test/ExecutionEngine/test-interp-vec-loadstore.ll
R llvm/test/ExecutionEngine/test-interp-vec-select.ll
R llvm/test/ExecutionEngine/test-interp-vec-shift.ll
R llvm/test/ExecutionEngine/test-interp-vec-shuffle.ll
Log Message:
-----------
[MCJIT][test] Move remaining MCJIT interpreter tests to Interpreter/ subdirectory (#124744)
I left these alone in #124463 but I think it makes sense to clean these
up as well (which Philip also noted in #124464).
Commit: 89ca3e72ca03efbbfb5ae9b1c71d81f2d1753521
https://github.com/llvm/llvm-project/commit/89ca3e72ca03efbbfb5ae9b1c71d81f2d1753521
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/reduce-xor.ll
M llvm/test/Analysis/CostModel/X86/reduction.ll
M llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector.ll
M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll
M llvm/test/Analysis/CostModel/X86/shuffle-single-src.ll
M llvm/test/Analysis/CostModel/X86/shuffle-transpose.ll
M llvm/test/Analysis/CostModel/X86/shuffle-two-src.ll
M llvm/test/Analysis/CostModel/X86/vector-insert-inseltpoison.ll
M llvm/test/Analysis/CostModel/X86/vector-insert-value.ll
M llvm/test/Analysis/CostModel/X86/vector-insert.ll
M llvm/test/Transforms/PhaseOrdering/X86/hadd.ll
M llvm/test/Transforms/PhaseOrdering/X86/hsub.ll
M llvm/test/Transforms/SLPVectorizer/X86/load-partial-vector-shuffle.ll
M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
Log Message:
-----------
[CostModel][X86] Reduce worst case v8i16/v16i8 SSE2 shuffle costs (#124789)
These were based off instruction count, not throughput - we can probably improve these further, but these throughput numbers match the worse expanded shuffles we see in the vector-shuffle-128-v* codegen tests.
Commit: 690f251063d64a59c0c8065dce7023f1916af17c
https://github.com/llvm/llvm-project/commit/690f251063d64a59c0c8065dce7023f1916af17c
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
A llvm/test/Transforms/LoopInterchange/outer-dependency-lte.ll
Log Message:
-----------
[LoopInterchange] Handle LE and GE correctly (#124901)
LoopInterchange have converted `DVEntry::LE` and `DVEntry::GE` in
direction vectors to '<' and '>' respectively. This handling is
incorrect because the information about the '=' it lost. This leads to
miscompilation in some cases. To resolve this issue, convert them to '*'
instead.
Resolve #123920
Commit: f20b8e35b3bc276d09a6911746f9d44cbb5de297
https://github.com/llvm/llvm-project/commit/f20b8e35b3bc276d09a6911746f9d44cbb5de297
Author: Dmitriy Smirnov <dmitriy.smirnov at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
M mlir/test/Dialect/Linalg/transform-tile-and-winograd-rewrite.mlir
M mlir/test/Dialect/Linalg/transform-tile-winograd.mlir
Log Message:
-----------
[MLIR][Linalg] Fixes for Winograd decomposition and for tiling (#123675)
The PR addresses issues with the filters of 1 x r and of r x 1 and with
the tiling.
---------
Signed-off-by: Dmitriy Smirnov <dmitriy.smirnov at arm.com>
Commit: 5e43418e0edbc365a9fbf699b19573e0cae4bcf4
https://github.com/llvm/llvm-project/commit/5e43418e0edbc365a9fbf699b19573e0cae4bcf4
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/Basic/Targets/ARM.cpp
A clang/test/Sema/arm-execute-only-tls.c
Log Message:
-----------
[ARM] Forbid use of TLS with execute-only (#124806)
Thread-local code generation requires constant pools because most of the
relocations needed for it operate on data, so it cannot be used with
-mexecute-only (or -mpure-code, which is aliased in the driver).
Without this we hit an assertion in the backend when trying to generate
a constant pool.
Commit: 36b3c43524c8ca86a5050496b8773f07c5ccddff
https://github.com/llvm/llvm-project/commit/36b3c43524c8ca86a5050496b8773f07c5ccddff
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
A llvm/test/CodeGen/AArch64/pauthlr-prologue-duplication.mir
Log Message:
-----------
[AArch64] PAUTH_PROLOGUE should not be duplicated with PAuthLR (#124775)
When using PAuthLR, the PAUTH_PROLOGUE expands into a sequence of
instructions which takes the address of one of those instructions, and
uses that address to compute the return address signature. If this is
duplicated, there will be two different addresses used in calculating
the signature, so the epilogue will only be correct for (at most) one of
them.
This change also restricts code generation when using v8.3-A return
address signing, without PAuthLR. This isn't strictly needed, as
duplicating the prologue there would be valid. We could fix this by
having two copies of PAUTH_PROLOGUE, with and without isNotDuplicable,
but I don't think it's worth adding the extra complexity to a security
feature for that.
Commit: 2b55ef187cb6029eed43d7f4c0a3640c32691b31
https://github.com/llvm/llvm-project/commit/2b55ef187cb6029eed43d7f4c0a3640c32691b31
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
Log Message:
-----------
[VPlan] Add helper to run VPlan passes, verify after run (NFC). (#123640)
Add new runPass helpers to run a VPlan transformation. This makes it
easier to add additional checks/functionality for each transform run. In
this patch, an option is added to run the verifier after each VPlan
transform.
Follow-ups will use the same helper to also support printing VPlans
after each transform.
Note that the verifier at the moment requires there to be a canonical IV
and vector loop region, so the final lowering transforms aren't run via
runPass yet.
PR: https://github.com/llvm/llvm-project/pull/123640
Commit: ecc71de53f8786269ce089501432ee555f98f55b
https://github.com/llvm/llvm-project/commit/ecc71de53f8786269ce089501432ee555f98f55b
Author: Jean-Didier PAILLEUX <jean-didier.pailleux at sipearl.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/docs/Intrinsics.md
M flang/include/flang/Runtime/extensions.h
M flang/runtime/extensions.cpp
A flang/test/Lower/Intrinsics/ierrno.f90
Log Message:
-----------
[flang] Implement IERRNO intrinsic (#124281)
Add the implementation of the IERRNO intrinsic to get the last system
error number, as given by the C errno variable.
This intrinsic is also used in RAMSES
(https://github.com/ramses-organisation/ramses/).
Commit: 12cdf4330d32ce073f88dfaa1ab9a32327b9ef38
https://github.com/llvm/llvm-project/commit/12cdf4330d32ce073f88dfaa1ab9a32327b9ef38
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
A libclc/clc/include/clc/integer/clc_add_sat.h
A libclc/clc/include/clc/integer/clc_sub_sat.h
M libclc/clc/lib/clspv/SOURCES
M libclc/clc/lib/generic/SOURCES
A libclc/clc/lib/generic/integer/clc_add_sat.cl
A libclc/clc/lib/generic/integer/clc_sub_sat.cl
M libclc/clc/lib/spirv/SOURCES
M libclc/clc/lib/spirv64/SOURCES
M libclc/generic/lib/integer/add_sat.cl
M libclc/generic/lib/integer/sub_sat.cl
M libclc/generic/lib/math/clc_ldexp.cl
Log Message:
-----------
[libclc] Move (add|sub)_sat to CLC; optimize (#124903)
Using the `__builtin_elementwise_(add|sub)_sat` functions allows us to
directly optimize to the desired intrinsic, and avoid scalarization for
vector types.
Commit: 9534d27e3321a3b9e6e79fe6328445575bf26b7b
https://github.com/llvm/llvm-project/commit/9534d27e3321a3b9e6e79fe6328445575bf26b7b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
Log Message:
-----------
[X86] vector-idiv-sdiv-512.ll - regenerate VPTERNLOG comments
Commit: 87782b216fd3e7a8f8b2de04d4af467b390e9a34
https://github.com/llvm/llvm-project/commit/87782b216fd3e7a8f8b2de04d4af467b390e9a34
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/X86Vector/X86Vector.td
M mlir/lib/Dialect/X86Vector/Transforms/LegalizeForLLVMExport.cpp
A mlir/test/Dialect/X86Vector/dot-bf16.mlir
M mlir/test/Dialect/X86Vector/legalize-for-llvm.mlir
M mlir/test/Dialect/X86Vector/roundtrip.mlir
M mlir/test/Target/LLVMIR/x86vector.mlir
Log Message:
-----------
[mlir][x86vector] AVX512-BF16 Dot op (#124800)
Adds AVX512 bf16 dot-product operation and defines lowering to LLVM
intrinsics.
AVX512 intrinsic operation definition is extended with an optional
extension field that allows specifying necessary LLVM mnemonic suffix
e.g., `"bf16"` for `x86_avx512bf16_` intrinsics.
Commit: 2f401458266ccd493802e603e3089dca61f8cf6e
https://github.com/llvm/llvm-project/commit/2f401458266ccd493802e603e3089dca61f8cf6e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/RISCV/shuffle-exact-vlen.ll
M llvm/test/Analysis/CostModel/RISCV/shuffle-extract_subvector.ll
M llvm/test/Analysis/CostModel/RISCV/shuffle-insert_subvector.ll
Log Message:
-----------
[RISCV][TTI]Use processShuffleMasks for cost estimations/actual per-register shuffles
Patch adds usage of processShuffleMasks in TTI for RISCV. This function is already used for X86
shuffles estimations and in DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE
functions and in RISCV codegen.
Patch allows better cost estimation for sparse masks and unifies
cost/codegen between different targets/passes
Reviewers: preames
Reviewed By: preames
Pull Request: https://github.com/llvm/llvm-project/pull/118103
Commit: 8d6b24167b7bdc7ac9c969abe73be857bbcf2b5a
https://github.com/llvm/llvm-project/commit/8d6b24167b7bdc7ac9c969abe73be857bbcf2b5a
Author: Ingo Müller <ingomueller at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/IR/CommonAttrConstraints.td
M mlir/test/IR/attribute.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
Log Message:
-----------
[mlir] Make `TypedStrAttr` actually enforce the string type. (#124770)
The tablgen definition `TypedStrAttr` is an attribute constraints that
is meant to restrict the type of a `StringAttr` to the type given as
parameter. However, the definition did not previously restrict the type;
any `StringAttr` was accepted. This PR makes the definition actually
enforce the type.
To test the constraints, the PR also changes the test op that was
previously used to test this constraint such that the enforced type is
`AnyInteger` instead of `AnyType`. The latter allowed any type, so not
enforcing that constraint had no observable effect. The PR then adds a
test case with a wrong type and ensures that diagnostics are produced.
Signed-off-by: Ingo Müller <ingomueller at google.com>
Commit: 983562d8c521620e44e1e4080325193b4ff54a92
https://github.com/llvm/llvm-project/commit/983562d8c521620e44e1e4080325193b4ff54a92
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
Log Message:
-----------
[AMDGPU][NFC] Simplify t16/fake16 TableGen definitions. (#122693)
Infer mnemonics from the names of the records.
Commit: 66e0498dafbfa7f8fd7deaa88ae62bdf38a12113
https://github.com/llvm/llvm-project/commit/66e0498dafbfa7f8fd7deaa88ae62bdf38a12113
Author: David Green <david.green at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
Log Message:
-----------
[GlobalISel] Do not run verifier after ResetMachineFunctionPass (#124799)
After we fall back from GlobalISel to SDAG, the verifier gets called,
which calls getReservedRegs which uses SIMachineFunctionInfo::usesAGPRs
which caches the result of UsesAGPRs. Because we have just fallen-back
the function is empty and it incorrectly gets cached to false. This
patch makes sure we don't try to run the verifier whilst the function is
empty.
Commit: 978e0839ae2feb5ddda3e4e0b5a7ddba1727d2d8
https://github.com/llvm/llvm-project/commit/978e0839ae2feb5ddda3e4e0b5a7ddba1727d2d8
Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/test/OpenMP/declare_mapper_messages.c
M clang/test/OpenMP/declare_target_ast_print.cpp
M clang/test/OpenMP/declare_target_messages.cpp
M clang/test/OpenMP/depobj_messages.cpp
M clang/test/OpenMP/distribute_parallel_for_ast_print.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp
M clang/test/OpenMP/distribute_simd_ast_print.cpp
M clang/test/OpenMP/distribute_simd_misc_messages.c
M clang/test/OpenMP/driver.c
M clang/test/OpenMP/error_ast_print.cpp
M clang/test/OpenMP/error_codegen.cpp
M clang/test/OpenMP/error_message.cpp
M clang/test/OpenMP/flush_ast_print.cpp
M clang/test/OpenMP/flush_codegen.cpp
M clang/test/OpenMP/for_linear_messages.cpp
M clang/test/OpenMP/for_simd_ast_print.cpp
Log Message:
-----------
[OpenMP] Allow OMP6.0 features. (#122108)
Add support for the `-fopenmp-version=60` command line argument. It is
needed for https://github.com/llvm/llvm-project/pull/119891 (`#pragma
omp stripe`) which will be the first OpenMP 6.0 directive implemented.
Add regression tests for Clang in `-fopenmp-version=60` mode.
Commit: 3a29dfe37c585355dc70c7c614f5bbf071cd7efb
https://github.com/llvm/llvm-project/commit/3a29dfe37c585355dc70c7c614f5bbf071cd7efb
Author: Acim Maravic <Acim.Maravic at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12.cl
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/DSInstructions.td
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.fi.b32.ll
M llvm/test/MC/AMDGPU/gfx11_unsupported.s
Log Message:
-----------
[LLVM][AMDGPU] Add Intrinsic and Builtin for ds_bpermute_fi_b32 (#124616)
Commit: 008e16242b86fcae41326b8937835cca1e991433
https://github.com/llvm/llvm-project/commit/008e16242b86fcae41326b8937835cca1e991433
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/test/Dialect/X86Vector/dot-bf16.mlir
Log Message:
-----------
[mlir][x86vector] Restrict BF16 dot test to x86 (#124916)
Requires x86 target for the lit test to ensure required instructions are
available.
Commit: d412fe531dce07fe69961cc4ae7e463c9e60c273
https://github.com/llvm/llvm-project/commit/d412fe531dce07fe69961cc4ae7e463c9e60c273
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M offload/cmake/caches/AMDGPUBot.cmake
Log Message:
-----------
[Offload] Enable mlir and flang in bot build (#124915)
This enables more projects in the CMake cache to add them to the
buildbot coverage in the AMDGPU buildbots.
Commit: 86e20b00c313e96db3b69d440bfb2ca9063f08f0
https://github.com/llvm/llvm-project/commit/86e20b00c313e96db3b69d440bfb2ca9063f08f0
Author: Martin Storsjö <martin at martin.st>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libcxx/include/fstream
M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/offset_range.pass.cpp
Log Message:
-----------
[libcxx] Use _ftelli64/_fseeki64 on Windows (#123128)
This allows using the full 64 bit range for file offsets.
This should fix the issue reported downstream at
https://github.com/mstorsjo/llvm-mingw/issues/462.
Commit: 058d183980a2f334d085a46c32abded0557aa789
https://github.com/llvm/llvm-project/commit/058d183980a2f334d085a46c32abded0557aa789
Author: Andrea Faulds <andrea.faulds at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
R mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h
M mlir/include/mlir/Conversion/Passes.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/CMakeLists.txt
R mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
R mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
M mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir
M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
M mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir
M mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir
M mlir/test/Conversion/ConvertToSPIRV/gpu.mlir
M mlir/test/Conversion/ConvertToSPIRV/index.mlir
M mlir/test/Conversion/ConvertToSPIRV/memref.mlir
M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/lib/Pass/CMakeLists.txt
A mlir/test/lib/Pass/TestConvertToSPIRVPass.cpp
M mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
[mlir][spirv] Make ConvertToSPIRVPass into a test pass (non-public) (#124301)
With the removal of mlir-vulkan-runner (as part of #73457) in
e7e3c45bc70904e24e2b3221ac8521e67eb84668, this pass no longer has to be
public (previously it had to be so the runner could use it). This commit
makes it instead only available for use by mlir-opt.
Commit: cf37ae5caeafb372593ca4bb9ce0e91258524ca1
https://github.com/llvm/llvm-project/commit/cf37ae5caeafb372593ca4bb9ce0e91258524ca1
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/intrinsic-select.ll
Log Message:
-----------
[InstCombine] Add one-use check when folding fabs over selects (#122270)
Fixes multi-use issue introduced by
https://github.com/llvm/llvm-project/pull/86390.
It allows the folding of `fabs (select Cond, TrueC, FalseC)` to avoid performance regression in ocio
Commit: 7441e87fe05376782d0ddb90a13e1756eb1b1976
https://github.com/llvm/llvm-project/commit/7441e87fe05376782d0ddb90a13e1756eb1b1976
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libclc/amdgcn/lib/SOURCES
R libclc/amdgcn/lib/integer/popcount.cl
R libclc/amdgcn/lib/integer/popcount.inc
A libclc/clc/include/clc/integer/clc_clz.h
A libclc/clc/include/clc/integer/clc_hadd.h
A libclc/clc/include/clc/integer/clc_mad24.h
A libclc/clc/include/clc/integer/clc_mad_hi.h
A libclc/clc/include/clc/integer/clc_mul24.h
A libclc/clc/include/clc/integer/clc_mul_hi.h
A libclc/clc/include/clc/integer/clc_popcount.h
A libclc/clc/include/clc/integer/clc_rhadd.h
A libclc/clc/include/clc/integer/clc_upsample.h
A libclc/clc/include/clc/integer/definitions.h
A libclc/clc/include/clc/integer/gentype24.inc
M libclc/clc/include/clc/math/clc_mad.h
R libclc/clc/include/clc/math/ternary_decl.inc
A libclc/clc/include/clc/shared/ternary_decl.inc
A libclc/clc/include/clc/shared/ternary_def.inc
A libclc/clc/include/clc/shared/unary_decl.inc
A libclc/clc/include/clc/shared/unary_def.inc
M libclc/clc/lib/clspv/SOURCES
M libclc/clc/lib/generic/SOURCES
A libclc/clc/lib/generic/integer/clc_clz.cl
A libclc/clc/lib/generic/integer/clc_hadd.cl
A libclc/clc/lib/generic/integer/clc_hadd.inc
A libclc/clc/lib/generic/integer/clc_mad24.cl
A libclc/clc/lib/generic/integer/clc_mad24.inc
A libclc/clc/lib/generic/integer/clc_mul24.cl
A libclc/clc/lib/generic/integer/clc_mul24.inc
A libclc/clc/lib/generic/integer/clc_mul_hi.cl
A libclc/clc/lib/generic/integer/clc_popcount.cl
A libclc/clc/lib/generic/integer/clc_rhadd.cl
A libclc/clc/lib/generic/integer/clc_rhadd.inc
A libclc/clc/lib/generic/integer/clc_upsample.cl
M libclc/clc/lib/spirv/SOURCES
M libclc/clc/lib/spirv64/SOURCES
M libclc/generic/include/clc/integer/clz.h
R libclc/generic/include/clc/integer/clz.inc
R libclc/generic/include/clc/integer/definitions.h
M libclc/generic/include/clc/integer/hadd.h
R libclc/generic/include/clc/integer/hadd.inc
M libclc/generic/include/clc/integer/mad24.h
R libclc/generic/include/clc/integer/mad24.inc
M libclc/generic/include/clc/integer/mad_hi.h
M libclc/generic/include/clc/integer/mul24.h
R libclc/generic/include/clc/integer/mul24.inc
M libclc/generic/include/clc/integer/mul_hi.h
R libclc/generic/include/clc/integer/mul_hi.inc
M libclc/generic/include/clc/integer/popcount.h
M libclc/generic/include/clc/integer/rhadd.h
R libclc/generic/include/clc/integer/rhadd.inc
M libclc/generic/include/clc/integer/upsample.h
M libclc/generic/include/clc/math/fma.h
M libclc/generic/include/clc/math/mad.h
R libclc/generic/include/integer/popcount.h
R libclc/generic/include/integer/unary_intrin.inc
M libclc/generic/include/math/clc_fma.h
M libclc/generic/lib/SOURCES
M libclc/generic/lib/integer/clz.cl
M libclc/generic/lib/integer/hadd.cl
R libclc/generic/lib/integer/hadd.inc
M libclc/generic/lib/integer/mad24.cl
R libclc/generic/lib/integer/mad24.inc
A libclc/generic/lib/integer/mad_hi.cl
M libclc/generic/lib/integer/mul24.cl
R libclc/generic/lib/integer/mul24.inc
M libclc/generic/lib/integer/mul_hi.cl
M libclc/generic/lib/integer/popcount.cl
M libclc/generic/lib/integer/rhadd.cl
R libclc/generic/lib/integer/rhadd.inc
M libclc/generic/lib/integer/upsample.cl
M libclc/generic/lib/math/clc_fma.cl
M libclc/generic/lib/math/clc_fmod.cl
M libclc/generic/lib/math/clc_remainder.cl
M libclc/generic/lib/math/clc_remquo.cl
M libclc/generic/lib/math/sincos_helpers.cl
Log Message:
-----------
[libclc] Move several integer functions to CLC library (#116786)
This commit moves over the OpenCL clz, hadd, mad24, mad_hi, mul24,
mul_hi, popcount, rhadd, and upsample builtins to the CLC library.
This commit also optimizes the vector forms of the mul_hi and upsample
builtins to consistently remain in vector types, instead of recursively
splitting vectors down to the scalar form.
The OpenCL mad_hi builtin wasn't previously publicly available from the
CLC libraries, as it was hash-defined to mul_hi in the header files.
That issue has been fixed, and mad_hi is now exposed.
The custom AMD implementation/workaround for popcount has been removed
as it was only required for clang < 7.
There are still two integer functions which haven't been moved over. The
OpenCL mad_sat builtin uses many of the other integer builtins, and
would benefit from optimization for vector types. That can take place in
a follow-up commit. The rotate builtin could similarly use some more
dedicated focus, potentially using clang builtins.
Commit: 4a1a697427bbec4a43f499c7b7aa38a05bf05727
https://github.com/llvm/llvm-project/commit/4a1a697427bbec4a43f499c7b7aa38a05bf05727
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Unify ScalarToTreeEntries and MultiNodeScalars, NFC
Currently, SLP has 2 distinct storages to manage mapping between
vectorized instructions and their corresponding vectorized TreeEntry
nodes. It leads to inefficient lookup for the matching TreeEntries and
makes it harder to correctly track instructions, associated with
multiple nodes.
There is a plan to extend this support for instructions, that require
scheduling, to allow support for copyable elements. Merging
ScalarToTreeEntry and MultiNodeScalars will allow reduce maintenance of
the feature
Reviewers: RKSimon
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/124914
Commit: 4573c857da88b3210d497d9a88a89351a74b5964
https://github.com/llvm/llvm-project/commit/4573c857da88b3210d497d9a88a89351a74b5964
Author: Andrea Faulds <andrea.faulds at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
A mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h
M mlir/include/mlir/Conversion/Passes.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/CMakeLists.txt
A mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
A mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
M mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir
M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
M mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir
M mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir
M mlir/test/Conversion/ConvertToSPIRV/gpu.mlir
M mlir/test/Conversion/ConvertToSPIRV/index.mlir
M mlir/test/Conversion/ConvertToSPIRV/memref.mlir
M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/lib/Pass/CMakeLists.txt
R mlir/test/lib/Pass/TestConvertToSPIRVPass.cpp
M mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
Revert "[mlir][spirv] Make ConvertToSPIRVPass into a test pass (non-public) (#124301)"
This reverts commit 058d183980a2f334d085a46c32abded0557aa789 due to
build failures (missing symbols when linking).
Commit: ce96c26cd612d8821a6cb24cba25a82d54c92136
https://github.com/llvm/llvm-project/commit/ce96c26cd612d8821a6cb24cba25a82d54c92136
Author: David Blaikie <dblaikie at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
M llvm/test/DebugInfo/NVPTX/debug-info.ll
M llvm/test/DebugInfo/X86/DW_AT_object_pointer.ll
M llvm/test/DebugInfo/X86/dwarf-public-names.ll
M llvm/test/tools/llvm-dwarfdump/X86/statistics.ll
Log Message:
-----------
Revert "[llvm][DebugInfo] Attach object-pointer to DISubprogram declarations (#122742)" (#124853)
This introduces a substantial (5-10%) regression in .debug_info size, so
we're discussing alternatives in #122742 and #124790.
This reverts commit 7c729418d721147bf1f2b257afd30f84721888ad.
Commit: 2e43f3922377d75966cc543f5b1fb01332d25d76
https://github.com/llvm/llvm-project/commit/2e43f3922377d75966cc543f5b1fb01332d25d76
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
Log Message:
-----------
[NFC][SIWholeQuadMode] Perform less lookups (#124927)
Commit: 5a4945fa4d515b3209a5e181621bf828e678769f
https://github.com/llvm/llvm-project/commit/5a4945fa4d515b3209a5e181621bf828e678769f
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/vector-integer-arithmetic.s
Log Message:
-----------
[RISCV][SIFIVE] Fix latencies for vector integer arithmetic long latency (#124855)
These instructions go through a longer latency pipeline of 8.
Commit: 25ae1a266d50f24a8fffc57152d7f3c3fcb65517
https://github.com/llvm/llvm-project/commit/25ae1a266d50f24a8fffc57152d7f3c3fcb65517
Author: Andrea Faulds <andrea.faulds at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
R mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h
M mlir/include/mlir/Conversion/Passes.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/CMakeLists.txt
R mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
R mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
M mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir
M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
M mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir
M mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir
M mlir/test/Conversion/ConvertToSPIRV/gpu.mlir
M mlir/test/Conversion/ConvertToSPIRV/index.mlir
M mlir/test/Conversion/ConvertToSPIRV/memref.mlir
M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
M mlir/test/lib/Pass/CMakeLists.txt
A mlir/test/lib/Pass/TestConvertToSPIRVPass.cpp
M mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
Log Message:
-----------
[mlir][spirv] Make ConvertToSPIRVPass into a test pass (non-public)
With the removal of mlir-vulkan-runner (as part of #73457) in
e7e3c45bc70904e24e2b3221ac8521e67eb84668, this pass no longer has to be
public (previously it had to be so the runner could use it). This commit
makes it instead only available for use by mlir-opt.
This is a recommit of 058d183980a2f334d085a46c32abded0557aa789 (#124301)
which had been reverted in 4573c857da88b3210d497d9a88a89351a74b5964 due
to a missing linker dependency on MLIRSPIRVTransforms in
mlir/test/lib/Pass/CMakeLists.txt (fixed in this commit).
Commit: e9c2e0acd747b7b5260cf022233fa9b5336d2d30
https://github.com/llvm/llvm-project/commit/e9c2e0acd747b7b5260cf022233fa9b5336d2d30
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/test/CodeGen/AArch64/args.cpp
Log Message:
-----------
[AArch64] Match GCC behaviour for zero-size structs (#124760)
We had a test claiming that this empty struct type consumes a register
slot when passing it to a function with GCC, but that does not appear to
be the case, at least with GCC versions going back to 4.8.
This also caused a miscompilation when passing one of these structs to a
variadic function, but it turned out that our implementation of `va_arg`
matches GCC's ABI, so the one change fixes both bugs.
Commit: 39a72be5e59c9a80570c1085a769593e2f26f054
https://github.com/llvm/llvm-project/commit/39a72be5e59c9a80570c1085a769593e2f26f054
Author: Sirraide <aeternalmail at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
Log Message:
-----------
[Clang] [NFC] Introduce `ConstDynamicRecursiveASTVisitor` (reland) (#124821)
This relands #122991 (eeefa72).
The last attempt at landing this caused some problems; I’m not entirely
sure what happened, but it might have been due to an unnecessary use
of the `template` keyword in a few places. This removes that and attempts
to land the change again.
Commit: f226cabbb1b9737676536bc4417336bef4808992
https://github.com/llvm/llvm-project/commit/f226cabbb1b9737676536bc4417336bef4808992
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
M llvm/test/Transforms/InstCombine/align-addr.ll
M llvm/test/Transforms/InstCombine/memset_chk-1.ll
M llvm/test/Transforms/InstCombine/sprintf-1.ll
M llvm/test/Transforms/InstCombine/stpncpy-1.ll
M llvm/test/Transforms/InstCombine/strlcpy-1.ll
M llvm/test/Transforms/InstCombine/strncpy-4.ll
M llvm/test/Transforms/InstCombine/strstr-1.ll
M llvm/test/Transforms/InstSimplify/known-non-zero-opaque-ptrs.ll
Log Message:
-----------
[ValueTracking] Handle nonnull attributes at callsite (#124908)
Alive2: https://alive2.llvm.org/ce/z/yJfskv
Closes https://github.com/llvm/llvm-project/issues/124540.
Commit: a01097faca35a9a8927c8b0c514bc35dcebec00f
https://github.com/llvm/llvm-project/commit/a01097faca35a9a8927c8b0c514bc35dcebec00f
Author: Igor Wodiany <igor.wodiany at imgtec.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVMatrixOps.td
M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
M mlir/test/Dialect/SPIRV/IR/matrix-ops.mlir
M mlir/test/Target/SPIRV/matrix.mlir
Log Message:
-----------
[mlir][spirv] Add definition for VectorTimesMatrixOp (#124571)
Adding op as defined in section 3.52.13. (Arithmetic Instructions) of
the SPIR-V specification.
Commit: bfabd5be5359f482af462b587b761f7e07cc4075
https://github.com/llvm/llvm-project/commit/bfabd5be5359f482af462b587b761f7e07cc4075
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libcxx/lib/abi/i686-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-freebsd.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
M libcxx/src/memory_resource.cpp
Log Message:
-----------
[libc++] Remove some private symbols from the ABI (#121497)
These symbols are never referenced directly outside the dylib, so we can
make them hidden instead. They are still in the dylib since can be
referenced through the `memory_resource*`, but dynamic linkers don't
have to do any work to deduplicate them.
Commit: 540402c05badc59529b06e31c51c3f2e093a83b2
https://github.com/llvm/llvm-project/commit/540402c05badc59529b06e31c51c3f2e093a83b2
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Log Message:
-----------
[sanitizer_common] Remove workarounds for older Android (#124881)
Anything supported has CPU_COUNT and sched_getaffinity().
Commit: 349eab186986e56d3e314193733a0443f6575850
https://github.com/llvm/llvm-project/commit/349eab186986e56d3e314193733a0443f6575850
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/Posix/wait4.cpp
Log Message:
-----------
[asan] Enable wait4 test on Android (#124879)
Commit: 0c63ec5347d2c86ea00c77437dfaf65a360fdafd
https://github.com/llvm/llvm-project/commit/0c63ec5347d2c86ea00c77437dfaf65a360fdafd
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
Log Message:
-----------
[NFC][SIWholeQuadMode] Remove redundant arguments (#124930)
Commit: a34a087fc59779c53512eda094e1ca914a4526f2
https://github.com/llvm/llvm-project/commit/a34a087fc59779c53512eda094e1ca914a4526f2
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/Program.cpp
A clang/test/AST/ByteCode/neon.c
Log Message:
-----------
[clang][bytecode] Handle non-primitive vector element types (#124926)
By rejecting them. We would crash before.
Commit: c583df46d404507f62c605b6f96cde22dcd9e948
https://github.com/llvm/llvm-project/commit/c583df46d404507f62c605b6f96cde22dcd9e948
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/AST/ParentMapContext.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#124882)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect It->second to be nonnull.
getSingleDynTypedNodeFromParentMap ends with a deference of U.
Commit: 7ab8f286b8e43a98dc5c0404f80d719c49446875
https://github.com/llvm/llvm-project/commit/7ab8f286b8e43a98dc5c0404f80d719c49446875
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaCodeComplete.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#124883)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
This patch migrates the use of PointerUnion::dyn_cast to
dyn_cast_if_present because ShadowMapEntry::Add starts with:
if (DeclOrVector.isNull()) {
implying that DeclOrVector is not guaranteed to be nonnull.
Commit: 8e4c5cb0063e1c73a3f93073f5f85c8ec598613f
https://github.com/llvm/llvm-project/commit/8e4c5cb0063e1c73a3f93073f5f85c8ec598613f
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/Serialization/ASTWriterStmt.cpp
Log Message:
-----------
[Serialization] Migrate away from PointerUnion::dyn_cast (NFC) (#124884)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect DetailRecord to be nonnull.
Commit: 8baa0d9d545f9daf0d82596cb90f35456efb1153
https://github.com/llvm/llvm-project/commit/8baa0d9d545f9daf0d82596cb90f35456efb1153
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/WinEHPrepare.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#124885)
Commit: 3c3c850a45c8f1ea1e9d6aa514e2b6076d1a4534
https://github.com/llvm/llvm-project/commit/3c3c850a45c8f1ea1e9d6aa514e2b6076d1a4534
Author: Mikhail Gudim <mgudim at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
A llvm/test/CodeGen/RISCV/rda-stack.mir
A llvm/test/CodeGen/SystemZ/rda-stack-copy.mir
Log Message:
-----------
[ReachingDefAnalysis] Extend the analysis to stack objects. (#118097)
We track definitions of stack objects, the implementation is identical
to tracking of registers.
Also, added printing of all found reaching definitions for testing
purposes.
---------
Co-authored-by: Michael Maitland <michaeltmaitland at gmail.com>
Commit: 29441e4f5fa5f5c7709f7cf180815ba97f611297
https://github.com/llvm/llvm-project/commit/29441e4f5fa5f5c7709f7cf180815ba97f611297
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGObjCGNU.cpp
M clang/test/CodeGen/AArch64/pure-scalable-args.c
M clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c
M clang/test/CodeGen/PowerPC/aix-vaargs.c
M clang/test/CodeGen/SystemZ/systemz-inline-asm.c
M clang/test/CodeGen/arm-cmse-attr.c
M clang/test/CodeGen/arm-vfp16-arguments.c
M clang/test/CodeGen/arm-vfp16-arguments2.cpp
M clang/test/CodeGen/attr-counted-by-pr110385.c
M clang/test/CodeGen/attr-counted-by.c
M clang/test/CodeGen/isfpclass.c
M clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c
M clang/test/CodeGen/math-libcalls-tbaa.c
M clang/test/CodeGen/nofpclass.c
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGen/struct-copy.c
M clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
M clang/test/CodeGen/transparent-union-type.c
M clang/test/CodeGen/union-tbaa1.c
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCXX/bitfield-ir.cpp
M clang/test/CodeGenCXX/inline-then-fold-variadics.cpp
M clang/test/CodeGenCXX/noescape.cpp
M clang/test/CodeGenCXX/wasm-args-returns.cpp
M clang/test/CodeGenHLSL/inline-functions.hlsl
M clang/test/CodeGenObjC/noescape.m
M clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
M clang/test/CodeGenOpenCL/amdgpu-call-kernel.cl
M clang/test/CodeGenOpenCL/atomic-builtins-default-to-device-scope.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-read-tr.cl
M clang/test/CodeGenOpenCL/kernel-param-alignment.cl
M clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl
M clang/test/CodeGenOpenCL/preserve_vec3.cl
M clang/test/CodeGenOpenCLCXX/array-type-infinite-loop.clcpp
M clang/test/OpenMP/barrier_codegen.cpp
M clang/test/OpenMP/bug54082.c
M flang/test/Fir/arrayset.fir
M flang/test/Fir/arrexp.fir
M flang/test/Fir/box-offset-codegen.fir
M flang/test/Fir/box.fir
M flang/test/Fir/boxproc.fir
M flang/test/Fir/commute.fir
M flang/test/Fir/coordinateof.fir
M flang/test/Fir/embox.fir
M flang/test/Fir/field-index.fir
M flang/test/Fir/ignore-missing-type-descriptor.fir
M flang/test/Fir/polymorphic.fir
M flang/test/Fir/struct-passing-x86-64-byval.fir
M flang/test/Fir/target-rewrite-complex-10-x86.fir
M flang/test/Fir/target.fir
M flang/test/Integration/OpenMP/copyprivate.f90
M flang/test/Integration/debug-local-var-2.f90
M flang/test/Integration/unroll-loops.f90
M flang/test/Lower/HLFIR/unroll-loops.fir
M flang/test/Transforms/constant-argument-globalisation.fir
M llvm/docs/LangRef.rst
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/AsmParser/LLToken.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/include/llvm/IR/Attributes.h
M llvm/include/llvm/IR/Attributes.td
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/Support/ModRef.h
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/AsmParser/LLLexer.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/IR/Attributes.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/Target/DirectX/DXILPrepare.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/SpillUtils.cpp
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/test/Analysis/StackSafetyAnalysis/lifetime.ll
M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
M llvm/test/Assembler/amdgcn-intrinsic-attributes.ll
M llvm/test/Assembler/auto_upgrade_intrinsics.ll
M llvm/test/Assembler/masked-load-store-intrinsics-attributes.ll
M llvm/test/Bitcode/attributes-3.3.ll
M llvm/test/Bitcode/attributes.ll
M llvm/test/Bitcode/compatibility-3.6.ll
M llvm/test/Bitcode/compatibility-3.7.ll
M llvm/test/Bitcode/compatibility-3.8.ll
M llvm/test/Bitcode/compatibility-3.9.ll
M llvm/test/Bitcode/compatibility-4.0.ll
M llvm/test/Bitcode/compatibility-5.0.ll
M llvm/test/Bitcode/compatibility-6.0.ll
M llvm/test/Bitcode/compatibility.ll
M llvm/test/Bitcode/function-address-space-fwd-decl.ll
M llvm/test/Bitcode/highLevelStructure.3.2.ll
M llvm/test/Bitcode/upgrade-memory-intrinsics.ll
M llvm/test/CodeGen/AArch64/sve2-vscale-sinking.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-libcall-sincos-pass-ordering.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.defined.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.defined.nobuiltin.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.defined.sin.cos.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.nobuiltins.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.weak.ll
M llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/inline-attr.ll
M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-memcpy.ll
M llvm/test/CodeGen/AMDGPU/nested-loop-conditions.ll
M llvm/test/CodeGen/AMDGPU/perfhint.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
M llvm/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
M llvm/test/CodeGen/AMDGPU/vni8-live-reg-opt.ll
M llvm/test/CodeGen/BPF/loop-exit-cond.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/load-inline.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/load-simple.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/load-unroll-inline.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/load-unroll.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-align.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-atomic.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-chain-oob.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-chain-u8-oob.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-chain-u8.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-chain.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-simple.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-unroll-inline.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-volatile.ll
M llvm/test/CodeGen/BPF/preserve-static-offset/store-zero.ll
M llvm/test/CodeGen/Hexagon/autohvx/vector-align-bad-move2.ll
M llvm/test/CodeGen/Hexagon/autohvx/vector-align-overapping-stores.ll
M llvm/test/CodeGen/NVPTX/lower-args-gridconstant.ll
M llvm/test/CodeGen/NVPTX/lower-byval-args.ll
M llvm/test/CodeGen/X86/codegen-prepare-addrmode-sext.ll
M llvm/test/CodeGen/X86/no-plt-libcalls.ll
M llvm/test/Feature/OperandBundles/function-attrs.ll
M llvm/test/Instrumentation/HWAddressSanitizer/mem-attr.ll
M llvm/test/Instrumentation/MemorySanitizer/msan_basic.ll
M llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll
M llvm/test/LTO/X86/mix-opaque-typed.ll
M llvm/test/Other/cgscc-devirt-iteration.ll
M llvm/test/Other/optimize-inrange-gep.ll
M llvm/test/ThinLTO/X86/funcattrs-prop-unknown.ll
M llvm/test/Transforms/AlignmentFromAssumptions/alignment-from-assumptions-track-users.ll
M llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
M llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
M llvm/test/Transforms/ArgumentPromotion/BPF/argpromotion.ll
M llvm/test/Transforms/ArgumentPromotion/actual-arguments.ll
M llvm/test/Transforms/ArgumentPromotion/aliasing-and-non-aliasing-loads-with-clobber.ll
M llvm/test/Transforms/ArgumentPromotion/variadic.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/2008-07-02-array-indexing.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/2008-09-07-CGUpdate.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/array.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/pr32917.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/tail.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
M llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
M llvm/test/Transforms/Attributor/IPConstantProp/dangling-block-address.ll
M llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
M llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
M llvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
M llvm/test/Transforms/Attributor/address_space_info.ll
M llvm/test/Transforms/Attributor/align.ll
M llvm/test/Transforms/Attributor/allocator.ll
M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
M llvm/test/Transforms/Attributor/callbacks.ll
M llvm/test/Transforms/Attributor/callgraph.ll
M llvm/test/Transforms/Attributor/convergent.ll
M llvm/test/Transforms/Attributor/dereferenceable-1.ll
M llvm/test/Transforms/Attributor/dereferenceable-2-inseltpoison.ll
M llvm/test/Transforms/Attributor/dereferenceable-2.ll
M llvm/test/Transforms/Attributor/heap_to_stack.ll
M llvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
M llvm/test/Transforms/Attributor/internal-noalias.ll
M llvm/test/Transforms/Attributor/issue87856.ll
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/memory_locations.ll
M llvm/test/Transforms/Attributor/misc.ll
M llvm/test/Transforms/Attributor/misc_crash.ll
M llvm/test/Transforms/Attributor/noalias.ll
M llvm/test/Transforms/Attributor/nocapture-1.ll
M llvm/test/Transforms/Attributor/nocapture-2.ll
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/Attributor/nofree.ll
M llvm/test/Transforms/Attributor/nonnull.ll
M llvm/test/Transforms/Attributor/norecurse.ll
M llvm/test/Transforms/Attributor/nosync.ll
M llvm/test/Transforms/Attributor/noundef.ll
M llvm/test/Transforms/Attributor/openmp_parallel.ll
M llvm/test/Transforms/Attributor/phi_bug_pointer_info.ll
M llvm/test/Transforms/Attributor/pointer-info.ll
M llvm/test/Transforms/Attributor/range.ll
M llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
M llvm/test/Transforms/Attributor/readattrs.ll
M llvm/test/Transforms/Attributor/recursive_globals.ll
M llvm/test/Transforms/Attributor/reduced/aapointer_info_map_invalidation.ll
M llvm/test/Transforms/Attributor/reduced/clear_cached_analysis_for_deleted_functions.ll
M llvm/test/Transforms/Attributor/reduced/missed_cached_entry_for_intra_reachability.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
M llvm/test/Transforms/Attributor/returned.ll
M llvm/test/Transforms/Attributor/undefined_behavior.ll
M llvm/test/Transforms/Attributor/value-simplify-assume.ll
M llvm/test/Transforms/Attributor/value-simplify-dominance.ll
M llvm/test/Transforms/Attributor/value-simplify-gpu.ll
M llvm/test/Transforms/Attributor/value-simplify-instances.ll
M llvm/test/Transforms/Attributor/value-simplify-local-remote.ll
M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
M llvm/test/Transforms/Attributor/value-simplify-reachability.ll
M llvm/test/Transforms/Attributor/value-simplify.ll
M llvm/test/Transforms/Attributor/willreturn.ll
M llvm/test/Transforms/CodeGenPrepare/AArch64/reduce-or-opt.ll
M llvm/test/Transforms/Coroutines/coro-async.ll
M llvm/test/Transforms/Coroutines/coro-noalias-param.ll
M llvm/test/Transforms/DeadStoreElimination/trivial-dse-calls.ll
M llvm/test/Transforms/ExpandMemCmp/AArch64/memcmp.ll
M llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
M llvm/test/Transforms/FunctionAttrs/arg_returned.ll
M llvm/test/Transforms/FunctionAttrs/argmemonly.ll
M llvm/test/Transforms/FunctionAttrs/convergent.ll
M llvm/test/Transforms/FunctionAttrs/initializes.ll
M llvm/test/Transforms/FunctionAttrs/make-buffer-rsrc.ll
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
M llvm/test/Transforms/FunctionAttrs/nonnull.ll
M llvm/test/Transforms/FunctionAttrs/norecurse.ll
M llvm/test/Transforms/FunctionAttrs/optnone.ll
M llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll
M llvm/test/Transforms/FunctionAttrs/readattrs.ll
M llvm/test/Transforms/FunctionAttrs/readnone.ll
M llvm/test/Transforms/FunctionAttrs/willreturn.ll
M llvm/test/Transforms/FunctionAttrs/writeonly.ll
M llvm/test/Transforms/FunctionSpecialization/function-specialization2.ll
M llvm/test/Transforms/GVN/PRE/invariant-load.ll
M llvm/test/Transforms/GVNHoist/infinite-loop-indirect.ll
M llvm/test/Transforms/IRCE/variable-loop-bounds.ll
M llvm/test/Transforms/IndVarSimplify/ada-loops.ll
M llvm/test/Transforms/IndVarSimplify/lftr.ll
M llvm/test/Transforms/IndVarSimplify/preserve-nsw-during-expansion.ll
M llvm/test/Transforms/InferAddressSpaces/AMDGPU/store-pointer-to-self.ll
M llvm/test/Transforms/InferAddressSpaces/NVPTX/bug31948.ll
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
M llvm/test/Transforms/Inline/align.ll
M llvm/test/Transforms/Inline/byref-align.ll
M llvm/test/Transforms/Inline/byval-align.ll
M llvm/test/Transforms/Inline/byval.ll
M llvm/test/Transforms/Inline/noalias-calls.ll
M llvm/test/Transforms/Inline/noalias.ll
M llvm/test/Transforms/Inline/noalias2.ll
M llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.wavefrontsize.ll
M llvm/test/Transforms/InstCombine/NVPTX/isspacep.ll
M llvm/test/Transforms/InstCombine/RISCV/libcall-arg-exts.ll
M llvm/test/Transforms/InstCombine/RISCV/memcmp.ll
M llvm/test/Transforms/InstCombine/SystemZ/libcall-arg-exts.ll
M llvm/test/Transforms/InstCombine/call-cast-attrs.ll
M llvm/test/Transforms/InstCombine/compare-alloca.ll
M llvm/test/Transforms/InstCombine/compare-unescaped.ll
M llvm/test/Transforms/InstCombine/memcpy-from-global.ll
M llvm/test/Transforms/InstCombine/memset2.ll
M llvm/test/Transforms/InstCombine/simplify-libcalls-inreg.ll
M llvm/test/Transforms/InstCombine/str-int-2.ll
M llvm/test/Transforms/InstCombine/str-int.ll
M llvm/test/Transforms/InstCombine/strcall-no-nul.ll
M llvm/test/Transforms/InstCombine/strto-1.ll
M llvm/test/Transforms/InstCombine/trivial-dse-calls.ll
M llvm/test/Transforms/InstCombine/unused-nonnull.ll
M llvm/test/Transforms/LICM/hoist-mustexec.ll
M llvm/test/Transforms/LICM/strlen.ll
M llvm/test/Transforms/LoopDataPrefetch/RISCV/basic.ll
M llvm/test/Transforms/LoopIdiom/AArch64/ctlz.ll
M llvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
M llvm/test/Transforms/LoopPredication/scale.ll
M llvm/test/Transforms/LoopStrengthReduce/2011-10-06-ReusePhi.ll
M llvm/test/Transforms/LoopStrengthReduce/ARM/illegal-addr-modes.ll
M llvm/test/Transforms/LoopStrengthReduce/addrec-gep-address-space.ll
M llvm/test/Transforms/LoopStrengthReduce/addrec-gep.ll
M llvm/test/Transforms/LoopStrengthReduce/shl.ll
M llvm/test/Transforms/LoopUnroll/unroll-cleanup.ll
M llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll
M llvm/test/Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll
M llvm/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll
M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-masked-accesses.ll
M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-hoist-runtime-checks.ll
M llvm/test/Transforms/LoopVectorize/LoongArch/defaults.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-bin-unary-ops-args.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-uniform-store.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/zero_unroll.ll
M llvm/test/Transforms/LoopVectorize/X86/slm-no-vectorize.ll
M llvm/test/Transforms/LoopVectorize/if-reduction.ll
M llvm/test/Transforms/LoopVectorize/induction-step.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-2.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-3.ll
M llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
M llvm/test/Transforms/LoopVectorize/no_outside_user.ll
M llvm/test/Transforms/LoopVectorize/pr33706.ll
M llvm/test/Transforms/LoopVectorize/reduction-inloop-cond.ll
M llvm/test/Transforms/LoopVectorize/reduction-inloop-min-max.ll
M llvm/test/Transforms/LoopVectorize/remarks-reduction-inloop.ll
M llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
M llvm/test/Transforms/LowerMatrixIntrinsics/strided-store-double.ll
M llvm/test/Transforms/MemCpyOpt/atomic.ll
M llvm/test/Transforms/MemCpyOpt/callslot.ll
M llvm/test/Transforms/MemCpyOpt/callslot_noalias.ll
M llvm/test/Transforms/MemCpyOpt/memcpy.ll
M llvm/test/Transforms/MemCpyOpt/pr29105.ll
M llvm/test/Transforms/MemCpyOpt/stack-move.ll
M llvm/test/Transforms/MergeFunc/inttoptr-address-space.ll
M llvm/test/Transforms/MergeFunc/inttoptr.ll
M llvm/test/Transforms/MergedLoadStoreMotion/st_sink_barrier_call.ll
M llvm/test/Transforms/MergedLoadStoreMotion/st_sink_no_barrier_store.ll
M llvm/test/Transforms/MergedLoadStoreMotion/st_sink_with_barrier.ll
M llvm/test/Transforms/NewGVN/memory-handling.ll
M llvm/test/Transforms/NewGVN/pr25440.ll
M llvm/test/Transforms/NewGVN/volatile-nonvolatile.ll
M llvm/test/Transforms/ObjCARC/basic.ll
M llvm/test/Transforms/OpenMP/add_attributes.ll
M llvm/test/Transforms/OpenMP/parallel_deletion.ll
M llvm/test/Transforms/OpenMP/parallel_region_merging.ll
M llvm/test/Transforms/OpenMP/reduced_pointer_info_assertion.ll
M llvm/test/Transforms/OpenMP/spmdization.ll
M llvm/test/Transforms/OpenMP/spmdization_assumes.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding.ll
M llvm/test/Transforms/OpenMP/spmdization_indirect.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/block_scaling_decompr_8bit.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/constraint-elimination-placement.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/extra-unroll-simplifications.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-runtime-checks.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/indvars-vectorization.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/infer-align-from-assumption.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/memcpy-constant-size.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/predicated-reduction.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/quant_4x4.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/sinking-vs-if-conversion.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/slpordering.ll
M llvm/test/Transforms/PhaseOrdering/X86/hoist-load-of-baseptr.ll
M llvm/test/Transforms/PhaseOrdering/X86/loop-vectorizer-noalias.ll
M llvm/test/Transforms/PhaseOrdering/X86/pr88239.ll
M llvm/test/Transforms/PhaseOrdering/X86/preserve-access-group.ll
M llvm/test/Transforms/PhaseOrdering/X86/spurious-peeling.ll
M llvm/test/Transforms/PhaseOrdering/X86/unroll-vectorizer.ll
M llvm/test/Transforms/PhaseOrdering/early-arg-attrs-inference.ll
M llvm/test/Transforms/PhaseOrdering/gvn-replacement-vs-hoist.ll
M llvm/test/Transforms/PhaseOrdering/loop-access-checks.ll
M llvm/test/Transforms/PhaseOrdering/lto-argpromotion-ipsccp.ll
M llvm/test/Transforms/PhaseOrdering/memcpy-offset.ll
M llvm/test/Transforms/PhaseOrdering/pr95152.ll
M llvm/test/Transforms/PhaseOrdering/pr98799-inline-simplifycfg-ub.ll
M llvm/test/Transforms/PhaseOrdering/switch_with_geps.ll
M llvm/test/Transforms/RewriteStatepointsForGC/call-argument-attributes.ll
M llvm/test/Transforms/SCCP/pr45185-range-predinfo.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/reductions-fadd.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/reductions-fmin-fmax.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/reductions-fmul.ll
M llvm/test/Transforms/SROA/non-capturing-call-readonly.ll
M llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll
M llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn.ll
M llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep-and-gvn.ll
M llvm/test/Transforms/SimpleLoopUnswitch/AMDGPU/uniform-unswitch.ll
M llvm/test/Transforms/TailCallElim/accum_recursion.ll
M llvm/test/Transforms/TailCallElim/tre-byval-parameter-2.ll
M llvm/test/Transforms/TailCallElim/tre-byval-parameter.ll
M llvm/unittests/Transforms/Utils/CloningTest.cpp
M llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
M mlir/lib/Target/LLVMIR/AttrKindDetail.h
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/function-attributes.ll
M mlir/test/Target/LLVMIR/attribute-alias-scopes.mlir
M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[IR] Convert from nocapture to captures(none) (#123181)
This PR removes the old `nocapture` attribute, replacing it with the new
`captures` attribute introduced in #116990. This change is
intended to be essentially NFC, replacing existing uses of `nocapture`
with `captures(none)` without adding any new analysis capabilities.
Making use of non-`none` values is left for a followup.
Some notes:
* `nocapture` will be upgraded to `captures(none)` by the bitcode
reader.
* `nocapture` will also be upgraded by the textual IR reader. This is to
make it easier to use old IR files and somewhat reduce the test churn in
this PR.
* Helper APIs like `doesNotCapture()` will check for `captures(none)`.
* MLIR import will convert `captures(none)` into an `llvm.nocapture`
attribute. The representation in the LLVM IR dialect should be updated
separately.
Commit: 382d3599c203573388b82717dc17e3db4039916a
https://github.com/llvm/llvm-project/commit/382d3599c203573388b82717dc17e3db4039916a
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
M flang/test/Fir/CUDA/cuda-alloc-free.fir
M flang/test/Fir/CUDA/cuda-allocate.fir
M flang/test/Fir/CUDA/cuda-data-transfer.fir
Log Message:
-----------
[flang][cuda] Propagate the data attribute on the converted calls (#124877)
Commit: 4fc514af516f9434bf5ba3de404943a1f92817f7
https://github.com/llvm/llvm-project/commit/4fc514af516f9434bf5ba3de404943a1f92817f7
Author: Guojin <he.guojin at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/function-attributes.ll
Log Message:
-----------
[MLIR][LLVM] Fix import of dso_local attribute (#124822)
The import of LLVM IR should use is isDSOLocal instead of
hasLocalLinkage to set the dso_local attribute.
Without this change, function definitions that mostly have external
linkage would be missing dso_local attribute during translation.
---------
Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>
Commit: 6900768719ff6d38403f39ceb75e0ec953278f5a
https://github.com/llvm/llvm-project/commit/6900768719ff6d38403f39ceb75e0ec953278f5a
Author: Matthias Springer <me at m-sp.org>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Conversion/LLVMCommon/MemRefBuilder.h
M mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp
Log Message:
-----------
[mlir][Conversion] Fix typos in MemRef descriptor comments (#124923)
Commit: 3ce97e4aa98ad6a3502528818ff11eee89ef2fae
https://github.com/llvm/llvm-project/commit/3ce97e4aa98ad6a3502528818ff11eee89ef2fae
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
Log Message:
-----------
[ReachingDefAnalysis][NFC] Use at instead of lookup for DenseMap access
`at` has an assert that the key exists. Since we are assuming the key exists,
use `at` instead of `lookup`.
Commit: 35defdf4707dfa58802188d2aad1298cddb44cb6
https://github.com/llvm/llvm-project/commit/35defdf4707dfa58802188d2aad1298cddb44cb6
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
Log Message:
-----------
Revert "[ReachingDefAnalysis][NFC] Use at instead of lookup for DenseMap access"
This reverts commit 3ce97e4aa98ad6a3502528818ff11eee89ef2fae. Pushed to main
prematurley.
Commit: 8a43d0e8736cf5e0f95a5f02c9b6855a703b2e4e
https://github.com/llvm/llvm-project/commit/8a43d0e8736cf5e0f95a5f02c9b6855a703b2e4e
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/nonnull.ll
Log Message:
-----------
[Attributor] Check correct IRPosition in AANoCapture::isImpliedByIR()
This case is intended to check the callee argument, not the call-site.
Fixes an issue introduced in #123181.
Commit: 67752f61917994e4daa6f5d30e39e237c26a73de
https://github.com/llvm/llvm-project/commit/67752f61917994e4daa6f5d30e39e237c26a73de
Author: Peng Liu <winner245 at hotmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libcxx/include/__vector/vector_bool.h
Log Message:
-----------
[libc++] Simplify vector<bool>::__construct_at_end (#119632)
This patch simplifies the implementation of `__construct_at_end` in
`vector<bool>`, which currently contains duplicate initialization logic
across its two overloads.
Commit: e0054e984cac39322afa32a6e68fc794f0081f49
https://github.com/llvm/llvm-project/commit/e0054e984cac39322afa32a6e68fc794f0081f49
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/test/Integration/OpenMP/map-types-and-sizes.f90
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/omptarget-nested-ptr-record-type-mapping-host.mlir
A mlir/test/Target/LLVMIR/omptarget-nullary-record-ptr-member-map.mlir
M mlir/test/Target/LLVMIR/omptarget-record-type-with-ptr-member-host.mlir
A offload/test/offloading/fortran/target-map-nullary-pointer.f90
Log Message:
-----------
[MLIR][OpenMP] Emit nullary check for mapped pointer members and appropriate size select based on results (#124604)
This PR aims to fix a mapping error when trying to map nullary elements
of a record type (primary example is allocatables/pointer types in
Fortran at the moment). This should be legal to map, just not write to
without pointing to anything within the target region. A common Fortran
OpenMP idiom/example where this is useful can be found in the added
Fortran offload example.
The runtime error arises when we try to map the pointer member utilising
a prescribed constant size that we receive from the lowered type,
resulting in mapping of data that will be non-existent when there is no
allocated data. The fix in this case is to emit a runtime check to see
if the data has been allocated, if it hasn't been we select a size of 0,
if it has we emit the usual type size.
Commit: 9adc99bcc5645b7446262e89f59c9ff797c8d09b
https://github.com/llvm/llvm-project/commit/9adc99bcc5645b7446262e89f59c9ff797c8d09b
Author: Konstantina Mitropoulou <44334539+kmitropoulou at users.noreply.github.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/SIInstructions.td
A llvm/test/CodeGen/AMDGPU/set_kill_i1_for_floation_point_comparison.ll
Log Message:
-----------
[AMDGPU] Always emit SI_KILL_I1_PSEUDO for uniform floating point branches. (#124028)
- **[NFC] Use GCNPat instead of Pat.**
- **[AMDGPU] Always emit SI_KILL_I1_PSEUDO for uniform floating point
branches.**
---------
Co-authored-by: Konstantina Mitropoulou <KonstantinaMitropoulou at amd.com>
Commit: d444558f51a86c623e4b108e19f8f2400ec28782
https://github.com/llvm/llvm-project/commit/d444558f51a86c623e4b108e19f8f2400ec28782
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[bazel] Port 25ae1a266d50f24a8fffc57152d7f3c3fcb65517
Commit: 88e00141f81c4dfd48bca58fda15d078a138b586
https://github.com/llvm/llvm-project/commit/88e00141f81c4dfd48bca58fda15d078a138b586
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/test/Transforms/PhaseOrdering/X86/hadd.ll
M llvm/test/Transforms/PhaseOrdering/X86/hsub.ll
Log Message:
-----------
[PhaseOrdering][X86] Add additional hadd/hsub test coverage
Add v16i16 coverage and "reverse order hadd/hsub" tests
Commit: 0d4efa27252cbbea4b5672d4d8ffc15a3ba51d83
https://github.com/llvm/llvm-project/commit/0d4efa27252cbbea4b5672d4d8ffc15a3ba51d83
Author: Rolf Morel <rolf.morel at intel.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
M mlir/test/Dialect/Linalg/generalize-named-ops.mlir
M mlir/test/Dialect/Linalg/generalize-named-polymorphic-ops.mlir
M mlir/test/Dialect/Linalg/invalid.mlir
M mlir/test/Dialect/Linalg/loops.mlir
M mlir/test/Dialect/Linalg/named-ops.mlir
M mlir/test/Dialect/Linalg/roundtrip.mlir
M mlir/test/Dialect/Linalg/tile-tensors.mlir
M mlir/test/Dialect/Linalg/vectorization-with-patterns.mlir
Log Message:
-----------
[MLIR][Linalg] Introduce linalg.contract (#123618)
A new op that allows for representing arbitrary contractions on operands
of arbitrary rank, with arbitrary transposes and arbitrary broadcasts
specified through its indexing_maps attribute.
Supports the expected lowerings to linalg.generic and to
vector.contract.
Corresponding RFC is here:
https://discourse.llvm.org/t/mlir-rfc-introduce-linalg-contract/83589
Commit: 15412d735a4f3e85b1c68025ca28d5671fde7b47
https://github.com/llvm/llvm-project/commit/15412d735a4f3e85b1c68025ca28d5671fde7b47
Author: Baranov Victor <70346889+vbvictor at users.noreply.github.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/bugprone/assert-side-effect.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/for-range-copy.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-value-param.rst
Log Message:
-----------
[clang-tidy] Refactor: remove typos in 'AllowedTypes' option in various checks (#122957)
Commit: 18f8106f310ee702046a11f360af47947c030d2e
https://github.com/llvm/llvm-project/commit/18f8106f310ee702046a11f360af47947c030d2e
Author: Joel E. Denny <jdenny.ornl at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
A llvm/docs/KernelInfo.rst
M llvm/docs/Passes.rst
A llvm/include/llvm/Analysis/KernelInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/Target/TargetMachine.h
M llvm/lib/Analysis/CMakeLists.txt
A llvm/lib/Analysis/KernelInfo.cpp
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
M llvm/lib/Target/TargetMachine.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
A llvm/test/Analysis/KernelInfo/allocas.ll
A llvm/test/Analysis/KernelInfo/calls.ll
A llvm/test/Analysis/KernelInfo/enable-kernel-info/Inputs/test.ll
A llvm/test/Analysis/KernelInfo/enable-kernel-info/amdgpu.test
A llvm/test/Analysis/KernelInfo/enable-kernel-info/nvptx.test
A llvm/test/Analysis/KernelInfo/flat-addrspace/Inputs/test.ll
A llvm/test/Analysis/KernelInfo/flat-addrspace/amdgpu.test
A llvm/test/Analysis/KernelInfo/flat-addrspace/nvptx.test
A llvm/test/Analysis/KernelInfo/launch-bounds/amdgpu.ll
A llvm/test/Analysis/KernelInfo/launch-bounds/nvptx.ll
A llvm/test/Analysis/KernelInfo/linkage.ll
A llvm/test/Analysis/KernelInfo/openmp/README.md
A llvm/test/Analysis/KernelInfo/openmp/amdgpu.ll
A llvm/test/Analysis/KernelInfo/openmp/nvptx.ll
Log Message:
-----------
[KernelInfo] Implement new LLVM IR pass for GPU code analysis (#102944)
This patch implements an LLVM IR pass, named kernel-info, that reports
various statistics for codes compiled for GPUs. The ultimate goal of
these statistics to help identify bad code patterns and ways to mitigate
them. The pass operates at the LLVM IR level so that it can, in theory,
support any LLVM-based compiler for programming languages supporting
GPUs. It has been tested so far with LLVM IR generated by Clang for
OpenMP offload codes targeting NVIDIA GPUs and AMD GPUs.
By default, the pass runs at the end of LTO, and options like
``-Rpass=kernel-info`` enable its remarks. Example `opt` and `clang`
command lines appear in `llvm/docs/KernelInfo.rst`. Remarks include
summary statistics (e.g., total size of static allocas) and individual
occurrences (e.g., source location of each alloca). Examples of its
output appear in tests in `llvm/test/Analysis/KernelInfo`.
Commit: 7fff2527f8a3c3d201136a6051cb9127e45f67a7
https://github.com/llvm/llvm-project/commit/7fff2527f8a3c3d201136a6051cb9127e45f67a7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.h
Log Message:
-----------
[PowerPC] Use SelectionDAG::makeEquivalentMemoryOrdering(). NFC (#124889)
Commit: 27e01d1d74bf5990e2ec69b8d588eb1baa401ed9
https://github.com/llvm/llvm-project/commit/27e01d1d74bf5990e2ec69b8d588eb1baa401ed9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86InstrInfo.cpp
Log Message:
-----------
[X86] Use new Flags argument to storeRegToStackSlot to simplify code. NFC (#124658)
Use the Flags argument to add FrameSetup directly instead of walking
backwards to add the flag after the call.
Commit: aa2952165cd1808dab2bb49b97becc097f4c9cac
https://github.com/llvm/llvm-project/commit/aa2952165cd1808dab2bb49b97becc097f4c9cac
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/Headers/amxtf32transposeintrin.h
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
M mlir/docs/Canonicalization.md
M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
M mlir/lib/Conversion/VectorToArmSME/VectorToArmSME.cpp
M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
M mlir/lib/Dialect/ArmSME/Transforms/VectorLegalization.cpp
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp
M mlir/lib/Dialect/Linalg/Transforms/TransposeConv2D.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
M mlir/test/Dialect/Vector/vector-unroll-options.mlir
Log Message:
-----------
Fix typo "tranpose" (#124929)
Commit: c8593239a3b5a8864c2a315db33bbcb7b68f3da0
https://github.com/llvm/llvm-project/commit/c8593239a3b5a8864c2a315db33bbcb7b68f3da0
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
Log Message:
-----------
[flang][OpenMP] Make parsing of trait properties more context-sensitive (#122900)
A trait poperty can be one of serveral alternatives (name, expression,
etc.), and each property in a list was parsed as if it could be any of
these alternatives independently from other properties. This made the
parsing vulnerable to certain ambiguities in the trait grammar (provided
in the OpenMP spec).
At the same time the OpenMP spec gives the expected types of properties
for almost every trait: all properties listed for a given trait are
usually of the same type, e.g. names, clauses, etc.
Incorporate these restrictions into the parser, and additionally use
property extensions as the fallback if the parsing of the expected
property type failed. This is intended to allow the parser to succeed,
and instead let the semantic-checking code emit a more user-friendly
message.
Commit: 5dae05f6845218a36126a5e40794b2715b13bb12
https://github.com/llvm/llvm-project/commit/5dae05f6845218a36126a5e40794b2715b13bb12
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Analysis/KernelInfo.cpp
Log Message:
-----------
Fix MSVC signed/unsigned mismatch warning. NFC.
Commit: bda19768de03a0322c4094c8d0e00ad033268309
https://github.com/llvm/llvm-project/commit/bda19768de03a0322c4094c8d0e00ad033268309
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
Log Message:
-----------
[gn build] Port 18f8106f310e
Commit: ae6d5dd58bcae9ced3b3c5b058876d3564017337
https://github.com/llvm/llvm-project/commit/ae6d5dd58bcae9ced3b3c5b058876d3564017337
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/Analysis/MemoryProfileInfo.h
M llvm/lib/Analysis/MemoryProfileInfo.cpp
M llvm/test/Transforms/PGOProfile/memprof.ll
M llvm/test/Transforms/PGOProfile/memprof_match_hot_cold_new_calls.ll
M llvm/unittests/Analysis/MemoryProfileInfoTest.cpp
Log Message:
-----------
[MemProf] Prune unneeded non-cold contexts (#124823)
We can take advantage of the fact that we subsequently only clone cold
allocation contexts, since not cold behavior is the default, and
significantly reduce the amount of metadata (and later ThinLTO summary
and MemProfContextDisambiguation graph nodes) by pruning unnecessary not
cold contexts when building metadata from the trie.
Specifically, we only need to keep notcold contexts that overlap the
longest with cold allocations, to know how deeply to clone those
contexts to expose the cold allocation behavior.
For a large target this reduced ThinLTO bitcode object sizes by about
35%. It reduced the ThinLTO indexing time by about half and the peak
ThinLTO indexing memory by about 20%.
Commit: 953354c7afcc375e441e0e3ab4099de1b992d954
https://github.com/llvm/llvm-project/commit/953354c7afcc375e441e0e3ab4099de1b992d954
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Analysis/KernelInfo.cpp
Log Message:
-----------
[KernelInfo] Fix layering violation, Analysis cannot depend on Passes
Commit: 57f17319796a1876ba5a82d9bdc0f6f63ab12945
https://github.com/llvm/llvm-project/commit/57f17319796a1876ba5a82d9bdc0f6f63ab12945
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Analysis/KernelInfo.cpp
Log Message:
-----------
[KernelInfo] Remove unused include.
Commit: 1822462e2a0c9cc944f3ce114d8b1a71d0764350
https://github.com/llvm/llvm-project/commit/1822462e2a0c9cc944f3ce114d8b1a71d0764350
Author: Mikhail Gudim <mgudim at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
R llvm/test/Transforms/InstCombine/fold-binop-of-reductions.ll
A llvm/test/Transforms/VectorCombine/fold-binop-of-reductions.ll
Log Message:
-----------
[InstCombine][VectorCombine][NFC] Move a test from InstCombine to (#124948)
VectorCombine
Since the transformation which is the subject of the
'fold-binop-of-reductions.ll` test will be in VectorCombine move the
test there.
Commit: d3161defd6b717241a85b6ca528754c747060735
https://github.com/llvm/llvm-project/commit/d3161defd6b717241a85b6ca528754c747060735
Author: Axel Sorenson <axelcool1234 at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/Passes/PassBuilder.h
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/test/Other/new-pm-O0-ep-callbacks.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-lto-defaults.ll
M llvm/test/Other/pass-pipeline-parsing.ll
M llvm/tools/opt/NewPMDriver.cpp
Log Message:
-----------
[PassBuilder] VectorizerEnd Extension Points (#123494)
Added an extension point after vectorizer passes in the PassBuilder.
Additionally, added extension points before and after vectorizer passes
in `buildLTODefaultPipeline`. Credit goes to @mshockwave for guiding me
through my first LLVM contribution (and my first open source
contribution in general!) :)
- Implemented `registerVectorizerEndEPCallback`
- Implemented `invokeVectorizerEndEPCallbacks`
- Added `VectorizerEndEPCallbacks` SmallVector
- Added a command line option `passes-ep-vectorizer-end` to
`NewPMDriver.cpp`
- `buildModuleOptimizationPipeline` now calls
`invokeVectorizerEndEPCallbacks`
- `buildO0DefaultPipeline` now calls `invokeVectorizerEndEPCallbacks`
- `buildLTODefaultPipeline` now calls BOTH
`invokeVectorizerStartEPCallbacks` and `invokeVectorizerEndEPCallbacks`
- Added LIT tests to `new-pm-defaults.ll`, `new-pm-lto-defaults.ll`,
`new-pm-O0-ep-callbacks.ll`, and `pass-pipeline-parsing.ll`
- Renamed `CHECK-EP-Peephole` to `CHECK-EP-PEEPHOLE` in
`new-pm-lto-defaults.ll` for consistency.
This code is intended for developers that wish to implement and run
custom passes after the vectorizer passes in the PassBuilder pipeline.
For example, in #91796, a pass was created that changed the induction
variables of vectorized code. This is right after the vectorization
passes.
Commit: 8a334af417ff2ef49e0bc74f9421b4f3aa479805
https://github.com/llvm/llvm-project/commit/8a334af417ff2ef49e0bc74f9421b4f3aa479805
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Driver/Options.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Sema/SemaTemplate.cpp
R clang/test/Driver/frelaxed-template-template-args.cpp
M clang/test/Lexer/cxx-features.cpp
M clang/test/SemaTemplate/cwg2398.cpp
M clang/www/cxx_status.html
Log Message:
-----------
[clang] Remove the deprecated flag `-frelaxed-template-template-args`. (#111894)
This flag has been deprecated since Clang 19, having been the default
since then.
It has remained because its negation was still useful to work around
backwards compatibility breaking changes from P0522.
However, in Clang 20 we have landed various changes which implemented
P3310R2 and beyond, which solve almost all of the expected issues, the
known remaining few being a bit obscure.
So this change removes the flag completely and all of its implementation
and support code.
Hopefully any remaining users can just stop using the flag. If there are
still important issues remaining, this removal will also shake the tree
and help us know.
Commit: b8708753c89db07eb6993559b4546e5a97d94530
https://github.com/llvm/llvm-project/commit/b8708753c89db07eb6993559b4546e5a97d94530
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
M flang/test/HLFIR/get_length_codegen.fir
Log Message:
-----------
[flang] Allow non-index length parameter on exprs fed into hlfir.get_length. (#124827)
The length might be any integer, so hlfir.get_length lowering
should explicitly cast it to `index`.
Commit: bac95752748a46f3c2e9ebeda67e7df2ea642e07
https://github.com/llvm/llvm-project/commit/bac95752748a46f3c2e9ebeda67e7df2ea642e07
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/HLFIR/Passes.td
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
A flang/test/HLFIR/elemental-with-empty-check-codegen.fir
Log Message:
-----------
[flang] Reset all extents to zero for empty hlfir.elemental loops. (#124867)
An hlfir.elemental with a shape `(0, HUGE)` still runs `HUGE`
number of iterations when expanded into a loop nest.
HLFIR transformational operations inlined as hlfir.elemental
may execute slower comparing to Fortran runtime implementation.
This patch adds an option for BufferizeHLFIR pass to reset all
upper bounds in the elemental loop nests to zero, if the result
is an empty array.
A separate patch will enable this option in the driver after I do
more performance testing. The option is off by default now.
Commit: a368402d633098fc211c29f9726eef6e1874da5f
https://github.com/llvm/llvm-project/commit/a368402d633098fc211c29f9726eef6e1874da5f
Author: QuietMisdreavus <QuietMisdreavus at users.noreply.github.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
M clang/test/ExtractAPI/anonymous_record_no_typedef.c
Log Message:
-----------
[ExtractAPI] merge anon declarators even if they're array types (#120801)
Commit: bcf306e0ebb5fe4f4bbfa1e87d4a34770cdfcb98
https://github.com/llvm/llvm-project/commit/bcf306e0ebb5fe4f4bbfa1e87d4a34770cdfcb98
Author: lntue <lntue at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libc/cmake/modules/LLVMLibCCheckMPC.cmake
M libc/utils/MPCWrapper/CMakeLists.txt
Log Message:
-----------
[libc] Update include directory for libcMPCWrapper target when LIBC_MPC_INSTALL_PATH is set. (#124810)
Commit: 07a0e2be86f33beb6d519a3d466b95c2257e93cb
https://github.com/llvm/llvm-project/commit/07a0e2be86f33beb6d519a3d466b95c2257e93cb
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclTemplate.h
M clang/lib/AST/Decl.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
A clang/test/SemaTemplate/GH55509.cpp
Log Message:
-----------
[clang] Track function template instantiation from definition (#112241)
This fixes instantiation of definition for friend function templates,
when the declaration found and the one containing the definition have
different template contexts.
In these cases, the the function declaration corresponding to the
definition is not available; it may not even be instantiated at all.
So this patch adds a bit which tracks which function template
declaration was instantiated from the member template. It's used to find
which primary template serves as a context for the purpose of
obtainining the template arguments needed to instantiate the definition.
Fixes #55509
Relanding patch, with no changes, after it was reverted due to revert of
commit this patch depended on.
Commit: 608012ace43b42d97884204016c6a8f4883b4359
https://github.com/llvm/llvm-project/commit/608012ace43b42d97884204016c6a8f4883b4359
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libcxx/lib/abi/i686-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-freebsd.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
M libcxx/src/iostream.cpp
Log Message:
-----------
[libc++] Simplify the implementation of iostream.cpp (#124103)
This refactors the standard stream implementation in multiple ways:
- The streams are now `stream_data` structs, which contain all the data
required for a stream
- The windows mangling is generated via a macro instead of having magic
strings for the different streams. (i.e. it's now only partially magic)
Commit: abc8812df02599fc413d9ed77b992f8236ed2af9
https://github.com/llvm/llvm-project/commit/abc8812df02599fc413d9ed77b992f8236ed2af9
Author: Jason Rice <ricejasonf at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Sema/DeclSpec.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclBase.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ExprClassification.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/AST/ast-dump-binding-pack.cpp
A clang/test/CodeGenCXX/cxx2c-decomposition.cpp
A clang/test/Parser/cxx2c-binding-pack.cpp
A clang/test/SemaCXX/cxx2c-binding-pack-nontemplate.cpp
A clang/test/SemaCXX/cxx2c-binding-pack.cpp
M clang/tools/libclang/CXCursor.cpp
Log Message:
-----------
[Clang][P1061] Add stuctured binding packs (#121417)
This is an implementation of P1061 Structure Bindings Introduce a Pack
without the ability to use packs outside of templates. There is a couple
of ways the AST could have been sliced so let me know what you think.
The only part of this change that I am unsure of is the
serialization/deserialization stuff. I followed the implementation of
other Exprs, but I do not really know how it is tested. Thank you for
your time considering this.
---------
Co-authored-by: Yanzuo Liu <zwuis at outlook.com>
Commit: 15ab7be2e049bc0f4ea6744ca037395686a923bc
https://github.com/llvm/llvm-project/commit/15ab7be2e049bc0f4ea6744ca037395686a923bc
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/Clauses.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/resolve-directives.cpp
A flang/test/Parser/OpenMP/metadirective-v50.f90
A flang/test/Parser/OpenMP/metadirective.f90
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Parse WHEN, OTHERWISE, MATCH clauses plus METADIRECTIVE (#121817)
Parse METADIRECTIVE as a standalone executable directive at the moment.
This will allow testing the parser code.
There is no lowering, not even clause conversion yet. There is also no
verification of the allowed values for trait sets, trait properties.
Commit: ab1ee912be95a864827aadd33175bfeec026f000
https://github.com/llvm/llvm-project/commit/ab1ee912be95a864827aadd33175bfeec026f000
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/CMakeLists.txt
M flang/include/flang/Runtime/CUDA/init.h
M flang/lib/Optimizer/Builder/Runtime/Main.cpp
A flang/test/Lower/CUDA/cuda-init.cuf
Log Message:
-----------
[flang][cuda] Remove the need of special compile definition for CUFInit (#124965)
This patch addresses post commit review comments from #124859.
The extra compile definition is not necessary and goes against the
effort to separate the runtimes from the flang compiler itself. The
function declaration for `CUFInit` can be accessed anyway since the
header are always present. The insertion of the call is only based on
the language feature options from the folding context.
A program compiled with cuda enabled but no cufruntime would just fail
at link time as expected.
Commit: 61ea63baafb503470fccef2712f0f9a449943bcd
https://github.com/llvm/llvm-project/commit/61ea63baafb503470fccef2712f0f9a449943bcd
Author: quic-areg <aregmi at quicinc.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M lld/test/ELF/hexagon-plt.s
M lld/test/ELF/hexagon-shared.s
M llvm/lib/Object/ELFObjectFile.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
A llvm/test/tools/llvm-objdump/ELF/Hexagon/plt.test
Log Message:
-----------
[Hexagon] Add support for decoding PLT symbols (#123425)
Describes PLT entries for hexagon.
Commit: 46f9cddfd7e40998422d1e34a3f1193210ee2fb8
https://github.com/llvm/llvm-project/commit/46f9cddfd7e40998422d1e34a3f1193210ee2fb8
Author: Sebastian Pop <568397+sebpop at users.noreply.github.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/AA.ll
M llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
M llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
M llvm/test/Analysis/DependenceAnalysis/Constraints.ll
M llvm/test/Analysis/DependenceAnalysis/Coupled.ll
M llvm/test/Analysis/DependenceAnalysis/DADelin.ll
M llvm/test/Analysis/DependenceAnalysis/Dump.ll
M llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll
M llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
M llvm/test/Analysis/DependenceAnalysis/GCD.ll
M llvm/test/Analysis/DependenceAnalysis/Invariant.ll
M llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll
M llvm/test/Analysis/DependenceAnalysis/MIVMaxLevelThreshold.ll
M llvm/test/Analysis/DependenceAnalysis/MismatchingNestLevels.ll
M llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
M llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
M llvm/test/Analysis/DependenceAnalysis/PR21585.ll
M llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
M llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
M llvm/test/Analysis/DependenceAnalysis/Propagating.ll
M llvm/test/Analysis/DependenceAnalysis/Separability.ll
M llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
M llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll
M llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
M llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll
M llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
M llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll
M llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
M llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
M llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
M llvm/test/Analysis/DependenceAnalysis/ZIV.ll
M llvm/test/Analysis/DependenceAnalysis/lcssa.ll
M llvm/test/Analysis/DependenceAnalysis/new-pm-invalidation.ll
M llvm/utils/UpdateTestChecks/common.py
Log Message:
-----------
[DA] enable update_analyze_test_checks.py (#123435)
Modify the DA pretty printer to match the output of other analysis
passes. This enables update_analyze_test_checks.py to also work on DA
tests. Auto generate all the Dependence Analysis tests.
Commit: 956c0707d9098499a2682297b71f46b0a562eed9
https://github.com/llvm/llvm-project/commit/956c0707d9098499a2682297b71f46b0a562eed9
Author: Jerry-Ge <jerry.ge at arm.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Conversion/TosaToTensor/TosaToTensor.cpp
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeTransposeConv.cpp
M mlir/test/Conversion/TosaToTensor/tosa-to-tensor-invalid.mlir
M mlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir
M mlir/test/Dialect/Tosa/canonicalize.mlir
M mlir/test/Dialect/Tosa/constant-op-fold.mlir
M mlir/test/Dialect/Tosa/invalid.mlir
M mlir/test/Dialect/Tosa/level_check.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-transpose-conv.mlir
M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
Log Message:
-----------
[mlir][tosa] Change the start and size of slice to tosa shape type (#124209)
Update to use getConstShapeValue to collect shape information along the
graph.
Change-Id: Ic6fc2341e3bcfbec06a1d08986e26dd08573bd9c
Co-authored-by: TatWai Chong <tatwai.chong at arm.com>
Commit: 4479a2273a12b40f56bb8399f0ffe7e61c63c83f
https://github.com/llvm/llvm-project/commit/4479a2273a12b40f56bb8399f0ffe7e61c63c83f
Author: Sebastian Pop <spop at nvidia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
A llvm/test/Analysis/DependenceAnalysis/PR31848.ll
Log Message:
-----------
[DA] add testcase (#116631)
Make sure the testcase for this bug continues to work:
https://github.com/llvm/llvm-project/issues/31196
Commit: 5921295dcaa1ad514d79e0ee824b9df1c077a2d0
https://github.com/llvm/llvm-project/commit/5921295dcaa1ad514d79e0ee824b9df1c077a2d0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/reduce-fadd.ll
M llvm/test/Transforms/SLPVectorizer/AMDGPU/min_max.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
Log Message:
-----------
Revert "[SLP] getSpillCost - fully populate IntrinsicCostAttributes to improve cost analysis." (#124962)
Reverts llvm/llvm-project#124129 as its currently causing a regression at #124499 - avoids the regression until a proper fix can be added to getSpillCost
Commit: 8a86e6aefead228a75107c813c282557425f0987
https://github.com/llvm/llvm-project/commit/8a86e6aefead228a75107c813c282557425f0987
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Log Message:
-----------
[MemProf] Constify a couple of methods used during cloning (#124994)
This also helps ensure we don't inadvartently create map entries
by forcing use of at() instead of operator[].
Commit: 774b12c4a06bd68f314bd741be0eb77a1cb49b7d
https://github.com/llvm/llvm-project/commit/774b12c4a06bd68f314bd741be0eb77a1cb49b7d
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfiler.cpp
Log Message:
-----------
[memprof] Initialize AllocInfoIter and CallSitesIter (NFC) (#124972)
This patch initializes AllocInfoIter and CallSitesIter to their
respective end(). I'm doing this not because I'm worried about
uninitialized iterators, but because the resulting code looks shorter
and makes it clear which data structure each iterator is associated
with.
Commit: fdd4e9f1012c01403eeb31fd0297a13397dc40a2
https://github.com/llvm/llvm-project/commit/fdd4e9f1012c01403eeb31fd0297a13397dc40a2
Author: Prabhuk <prabhukr at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/uefi-constructed-args.c
M clang/test/Driver/unsupported-target-arch.c
Log Message:
-----------
[clang] UEFI handle unsupported triples. (#124824)
The only architecture currently being supported (still a WIP) is
x86_64. Other UEFI triples targeting other architectures will now
report an `unknown target triple` error.
Commit: 62f6d637c015a6fcf6e493e25e91f5d833da999f
https://github.com/llvm/llvm-project/commit/62f6d637c015a6fcf6e493e25e91f5d833da999f
Author: gulfemsavrun <gulfem at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M libcxx/test/libcxx/fuzzing/random.pass.cpp
M libcxx/test/std/depr/depr.c.headers/math_h.pass.cpp
M libcxx/test/std/numerics/c.math/cmath.pass.cpp
Log Message:
-----------
[libc++] Add clang-21 to failing tests on Windows (#124955)
After we switched to LLVM version 21, some libc++ tests started failing
on Windows. This patch adds the clang-21 condition to XFAIL to fix the
issue.
Commit: e094c0fa677851786b7bdf53bedd11e0f4a59e35
https://github.com/llvm/llvm-project/commit/e094c0fa677851786b7bdf53bedd11e0f4a59e35
Author: vporpo <vporpodas at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
A llvm/test/Transforms/SandboxVectorizer/repeated_instrs.ll
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
Log Message:
-----------
[SandboxVec][Legality] Don't vectorize when instructions repeat (#124479)
This patch adds a legality check that checks for repeated instrs in a
bundle and won't vectorize if such pattern is found.
Commit: f0d05b099dafda89df4c971b64b2051c33db5da1
https://github.com/llvm/llvm-project/commit/f0d05b099dafda89df4c971b64b2051c33db5da1
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/suppressions-alloc-dealloc-mismatch.cpp
Log Message:
-----------
[asan][test] Attempt to fix suppressions-alloc-dealloc-mismatch.cpp on Darwin (#124987)
Add %env_asan_opts=alloc_dealloc_mismatch=1 since it is disabled by
default.
rdar://143830493
Commit: de7438e472839df63e1f10478436c2f15b8e4184
https://github.com/llvm/llvm-project/commit/de7438e472839df63e1f10478436c2f15b8e4184
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/AutoUpgrade.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Linker/IRMover.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
A llvm/test/CodeGen/NVPTX/upgrade-nvvm-annotations.ll
Log Message:
-----------
[NVPTX] Auto-Upgrade some nvvm.annotations to attributes (#119261)
Add a new AutoUpgrade function to convert some legacy nvvm.annotations
metadata to function level attributes. These attributes are quicker to
look-up so improve compile time and are more idiomatic than using
metadata which should not include required information that changes the
meaning of the program.
Currently supported annotations are:
- !"kernel" -> ptx_kernel calling convention
- !"align" -> alignstack parameter attributes (return not yet supported)
Commit: cdc09a118a7107b8e13ba5a254d3d794f51f9818
https://github.com/llvm/llvm-project/commit/cdc09a118a7107b8e13ba5a254d3d794f51f9818
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/IR/MemRef.h
M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
M mlir/include/mlir/Dialect/Tensor/IR/Tensor.h
M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
M mlir/include/mlir/Interfaces/Utils/InferIntRangeCommon.h
M mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
M mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
M mlir/lib/Interfaces/Utils/CMakeLists.txt
M mlir/lib/Interfaces/Utils/InferIntRangeCommon.cpp
A mlir/test/Dialect/MemRef/int-range-inference.mlir
A mlir/test/Dialect/Tensor/int-range-inference.mlir
Log Message:
-----------
[mlir][IntRangeInference] Infer values for {memref,tensor}.dim (#122945)
Implement the integer range inference niterface for memref.dim and
tetnor.dim using shared code. The inference will infer the `dim` of
dynamic dimensions to [0, index_max] and take the union of all the
dimensions that the `dim` argument could be validly referring to.
Commit: b32e55df246e26f3ea8edc65e92e4c19d2658f0c
https://github.com/llvm/llvm-project/commit/b32e55df246e26f3ea8edc65e92e4c19d2658f0c
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M .github/workflows/release-binaries.yml
Log Message:
-----------
workflows/release-binaries: Stop using ccache (#124415)
Using ccache relies on the GitHub Actions Cache, which may be
susceptible to cache poisoning. See
https://adnanthekhan.com/2024/05/06/the-monsters-in-your-build-cache-github-actions-cache-poisoning/
Even though these attacks may be difficult, it's better to err on the
side of caution and ensure that the build environment for our releases
is as isolated as possible. Additionally, ccache was only being used for
the stage1 build, which is a small part of the overall build, so the
speed up from using it was not that large.
Commit: 69c24684f66dda2e804853baf178ec16cb14fe8f
https://github.com/llvm/llvm-project/commit/69c24684f66dda2e804853baf178ec16cb14fe8f
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M bolt/test/AArch64/pad-before-funcs.s
Log Message:
-----------
[BOLT] Fix test. NFC (#124851)
Keep output files different for multiple tool invocations. Otherwise, it
causes issues with our internal testing infra.
Commit: 3c6aa04cf4dee65113e2a780b9f90b36bb4c4e04
https://github.com/llvm/llvm-project/commit/3c6aa04cf4dee65113e2a780b9f90b36bb4c4e04
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/test/CodeGen/X86/codegen-prepare-addrmode-sext.ll
Log Message:
-----------
[CodeGenPrepare] Replace deleted ext instr with the promoted value. (#71058)
This PR replaces the deleted ext with the promoted value in `AddrMode`.
Fixes #70938.
Commit: 00c096e604ad3a5244af06602556f8de867e36c4
https://github.com/llvm/llvm-project/commit/00c096e604ad3a5244af06602556f8de867e36c4
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/lib/AST/StmtPrinter.cpp
A clang/test/Analysis/anonymous-decls.cpp
R clang/test/Analysis/anonymous-parameter.cpp
Log Message:
-----------
[clang] StmtPrinter: Handle DeclRefExpr to a Decomposition (#125001)
A DeclRefExpr could never refer to a Decomposition in valid C++ code,
but somehow the Analyzer creates these entities and then it tries to
print them.
There is no sensible answer here, so we print 'decomposition' followed
by the names of all of its bindings, separated by dashes.
Commit: a8d4335ee08b18068eb913528b963590f510d0b4
https://github.com/llvm/llvm-project/commit/a8d4335ee08b18068eb913528b963590f510d0b4
Author: Kelvin Li <kkwli at users.noreply.github.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M flang/lib/Evaluate/intrinsics-library.cpp
Log Message:
-----------
[flang][AIX] Handle more trig functions with complex argument to have consistent results in folding (#124203)
This patch extends 71d4f34 to all trig functions that take complex
arguments. On AIX, the `libm` routines are called in compile time
folding instead of the STL routines.
Commit: 59613ac2371badc5ada8ddb17446a985ec1eca9a
https://github.com/llvm/llvm-project/commit/59613ac2371badc5ada8ddb17446a985ec1eca9a
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/Posix/wait4.cpp
Log Message:
-----------
Revert "[asan] Enable wait4 test on Android" (#125011)
Reverts llvm/llvm-project#124879
Commit: a3a3e6997bd7bd82cce6737c1315019704a846ed
https://github.com/llvm/llvm-project/commit/a3a3e6997bd7bd82cce6737c1315019704a846ed
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
A llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.cpp
A llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.h
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_uinc_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_raw_buffer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_struct_buffer.ll
M llvm/test/CodeGen/AMDGPU/branch-relaxation.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/fcmp.f16.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/fma.f16.ll
M llvm/test/CodeGen/AMDGPU/fmaximum3.ll
M llvm/test/CodeGen/AMDGPU/fminimum3.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-atomics-min-max-system.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/indirect-call-known-callees.ll
M llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.cond.sub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.whole.wave-w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.whole.wave-w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ptr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_nortn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmax.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmin.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.mulo.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-lastuse-metadata.ll
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-nontemporal-metadata.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-hsa.ll
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.gfx10.ll
M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll
M llvm/test/CodeGen/AMDGPU/maximumnum.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-local-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-volatile.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-store-infinite-loop.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.ll
M llvm/test/CodeGen/AMDGPU/offset-split-flat.ll
M llvm/test/CodeGen/AMDGPU/offset-split-global.ll
M llvm/test/CodeGen/AMDGPU/pseudo-scalar-transcendental.ll
M llvm/test/CodeGen/AMDGPU/s-barrier.ll
M llvm/test/CodeGen/AMDGPU/s-getpc-b64-remat.ll
M llvm/test/CodeGen/AMDGPU/select-flags-to-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/sub.ll
M llvm/test/CodeGen/AMDGPU/v_swap_b16.ll
M llvm/test/CodeGen/AMDGPU/valu-mask-write-hazard.mir
A llvm/test/CodeGen/AMDGPU/valu-read-sgpr-hazard-attrs.mir
M llvm/test/CodeGen/AMDGPU/valu-read-sgpr-hazard.mir
M llvm/test/CodeGen/AMDGPU/vcmpx-permlane-hazard.mir
Log Message:
-----------
[AMDGPU] Rewrite GFX12 SGPR hazard handling to dedicated pass (#118750)
- Algorithm operates over whole IR to attempt to minimize waits.
- Add support for VALU->VALU SGPR hazards via VA_SDST/VA_VCC.
Commit: 6c3bf341144dbaf6dc3f91301b52ffacfea55726
https://github.com/llvm/llvm-project/commit/6c3bf341144dbaf6dc3f91301b52ffacfea55726
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
A llvm/test/ThinLTO/X86/memprof_imported_internal.ll
A llvm/test/ThinLTO/X86/memprof_imported_internal2.ll
Log Message:
-----------
[MemProf] Fix summary identification for imported locals (#124659)
When we apply cloning decisions in the ThinLTO backend, we need to find
the corresponding summary for each function in the IR, and in some cases
for callee functions. This is complicated when the function was a
promoted local, in which case the GUID was formed from the hash of the
original source file prepended to the function name. Those functions
can be identified by the fact that they were given a ".llvm." suffix
during promotion.
We previously didn't do this correctly for promoted locals imported from
other modules, as we only tried the current module source name. This led
to crashes, in particular when the current module also had an local
function of the same original name. In particular, we were attempting to
iterate through the wrong summary's callsites, and there were fewer than
in the actual function so we accessed data off the end (in a release
build with assertion checking off - with assertion checking on we double
check the stack ids and that would have failed). Even if we hadn't
crashed or hit an assert, we could have applied the wrong cloning
decisions, leading to unsats at link time.
Luckily, function importing attaches thinlto_src_file metadata
containing the original source file name to all imported functions. It
normally doesn't do this by default, however, it always does if MemProf
context disambiguation is enabled. Therefore, we can just look to see if
the function contains this metadata and if so use it to recreate the
original GUID.
A similar issue can occur when looking for the ValueInfo / GUID of
a direct tail call to see if we synthesized a callsite record for a
missing tail call frame. In that case, the callee function may be a
declaration, if we imported its caller but not the callee function
definition. Because imported declarations don't get the thinlto_src_file
metadata, we instead look at its caller (which works because this
happens very early in the backend before any inlining).
Commit: 751ae26b959c931efb6db84a27bf2a0444120094
https://github.com/llvm/llvm-project/commit/751ae26b959c931efb6db84a27bf2a0444120094
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/suppressions-alloc-dealloc-mismatch.cpp
M compiler-rt/test/asan/TestCases/suppressions-exec-relative-location.cpp
M compiler-rt/test/asan/TestCases/suppressions-function.cpp
M compiler-rt/test/asan/TestCases/suppressions-interceptor.cpp
M compiler-rt/test/asan/TestCases/suppressions-library.cpp
Log Message:
-----------
[asan][android] XFAIL suppressions-alloc-dealloc-mismatch
Android is missing suppression file on device.
Follow up to #124197.
Commit: 1fcba94add45e38ce8d809d914dcb8bb4bd58b1d
https://github.com/llvm/llvm-project/commit/1fcba94add45e38ce8d809d914dcb8bb4bd58b1d
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[gn build] Port a3a3e6997bd7
Commit: d6524c8dfa37634257050ca71d16e117b802181c
https://github.com/llvm/llvm-project/commit/d6524c8dfa37634257050ca71d16e117b802181c
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/test/Interpreter/simple-exception.cpp
M compiler-rt/lib/orc/macho_platform.cpp
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h
M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
M llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
M llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
Log Message:
-----------
Reapply "[ORC] Enable JIT support for the compact-unwind frame..." with fixes.
This reapplies 4f0325873fa (and follow up patches 26fc07d5d88, a001cc0e6cdc,
c9bc242e387, and fd174f0ff3e), which were reverted in 212cdc9a377 to
investigate bot failures (e.g.
https://lab.llvm.org/buildbot/#/builders/108/builds/8502)
The fix to address the bot failures was landed in d0052ebbe2e. This patch also
restricts construction of the UnwindInfoManager object to Apple platforms (as
it won't be used on other platforms).
Commit: b1bd73700a1fb6f450e0f6f9c405a9c8bde2cae7
https://github.com/llvm/llvm-project/commit/b1bd73700a1fb6f450e0f6f9c405a9c8bde2cae7
Author: Lang Hames <lhames at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions.cpp
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h
A llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h
A llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.cpp
A llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.h
A llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp
A llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp
Log Message:
-----------
[ORC] Add missing files from d6524c8dfa3.
Commit: 1fdf3340fbc8b6f2dcb3f63b9d6763933b3d3335
https://github.com/llvm/llvm-project/commit/1fdf3340fbc8b6f2dcb3f63b9d6763933b3d3335
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/JITLink/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/TargetProcess/BUILD.gn
Log Message:
-----------
[gn build] Port d6524c8dfa37
Commit: edb7f6c0da17469f53f38b648380b49c4a5362fb
https://github.com/llvm/llvm-project/commit/edb7f6c0da17469f53f38b648380b49c4a5362fb
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
Log Message:
-----------
[MemProf] Add more assertion checking to the edge removal helper (#125017)
Check a few unexpected cases (edge already removed, edge not in its
caller or callee edge lists).
Commit: 97a1f494a6778df24cfca817a30b73b1f0a7228a
https://github.com/llvm/llvm-project/commit/97a1f494a6778df24cfca817a30b73b1f0a7228a
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v3f32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v4f32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v3i32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v4i32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v2p3.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v3p3.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v4p3.ll
Log Message:
-----------
DAG: Avoid breaking legal vector_shuffle with multiple uses (#123712)
Previously this combine would undo AMDGPU's new custom legalization of
wide vector shuffles into 2 element pieces. The comment also
states that this combine is only done before legalization,
but the case with a build_vector source was unconditional.
We probably don't want to do this if the multiple uses are full
scalarization of the vector, but this seems to work well enough.
Scalarizing extracts should have folded out pre-legalize.
Commit: 60174804611a2543c757d274b293c139412ab41c
https://github.com/llvm/llvm-project/commit/60174804611a2543c757d274b293c139412ab41c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
M llvm/test/MachineVerifier/AMDGPU/test_g_incompatible_range.mir
Log Message:
-----------
MachineVerifier: Fix check for range type (#124894)
We need to permit scalar extending loads with range annotations.
Fix expensive_checks failures after 11db7fb09b36e656a801117d6a2492133e9c2e46
Commit: 1cbfac04d078434f32c20285cfda2115cf53465a
https://github.com/llvm/llvm-project/commit/1cbfac04d078434f32c20285cfda2115cf53465a
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
A llvm/test/CodeGen/SystemZ/copy-phys-reg-fp64-to-gr64.mir
A llvm/test/CodeGen/SystemZ/copy-phys-reg-gr64-to-fp64.mir
Log Message:
-----------
SystemZ: Handle copies between gr64 and fp64 (#124890)
I'm guessing based on tablegen definitions. I also don't
really understand how this could have been missing.
This defends against regressions in a future peephole-opt
patch.
Commit: 11026a8d8b03014665e18c5cf9a0f76c857ef85f
https://github.com/llvm/llvm-project/commit/11026a8d8b03014665e18c5cf9a0f76c857ef85f
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/MachinePassManager.cpp
Log Message:
-----------
[CodeGen][NewPM] Preserve all MF analyses in MFPM (#124707)
Invalidation is already handled in the passes loop for MFAM, so all of
the rest analyses are preserved. (See `PassManager::run()`)
This won't change the number of invalidations, but will prevent needless
`MFAM::Invalidator::invalidate()` invocations made by results depending
on other results (since the invalidate shorts if `<AllAnalysesOn<MF>>`
is preserved)
Commit: c4a019747c98ad9326a675d3cb5a70311ba170a2
https://github.com/llvm/llvm-project/commit/c4a019747c98ad9326a675d3cb5a70311ba170a2
Author: Sirraide <aeternalmail at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/CMakeLists.txt
M clang/cmake/caches/Android.cmake
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/cmake/caches/Fuchsia.cmake
M clang/docs/ReleaseNotes.rst
M clang/include/clang-c/Index.h
R clang/include/clang/ARCMigrate/ARCMT.h
R clang/include/clang/ARCMigrate/ARCMTActions.h
R clang/include/clang/ARCMigrate/FileRemapper.h
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Config/config.h.cmake
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/Options.td
M clang/include/clang/Frontend/FrontendOptions.h
R clang/lib/ARCMigrate/ARCMT.cpp
R clang/lib/ARCMigrate/ARCMTActions.cpp
R clang/lib/ARCMigrate/CMakeLists.txt
R clang/lib/ARCMigrate/FileRemapper.cpp
R clang/lib/ARCMigrate/Internals.h
R clang/lib/ARCMigrate/ObjCMT.cpp
R clang/lib/ARCMigrate/PlistReporter.cpp
R clang/lib/ARCMigrate/TransAPIUses.cpp
R clang/lib/ARCMigrate/TransARCAssign.cpp
R clang/lib/ARCMigrate/TransAutoreleasePool.cpp
R clang/lib/ARCMigrate/TransBlockObjCVariable.cpp
R clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp
R clang/lib/ARCMigrate/TransGCAttrs.cpp
R clang/lib/ARCMigrate/TransGCCalls.cpp
R clang/lib/ARCMigrate/TransProperties.cpp
R clang/lib/ARCMigrate/TransProtectedScope.cpp
R clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
R clang/lib/ARCMigrate/TransUnbridgedCasts.cpp
R clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp
R clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp
R clang/lib/ARCMigrate/TransformActions.cpp
R clang/lib/ARCMigrate/Transforms.cpp
R clang/lib/ARCMigrate/Transforms.h
M clang/lib/CMakeLists.txt
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
R clang/test/ARCMT/Common.h
R clang/test/ARCMT/GC-check-warn-nsalloc.m
R clang/test/ARCMT/GC-check.m
R clang/test/ARCMT/GC-no-arc-runtime.m
R clang/test/ARCMT/GC-no-arc-runtime.m.result
R clang/test/ARCMT/GC-no-finalize-removal.m
R clang/test/ARCMT/GC-no-finalize-removal.m.result
R clang/test/ARCMT/GC.h
R clang/test/ARCMT/GC.m
R clang/test/ARCMT/GC.m.result
R clang/test/ARCMT/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Buried/Treasure.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Module.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/NotInModule.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Sub.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Sub2.h
R clang/test/ARCMT/Inputs/Module.framework/Module
R clang/test/ARCMT/Inputs/Module.framework/PrivateHeaders/ModulePrivate.h
R clang/test/ARCMT/Inputs/module.modulemap
R clang/test/ARCMT/Inputs/test.h
R clang/test/ARCMT/Inputs/test.h.result
R clang/test/ARCMT/Inputs/test1.m.in
R clang/test/ARCMT/Inputs/test1.m.in.result
R clang/test/ARCMT/Inputs/test2.m.in
R clang/test/ARCMT/Inputs/test2.m.in.result
R clang/test/ARCMT/Inputs/with space/test.h
R clang/test/ARCMT/Inputs/with space/test.h.result
R clang/test/ARCMT/Inputs/with space/test1.m.in
R clang/test/ARCMT/Inputs/with space/test1.m.in.result
R clang/test/ARCMT/Inputs/with space/test2.m.in
R clang/test/ARCMT/Inputs/with space/test2.m.in.result
R clang/test/ARCMT/allowlisted/Inputs/header1.h
R clang/test/ARCMT/allowlisted/header1.h
R clang/test/ARCMT/allowlisted/header1.h.result
R clang/test/ARCMT/allowlisted/header2.h
R clang/test/ARCMT/allowlisted/header2.h.result
R clang/test/ARCMT/allowlisted/objcmt-with-allowlist-impl.m
R clang/test/ARCMT/allowlisted/objcmt-with-allowlist-impl.m.result
R clang/test/ARCMT/allowlisted/objcmt-with-allowlist.m
R clang/test/ARCMT/api.m
R clang/test/ARCMT/api.m.result
R clang/test/ARCMT/assign-prop-no-arc-runtime.m
R clang/test/ARCMT/assign-prop-no-arc-runtime.m.result
R clang/test/ARCMT/assign-prop-with-arc-runtime.m
R clang/test/ARCMT/assign-prop-with-arc-runtime.m.result
R clang/test/ARCMT/atautorelease-2.m
R clang/test/ARCMT/atautorelease-2.m.result
R clang/test/ARCMT/atautorelease-3.m
R clang/test/ARCMT/atautorelease-3.m.result
R clang/test/ARCMT/atautorelease-check.m
R clang/test/ARCMT/atautorelease.m
R clang/test/ARCMT/atautorelease.m.result
R clang/test/ARCMT/autoreleases.m
R clang/test/ARCMT/autoreleases.m.result
R clang/test/ARCMT/block_copy_release.m
R clang/test/ARCMT/block_copy_release.m.result
R clang/test/ARCMT/check-api.m
R clang/test/ARCMT/check-with-pch.m
R clang/test/ARCMT/check-with-serialized-diag.m
R clang/test/ARCMT/checking-in-arc.m
R clang/test/ARCMT/checking.m
R clang/test/ARCMT/cxx-checking.mm
R clang/test/ARCMT/cxx-rewrite.mm
R clang/test/ARCMT/cxx-rewrite.mm.result
R clang/test/ARCMT/dealloc.m
R clang/test/ARCMT/dealloc.m.result
R clang/test/ARCMT/designated-init-in-header/designated-init-in-header.m
R clang/test/ARCMT/designated-init-in-header/file1.m.in
R clang/test/ARCMT/designated-init-in-header/file2.m.in
R clang/test/ARCMT/designated-init-in-header/file2.m.in.result
R clang/test/ARCMT/designated-init-in-header/header1.h
R clang/test/ARCMT/designated-init-in-header/header1.h.result
R clang/test/ARCMT/dispatch.m
R clang/test/ARCMT/dispatch.m.result
R clang/test/ARCMT/driver-migrate.m
R clang/test/ARCMT/init.m
R clang/test/ARCMT/init.m.result
R clang/test/ARCMT/lit.local.cfg
R clang/test/ARCMT/migrate-emit-errors.m
R clang/test/ARCMT/migrate-on-pch-and-module.m
R clang/test/ARCMT/migrate-plist-output.m
R clang/test/ARCMT/migrate-space-in-path.m
R clang/test/ARCMT/migrate-with-pch.m
R clang/test/ARCMT/migrate.m
R clang/test/ARCMT/no-canceling-bridge-to-bridge-cast.m
R clang/test/ARCMT/nonobjc-to-objc-cast-2.m
R clang/test/ARCMT/nonobjc-to-objc-cast.m
R clang/test/ARCMT/nonobjc-to-objc-cast.m.result
R clang/test/ARCMT/objcmt-arc-cf-annotations.m
R clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
R clang/test/ARCMT/objcmt-atomic-property.m
R clang/test/ARCMT/objcmt-atomic-property.m.result
R clang/test/ARCMT/objcmt-boxing.m
R clang/test/ARCMT/objcmt-boxing.m.result
R clang/test/ARCMT/objcmt-designated-initializer.m
R clang/test/ARCMT/objcmt-designated-initializer.m.result
R clang/test/ARCMT/objcmt-instancetype-2.m
R clang/test/ARCMT/objcmt-instancetype-2.m.result
R clang/test/ARCMT/objcmt-instancetype-unnecessary-diff.m
R clang/test/ARCMT/objcmt-instancetype.m
R clang/test/ARCMT/objcmt-instancetype.m.result
R clang/test/ARCMT/objcmt-invalid-code.mm
R clang/test/ARCMT/objcmt-invalid-code.mm.result
R clang/test/ARCMT/objcmt-migrate-all.m
R clang/test/ARCMT/objcmt-migrate-all.m.result
R clang/test/ARCMT/objcmt-ns-enum-crash.m
R clang/test/ARCMT/objcmt-ns-enum-crash.m.result
R clang/test/ARCMT/objcmt-ns-macros.m
R clang/test/ARCMT/objcmt-ns-macros.m.result
R clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m
R clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m.result
R clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m
R clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m.result
R clang/test/ARCMT/objcmt-numeric-literals.m
R clang/test/ARCMT/objcmt-numeric-literals.m.result
R clang/test/ARCMT/objcmt-property-availability.m
R clang/test/ARCMT/objcmt-property-availability.m.result
R clang/test/ARCMT/objcmt-property-dot-syntax.m
R clang/test/ARCMT/objcmt-property-dot-syntax.m.result
R clang/test/ARCMT/objcmt-property.m
R clang/test/ARCMT/objcmt-property.m.result
R clang/test/ARCMT/objcmt-protocol-conformance.m
R clang/test/ARCMT/objcmt-protocol-conformance.m.result
R clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m
R clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m.result
R clang/test/ARCMT/objcmt-subscripting-literals.m
R clang/test/ARCMT/objcmt-subscripting-literals.m.result
R clang/test/ARCMT/objcmt-subscripting-unavailable.m
R clang/test/ARCMT/objcmt-subscripting-unavailable.m.result
R clang/test/ARCMT/objcmt-undefined-ns-macros.m
R clang/test/ARCMT/objcmt-undefined-ns-macros.m.result
R clang/test/ARCMT/objcmt-with-pch.m
R clang/test/ARCMT/objcmt-with-pch.m.result
R clang/test/ARCMT/protected-scope.m
R clang/test/ARCMT/protected-scope.m.result
R clang/test/ARCMT/releases-driver.m
R clang/test/ARCMT/releases-driver.m.result
R clang/test/ARCMT/releases.m
R clang/test/ARCMT/releases.m.result
R clang/test/ARCMT/remap-applying.c
R clang/test/ARCMT/remap-applying.c.result
R clang/test/ARCMT/remove-dealloc-method.m
R clang/test/ARCMT/remove-dealloc-method.m.result
R clang/test/ARCMT/remove-dealloc-zerouts.m
R clang/test/ARCMT/remove-dealloc-zerouts.m.result
R clang/test/ARCMT/remove-statements.m
R clang/test/ARCMT/remove-statements.m.result
R clang/test/ARCMT/retains.m
R clang/test/ARCMT/retains.m.result
R clang/test/ARCMT/rewrite-block-var.m
R clang/test/ARCMT/rewrite-block-var.m.result
R clang/test/ARCMT/safe-arc-assign.m
R clang/test/ARCMT/safe-arc-assign.m.result
R clang/test/ARCMT/verify.m
R clang/test/ARCMT/with-arc-mode-modify.m
R clang/test/ARCMT/with-arc-mode-modify.m.result
M clang/test/CMakeLists.txt
M clang/test/ClangScanDeps/strip-input-args.m
R clang/test/Driver/objc-sdk-migration-options.m
M clang/test/Misc/warning-flags.c
M clang/test/Rewriter/lit.local.cfg
R clang/test/Rewriter/missing-dllimport.c
A clang/test/Sema/missing-dllimport.c
M clang/test/lit.site.cfg.py.in
M clang/tools/CMakeLists.txt
R clang/tools/arcmt-test/CMakeLists.txt
R clang/tools/arcmt-test/arcmt-test.cpp
R clang/tools/c-arcmt-test/CMakeLists.txt
R clang/tools/c-arcmt-test/c-arcmt-test.c
R clang/tools/libclang/ARCMigrate.cpp
M clang/tools/libclang/CMakeLists.txt
M clang/tools/libclang/libclang.map
M clang/unittests/Basic/DiagnosticTest.cpp
M clang/utils/analyzer/entrypoint.py
M flang/docs/FlangDriver.md
M llvm/utils/gn/secondary/BUILD.gn
M llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn
R llvm/utils/gn/secondary/clang/lib/ARCMigrate/BUILD.gn
R llvm/utils/gn/secondary/clang/lib/ARCMigrate/enable.gni
M llvm/utils/gn/secondary/clang/lib/FrontendTool/BUILD.gn
M llvm/utils/gn/secondary/clang/test/BUILD.gn
R llvm/utils/gn/secondary/clang/tools/arcmt-test/BUILD.gn
R llvm/utils/gn/secondary/clang/tools/c-arcmt-test/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/libclang/BUILD.gn
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
M utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h
Log Message:
-----------
[Clang] Remove ARCMigrate (#119269)
In the discussion around #116792, @rjmccall mentioned that ARCMigrate
has been obsoleted and that we could go ahead and remove it from Clang,
so this patch does just that.
Commit: 4b2d6157744ca7693e6e904bd53d435df1ff6ee8
https://github.com/llvm/llvm-project/commit/4b2d6157744ca7693e6e904bd53d435df1ff6ee8
Author: Sebastian Pop <spop at nvidia.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
A llvm/test/Analysis/DependenceAnalysis/FlipFlopBaseAddress.ll
Log Message:
-----------
[DA] use alias analysis cross iteration mode (#116628)
This patch fixes two bugs:
https://github.com/llvm/llvm-project/issues/41488
https://github.com/llvm/llvm-project/issues/53942
The dependence analysis assumes that the base address of array accesses
is invariant across loop iterations. In both bugs the base address
evolves following loop iterations: the base address flip-flops between
two different memory objects.
The patch uses the cross iteration mode of alias analysis to disambiguate the
base objects.
Commit: dccd27112722109d2e2f03e8da9ce8690f06e11b
https://github.com/llvm/llvm-project/commit/dccd27112722109d2e2f03e8da9ce8690f06e11b
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/include/clang/Basic/Sanitizers.h
M clang/lib/Basic/Sanitizers.cpp
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/test/CodeGen/allow-ubsan-check-inline.c
M clang/test/CodeGen/allow-ubsan-check.c
Log Message:
-----------
[ubsan] Connect -fsanitize-skip-hot-cutoff to LowerAllowCheckPass<cutoffs> (#124857)
This adds the plumbing between -fsanitize-skip-hot-cutoff (introduced in
https://github.com/llvm/llvm-project/pull/121619) and
LowerAllowCheckPass<cutoffs> (introduced in
https://github.com/llvm/llvm-project/pull/124211).
The net effect is that -fsanitize-skip-hot-cutoff now combines the
functionality of -ubsan-guard-checks and
-lower-allow-check-percentile-cutoff (though this patch does not remove
those yet), and generalizes the latter to allow per-sanitizer cutoffs.
Note: this patch replaces Intrinsic::allow_ubsan_check's
SanitizerHandler parameter with SanitizerOrdinal; this is necessary
because the hot cutoffs are specified in terms of SanitizerOrdinal
(e.g., null, alignment), not SanitizerHandler (e.g., TypeMismatch).
Likewise, CodeGenFunction::EmitCheck is changed to emit
allow_ubsan_check() for each individual check.
---------
Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>
Co-authored-by: Vitaly Buka <vitalybuka at google.com>
Commit: f50ca2e8a6180fe8bdd7364ca5af58b6784725f3
https://github.com/llvm/llvm-project/commit/f50ca2e8a6180fe8bdd7364ca5af58b6784725f3
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[bazel] Remove more references to ARCMigrate (#125027)
c4a019747c98ad9326a675d3cb5a70311ba170a2 removed arc_migrate targets but
accidentally left a few references to the now deleted target. Remove
those.
Commit: 1f38d38d544b090fd7b9b63454d8310eff0bb7d9
https://github.com/llvm/llvm-project/commit/1f38d38d544b090fd7b9b63454d8310eff0bb7d9
Author: Carl Ritson <carl.ritson at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
[AMDGPU] Fix documentation table formatting from #118750 (NFC)
Commit: ab9e447fb17029573a517ac14c4c0f8c0733c3aa
https://github.com/llvm/llvm-project/commit/ab9e447fb17029573a517ac14c4c0f8c0733c3aa
Author: Srinivasa Ravi <srinivasar at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/test/Dialect/LLVMIR/invalid.mlir
M mlir/test/Dialect/LLVMIR/nvvm.mlir
M mlir/test/Target/LLVMIR/nvvmir.mlir
Log Message:
-----------
[MLIR][NVVM] Add support for mapa MLIR Ops (#124514)
Adds `mapa` and `mapa.shared.cluster` MLIR Ops to generate mapa
instructions.
`mapa` - Map the address of the shared variable in the target CTA.
- `mapa` - source is a register containing generic address pointing to
shared memory.
- `mapa.shared.cluster` - source is a shared memory variable or a
register containing a valid shared memory address.
PTX Spec Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/#data-movement-and-conversion-instructions-mapa
Commit: 31fa4e0b32a5d0a4711103ba31d24da38d7aa57d
https://github.com/llvm/llvm-project/commit/31fa4e0b32a5d0a4711103ba31d24da38d7aa57d
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port cdc09a118a7107b8e13ba5a254d3d794f51f9818 (#125030)
Commit: fd94c851222e984912948ef46e0329cc32d44105
https://github.com/llvm/llvm-project/commit/fd94c851222e984912948ef46e0329cc32d44105
Author: Nico Weber <thakis at chromium.org>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/test/BUILD.gn
Log Message:
-----------
[gn] port c4a019747c98 more
c4a019747c98 did a great job updating the GN build files, but it
missed this one detail.
Commit: 928cad49beec0120686478f502899222e836b545
https://github.com/llvm/llvm-project/commit/928cad49beec0120686478f502899222e836b545
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M clang/include/clang/Basic/Sanitizers.h
M clang/lib/Basic/Sanitizers.cpp
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/test/CodeGen/allow-ubsan-check-inline.c
M clang/test/CodeGen/allow-ubsan-check.c
Log Message:
-----------
Revert "[ubsan] Connect -fsanitize-skip-hot-cutoff to LowerAllowCheckPass<cutoffs>" (#125032)
Reverts llvm/llvm-project#124857 due to buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/46/builds/11310)
Commit: 7fd84264eda6546950883a20c2f948eb1a560f4f
https://github.com/llvm/llvm-project/commit/7fd84264eda6546950883a20c2f948eb1a560f4f
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Sema/HeuristicResolver.cpp
M clang/unittests/Sema/HeuristicResolverTest.cpp
Log Message:
-----------
[clang][Sema] Handle pointer and reference type more robustly in HeuristicResolver::resolveMemberExpr() (#124451)
Fixes https://github.com/llvm/llvm-project/issues/124450
Commit: dd3edc8365112c47ea01cc942c8223749d007608
https://github.com/llvm/llvm-project/commit/dd3edc8365112c47ea01cc942c8223749d007608
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/Register.h
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
M llvm/lib/CodeGen/StackSlotColoring.cpp
M llvm/lib/CodeGen/TargetRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp
M llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp
Log Message:
-----------
[CodeGen] Add Register::stackSlotIndex(). Replace uses of Register::stackSlot2Index. NFC (#125028)
Commit: 8fcb1263f42657ecbc355beff12500dfbcddee17
https://github.com/llvm/llvm-project/commit/8fcb1263f42657ecbc355beff12500dfbcddee17
Author: Alex Bradbury <asb at igalia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
A llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-pattern.ll
Log Message:
-----------
[PreISelIntrinsicLowering] Produce a memset_pattern16 libcall for llvm.experimental.memset.pattern when available (#120420)
This is to enable a transition of LoopIdiomRecognize to selecting the
llvm.experimental.memset.pattern intrinsic as requested in #118632 (as
opposed to supporting selection of the libcall or the intrinsic). As
such, although it _is_ a TODO to add costing considerations on whether
to lower to the libcall (when available) or expand directly, lacking
such logic is helpful at this stage in order to minimise any unexpected
code gen changes in this transition.
Commit: 83a8bb363ad578da67a7cb568460a3871ce0ad8b
https://github.com/llvm/llvm-project/commit/83a8bb363ad578da67a7cb568460a3871ce0ad8b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-29 (Wed, 29 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
Log Message:
-----------
[ReachingDefAnalysis] Use non-state Register::isPhysical. NFC
Commit: 3cf56b5f04cdec567cfab3975ac7b531422c1e2c
https://github.com/llvm/llvm-project/commit/3cf56b5f04cdec567cfab3975ac7b531422c1e2c
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Log Message:
-----------
[lldb] Remove some unused code in SymbolFileDWARF::ResolveFunction (#123206)
The purpose of this originally was to check for DWARF which refers to
garbage-collected functions (by checking whether we're able to get a
good address out of the function). The address check has been removed in
https://reviews.llvm.org/D112310, so the code computing it is not doing
anything.
Commit: b8d4ba674b6027891610bd3157ed79d01bd72cd3
https://github.com/llvm/llvm-project/commit/b8d4ba674b6027891610bd3157ed79d01bd72cd3
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h
Log Message:
-----------
[bazel] Disable CLANG_ENABLE_OBJC_REWRITER (for #119269)
Commit: 473953a15fcf68f2a213e2fed7b47a2a690baff2
https://github.com/llvm/llvm-project/commit/473953a15fcf68f2a213e2fed7b47a2a690baff2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/RegisterPressure.h
M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
M llvm/lib/CodeGen/DetectDeadLanes.cpp
M llvm/lib/CodeGen/InitUndef.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/RegAllocFast.cpp
M llvm/lib/CodeGen/RegisterScavenging.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
M llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
M llvm/lib/Target/X86/X86FastPreTileConfig.cpp
Log Message:
-----------
[CodeGen] Use non-static Register::virtRegIndex() instead of static Register::virtReg2Index. NFC (#125031)
These are the the ones where we already had a Register object being
used. Some places are still using unsigned which I did not convert.
Commit: ae3038379fa7f9a26179652ddd01122b4b49c917
https://github.com/llvm/llvm-project/commit/ae3038379fa7f9a26179652ddd01122b4b49c917
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.h
Log Message:
-----------
[SPIR-V] Avoid repeated map lookups. NFC (#125036)
Commit: fffa68ad325b01fb366d4b9f761fe49fa967b7ed
https://github.com/llvm/llvm-project/commit/fffa68ad325b01fb366d4b9f761fe49fa967b7ed
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/Maintainers.md
Log Message:
-----------
[LLVM] Update exception handling maintainer (#120585)
Nominate rnk as the new maintainer for exception handling.
Commit: 62bcbe62dd635ceaad25d2fb2c94e9914451dc99
https://github.com/llvm/llvm-project/commit/62bcbe62dd635ceaad25d2fb2c94e9914451dc99
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/MCA/InstrBuilder.cpp
Log Message:
-----------
[llvm-mca] Use MCRegister::id() to remove an implicit conversion. NFC
It might be worth plumbing MCRegister through this code, but it's
very often used as a index and would require many more calls to
id().
Commit: 2b7509e9885c9a5656bb3c201421e146a21fb88e
https://github.com/llvm/llvm-project/commit/2b7509e9885c9a5656bb3c201421e146a21fb88e
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaARM.cpp
R clang/test/Sema/aarch64-incompat-sm-builtin-calls.c
A clang/test/Sema/aarch64-incompat-sm-builtin-calls.cpp
Log Message:
-----------
[clang][SME] Account for C++ lambdas in SME builtin diagnostics (#124750)
A C++ lambda does not inherit attributes from the parent function. So
the SME builtin diagnostics should look at the lambda's attributes, not
the parent function's.
The fix is very simple and just adds the missing "AllowLambda" flag to
the function decl lookups.
Commit: 467b3d06c1fd072e8635278a88379b6eb483ae9c
https://github.com/llvm/llvm-project/commit/467b3d06c1fd072e8635278a88379b6eb483ae9c
Author: Adrian Kuegel <akuegel at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir/Target/LLVM/NVVM/Utils.h
Log Message:
-----------
[mlir] Apply ClangTidyLegacy finding (NFC)
virtual is redundant since the function is already declared override.
Commit: 956cfa69b153a0e798060f67e713790eeefebc04
https://github.com/llvm/llvm-project/commit/956cfa69b153a0e798060f67e713790eeefebc04
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libcxx/include/__configuration/abi.h
M libcxx/include/locale
M libcxx/src/locale.cpp
Log Message:
-----------
[libc++] Refactor num_get optimization to not be ABI breaking (#121690)
```
----------------------------------------------------
Benchmark old new
----------------------------------------------------
BM_num_get<bool> 81.8 ns 79.6 ns
BM_num_get<long> 80.2 ns 75.4 ns
BM_num_get<long long> 81.5 ns 76.4 ns
BM_num_get<unsigned short> 82.5 ns 78.4 ns
BM_num_get<unsigned int> 82.8 ns 78.6 ns
BM_num_get<unsigned long> 81.2 ns 78.1 ns
BM_num_get<unsigned long long> 83.6 ns 76.7 ns
BM_num_get<float> 119 ns 120 ns
BM_num_get<double> 113 ns 109 ns
BM_num_get<long double> 115 ns 119 ns
BM_num_get<void*> 147 ns 139 ns
```
Commit: 5c24847e7dba01dde230e18b39a3074022279c89
https://github.com/llvm/llvm-project/commit/5c24847e7dba01dde230e18b39a3074022279c89
Author: Martin Storsjö <martin at martin.st>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclTemplate.h
M clang/lib/AST/Decl.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
R clang/test/SemaTemplate/GH55509.cpp
Log Message:
-----------
Revert "[clang] Track function template instantiation from definition (#112241)"
This reverts commit 07a0e2be86f33beb6d519a3d466b95c2257e93cb.
This change broke compiling Qt; see
https://github.com/llvm/llvm-project/pull/112241 for details.
Commit: 3bc2dade36cb14156ea2442e576d65ff5e5e1a50
https://github.com/llvm/llvm-project/commit/3bc2dade36cb14156ea2442e576d65ff5e5e1a50
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/docs/Vectorizers.rst
M llvm/docs/vplan-early-exit.dot
M llvm/docs/vplan-early-exit.png
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
M llvm/test/Transforms/LoopVectorize/early_exit_legality.ll
M llvm/test/Transforms/LoopVectorize/single_early_exit.ll
M llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
M llvm/test/Transforms/LoopVectorize/uncountable-early-exit-vplan.ll
Log Message:
-----------
[LoopVectorize] Enable vectorisation of early exit loops with live-outs (#120567)
This work feeds part of PR
https://github.com/llvm/llvm-project/pull/88385, and adds support for
vectorising
loops with uncountable early exits and outside users of loop-defined
variables. When calculating the final value from an uncountable early
exit we need to calculate the vector lane that triggered the exit,
and hence determine the value at the point we exited.
All code for calculating the last value when exiting the loop early
now lives in a new vector.early.exit block, which sits between the
middle.split block and the original exit block. Doing this required
two fixes:
1. The vplan verifier incorrectly assumed that the block containing
a definition always dominates the block of the user. That's not true
if you can arrive at the use block from multiple incoming blocks.
This is possible for early exit loops where both the early exit and
the latch jump to the same block.
2. We were adding the new vector.early.exit to the wrong parent loop.
It needs to have the same parent as the actual early exit block from
the original loop.
I've added a new ExtractFirstActive VPInstruction that extracts the
first active lane of a vector, i.e. the lane of the vector predicate
that triggered the exit.
NOTE: The IR generated for dealing with live-outs from early exit
loops is unoptimised, as opposed to normal loops. This inevitably
leads to poor quality code, but this can be fixed up later.
Commit: 7939ce6295e7fc0214cd307f97dfccc0cabde381
https://github.com/llvm/llvm-project/commit/7939ce6295e7fc0214cd307f97dfccc0cabde381
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/AST/MicrosoftMangle.cpp
A clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp
Log Message:
-----------
[AArch64] Add MSVC mangling for the __mfp8 type (#124968)
Fixes #124907
Commit: 3262863805d8a1de3e5c104d9daab82bf4a6d8d1
https://github.com/llvm/llvm-project/commit/3262863805d8a1de3e5c104d9daab82bf4a6d8d1
Author: Discookie <viktor.cseh at ericsson.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-functions.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-functions-custom-regex.cpp
Log Message:
-----------
[clang-tidy] Add C++ member function support to custom bugprone-unsafe-functions matches (#117165)
Before, C++ member functions in the format of ``Class instance;
instance.memberfn();`` were unable to be matched.
This PR adds support for this type of call, and it is matched in exactly
the same format as other functions (eg. ``::Class::memberfn`` qualified
name).
Commit: c75b251103a6acd785e6f43f640d7a08bd259c41
https://github.com/llvm/llvm-project/commit/c75b251103a6acd785e6f43f640d7a08bd259c41
Author: Lou <lou.knauer at sipearl.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/VNCoercion.h
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Utils/VNCoercion.cpp
M llvm/test/Transforms/GVN/vscale.ll
M llvm/test/Transforms/NewGVN/vscale.ll
Log Message:
-----------
[GVN] Load-store forwaring of scalable store to fixed load. (#124748)
When storing a scalable vector and loading a fixed-size vector, where
the
scalable vector is known to be larger based on vscale_range, perform
store-to-load forwarding through temporary @llvm.vector.extract calls.
InstCombine then folds the insert/extract pair away.
The usecase is shown in https://godbolt.org/z/KT3sMrMbd, which shows
that clang generates IR that matches this pattern when the
"arm_sve_vector_bits" attribute is used:
```c
typedef svfloat32_t svfloat32_fixed_t
__attribute__((arm_sve_vector_bits(512)));
struct svfloat32_wrapped_t {
svfloat32_fixed_t v;
};
static inline svfloat32_wrapped_t
add(svfloat32_wrapped_t a, svfloat32_wrapped_t b) {
return {svadd_f32_x(svptrue_b32(), a.v, b.v)};
}
svfloat32_wrapped_t
foo(svfloat32_wrapped_t a, svfloat32_wrapped_t b) {
// The IR pattern this patch matches is generated for this return:
return add(a, b);
}
```
Commit: b68b4f64a2bd2e0a22375cf89a4d655fc3667e11
https://github.com/llvm/llvm-project/commit/b68b4f64a2bd2e0a22375cf89a4d655fc3667e11
Author: Amit Kumar Pandey <137622562+ampandey-1995 at users.noreply.github.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/ROCm.h
M clang/test/Driver/hip-sanitize-options.hip
M clang/test/Driver/rocm-device-libs.cl
Log Message:
-----------
[Driver][ASan] Refactor Clang-Driver "Sanitizer Bitcode" linking. (#123922)
ASan bitcode linking is currently available for HIPAMD,OpenMP and
OpenCL. Moving sanitizer specific common parts of logic to appropriate
API's so as to reduce code redundancy and maintainability.
Commit: 025541ddedd23e39d9394ea8a1e41a64dfbe4e94
https://github.com/llvm/llvm-project/commit/025541ddedd23e39d9394ea8a1e41a64dfbe4e94
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
M clang/test/Analysis/null-deref-path-notes.cpp
Log Message:
-----------
[analyzer] Relax assertion in BugReporterVisitors.cpp isInitializationOfVar (#125044)
If we see a variable declaration (aka. DeclStmt), and the VarRegion it
declared doesn't have Stack memspace, we assumed that it must be a local
static variable.
However, the declared variable may be an extern declaration of a global.
In this patch, let's admit that local extern declarations are a thing.
For the sake of completeness, I also added one more test for
thread_locals - which are implicitly considered statics btw. (the
`isStaticLocal()` correctly also considers thread locals as local
statics).
Fixes #124975
Commit: 355d0b186f178668b103068537e517f3d52ad639
https://github.com/llvm/llvm-project/commit/355d0b186f178668b103068537e517f3d52ad639
Author: gbMattN <146744444+gbMattN at users.noreply.github.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/docs/TypeSanitizer.rst
Log Message:
-----------
Fix link to TySan issues page (#125052)
Commit: 56ad54260c5b929af410d0969ebbffc05d90a126
https://github.com/llvm/llvm-project/commit/56ad54260c5b929af410d0969ebbffc05d90a126
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A llvm/test/Transforms/InstSimplify/constant-fold-inttoptr-add.ll
Log Message:
-----------
[InstSimplify] Add tests with inttoptr (add ..) ConstExprs.
Precommit tests for https://github.com/llvm/llvm-project/pull/124981.
Commit: 4b57236bace610d3b05dbba0e9f5b11ed3a9fbee
https://github.com/llvm/llvm-project/commit/4b57236bace610d3b05dbba0e9f5b11ed3a9fbee
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A lldb/test/Shell/SymbolFile/DWARF/x86/explicit-member-function-quals.cpp
Log Message:
-----------
[lldb][test] Add test for detecting CV-quals of explicit object member functions (#125053)
This is XFAILed for now until we find a good way to locate the
DW_AT_object_pointer of function declarations (a possible solution being
https://github.com/llvm/llvm-project/pull/124790).
Made it a shell test because I couldn't find any SBAPIs that i could
query to find the CV-qualifiers/etc. of member functions.
Commit: 8cdc16d350c9f162759689402db841685e9534b1
https://github.com/llvm/llvm-project/commit/8cdc16d350c9f162759689402db841685e9534b1
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir/Target/LLVMIR/ModuleImport.h
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/import-failure.ll
Log Message:
-----------
[MLIR][LLVM] Avoid importing broken calls and invokes (#125041)
This commit adds a check to catch calls/invokes that do not satisfy the
type constraints of their callee. This is not verified in LLVM IR but is
considered UB. Importing this into MLIR will lead to verification
errors, thus we should avoid this early on.
Commit: 9ebfee9d686b41f789b47a6acc7dcdba808fb3f9
https://github.com/llvm/llvm-project/commit/9ebfee9d686b41f789b47a6acc7dcdba808fb3f9
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Arch/X86.cpp
M clang/test/Driver/x86-target-features.c
M clang/test/Preprocessor/x86_target_features.c
Log Message:
-----------
[X86][AVX10] Disable m[no-]avx10.1 and switch m[no-]avx10.2 to alias of 512 bit options (#124511)
Per the feedback we got, we’d like to switch m[no-]avx10.2 to alias of
512 bit options and disable m[no-]avx10.1 due to they were alias of 256
bit options.
We also change -mno-avx10.[1,2]-512 to alias of 256 bit options to
disable both 256 and 512 instructions.
Commit: d553e5d4b601ead44ed5045156f5644aa26ae107
https://github.com/llvm/llvm-project/commit/d553e5d4b601ead44ed5045156f5644aa26ae107
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
Log Message:
-----------
[flang] Fix build break after bac95752748a4
.../flang/lib/Optimizer/Builder/FIRBuilder.cpp: In function ‘llvm::Small
Vector<mlir::Value> fir::factory::updateRuntimeExtentsForEmptyArrays(fir
::FirOpBuilder&, mlir::Location, mlir::ValueRange)’:
.../flang/lib/Optimizer/Builder/FIRBuilder.cpp:1786:10: error: could not
convert ‘newExtents’ from ‘SmallVector<[...],15>’ to ‘SmallVector<[...]
,6>’
1786 | return newExtents;
| ^~~~~~~~~~
| |
| SmallVector<[...],15>
Remove size from template parameters in the declaration of `newExtents`.
Commit: 104c2b86a5e9f4871707b25399735f0e5db58745
https://github.com/llvm/llvm-project/commit/104c2b86a5e9f4871707b25399735f0e5db58745
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
Log Message:
-----------
[TableGen][Docs] Accept "code" as a Type (#124902)
Previously the Type production did not include "code", which was only
accepted in one place in the grammar:
BodyItem: (`Type` | "code") `TokIdentifier` ["=" `Value`] ";"
However the parser implementation accepts "code" as a Type with only one
place where it is *not* allowed, corresponding to this production:
SimpleValue9: `BangOperator` ["<" `Type` ">"] "(" `ValueListNE` ")"
This patch changes the production for Type to include "code", thereby
fixing most occurrences of Type in the grammar, and documents the
restriction for BangOperator Types in the text instead of codifying it
in the grammar.
Commit: 2e581dc54b8983122528ade578824d70ec42b503
https://github.com/llvm/llvm-project/commit/2e581dc54b8983122528ade578824d70ec42b503
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
Log Message:
-----------
[flang][NFC] make IR generation for ieee_next deterministic (#125055)
C++ function call argument evaluation order is unspecified. When piping
functions that generates IR, this creates indeterminism in the IR
generated by flang (e.g., depend which C++ compiler compiled flang).
While it has interesting fuzzing property for flang (Initially, most of
expression lowering used that pattern for binary operation where Fortran
also does not specify any order, and we did found bugs exposed by some
of the IR version and not the other), it is not ideal for lit tests (I
found this because of a CI failure when not properly adding `-DAG` [in
test updates](https://github.com/llvm/llvm-project/pull/124966)), and
many people also really value bit to bit reproducibility from compilers.
Commit: 29371d3b55c9b44f413e05de4844452c1e0e5be0
https://github.com/llvm/llvm-project/commit/29371d3b55c9b44f413e05de4844452c1e0e5be0
Author: Scott Manley <rscottmanley at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Passes.h
M mlir/include/mlir/Dialect/Affine/Passes.td
M mlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp
Log Message:
-----------
[AffineParallelize] expose options when creating pass (#124959)
Add a createAffineParallelizePass() that takes AffineParallelizeOptions
so it can be customized in a pass pipeline.
Commit: d246cc618adc52fdbd69d44a2a375c8af97b6106
https://github.com/llvm/llvm-project/commit/d246cc618adc52fdbd69d44a2a375c8af97b6106
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdivrem.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
M llvm/test/CodeGen/AMDGPU/div-rem-by-constant-64.ll
M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/idot2.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/llvm.mulo.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i32.ll
M llvm/test/CodeGen/AMDGPU/load-global-i16.ll
M llvm/test/CodeGen/AMDGPU/load-global-i32.ll
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-nontemporal-metadata.ll
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/move-to-valu-atomicrmw-system.ll
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/rem_i128.ll
M llvm/test/CodeGen/AMDGPU/sdiv.ll
M llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
M llvm/test/CodeGen/AMDGPU/spill-vgpr.ll
M llvm/test/CodeGen/AMDGPU/sra.ll
M llvm/test/CodeGen/AMDGPU/udiv.ll
M llvm/test/CodeGen/AMDGPU/v_cndmask.ll
Log Message:
-----------
PeepholeOpt: Do not add subregister indexes to reg_sequence operands (#124111)
Given the rest of the pass just gives up when it needs to compose
subregisters, folding a subregister extract directly into a reg_sequence
is counterproductive. Later fold attempts in the function will give up
on the subregister operand, preventing looking up through the reg_sequence.
It may still be profitable to do these folds if we start handling
the composes. There are some test regressions, but this mostly
looks better.
Commit: 8d506b9a5b7cfc9f6f574fc31ac2a013a8dd606a
https://github.com/llvm/llvm-project/commit/8d506b9a5b7cfc9f6f574fc31ac2a013a8dd606a
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
Log Message:
-----------
PeepholeOpt: Simplify tracking of current op for copy and reg_sequence (#124224)
Set the starting index in the constructor instead of treating
0 as a special case. There should also be no need for bounds
checking in the rewrite.
Commit: 83ca720ef280256ffb0424947e4221e95b314a09
https://github.com/llvm/llvm-project/commit/83ca720ef280256ffb0424947e4221e95b314a09
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
Log Message:
-----------
PeepholeOpt: Remove check for reg_sequence def of subregister (#124512)
The verifier does not allow reg_sequence to have subregister defs,
even if undef.
Commit: fe1f6b4855ea5cb164524e137ecd891cf0734838
https://github.com/llvm/llvm-project/commit/fe1f6b4855ea5cb164524e137ecd891cf0734838
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
Log Message:
-----------
PeepholeOpt: Avoid double map lookup (#124531)
Commit: 0caba6c8dc2f6f0da61f30c169f59d40591cddbc
https://github.com/llvm/llvm-project/commit/0caba6c8dc2f6f0da61f30c169f59d40591cddbc
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/include/lldb/API/SBProcess.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Target/StopInfo.h
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadList.h
M lldb/include/lldb/Target/ThreadPlan.h
M lldb/include/lldb/Target/ThreadPlanBase.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
A lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
A lldb/packages/Python/lldbsuite/test/lldbreverse.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
M lldb/source/API/SBProcess.cpp
M lldb/source/API/SBThread.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
M lldb/source/Plugins/Process/scripted/ScriptedProcess.h
M lldb/source/Target/Process.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadList.cpp
M lldb/source/Target/ThreadPlanBase.cpp
A lldb/test/API/functionalities/reverse-execution/Makefile
A lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
A lldb/test/API/functionalities/reverse-execution/TestReverseContinueNotSupported.py
A lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
A lldb/test/API/functionalities/reverse-execution/main.c
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.cpp
Log Message:
-----------
Reland "[lldb] Implement basic support for reverse-continue" (#123906)" (#123945)
This reverts commit 22561cfb443267905d4190f0e2a738e6b412457f and fixes
b7b9ccf44988edf49886743ae5c3cf4184db211f (#112079).
The problem is that x86_64 and Arm 32-bit have memory regions above the
stack that are readable but not writeable. First Arm:
```
(lldb) memory region --all
<...>
[0x00000000fffcf000-0x00000000ffff0000) rw- [stack]
[0x00000000ffff0000-0x00000000ffff1000) r-x [vectors]
[0x00000000ffff1000-0xffffffffffffffff) ---
```
Then x86_64:
```
$ cat /proc/self/maps
<...>
7ffdcd148000-7ffdcd16a000 rw-p 00000000 00:00 0 [stack]
7ffdcd193000-7ffdcd196000 r--p 00000000 00:00 0 [vvar]
7ffdcd196000-7ffdcd197000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
```
Compare this to AArch64 where the test did pass:
```
$ cat /proc/self/maps
<...>
ffffb87dc000-ffffb87dd000 r--p 00000000 00:00 0 [vvar]
ffffb87dd000-ffffb87de000 r-xp 00000000 00:00 0 [vdso]
ffffb87de000-ffffb87e0000 r--p 0002a000 00:3c 76927217 /usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1
ffffb87e0000-ffffb87e2000 rw-p 0002c000 00:3c 76927217 /usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1
fffff4216000-fffff4237000 rw-p 00000000 00:00 0 [stack]
```
To solve this, look up the memory region of the stack pointer (using
https://lldb.llvm.org/resources/lldbgdbremote.html#qmemoryregioninfo-addr)
and constrain the read to within that region. Since we know the stack is
all readable and writeable.
I have also added skipIfRemote to the tests, since getting them working
in that context is too complex to be worth it.
Memory write failures now display the range they tried to write, and
register write errors will show the name of the register where possible.
The patch also includes a workaround for a an issue where the test code
could mistake an `x` response that happens to begin with an `O` for an
output packet (stdout). This workaround will not be necessary one we
start using the [new
implementation](https://discourse.llvm.org/t/rfc-fixing-incompatibilties-of-the-x-packet-w-r-t-gdb/84288)
of the `x` packet.
---------
Co-authored-by: Pavel Labath <pavel at labath.sk>
Commit: 2bde7a1b7c777ae0f0303af9634dd6e4a98cab00
https://github.com/llvm/llvm-project/commit/2bde7a1b7c777ae0f0303af9634dd6e4a98cab00
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[mlir][OpenMP][NFC] Remove dead uses of OpenMPVarMappingStackFrame (#125061)
This is left over from the old way reductions were implemented.
OpenMPVarMappingStackFrame doesn't actually do anything anymore so these
uses can go away.
Commit: d1033d15cb6b87007d22d93bb8bd8d39fd984b29
https://github.com/llvm/llvm-project/commit/d1033d15cb6b87007d22d93bb8bd8d39fd984b29
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/NVPTX/vectorizable-intrinsic.ll
Log Message:
-----------
[SLP][NFC]Autogenerate checks and remove undef, NFC
Commit: 59a9a8f2eadeadc2a1281fc7ae74054ca264abbb
https://github.com/llvm/llvm-project/commit/59a9a8f2eadeadc2a1281fc7ae74054ca264abbb
Author: Jan Voung <jvoung at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
M clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp
Log Message:
-----------
[clang][dataflow] Fix smart pointer accessor caching to handle aliases (#124964)
Check the canonical type in the matchers to handle aliases.
For example std::optional uses add_pointer_t<...>.
Commit: 2fbfaff00c68139cc33b2099484b2a0dd6e60244
https://github.com/llvm/llvm-project/commit/2fbfaff00c68139cc33b2099484b2a0dd6e60244
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-vdot.ll
A llvm/test/CodeGen/AArch64/sme2-multivec-regalloc.mir
Log Message:
-----------
[AArch64][SME] Make getRegAllocationHints more specific for multi-vector loads (#123081)
getRegAllocationHints looks for ZPR2StridedOrContiguous load instructions
which are used by FORM_TRANSPOSED_REG_TUPLE pseudos and adds all
strided registers from this class to the list of hints.
This patch changes getRegAllocationHints to restrict this list:
- If the pseudo uses ZPRMul class, the first load must begin with a register
which is a multiple of 2 or 4.
- Only add a hint if it is part of a sequence of registers that do not already
have any live intervals.
This also contains changes to suggest hints when the load instructions and
the FORM_TRANSPOSED pseudo use multi-vectors of different lengths,
e.g. a pseudo with a 4-vector sequence of registers formed of one column
extracted from four 2-vector loads.
Commit: fc39617746695160cbd5fcef99e20e726f46c3d5
https://github.com/llvm/llvm-project/commit/fc39617746695160cbd5fcef99e20e726f46c3d5
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls.ll
M llvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
M llvm/test/Transforms/SLPVectorizer/X86/powi-regression.ll
Log Message:
-----------
[SLP][NFC]Update tests and remove undefs, NFC
Commit: 59da23232ae2824de278a7245d9b8183f9e9b27b
https://github.com/llvm/llvm-project/commit/59da23232ae2824de278a7245d9b8183f9e9b27b
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaCodeComplete.cpp
M clang/test/CodeCompletion/member-access.cpp
Log Message:
-----------
[clang][CodeComplete] Use HeuristicResolver to resolve CXXDependentScopeMemberExpr (#124888)
Commit: 38cb69373eef033c219efc7aaa11b84d9b307e69
https://github.com/llvm/llvm-project/commit/38cb69373eef033c219efc7aaa11b84d9b307e69
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/test/Shell/SymbolFile/DWARF/x86/explicit-member-function-quals.cpp
Log Message:
-----------
[lldb][test] explicit-member-function-quals.cpp: fix triple flag
The compilation was failing because `triple` is an `Xclang` flag.
The failure was hidden by the XFAIL.
Commit: 9acaaebcdd39f7584a20388f1bad8a9f721bf9d0
https://github.com/llvm/llvm-project/commit/9acaaebcdd39f7584a20388f1bad8a9f721bf9d0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A llvm/test/Transforms/VectorCombine/X86/insert-binop-vector.ll
Log Message:
-----------
[VectorCombine][X86] Add insert(binop(x,y),binop(a,b),idx) test coverage for #124909
Commit: a3fdc36ac97fc7ed5e1e78564db8f58a6fa1103d
https://github.com/llvm/llvm-project/commit/a3fdc36ac97fc7ed5e1e78564db8f58a6fa1103d
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
Log Message:
-----------
[FunctionAttrs] Remove dead code code in nocaptures inference (NFCI)
An argument graph node without uses forms a trivial SCC, which will
already be handled by the preceding branch.
If a node in the SCC points to a node with empty uses, then it will
be part of a different SCC, and as such assumed to be capturing
if it does not have an attribute. There is no need to handle them
separately.
Commit: 83a1fe866640ac60c735a1427c41169067d31e05
https://github.com/llvm/llvm-project/commit/83a1fe866640ac60c735a1427c41169067d31e05
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Analysis/CaptureTracking.cpp
Log Message:
-----------
[CaptureTracking] Convert check to assertion (NFC)
If it's not the callee operand, it must be a data operand.
Commit: eb7e19998dd119ed391bd7f6882c393a712d571c
https://github.com/llvm/llvm-project/commit/eb7e19998dd119ed391bd7f6882c393a712d571c
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/test/CodeGen/RISCV/rvv/vl-opt.ll
M llvm/test/CodeGen/RISCV/rvv/vl-opt.mir
M llvm/test/CodeGen/RISCV/rvv/vmadd-vp.ll
Log Message:
-----------
[RISCV][VLOPT] Allow users that are passthrus if tail elements aren't demanded (#124066)
The motivation for this to allow reducing the vl when a user is a
ternary pseudo, where the third operand is tied and also acts as a
passthru.
When checking the users of an instruction, we currently bail if the user
is used as a passthru because all of its elements past vl will be used
for the tail.
We can allow passthru users if we know the tail of their result isn't
used, which we will have computed beforehand after #124530
It's worth noting that this is all irrelevant of the tail policy,
because tail agnostic still ends up using the passthru.
I've checked that SPEC CPU 2017 + llvm-test-suite pass with this (on
qemu with rvv_ta_all_1s=true)
Fixes #123760
Commit: 81f50989016a16f2d9e93cd220a89f1af851dfda
https://github.com/llvm/llvm-project/commit/81f50989016a16f2d9e93cd220a89f1af851dfda
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/lib/Optimizer/Passes/Pipelines.cpp
Log Message:
-----------
[flang] Enable optimizeEmptyElementals for BufferizeHLFIR pass. (#124982)
Enable the option under opt-for-speed. Elementals with shapes
like `(0, HUGE)` should run faster.
Commit: 6160a671380425594ffd2d38ff037eca77aada8c
https://github.com/llvm/llvm-project/commit/6160a671380425594ffd2d38ff037eca77aada8c
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
A flang/test/HLFIR/simplify-hlfir-intrinsics-reshape.fir
Log Message:
-----------
[flang] Inline hlfir.reshape as hlfir.elemental. (#124683)
This patch inlines hlfir.reshape for simple cases, such as
when there is no ORDER argument; and when PAD is present,
only the trivial types are handled.
Commit: 41f76070f3a44a32fd834e2ea528dff0856767a3
https://github.com/llvm/llvm-project/commit/41f76070f3a44a32fd834e2ea528dff0856767a3
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/test/CodeGen/AMDGPU/shufflevector.v4f32.v2f32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4i32.v2i32.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v4p3.v2p3.ll
Log Message:
-----------
AMDGPU: Regenerate test checks
Commit: 3cef99f652422405f0b071ab9045c6f6a429b446
https://github.com/llvm/llvm-project/commit/3cef99f652422405f0b071ab9045c6f6a429b446
Author: Philip Reames <preames at rivosinc.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP] Use early return in NoCallIntrinsic
Commit: 242aa8c743fe4344844753d8faf59744235319df
https://github.com/llvm/llvm-project/commit/242aa8c743fe4344844753d8faf59744235319df
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/HLFIRTools.h
M flang/test/HLFIR/assign-codegen.fir
Log Message:
-----------
[flang][hlfir] get rid of box when translating scalars to extented value (#125059)
The code in `translateToExtendedValue(hlfir::Entity)` was not getting
rid of the fir.box for scalars because isSimplyContiguous() returned
false for them.
This created issues downstream because utilities using
fir::ExtendedValue were not implemented to work with intrinsic scalars
fir.box.
fir.box of intrinsic scalars are not very commonly used as hlfir::Entity
but they are allowed and should work where accepted.
Commit: 5b65896ad66e1c63d3d5b708f0b748a860272b21
https://github.com/llvm/llvm-project/commit/5b65896ad66e1c63d3d5b708f0b748a860272b21
Author: Peng Liu <winner245 at hotmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/21.rst
M libcxx/include/__algorithm/copy.h
M libcxx/include/__bit_reference
M libcxx/include/bitset
A libcxx/test/benchmarks/algorithms/copy.bench.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_n.pass.cpp
Log Message:
-----------
[libc++] Optimize ranges::copy{, _n} for vector<bool>::iterator (#121013)
This PR optimizes the performance of `std::ranges::copy` and
`std::ranges::copy_n` specifically for `vector<bool>::iterator`,
addressing a subtask outlined in issue #64038. The optimizations yield
performance improvements of up to **2000x** for aligned copies and
**60x** for unaligned copies. Additionally, new tests have been added to
validate these enhancements.
- Aligned source-destination bits
ranges::copy
```
--------------------------------------------------------------------------
Benchmark Before After Improvement
--------------------------------------------------------------------------
bm_ranges_copy_vb_aligned/8 10.8 ns 1.42 ns 8x
bm_ranges_copy_vb_aligned/64 88.5 ns 2.28 ns 39x
bm_ranges_copy_vb_aligned/512 709 ns 1.95 ns 364x
bm_ranges_copy_vb_aligned/4096 5568 ns 5.01 ns 1111x
bm_ranges_copy_vb_aligned/32768 44754 ns 38.7 ns 1156x
bm_ranges_copy_vb_aligned/65536 91092 ns 73.2 ns 1244x
bm_ranges_copy_vb_aligned/102400 139473 ns 127 ns 1098x
bm_ranges_copy_vb_aligned/106496 189004 ns 81.5 ns 2319x
bm_ranges_copy_vb_aligned/110592 153647 ns 71.1 ns 2161x
bm_ranges_copy_vb_aligned/114688 159261 ns 70.2 ns 2269x
bm_ranges_copy_vb_aligned/118784 181910 ns 73.5 ns 2475x
bm_ranges_copy_vb_aligned/122880 174117 ns 76.5 ns 2276x
bm_ranges_copy_vb_aligned/126976 176020 ns 82.0 ns 2147x
bm_ranges_copy_vb_aligned/131072 180757 ns 137 ns 1319x
bm_ranges_copy_vb_aligned/135168 190342 ns 158 ns 1205x
bm_ranges_copy_vb_aligned/139264 192831 ns 103 ns 1872x
bm_ranges_copy_vb_aligned/143360 199627 ns 89.4 ns 2233x
bm_ranges_copy_vb_aligned/147456 203881 ns 88.6 ns 2301x
bm_ranges_copy_vb_aligned/151552 213345 ns 88.4 ns 2413x
bm_ranges_copy_vb_aligned/155648 216892 ns 92.9 ns 2335x
bm_ranges_copy_vb_aligned/159744 222751 ns 96.4 ns 2311x
bm_ranges_copy_vb_aligned/163840 225995 ns 173 ns 1306x
bm_ranges_copy_vb_aligned/167936 235230 ns 202 ns 1165x
bm_ranges_copy_vb_aligned/172032 244093 ns 131 ns 1863x
bm_ranges_copy_vb_aligned/176128 244434 ns 111 ns 2202x
bm_ranges_copy_vb_aligned/180224 249570 ns 108 ns 2311x
bm_ranges_copy_vb_aligned/184320 254538 ns 108 ns 2357x
bm_ranges_copy_vb_aligned/188416 261817 ns 113 ns 2317x
bm_ranges_copy_vb_aligned/192512 269923 ns 125 ns 2159x
bm_ranges_copy_vb_aligned/196608 273494 ns 210 ns 1302x
bm_ranges_copy_vb_aligned/200704 280035 ns 269 ns 1041x
bm_ranges_copy_vb_aligned/204800 293102 ns 231 ns 1269x
```
ranges::copy_n
```
--------------------------------------------------------------------------
Benchmark Before After Improvement
--------------------------------------------------------------------------
bm_ranges_copy_n_vb_aligned/8 11.8 ns 0.89 ns 13x
bm_ranges_copy_n_vb_aligned/64 91.6 ns 2.06 ns 44x
bm_ranges_copy_n_vb_aligned/512 718 ns 2.45 ns 293x
bm_ranges_copy_n_vb_aligned/4096 5750 ns 5.02 ns 1145x
bm_ranges_copy_n_vb_aligned/32768 45824 ns 40.9 ns 1120x
bm_ranges_copy_n_vb_aligned/65536 92267 ns 73.8 ns 1250x
bm_ranges_copy_n_vb_aligned/102400 143267 ns 125 ns 1146x
bm_ranges_copy_n_vb_aligned/106496 148625 ns 82.4 ns 1804x
bm_ranges_copy_n_vb_aligned/110592 154817 ns 72.0 ns 2150x
bm_ranges_copy_n_vb_aligned/114688 157953 ns 70.4 ns 2244x
bm_ranges_copy_n_vb_aligned/118784 162374 ns 71.5 ns 2270x
bm_ranges_copy_n_vb_aligned/122880 168638 ns 72.9 ns 2313x
bm_ranges_copy_n_vb_aligned/126976 175596 ns 76.6 ns 2292x
bm_ranges_copy_n_vb_aligned/131072 181164 ns 135 ns 1342x
bm_ranges_copy_n_vb_aligned/135168 184697 ns 157 ns 1176x
bm_ranges_copy_n_vb_aligned/139264 191395 ns 104 ns 1840x
bm_ranges_copy_n_vb_aligned/143360 194954 ns 88.3 ns 2208x
bm_ranges_copy_n_vb_aligned/147456 208917 ns 86.1 ns 2426x
bm_ranges_copy_n_vb_aligned/151552 211101 ns 87.2 ns 2421x
bm_ranges_copy_n_vb_aligned/155648 213175 ns 89.0 ns 2395x
bm_ranges_copy_n_vb_aligned/159744 218988 ns 86.7 ns 2526x
bm_ranges_copy_n_vb_aligned/163840 225263 ns 156 ns 1444x
bm_ranges_copy_n_vb_aligned/167936 230725 ns 184 ns 1254x
bm_ranges_copy_n_vb_aligned/172032 235795 ns 119 ns 1981x
bm_ranges_copy_n_vb_aligned/176128 241145 ns 101 ns 2388x
bm_ranges_copy_n_vb_aligned/180224 250680 ns 99.5 ns 2519x
bm_ranges_copy_n_vb_aligned/184320 262954 ns 99.7 ns 2637x
bm_ranges_copy_n_vb_aligned/188416 258584 ns 103 ns 2510x
bm_ranges_copy_n_vb_aligned/192512 267190 ns 125 ns 2138x
bm_ranges_copy_n_vb_aligned/196608 270821 ns 213 ns 1271x
bm_ranges_copy_n_vb_aligned/200704 279532 ns 262 ns 1067x
bm_ranges_copy_n_vb_aligned/204800 283412 ns 222 ns 1277x
```
- Unaligned source-destination bits
```
--------------------------------------------------------------------------------
Benchmark Before After Improvement
--------------------------------------------------------------------------------
bm_ranges_copy_vb_unaligned/8 12.8 ns 8.59 ns 1.5x
bm_ranges_copy_vb_unaligned/64 98.2 ns 8.24 ns 12x
bm_ranges_copy_vb_unaligned/512 755 ns 18.1 ns 42x
bm_ranges_copy_vb_unaligned/4096 6027 ns 102 ns 59x
bm_ranges_copy_vb_unaligned/32768 47663 ns 774 ns 62x
bm_ranges_copy_vb_unaligned/262144 378981 ns 6455 ns 59x
bm_ranges_copy_vb_unaligned/1048576 1520486 ns 25942 ns 59x
bm_ranges_copy_n_vb_unaligned/8 11.3 ns 8.22 ns 1.4x
bm_ranges_copy_n_vb_unaligned/64 97.3 ns 7.89 ns 12x
bm_ranges_copy_n_vb_unaligned/512 747 ns 18.1 ns 41x
bm_ranges_copy_n_vb_unaligned/4096 5932 ns 99.0 ns 60x
bm_ranges_copy_n_vb_unaligned/32768 47776 ns 749 ns 64x
bm_ranges_copy_n_vb_unaligned/262144 378802 ns 6576 ns 58x
bm_ranges_copy_n_vb_unaligned/1048576 1547234 ns 26229 ns 59x
```
Commit: 4186805060bb06dc3362707d45e6f0f826208a8f
https://github.com/llvm/llvm-project/commit/4186805060bb06dc3362707d45e6f0f826208a8f
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/Support/DataLayout.h
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
M flang/lib/Optimizer/Support/DataLayout.cpp
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
M flang/lib/Optimizer/Transforms/CUFAddConstructor.cpp
M flang/lib/Optimizer/Transforms/CUFGPUToLLVMConversion.cpp
M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
M flang/lib/Optimizer/Transforms/LoopVersioning.cpp
M flang/test/lib/OpenACC/TestOpenACCInterfaces.cpp
Log Message:
-----------
[Flang][MLIR] Extend DataLayout utilities to have basic GPU Module support (#123149)
As there is now certain areas where we now have the possibility of
having either a ModuleOp or GPUModuleOp and both of these modules can
have DataLayout's and we may require utilising the DataLayout utilities
in these areas I've taken the liberty of trying to extend them for use
with both.
Those with more knowledge of how they wish the GPUModuleOp's to interact
with their parent ModuleOp's DataLayout may have further alterations
they wish to make in the future, but for the moment, it'll simply
utilise the basic data layout construction which I believe combines
parent and child datalayouts from the ModuleOp and GPUModuleOp. If there
is no GPUModuleOp DataLayout it should default to the parent ModuleOp.
It's worth noting there is some weirdness if you have two module
operations defining builtin dialect DataLayout Entries, it appears the
combinatorial functionality for DataLayouts doesn't support the merging
of these.
This behaviour is useful for areas like:
https://github.com/llvm/llvm-project/pull/119585/files#diff-19fc4bcb38829d085e25d601d344bbd85bf7ef749ca359e348f4a7c750eae89dR1412
where we have a crossroads between the two different module operations.
Commit: 2428b6ec40bc60bfcdf1d481f92f34f7279fb5f3
https://github.com/llvm/llvm-project/commit/2428b6ec40bc60bfcdf1d481f92f34f7279fb5f3
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A offload/test/offloading/fortran/target-data-map-if-present.f90
Log Message:
-----------
[Flang][MLIR][OpenMP] Fix Target Data if (present(...)) causing LLVM-IR branching error (#123771)
Currently if we generate code for the below target data map that uses an
optional mapping:
!$omp target data if(present(a)) map(alloc:a)
do i = 1, 10
a(i) = i
end do
!$omp end target data
We yield an LLVM-IR error as the branch for the else path is not
generated. This occurs because we enter the NoDupPriv path of the call
back function when generating the else branch, however, the emitBranch
function needs to be set to a block for it to functionally generate and
link in a follow up branch. The NoDupPriv path currently doesn't do
this, while it's not supposed to generate anything (as far as I am
aware) we still need to at least set the builders placement back so that
it emits the appropriate follow up branch. This avoids the missing
terminator LLVM-IR verification error by correctly generating the follow
up branch.
Commit: c39fba209ce655cf5997878b0bf794da269f008a
https://github.com/llvm/llvm-project/commit/c39fba209ce655cf5997878b0bf794da269f008a
Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
A llvm/test/CodeGen/AMDGPU/copy-to-reg-frameindex.ll
Log Message:
-----------
[AMDGPU] S_SET_GPR_IDX_ON can be passed an immediate index (#125086)
Oversight found by ISel fuzz effort. Assuming the argument is a
register, in some cases it can be an immediate. Tablegen's type for the
instruction is SSrc_b32, i.e. register or immediate fine. Added the
repro from the bug reporter as a test case - prior to this patch llvm
will assert in getReg.
Fixes SWDEV-508589
Commit: a774de807e56c1147d4630bfec3110c11d41776e
https://github.com/llvm/llvm-project/commit/a774de807e56c1147d4630bfec3110c11d41776e
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/include/lldb/API/SBProcess.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Target/StopInfo.h
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadList.h
M lldb/include/lldb/Target/ThreadPlan.h
M lldb/include/lldb/Target/ThreadPlanBase.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
R lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
R lldb/packages/Python/lldbsuite/test/lldbreverse.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
M lldb/source/API/SBProcess.cpp
M lldb/source/API/SBThread.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
M lldb/source/Plugins/Process/scripted/ScriptedProcess.h
M lldb/source/Target/Process.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadList.cpp
M lldb/source/Target/ThreadPlanBase.cpp
R lldb/test/API/functionalities/reverse-execution/Makefile
R lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
R lldb/test/API/functionalities/reverse-execution/TestReverseContinueNotSupported.py
R lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
R lldb/test/API/functionalities/reverse-execution/main.c
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.cpp
Log Message:
-----------
Revert "Reland "[lldb] Implement basic support for reverse-continue" (#123906)"" (#125091)
Reverts llvm/llvm-project#123945
Has failed on the Windows on Arm buildbot:
https://lab.llvm.org/buildbot/#/builders/141/builds/5865
```
********************
Unresolved Tests (2):
lldb-api :: functionalities/reverse-execution/TestReverseContinueBreakpoints.py
lldb-api :: functionalities/reverse-execution/TestReverseContinueWatchpoints.py
********************
Failed Tests (1):
lldb-api :: functionalities/reverse-execution/TestReverseContinueNotSupported.py
```
Reverting while I reproduce locally.
Commit: a643e449749332e974ce14b12cf3cb270dbf1b1f
https://github.com/llvm/llvm-project/commit/a643e449749332e974ce14b12cf3cb270dbf1b1f
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Replace gentbl with gentbl_cc_library (#124996)
LLVM has two tablegen generators: one in llvm/tblgen.bzl (`gentbl`,
macro-based) and one in mlir/tblgen.bzl (`gentbl_cc_library`,
rule-based). The `gentbl_cc_library` generator in MLIR has some
advantages to being a rule, and at any rate, it seems better to just use
the same tablegen rule everywhere instead of competing implementations.
Commit: e7e72a9bb48077d1ee161486a6908e1ade79b0b8
https://github.com/llvm/llvm-project/commit/e7e72a9bb48077d1ee161486a6908e1ade79b0b8
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/vp-vaaddu.ll
Log Message:
-----------
[RISCV] Add DAG combine for forming VAADDU_VL from VP intrinsics. (#124848)
This adds a VP version of an existing DAG combine. I've put it in
RISCVISelLowering since we would need to add a ISD::VP_AVGCEIL opcode
otherwise.
This pattern appears in 525.264_r.
Commit: e5b2be3a27946d730de390fe92a53b04bc38a435
https://github.com/llvm/llvm-project/commit/e5b2be3a27946d730de390fe92a53b04bc38a435
Author: Thibaut Goetghebuer-Planchon <tessil at gmx.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/transpose-fold.mlir
Log Message:
-----------
[mlir][tosa] Switch arith::ConstantOp to tosa::ConstOp for optimized Transpose perms parameter (#124945)
When consolidating transpose ops into one, use `tosa::ConstOp` for the
permutations parameter instead of `arith::ConstantOp`.
Commit: 44c0719e77b37374c89b7fc1320664ebb404323d
https://github.com/llvm/llvm-project/commit/44c0719e77b37374c89b7fc1320664ebb404323d
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
Log Message:
-----------
Silence MSVC warnings; NFC
After the changes to DynamicRecursiveASTVisitor, we started getting
several warnings from MSVC like:
warning C4661: 'bool clang::DynamicRecursiveASTVisitorBase<false>::WalkUpFromNamedDecl(clang::NamedDecl *)':
no suitable definition provided for explicit template instantiation request
These changes silence the warnings by providing a definition for those
functions.
Commit: 33d401fb15148f212990b94775c5f59e0b72bb92
https://github.com/llvm/llvm-project/commit/33d401fb15148f212990b94775c5f59e0b72bb92
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/VOPCInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir
M llvm/test/CodeGen/AMDGPU/fcmp.f16.ll
M llvm/test/CodeGen/AMDGPU/fp-classify.ll
M llvm/test/CodeGen/AMDGPU/icmp.i16.ll
Log Message:
-----------
[AMDGPU][True16][CodeGen] true16 codegen for icmp and is_fpclass (#124757)
True16 codegen pattern for icmp patterns and is_fpclass
Commit: 6b6c09e44ec01bb2b9b7e538d669543e56f23abc
https://github.com/llvm/llvm-project/commit/6b6c09e44ec01bb2b9b7e538d669543e56f23abc
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/test/MC/AMDGPU/gfx11_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp8.txt
Log Message:
-----------
[AMDGPU][True16][MC] true16 for v_mad_u/i32_u/i16 (#124781)
true16 asm/dasm support for v_mad_u32_i16 and v_mad_i32_i16
Commit: 4985804c0608a83f6ab017137c3d3d4f02827774
https://github.com/llvm/llvm-project/commit/4985804c0608a83f6ab017137c3d3d4f02827774
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/suppressions-alloc-dealloc-mismatch.cpp
Log Message:
-----------
[asan][test] Disable suppressions-alloc-dealloc-mismatch.cpp on Darwin
The suppressions mechanism doesn't work reliably in optimized builds,
which turns out to be a known issue (see b87543c704724 / svn r308908).
Disable this test, as it is also testing a feature (alloc/dealloc
mismatch) that is disabled by default on Darwin anyway.
rdar://143830493
Commit: e436bf64b50ac7f18218b8168da13176457fa3aa
https://github.com/llvm/llvm-project/commit/e436bf64b50ac7f18218b8168da13176457fa3aa
Author: Artem Kroviakov <71938912+akroviakov at users.noreply.github.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
M mlir/test/Dialect/XeGPU/XeGPUOps.mlir
M mlir/test/Dialect/XeGPU/invalid.mlir
Log Message:
-----------
[MLIR][XeGPU] Add sg_map for scatter verification (#124300)
This PR adds sg_map to the verification of scatter ops in XeGPU.
The documentation says `chunk_size: indicates the number of continuous
elements accessed for each offset`, it also mentions the fact that
scatter ops are SG-level.
Hence, if an operation is distributed to work-items, a 1-d load means a
work-item reads one element, a 2-d load means a work-item loads
`chunk-size` or second dimension of tdesc elements. The changes in this
PR reflect the documentation with the presence of sg_map attribute
(i.e., distributed case).
Commit: 2f48ca3aec4aa81b81d8591773bf29b4c72c623f
https://github.com/llvm/llvm-project/commit/2f48ca3aec4aa81b81d8591773bf29b4c72c623f
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
Log Message:
-----------
Revert "Silence MSVC warnings; NFC"
This reverts commit 44c0719e77b37374c89b7fc1320664ebb404323d.
It broke several -Werror bots because of misuse of override.
Commit: 9c0606a08b7e81df59afa3894830cb5c374f99ac
https://github.com/llvm/llvm-project/commit/9c0606a08b7e81df59afa3894830cb5c374f99ac
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/include/clang/Basic/Sanitizers.h
M clang/lib/Basic/Sanitizers.cpp
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/test/CodeGen/allow-ubsan-check-inline.c
M clang/test/CodeGen/allow-ubsan-check.c
Log Message:
-----------
Reapply "[ubsan] Connect -fsanitize-skip-hot-cutoff to LowerAllowCheckPass<cutoffs>" (#125032) (#125037)
This reverts commit 928cad49beec0120686478f502899222e836b545 i.e.,
relands dccd27112722109d2e2f03e8da9ce8690f06e11b, with a fix to avoid
use-after-scope by changing the lambda to capture by value.
Commit: 205b0bddcd8bdd19381e095a547302fffaf2750d
https://github.com/llvm/llvm-project/commit/205b0bddcd8bdd19381e095a547302fffaf2750d
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
A mlir/test/Target/LLVMIR/omptarget-if-nowait.mlir
Log Message:
-----------
[OpenMP][IRBuilder] Handle `target` directives with both `if` & `nowait` (#125029)
This fixes a bug when a `target` directive has both an `if` and a
`nowait` clauses. The bug happens because we tried to `emitKernelLaunch`
for `else` branch of the `if` clause.
Commit: 1128343727ce17f65976ef791783cd737f8cb5bd
https://github.com/llvm/llvm-project/commit/1128343727ce17f65976ef791783cd737f8cb5bd
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/test/Lower/Intrinsics/aint.f90
M flang/test/Lower/Intrinsics/anint.f90
M flang/test/Lower/Intrinsics/dot_product.f90
M flang/test/Lower/Intrinsics/exponent.f90
M flang/test/Lower/Intrinsics/fraction.f90
M flang/test/Lower/Intrinsics/ieee_class_queries.f90
M flang/test/Lower/Intrinsics/ieee_is_normal.f90
M flang/test/Lower/Intrinsics/ieee_next.f90
M flang/test/Lower/Intrinsics/isnan.f90
M flang/test/Lower/Intrinsics/mod.f90
M flang/test/Lower/Intrinsics/nearest.f90
M flang/test/Lower/Intrinsics/norm2.f90
M flang/test/Lower/Intrinsics/reduce.f90
M flang/test/Lower/Intrinsics/scale.f90
M flang/test/Lower/Intrinsics/set_exponent.f90
M flang/test/Lower/Intrinsics/spacing.f90
M flang/test/Lower/OpenMP/parallel-firstprivate-clause-scalar.f90
M flang/test/Lower/basic-function.f90
M flang/test/Lower/math-lowering/aint.f90
M flang/test/Lower/math-lowering/anint.f90
M flang/test/Lower/math-lowering/sign.f90
M flang/test/Lower/real-descriptors.f90
M flang/test/Lower/real-operations-1.f90
Log Message:
-----------
[flang][NFC] do not hard code KIND 10 and 16 in lowering tests (#124966)
KIND 10 and 16 are platform dependent and it will soon be a hard error
to use them when not available
(PR124655)
Update some tests that used them to use SELECTED_REAL_KIND + lit
conditional checks to make the tests usable on all platform.
Also update all those tests to use HFLIR lowering while modifying them
since the goal is to remove the legacy lowering at some point.
Commit: 7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca
https://github.com/llvm/llvm-project/commit/7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir-c/Dialect/LLVM.h
M mlir/include/mlir-c/Target/LLVMIR.h
M mlir/lib/CAPI/Dialect/LLVM.cpp
M mlir/lib/CAPI/Target/LLVMIR.cpp
M mlir/test/CAPI/translation.c
Log Message:
-----------
[mlir][llvmir] expose Type(To/From)LLVMIRTranslator C API (#124864)
Commit: 0e2abe7de3931daa1ecd13172e36fc6027ce45a8
https://github.com/llvm/llvm-project/commit/0e2abe7de3931daa1ecd13172e36fc6027ce45a8
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libclc/CMakeLists.txt
R libclc/amdgcn-mesa3d
R libclc/clc/lib/clspv64
R libclc/clc/lib/spirv64/SOURCES
R libclc/clspv64
R libclc/spirv64/lib/SOURCES
R libclc/spirv64/lib/math/fma.cl
R libclc/spirv64/lib/math/fma.inc
R libclc/spirv64/lib/subnormal_config.cl
Log Message:
-----------
[libclc] Remove use of symlinks (#125069)
Symlinks are problematic on some systems. They aren't strictly necessary
as we already have build infrastructure to 'alias' multiple targets'
source directories together, as nvptx/nvptx64 has been doing.
This commit takes the opportunity to merge together the spirv and
spirv64 directories through the same system as they were identical.
Fixes #114413
Commit: 05f8e0806e54a6c77347c118705cef1197d4ba18
https://github.com/llvm/llvm-project/commit/05f8e0806e54a6c77347c118705cef1197d4ba18
Author: Vishakh Prakash <vishakhpro2002 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/docs/SPIRVUsage.rst
Log Message:
-----------
Update SPIRVUsage.rst (#123897)
Commit: b552e35a06aef4366a933ea85ad3d4bef71e586a
https://github.com/llvm/llvm-project/commit/b552e35a06aef4366a933ea85ad3d4bef71e586a
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete.pass.cpp
M libcxx/test/std/numerics/c.math/signbit.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.verify.cpp
Log Message:
-----------
[libc++] Forward-proof some tests for AppleClang 17
Commit: 0e43b9547d56762d29de9a99c998e7939417a1f3
https://github.com/llvm/llvm-project/commit/0e43b9547d56762d29de9a99c998e7939417a1f3
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/lib/CAPI/Target/LLVMIR.cpp
Log Message:
-----------
[mlir] Fix warnings
This patch fixes:
mlir/lib/CAPI/Target/LLVMIR.cpp:38:63: error: extra ';' outside of a
function is incompatible with C++98
[-Werror,-Wc++98-compat-extra-semi]
mlir/lib/CAPI/Target/LLVMIR.cpp:60:61: error: extra ';' outside of a
function is incompatible with C++98
[-Werror,-Wc++98-compat-extra-semi]
Commit: 845cc968e987492bda6a62c9a87cd96cfc631d5b
https://github.com/llvm/llvm-project/commit/845cc968e987492bda6a62c9a87cd96cfc631d5b
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Driver/Options.td
M clang/lib/CodeGen/CodeGenModule.cpp
A clang/test/CodeGen/import-call-optimization.c
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/win-import-call-optimization-nocalls.ll
M llvm/test/CodeGen/AArch64/win-import-call-optimization.ll
Log Message:
-----------
[clang][llvm][aarch64][win] Add a clang flag and module attribute for import call optimization, and remove LLVM flag (#122831)
Switches import call optimization from being enabled by an LLVM flag to
instead using a module attribute, and creates a new Clang flag that will
set that attribute. This addresses the concern raised in the original
PR:
<https://github.com/llvm/llvm-project/pull/121516#discussion_r1911763991>
This change also only creates the Called Global info if the module
attribute is present, addressing this concern:
<https://github.com/llvm/llvm-project/pull/122762#pullrequestreview-2547595934>
Commit: a7e8bfe5ad9a1c1e3f0bba886474f381ebc403a9
https://github.com/llvm/llvm-project/commit/a7e8bfe5ad9a1c1e3f0bba886474f381ebc403a9
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/include/lldb/Interpreter/CommandInterpreter.h
M lldb/source/Interpreter/CommandInterpreter.cpp
Log Message:
-----------
[lldb] Fix CommandInterpreter.{h,cpp} formatting (NFC)
Fix CommandInterpreter.{h,cpp} formatting in preparation for #125006.
Commit: c8f4189eeb927247ead2d8b082a6920d5b873aa8
https://github.com/llvm/llvm-project/commit/c8f4189eeb927247ead2d8b082a6920d5b873aa8
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
Log Message:
-----------
[scudo] Clean up secondary tests. (#124999)
Change names to all begin with ScudoSecondary and change tests names
appropriately.
Move the cache option test to the cache test fixture.
Force the allocator test to use the no cached config so that all of
the allocations always fully exercise the allocator function and
don't skip this by using a previously cached element.
Commit: 08c76730f35e1dd3c9330b47fc304a35e6d9087e
https://github.com/llvm/llvm-project/commit/08c76730f35e1dd3c9330b47fc304a35e6d9087e
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/test/Driver/tls-dialect.c
M llvm/include/llvm/TargetParser/Triple.h
Log Message:
-----------
[llvm] Enable TLSDESC by default on Fuchsia targets (#124990)
Fuchsia uses TLSDESC by default for all target architectures. We also
make the comment and check for hasDefaultTLSDESC more accurately reflect
its usage.
Commit: 74690327c8fb3b1bc8722b8ae40091b268100468
https://github.com/llvm/llvm-project/commit/74690327c8fb3b1bc8722b8ae40091b268100468
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/include/lldb/Interpreter/CommandReturnObject.h
M lldb/include/lldb/Utility/StreamTee.h
M lldb/source/Interpreter/CommandReturnObject.cpp
Log Message:
-----------
[lldb] Constify methods in CommandReturnObject (NFC)
There's no reason these methods cannot be `const`. Currently this
prevents us from passing around a const ref. This patch is in
preparation for #125006.
Commit: 345512cbda296d262a28459afc7f83640b06b6a8
https://github.com/llvm/llvm-project/commit/345512cbda296d262a28459afc7f83640b06b6a8
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir-c/Dialect/LLVM.h
M mlir/include/mlir-c/Target/LLVMIR.h
M mlir/lib/CAPI/Dialect/LLVM.cpp
M mlir/lib/CAPI/Target/LLVMIR.cpp
M mlir/test/CAPI/translation.c
Log Message:
-----------
Revert "[mlir][llvmir] expose Type(To/From)LLVMIRTranslator C API (#124864)"
This reverts commit 7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca.
Revert "[mlir] Fix warnings"
This reverts commit 0e43b9547d56762d29de9a99c998e7939417a1f3.
Commit: 8a20c6459eb955f32bf46afe75cd84d6614cfabc
https://github.com/llvm/llvm-project/commit/8a20c6459eb955f32bf46afe75cd84d6614cfabc
Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
A llvm/test/CodeGen/AMDGPU/load-store-cnt.ll
Log Message:
-----------
[AMDGPU] Create new option for force flush load counter (#124974)
In ceratin situations it is beneficial to wait for all outstanding
loads regardless of specific load's data we need. This may allow
to reduce a number of cache requests.
Fixes: SWDEV-511507
Commit: b04847b427d6bf6d4415e7f4b4fc983dcdef1720
https://github.com/llvm/llvm-project/commit/b04847b427d6bf6d4415e7f4b4fc983dcdef1720
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/test/Interpreter/simple-exception.cpp
M compiler-rt/lib/orc/macho_platform.cpp
R compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions.cpp
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
R llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h
R llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h
M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
R llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.cpp
R llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.h
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h
M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
M llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
M llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
R llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp
R llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp
Log Message:
-----------
Revert "Reapply "[ORC] Enable JIT support for the compact-unwind frame..." with fixes." (#125098)
This reverts commit d6524c8dfa37634257050ca71d16e117b802181c. This
reverts commit b1bd73700a1fb6f450e0f6f9c405a9c8bde2cae7.
This was causing bot failures on Darwin
https://green.lab.llvm.org/job/llvm.org/job/clang-stage1-cmake-RA-incremental/7315/
Clang.Interpreter.simple-exception.cpp
Clang-Unit.Interpreter/ExceptionTests/_/ClangReplInterpreterExceptionTests/0.1
LLVM.ExecutionEngine/OrcLazy.minimal-throw-catch.ll
https://green.lab.llvm.org/job/llvm.org/job/clang-stage1-RA/3415/
ORC-x86_64-darwin.TestCases/Darwin/Generic.exceptions.cpp
ORC-x86_64-darwin.TestCases/Darwin/x86-64.lljit-ehframe.cpp
Commit: 12243234f667294fe0059e78be8f001a228d48bd
https://github.com/llvm/llvm-project/commit/12243234f667294fe0059e78be8f001a228d48bd
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/JITLink/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/TargetProcess/BUILD.gn
Log Message:
-----------
[gn build] Port b04847b427d6
Commit: 74d7f43b98910a110bc194752fca829eb19c265a
https://github.com/llvm/llvm-project/commit/74d7f43b98910a110bc194752fca829eb19c265a
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaType.cpp
R clang/test/SemaCXX/remove_pointer.mm
A clang/test/SemaObjCXX/type-traits.mm
Log Message:
-----------
[Clang] Fix __{add,remove}_pointer in Objective-C++ (#123678)
This aligns the builtins with how implementations work which don't use
the buitins.
Commit: b4d52a9abdad2582d7aafc68448310066526acd8
https://github.com/llvm/llvm-project/commit/b4d52a9abdad2582d7aafc68448310066526acd8
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/test/Semantics/kinds04_q10.f90
Log Message:
-----------
[flang] Repair recent Power build bot breakage (#124950)
Add AIX_WARNING expected warnings to a test that is now producing new
warnings.
Should fix https://lab.llvm.org/buildbot/#/builders/201/builds/2291.
Commit: 0e62c748d440a6d12d190e951c987efe309f40d6
https://github.com/llvm/llvm-project/commit/0e62c748d440a6d12d190e951c987efe309f40d6
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
Log Message:
-----------
[analyzer][NFC] Remove a redundant container lookup (#125064)
I found this using my experimental checker present at:
https://github.com/steakhal/llvm-project/tree/bb/add-redundant-lookup-checker
The idea for looking for redundant container lookups was inspired by
#123376
If there is interest, I could think of upstreaming this alpha checker.
(For the StaticAnalyzer sources it was the only TP, and I had no FPs
from the checker btw.)
Commit: e058c73526afeb9d4da07f090a73ae47a224fddc
https://github.com/llvm/llvm-project/commit/e058c73526afeb9d4da07f090a73ae47a224fddc
Author: youngdfb <davidayoung at meta.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A llvm/test/tools/llvm-dwarfdump/X86/debug-names-verify--completeness-json-output.s
A llvm/test/tools/llvm-dwarfdump/X86/dwarf-verify-good-json-output.s
Log Message:
-----------
Add test for dwarf verification JSON output (#124936)
Summary:
6244dfef5cd45f1395c66abbe061c6a7eb002676 LLVM commit added the ability
for llvm-dwarfdump to specify --verify-json and get a JSON aggregation
of the DWARF errors in a file. This diff improves the testing by
ensuring we validate the expected JSON shape.
A follow up diff will modify the JSON and this ensures we can verify.
Test Plan:
ninja check-llvm-tools-llvm-dwarfdump
Commit: edc3dc6abd9dec70f03107d1477a2baffe7208f7
https://github.com/llvm/llvm-project/commit/edc3dc6abd9dec70f03107d1477a2baffe7208f7
Author: Peng Liu <winner245 at hotmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/21.rst
M libcxx/include/__algorithm/copy_backward.h
M libcxx/include/__bit_reference
M libcxx/include/__vector/vector_bool.h
M libcxx/include/bitset
A libcxx/test/benchmarks/algorithms/copy_backward.bench.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
Log Message:
-----------
[libc++] Optimize ranges::copy_backward for vector<bool>::iterator (#121026)
As a follow-up to #121013 (which focused on `std::ranges::copy`), this
PR optimizes the performance of `std::ranges::copy_backward` for
`vector<bool>::iterator`, addressing a subtask outlined in issue #64038.
The optimizations yield performance improvements of up to 2000x for
aligned copies and 60x for unaligned copies.
Commit: 439bef9751e1769ccd5a7b4ca4127144912cacfc
https://github.com/llvm/llvm-project/commit/439bef9751e1769ccd5a7b4ca4127144912cacfc
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libcxx/test/benchmarks/GenerateInput.h
R libcxx/test/benchmarks/Utilities.h
M libcxx/test/benchmarks/algorithms/algorithms.partition_point.bench.cpp
M libcxx/test/benchmarks/algorithms/lower_bound.bench.cpp
M libcxx/test/benchmarks/algorithms/make_heap.bench.cpp
M libcxx/test/benchmarks/algorithms/make_heap_then_sort_heap.bench.cpp
M libcxx/test/benchmarks/algorithms/pop_heap.bench.cpp
M libcxx/test/benchmarks/algorithms/pstl.stable_sort.bench.cpp
M libcxx/test/benchmarks/algorithms/push_heap.bench.cpp
M libcxx/test/benchmarks/algorithms/set_intersection.bench.cpp
M libcxx/test/benchmarks/algorithms/sort.bench.cpp
M libcxx/test/benchmarks/algorithms/sort_heap.bench.cpp
M libcxx/test/benchmarks/algorithms/stable_sort.bench.cpp
R libcxx/test/benchmarks/containers/ContainerBenchmarks.h
A libcxx/test/benchmarks/containers/container_benchmarks.h
M libcxx/test/benchmarks/containers/deque.bench.cpp
A libcxx/test/benchmarks/containers/list.bench.cpp
M libcxx/test/benchmarks/containers/string.bench.cpp
A libcxx/test/benchmarks/containers/unordered_set.bench.cpp
R libcxx/test/benchmarks/containers/unordered_set_operations.bench.cpp
A libcxx/test/benchmarks/containers/vector.bench.cpp
R libcxx/test/benchmarks/containers/vector_operations.bench.cpp
M libcxx/test/benchmarks/filesystem.bench.cpp
M libcxx/test/benchmarks/hash.bench.cpp
M libcxx/test/benchmarks/variant_visit_1.bench.cpp
M libcxx/test/benchmarks/variant_visit_2.bench.cpp
M libcxx/test/benchmarks/variant_visit_3.bench.cpp
Log Message:
-----------
[libc++] Refactor the sequence container benchmarks (#119763)
Rewrite the sequence container benchmarks to only rely on the actual
operations specified in SequenceContainer requirements and add
benchmarks for std::list, which is also considered a sequence container.
One of the major goals of this refactoring is also to make these
container benchmarks run faster so that they can be run more frequently.
The existing benchmarks have the significant problem that they take so
long to run that they must basically be run overnight. This patch
reduces the size of inputs such that the rewritten benchmarks each take
at most a minute to run.
This patch doesn't touch the string benchmarks, which were not using the
generic container benchmark functions previously.
Commit: 4f358d75d03b0d412f131a3d38c4781b5f06f584
https://github.com/llvm/llvm-project/commit/4f358d75d03b0d412f131a3d38c4781b5f06f584
Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/copy-to-reg-frameindex.ll
Log Message:
-----------
[amdgpu][nfc] Post-commit feedback on c39fba209
Commit: fcc4ceb331957dc6d1d6d0f4035bd2f48f2945bd
https://github.com/llvm/llvm-project/commit/fcc4ceb331957dc6d1d6d0f4035bd2f48f2945bd
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/21.rst
M libcxx/docs/Status/Cxx17Papers.csv
M libcxx/include/__hash_table
M libcxx/include/__tree
M libcxx/include/deque
M libcxx/include/forward_list
M libcxx/include/list
A libcxx/test/std/containers/associative/map/map.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/associative/set/set.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/sequences/list/list.cons/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp
A libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.compile.pass.cpp
R libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp
Log Message:
-----------
[libc++] Implement N4258(Cleaning-up noexcept in the Library) (#120312)
Fixes #99937
Commit: 7fa1257c35581268deb5f0fc2faa3ae46358f958
https://github.com/llvm/llvm-project/commit/7fa1257c35581268deb5f0fc2faa3ae46358f958
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] Build fix (#125087)
Reinstate a preprocessor define for a nonstandard exception.
[124978](https://github.com/llvm/llvm-project/issues/124978#event-16113621403)
Commit: 0d46657cb6bf04430ff8222e1974e49441767d47
https://github.com/llvm/llvm-project/commit/0d46657cb6bf04430ff8222e1974e49441767d47
Author: Matthew Bastien <matthew_bastien at apple.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A lldb/tools/lldb-dap/.vscodeignore
Log Message:
-----------
Only include necessary files in the lldb-dap VSIX (#124986)
The published VSIX for the LLDB DAP extension contains a bunch of
unnecessary files:
```
❯ tar tf llvm-vs-code-extensions.lldb-dap-0.2.8.vsix
extension.vsixmanifest
[Content_Types].xml
extension/.github/workflows/auto_publish.yml
extension/.github/workflows/integrate_llvmproject.yml
extension/.gitignore
extension/.vscode/launch.json
extension/.vscode/tasks.json
extension/LICENSE.TXT
extension/out/debug-adapter-factory.js
extension/out/debug-adapter-factory.js.map
extension/out/disposable-context.js
extension/out/disposable-context.js.map
extension/out/extension.js
extension/out/extension.js.map
extension/out/types.js
extension/out/types.js.map
extension/package.json
extension/README.md
extension/src-ts/debug-adapter-factory.ts
extension/src-ts/disposable-context.ts
extension/src-ts/extension.ts
extension/src-ts/types.ts
extension/syntaxes/arm.disasm
extension/syntaxes/arm64.disasm
extension/syntaxes/disassembly.json
extension/syntaxes/x86.disasm
extension/tsconfig.json
```
All that's really needed is the package.json, license, README, syntaxes
folder, and compiled sources. This PR adds a `.vscodeignore` file that
requires files and directories to be explicitly added to the VSIX.
Contents of the VSIX after applying this change and running `npm run
package`:
```
❯ tar tf out/lldb-dap.vsix
extension.vsixmanifest
[Content_Types].xml
extension/LICENSE.TXT
extension/out/debug-adapter-factory.js
extension/out/debug-adapter-factory.js.map
extension/out/disposable-context.js
extension/out/disposable-context.js.map
extension/out/extension.js
extension/out/extension.js.map
extension/package.json
extension/README.md
extension/syntaxes/arm.disasm
extension/syntaxes/arm64.disasm
extension/syntaxes/disassembly.json
extension/syntaxes/x86.disasm
```
I did a very basic sanity check of installing the packaged extension and
debugging a simple swift application in VS Code to make sure the
extension was still functional.
Commit: 72efe15c2bf262607420f81ab3b3b52f82698b4b
https://github.com/llvm/llvm-project/commit/72efe15c2bf262607420f81ab3b3b52f82698b4b
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
Log Message:
-----------
Reapply 44c0719e77b37374c89b7fc1320664ebb404323d with fix; NFC (#125100)
Silence MSVC warnings; NFC
After the changes to DynamicRecursiveASTVisitor, we started getting
several warnings from MSVC like:
warning C4661: 'bool
clang::DynamicRecursiveASTVisitorBase<false>::WalkUpFromNamedDecl(clang::NamedDecl
*)': no suitable definition provided for explicit template instantiation
request
These changes silence the warnings by providing a definition for those
functions.
Commit: 20fd7df0b847bb46aac2f0b5b71d242220027cbc
https://github.com/llvm/llvm-project/commit/20fd7df0b847bb46aac2f0b5b71d242220027cbc
Author: higher-performance <higher.performance.github at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaInit.cpp
M clang/test/SemaCXX/uninitialized.cpp
Log Message:
-----------
Fix false negative when value initializing a field annotated with [[clang::require_field_initialization]] (#124329)
It turns out we weren't handling one case: the value-initialization of a
field inside a struct.
I'm not sure why this falls under `IK_Direct` rather than `IK_Value` in
Clang, but it seems to work.
Commit: 9b52dbe0e0c3298438fd0a32495dd796b1d33970
https://github.com/llvm/llvm-project/commit/9b52dbe0e0c3298438fd0a32495dd796b1d33970
Author: Alex Prabhat Bara <alexpbara at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M libc/include/llvm-libc-macros/limits-macros.h
Log Message:
-----------
[libc] added _POSIX_ARG_MAX in limits.h (#124954)
Fixes: #124947
Commit: 55815b621b3a8f56a36c93229de1356e325a136f
https://github.com/llvm/llvm-project/commit/55815b621b3a8f56a36c93229de1356e325a136f
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/Value.h
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/IR/Value.cpp
M llvm/test/Transforms/InstSimplify/constant-fold-inttoptr-add.ll
Log Message:
-----------
[Value] Look through inttoptr (add ..) in accumulateConstantOffsets (#124981)
Look through inttoptr (add (ptrtoint P), C) when accumulating offsets.
Adds a missing fold after
https://github.com/llvm/llvm-project/pull/123518
Alive2 for the tests with changes: https://alive2.llvm.org/ce/z/VvPrzv
PR: https://github.com/llvm/llvm-project/pull/124981
Commit: fdfd97959e91af46fc8b35cb07208db26ccf75e7
https://github.com/llvm/llvm-project/commit/fdfd97959e91af46fc8b35cb07208db26ccf75e7
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/utils/TableGen/InstrInfoEmitter.cpp
Log Message:
-----------
[TableGen] Improvements to Named operands in InstrInfoEmitter (#124960)
- Assign `OpName` enum values in the same alphabetical order in which
they are emitted.
- Get rid of OPERAND_LAST which is not used anywhere.
- Inline `initOperandMapData` into `emitOperandNameMappings` to help see
clearly how various maps are computed.
- Emit the static `OperandMap` table as int8_t when possible. This
should help reduce the static size by 50% in the common case.
- Change maps/vectors to use StringRef instead of std::string to avoid
unnecessary copies.
Commit: 38ddcb7e3639438dd925229bbbfb20fbcfb23f7f
https://github.com/llvm/llvm-project/commit/38ddcb7e3639438dd925229bbbfb20fbcfb23f7f
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/include/clang/CIR/FrontendAction/CIRGenAction.h
A clang/include/clang/CIR/LowerToLLVM.h
M clang/lib/CIR/CMakeLists.txt
M clang/lib/CIR/FrontendAction/CIRGenAction.cpp
M clang/lib/CIR/FrontendAction/CMakeLists.txt
A clang/lib/CIR/Lowering/CMakeLists.txt
A clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
A clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
A clang/test/CIR/Lowering/hello.c
Log Message:
-----------
[CIR] Add framework for CIR to LLVM IR lowering (#124650)
Create the skeleton framework for lowering from ClangIR to LLVM IR. This
initial implementation just creates an empty LLVM IR module. Actual
lowering of even minimal ClangIR is deferred to a later patch.
Commit: fa4af0353b2071d8d009c9d14a5025a3dfc92fb3
https://github.com/llvm/llvm-project/commit/fa4af0353b2071d8d009c9d14a5025a3dfc92fb3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/Use.h
Log Message:
-----------
[IR] Remove stale reference to waymarking from Use.h comments. NFC (#125114)
Commit: c1e9b908d9c205970f025c188c6fbe6fb93be98d
https://github.com/llvm/llvm-project/commit/c1e9b908d9c205970f025c188c6fbe6fb93be98d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/source/Interpreter/CommandInterpreter.cpp
Log Message:
-----------
[lldb] Remove unused CommandReturnObject stack variable (NFC)
Per the title, the variable is unused.
Commit: fabe747bf051697cde72a963f1012d6ba9c3f5f5
https://github.com/llvm/llvm-project/commit/fabe747bf051697cde72a963f1012d6ba9c3f5f5
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
A llvm/test/MC/AMDGPU/gfx11_asm_opsel_err.s
Log Message:
-----------
[AMDGPU][True16][MC] validate op_sel and .l/.h syntax (#123250)
check if op_sel is consistent with .l/.h syntax if both are presented
Commit: b3458fdec5e183b49c634b72b828630bb6972400
https://github.com/llvm/llvm-project/commit/b3458fdec5e183b49c634b72b828630bb6972400
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/include/llvm/MC/MCStreamer.h
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCParser/COFFAsmParser.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86InstrCompiler.td
M llvm/lib/Target/X86/X86MCInstLower.cpp
M llvm/test/CodeGen/X86/apx/push2-pop2-cfi-seh.ll
M llvm/test/CodeGen/X86/avx512-intel-ocl.ll
M llvm/test/CodeGen/X86/avx512-regcall-Mask.ll
M llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
M llvm/test/CodeGen/X86/break-false-dep.ll
M llvm/test/CodeGen/X86/catchpad-realign-savexmm.ll
M llvm/test/CodeGen/X86/cfguard-x86-64-vectorcall.ll
M llvm/test/CodeGen/X86/cleanuppad-realign.ll
M llvm/test/CodeGen/X86/conditional-tailcall-pgso.ll
M llvm/test/CodeGen/X86/conditional-tailcall.ll
M llvm/test/CodeGen/X86/ldexp.ll
M llvm/test/CodeGen/X86/localescape.ll
M llvm/test/CodeGen/X86/mixed-ptr-sizes.ll
M llvm/test/CodeGen/X86/musttail-varargs.ll
M llvm/test/CodeGen/X86/no-sse-win64.ll
M llvm/test/CodeGen/X86/preserve_nonecc_call_win.ll
M llvm/test/CodeGen/X86/segmented-stacks.ll
M llvm/test/CodeGen/X86/seh-catchpad.ll
M llvm/test/CodeGen/X86/sse-regcall.ll
M llvm/test/CodeGen/X86/sse-regcall4.ll
M llvm/test/CodeGen/X86/stack-coloring-wineh.ll
M llvm/test/CodeGen/X86/swift-async-win64.ll
M llvm/test/CodeGen/X86/tailcc-ssp.ll
M llvm/test/CodeGen/X86/taildup-callsiteinfo.mir
M llvm/test/CodeGen/X86/win-catchpad-csrs.ll
M llvm/test/CodeGen/X86/win-catchpad.ll
M llvm/test/CodeGen/X86/win-funclet-cfi.ll
M llvm/test/CodeGen/X86/win-smallparams.ll
M llvm/test/CodeGen/X86/win64-byval.ll
M llvm/test/CodeGen/X86/win64-eh-empty-block-2.mir
M llvm/test/CodeGen/X86/win64-funclet-savexmm.ll
M llvm/test/CodeGen/X86/win64-seh-epilogue-statepoint.ll
M llvm/test/CodeGen/X86/win64_eh.ll
M llvm/test/CodeGen/X86/win64_frame.ll
M llvm/test/CodeGen/X86/x86-64-flags-intrinsics.ll
M llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
M llvm/test/DebugInfo/COFF/trailing-inlined-function.s
M llvm/test/DebugInfo/MIR/X86/instr-ref-join-def-vphi.mir
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_pdata_no_strip.s
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_pdata_strip.s
M llvm/test/MC/AsmParser/directive_seh.s
M llvm/test/MC/AsmParser/seh-directive-errors.s
M llvm/test/MC/COFF/cv-def-range-align.s
M llvm/test/MC/COFF/cv-inline-linetable-unlikely.s
M llvm/test/MC/COFF/seh-align2.s
M llvm/test/MC/COFF/seh-align3.s
M llvm/test/MC/COFF/seh-linkonce.s
M llvm/test/MC/COFF/seh-section-2.s
M llvm/test/MC/COFF/seh-section.s
M llvm/test/MC/COFF/seh.s
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll.expected
Log Message:
-----------
[llvm] Win x64 Unwind V2 1/n: Mark beginning and end of epilogs (#110024)
Windows x64 Unwind V2 adds epilog information to unwind data:
specifically, the length of the epilog and the offset of each epilog.
The first step to do this is to add markers to the beginning and end of
each epilog when generating Windows x64 code. I've modelled this after
how LLVM was marking ARM and AArch64 epilogs in Windows (and unified the
code between the three).
Commit: ac7c199a63ddb7ba675e9da76dd07ffdbf07153a
https://github.com/llvm/llvm-project/commit/ac7c199a63ddb7ba675e9da76dd07ffdbf07153a
Author: David Green <david.green at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-add.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/aarch64-addv.ll
M llvm/test/CodeGen/AArch64/neon-dotreduce.ll
M llvm/test/CodeGen/AArch64/vecreduce-add.ll
Log Message:
-----------
[AArch64][GlobalISel] Legalize more G_VECREDUCE_ADD operations. (#123392)
Non-power-2 vectors will now be padded with zero elements, smaller
vectors will be widened using anyext, which I believe will be better in
many situations than padding with zeros, although some small types may
prefer being scalarized depending on the code. Padding with zeros may
not be best for all sizes (v5i8 being the worst), we can hopefully
improve that in the future but they no longer fall back. We scalarize
other types like i128.
Commit: 26c2da5a122532035b8bf63af89208d6d799e40e
https://github.com/llvm/llvm-project/commit/26c2da5a122532035b8bf63af89208d6d799e40e
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/source/Interpreter/CommandObject.cpp
Log Message:
-----------
[lldb] Remove another unused CommandReturnObject variable (NFC)
Commit: 6a05beeb2bed366f7e6e0056a758c6f8d385fdde
https://github.com/llvm/llvm-project/commit/6a05beeb2bed366f7e6e0056a758c6f8d385fdde
Author: Augusto Noronha <anoronha at apple.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/include/lldb/Core/Value.h
M lldb/include/lldb/Expression/ExpressionVariable.h
M lldb/include/lldb/ValueObject/ValueObjectConstResultImpl.h
M lldb/source/Expression/Materializer.cpp
Log Message:
-----------
[NFC][lldb] Document a few ivars on the value object system. (#124971)
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
Commit: 7eb193bd0e81e3b53bba82d0996486489dabda29
https://github.com/llvm/llvm-project/commit/7eb193bd0e81e3b53bba82d0996486489dabda29
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
R llvm/test/MC/AMDGPU/gfx11_asm_opsel_err.s
Log Message:
-----------
Revert "[AMDGPU][True16][MC] validate op_sel and .l/.h syntax (#123250)"
This reverts commit fabe747bf051697cde72a963f1012d6ba9c3f5f5.
Multiple buildbots are failing. See:
https://github.com/llvm/llvm-project/pull/123250
Commit: 7ceef1b1824073fcfd4724539f5942442da1a9c2
https://github.com/llvm/llvm-project/commit/7ceef1b1824073fcfd4724539f5942442da1a9c2
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[VPlan] Also use runPass for handleUncountableEarlyExit. (NFC)
Also use helper added in 2b55ef187cb602 to run
handleUncountableEarlyExit.
Commit: a51798e3d68b9e04660757ff6e645c8ba46baaa9
https://github.com/llvm/llvm-project/commit/a51798e3d68b9e04660757ff6e645c8ba46baaa9
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIModeRegister.cpp
A llvm/test/CodeGen/AMDGPU/mode-register-fptrunc.gfx11plus-fake16.mir
A llvm/test/CodeGen/AMDGPU/mode-register-fptrunc.gfx11plus.mir
M llvm/test/CodeGen/AMDGPU/mode-register-fptrunc.mir
M llvm/test/CodeGen/AMDGPU/preserve-hi16.ll
M llvm/test/CodeGen/AMDGPU/strict_fptrunc.ll
Log Message:
-----------
[AMDGPU][True16][CodeGen] true16 codegen pat for fptrunc_round (#124044)
true16 codegen pattern for fptrunc_round f32 to f16.
For mir test, split to preGFX11 and postGFX11. and add a true16 and a
fake16 test accordingly
Commit: cff0a460ae864505bc2a064c269ebe548aa35949
https://github.com/llvm/llvm-project/commit/cff0a460ae864505bc2a064c269ebe548aa35949
Author: Bill Wendling <morbo at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/CodeGen/attr-counted-by.c
Log Message:
-----------
[Clang][counted_by] Refactor __builtin_dynamic_object_size on FAMs (#122198)
Refactoring of how __builtin_dynamic_object_size() is calculated for
flexible array members (in preparation for adding support for the
'counted_by' attribute on pointers in structs).
The only functionality change is that we use the already emitted Expr
code to build our calculations off of rather than re-emitting the Expr.
That allows the 'StructFieldAccess' visitor to sift through all casts
and ArraySubscriptExprs to find the first MemberExpr. We build our GEPs
and calculate offsets based off of relative distances from that
MemberExpr.
The testcase passes execution tests.
Calculate the flexible array member's object size using these formulae
(note: if the calculation is negative, we return 0.):
struct p;
struct s {
/* ... */
int count;
struct p *array[] __attribute__((counted_by(count)));
};
1) 'ptr->array':
count = ptr->count;
flexible_array_member_base_size = sizeof (*ptr->array);
flexible_array_member_size =
count * flexible_array_member_base_size;
if (flexible_array_member_size < 0)
return 0;
return flexible_array_member_size;
2) '&ptr->array[idx]':
count = ptr->count;
index = idx;
flexible_array_member_base_size = sizeof (*ptr->array);
flexible_array_member_size =
count * flexible_array_member_base_size;
index_size = index * flexible_array_member_base_size;
if (flexible_array_member_size < 0 || index < 0)
return 0;
return flexible_array_member_size - index_size;
3) '&ptr->field':
count = ptr->count;
sizeof_struct = sizeof (struct s);
flexible_array_member_base_size = sizeof (*ptr->array);
flexible_array_member_size =
count * flexible_array_member_base_size;
field_offset = offsetof (struct s, field);
offset_diff = sizeof_struct - field_offset;
if (flexible_array_member_size < 0)
return 0;
return offset_diff + flexible_array_member_size;
4) '&ptr->field_array[idx]':
count = ptr->count;
index = idx;
sizeof_struct = sizeof (struct s);
flexible_array_member_base_size = sizeof (*ptr->array);
flexible_array_member_size =
count * flexible_array_member_base_size;
field_base_size = sizeof (*ptr->field_array);
field_offset = offsetof (struct s, field)
field_offset += index * field_base_size;
offset_diff = sizeof_struct - field_offset;
if (flexible_array_member_size < 0 || index < 0)
return 0;
return offset_diff + flexible_array_member_size;
---------
Signed-off-by: Bill Wendling <morbo at google.com>
Commit: 50a5c4f6b9ea8046f90aefdffb8170d1ffb790cd
https://github.com/llvm/llvm-project/commit/50a5c4f6b9ea8046f90aefdffb8170d1ffb790cd
Author: thetruestblue <bblueconway at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
Log Message:
-----------
[Sanitizers][Apple] Fix logic bugs that break RestrictMemoryToMaxAddress (#124712)
There are two logic bugs breaking RestrictMemoryToMaxAddress.
1. adding left_padding within MapDynamicShadow.
- RoundUpTo((uptr)free_begin + left_padding, alignment) already adjusts
for left padding. Adding this additionally within MapDynamicShadow
causes us to allocate a page larger than necessary.
- This incorrect calculation also means RestrictMemoryToMaxAddress will
never find a big enough gap.
2. There is also an issue with the expectation of hitting
KERN_INVALID_ADDRESS when we are beyond the addressable regions.
- For most embedded scenarios, we exceed vm_max_address without getting
KREN_INVALID_ADDRESS so we setting max_occupied_address to a memory
region the process doesn't have access to, beyond the max address, and
that space is never marked as available so we never find a valid gap in
those regions.
- At some point previous it seems the assumption was once we were beyond
the Max address we could expect KREN_INVALID_ADDRESS, which is no longer
true up through the extended space not given to most processes.
- Because of this, the check` if (new_max_vm < max_occupied_addr)` will
always fail and we will never restrict the address on smaller devices.
- Additionally because of the extra page added by adding left_padding,
and how we only minimally restrict the vm, there's a chance we restrict
the vm only enough for the correctly calculated size of shadow. In these
cases, restricting the vm max address and will always fail due to the
extra page added to space size.
credit to @delcypher for the left_padding diagnosis, remembered his old
radar and PR when investigating this. https://reviews.llvm.org/D85389
Will monitor closely for fall out.
rdar://66603866
Commit: 72b73c9af694198096b2e0c47a1625e5b94c76a5
https://github.com/llvm/llvm-project/commit/72b73c9af694198096b2e0c47a1625e5b94c76a5
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/test/lib/IR/CMakeLists.txt
Log Message:
-----------
[mlir][cmake] Add missing MLIRTestDialect dependency (#125004)
Hopefully this will fix the flaky build issue that we have in one of the
bots: https://lab.llvm.org/buildbot/#/builders/50/builds/9532
Commit: bce2cc15133a1458e4ad053085e58c7423c365b4
https://github.com/llvm/llvm-project/commit/bce2cc15133a1458e4ad053085e58c7423c365b4
Author: David Majnemer <david.majnemer at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Basic/Targets/AArch64.h
M clang/test/Preprocessor/init-aarch64.c
Log Message:
-----------
[clang] Set __GCC_*STRUCTIVE_SIZE on Aarch64
Before this change, we would set this to Clang's default of {64, 64}.
Now, we explicitly set it to {256, 64} which matches our ARM behavior
for ARMv8 targets and GCC's behavior for AArch64 targets.
Commit: 536606f6f617b4a33389819a3a20c5cbb735ed7e
https://github.com/llvm/llvm-project/commit/536606f6f617b4a33389819a3a20c5cbb735ed7e
Author: Ziqing Luo <ziqing at udel.edu>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
A clang/test/Analysis/bugfix-124477.m
M clang/unittests/StaticAnalyzer/CMakeLists.txt
A clang/unittests/StaticAnalyzer/ObjcBug-124477.cpp
Log Message:
-----------
[StaticAnalyzer] Fix state update in VisitObjCForCollectionStmt (#124477)
In `VisitObjCForCollectionStmt`, the function does `evalLocation` for
the current element at the original source state `Pred`. The evaluation
may result in a new state, say `PredNew`. I.e., there is a transition:
`Pred -> PredNew`, though it is a very rare case that `Pred` is NOT
identical to `PredNew`. (This explains why the bug exists for many years
but no one noticed until recently a crash observed downstream.) Later,
the original code does NOT use `PredNew` as the new source state in
`StmtNodeBuilder` for next transitions. In cases `Pred != PredNew`, the
program ill behaves.
(rdar://143280254)
Commit: 012e0a0def4f4cd92266bc5b967532c6a3b8c533
https://github.com/llvm/llvm-project/commit/012e0a0def4f4cd92266bc5b967532c6a3b8c533
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/unittests/StaticAnalyzer/BUILD.gn
Log Message:
-----------
[gn build] Port 536606f6f617
Commit: adb9ef035552d7fc42a34560677f89f4f6421295
https://github.com/llvm/llvm-project/commit/adb9ef035552d7fc42a34560677f89f4f6421295
Author: John Harrison <harjohn at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lldb/tools/lldb-dap/OutputRedirector.cpp
M lldb/tools/lldb-dap/OutputRedirector.h
Log Message:
-----------
[lldb-dap] Partially reverting OutputRedirector changes. (#125136)
I just noticed with these changes lldb-dap was using 200% of my CPU and
root causing the issue it seems that lldb_private::Pipe::Read() (without
a timeout) is using a timeout of `std::chrono::microseconds::zero()`
which ends up setting the SelectHelper timeout to `now + 0` (see
https://github.com/llvm/llvm-project/blob/7ceef1b1824073fcfd4724539f5942442da1a9c2/lldb/source/Host/posix/PipePosix.cpp#L314
and
https://github.com/llvm/llvm-project/blob/7ceef1b1824073fcfd4724539f5942442da1a9c2/lldb/source/Utility/SelectHelper.cpp#L46)
which causes SelectHelper to return immediately with a timeout error. As
a result the `lldb_dap::OutputRedirector::RedirectTo()` to turn into a
busy loop.
Additionally, the 'read' call is waiting until the output buffer is full
before returning, which prevents any partial output (see
https://github.com/llvm/llvm-project/blob/7ceef1b1824073fcfd4724539f5942442da1a9c2/lldb/source/Host/posix/PipePosix.cpp#L325C9-L326C17).
This is not the desired behavior for lldb-dap. Instead we want a write
to the FD to result in a callback to send the DAP Output event, which
mean we want partial output.
To mitigate this, I'm reverting the reading operation to the previous
behavior before 873426bea3dd67d80dd10650e64e91c69796614f but keeping the
refactored structure and thread management.
Commit: ba5b14655a3fb7adad3f9db0161c8742a035f744
https://github.com/llvm/llvm-project/commit/ba5b14655a3fb7adad3f9db0161c8742a035f744
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/AST/TextNodeDumper.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#125022)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect C to be nonnull.
Commit: 16e61df8a135ec6dfe90277ac47a0dd6f461b346
https://github.com/llvm/llvm-project/commit/16e61df8a135ec6dfe90277ac47a0dd6f461b346
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Sema/SemaDecl.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#125023)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Entry to be nonnull.
Commit: fc433089e3535de3ae31c1c91194f654996529be
https://github.com/llvm/llvm-project/commit/fc433089e3535de3ae31c1c91194f654996529be
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Serialization/ASTWriter.cpp
Log Message:
-----------
[Serialization] Migrate away from PointerUnion::dyn_cast (NFC) (#124884) (#125024)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Subject to be nonnull.
Commit: 3874620ef7477c47abb07b7b68c410c1a9ed1b53
https://github.com/llvm/llvm-project/commit/3874620ef7477c47abb07b7b68c410c1a9ed1b53
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/StackColoring.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#125025)
Commit: 381416a8c7e0e8fc8b12c83c6c856b8ef7c4d8a8
https://github.com/llvm/llvm-project/commit/381416a8c7e0e8fc8b12c83c6c856b8ef7c4d8a8
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
Log Message:
-----------
[flang] Fixed compilation warning inside assertion.
Commit: 4fb80788872e1c1c789fc9a06edd123414a427e6
https://github.com/llvm/llvm-project/commit/4fb80788872e1c1c789fc9a06edd123414a427e6
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix annotation of class name after requires clause (#125019)
Uncovered in #124891.
Commit: 14178deab0334d9ce095ae7adce408868659faee
https://github.com/llvm/llvm-project/commit/14178deab0334d9ce095ae7adce408868659faee
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix a crash on parsing requires clause (#125021)
Fixes #124921.
Commit: ea84474966f19af4f1f4a1250ec258af1c6e2571
https://github.com/llvm/llvm-project/commit/ea84474966f19af4f1f4a1250ec258af1c6e2571
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix annotation of Java/JavaScript keyword extends (#125038)
Uncovered in #124891.
Commit: 33c42f8bc5615b4dc46cb45ab41da97be52474ec
https://github.com/llvm/llvm-project/commit/33c42f8bc5615b4dc46cb45ab41da97be52474ec
Author: David Majnemer <david.majnemer at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Basic/Targets/ARM.h
Log Message:
-----------
[clang] Remove aarch64 logic from 32-bit ARM target info
This logic is effectively dead code as 64-bit triples will end up
creating 64-bit TargetInfo instances.
Commit: 8af24ce51630e4811a68201e863ea496196586ac
https://github.com/llvm/llvm-project/commit/8af24ce51630e4811a68201e863ea496196586ac
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s
Log Message:
-----------
[RISCV] Cleanup vlseg-vsseg mca tests (#125099)
* LMUL8 is never valid for any segment instruction
* LMUL4 can only support seg2
* segments * LMUL must be <= 8
Commit: 45f538ecba1a51768002a5bc0c194b5af4cd9c27
https://github.com/llvm/llvm-project/commit/45f538ecba1a51768002a5bc0c194b5af4cd9c27
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lld/ELF/Driver.cpp
M lld/test/ELF/icf-safe.s
Log Message:
-----------
[ELF] ICF: replace includeInDynsym with isExported
Similar to the change to MarkLive.cpp when isExported was introduced.
includeInDynsym might return true even when isExported is false for
statically linked executables.
Commit: 1a25bea852cd4f7d99e644953c31278f7f257ccd
https://github.com/llvm/llvm-project/commit/1a25bea852cd4f7d99e644953c31278f7f257ccd
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Format/FormatToken.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Add ClassHeadName to help annotating StartOfName (#124891)
Fixes #124574.
Commit: b89617d02d1c8a2701c1d3290d2ff45cd858ccde
https://github.com/llvm/llvm-project/commit/b89617d02d1c8a2701c1d3290d2ff45cd858ccde
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
R .github/workflows/clang-tests.yml
R .github/workflows/libclc-tests.yml
R .github/workflows/lld-tests.yml
R .github/workflows/lldb-tests.yml
M .github/workflows/llvm-tests.yml
M .github/workflows/premerge.yaml
Log Message:
-----------
workflows/premerge: Add macOS testing for release branch (#124303)
Also, remove the old pre-merge tests since Linux and Windows are tested on buildkite now.
Commit: b8734797a3f605c4aaa37fcb5007baa273565460
https://github.com/llvm/llvm-project/commit/b8734797a3f605c4aaa37fcb5007baa273565460
Author: Gedare Bloom <gedare at rtems.org>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M clang/lib/Format/ContinuationIndenter.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix mismatched break in BlockIndent (#124998)
Near the ColumnLimit a break could be inserted before a right parens
with BlockIndent without a break after the matching left parens. Avoid
these hanging right parens by disallowing breaks before right parens
unless there was a break after the left parens.
Fixes #103306
Commit: 79df1c3c41ccf564b3b9c1a6c227417ffd80f6eb
https://github.com/llvm/llvm-project/commit/79df1c3c41ccf564b3b9c1a6c227417ffd80f6eb
Author: Tai Ly <tai.ly at arm.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaReduceTransposes.cpp
M mlir/test/Dialect/Tosa/invalid.mlir
M mlir/test/Dialect/Tosa/ops.mlir
Log Message:
-----------
[mlir][tosa] Fix merge problems with mul shift (#125129)
This patch fixes merge issues in TosaOpBase.td and TosaOps.td wrt traits
on tosa elementwise ops and multiply op which, with the optional shift
operand, is no longer strictly an elementwise op.
fixed up inferReturnTypeComponents to be based on only the first two
operands (ie, ignoring shift, if present)
also fixed up TosaReduceTransposes to special handle tosa mul op now
that it is not an elementwise op.
Signed-off-by: Tai Ly <tai.ly at arm.com>
Commit: f8ef2699d860aea97750953f1b79db8ef7574e82
https://github.com/llvm/llvm-project/commit/f8ef2699d860aea97750953f1b79db8ef7574e82
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A .github/workflows/commit-access-greeter.yml
M llvm/utils/git/github-automation.py
Log Message:
-----------
workflows: Add some automation for commit access requests (#123113)
* Greet the user and ask them to read the developer policy.
* Post their contribution stats on the issue.
Commit: 2941fa39410f7492aeaf73c90b92c3bfb7115044
https://github.com/llvm/llvm-project/commit/2941fa39410f7492aeaf73c90b92c3bfb7115044
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Sema/HeuristicResolver.cpp
M clang/unittests/Sema/HeuristicResolverTest.cpp
Log Message:
-----------
[clang][HeuristicResolver] Only perform qualifier check for instance methods (#125166)
Fixes https://github.com/llvm/llvm-project/issues/125164
Commit: a5a2e2fc62824287aca02e80ce237c695ea89000
https://github.com/llvm/llvm-project/commit/a5a2e2fc62824287aca02e80ce237c695ea89000
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/RegisterCoalescer.cpp
Log Message:
-----------
[CodeGen]RegisterCoalescer: Remove the print() method (#125042)
I saw that there used to be an overload `operator<<(OS, const Pass &P)`.
Now that it's gone, I still don't find anyone using the print method
except the internal debug printing hidden under `LLVM_DEBUG` in this
function.
Commit: 3b2f4f4ab2d7a2008a3b0dcc46526429f7e29101
https://github.com/llvm/llvm-project/commit/3b2f4f4ab2d7a2008a3b0dcc46526429f7e29101
Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSystemOperands.td
Log Message:
-----------
[RISCV] Fix Enum for Custom Vendor CSR encodings (#125172)
The enum added in 1401703fe42003745e6937efa13078b462a9d706 does not work
for custom vendor CSRs due to the presence of a "." in the
`<vendor>.<csr>` naming scheme required by the toolchain convention.
Fix this by adding a new EnumName to the SysReg class which replaces the
"." with and "_" before passing it to tablegen.
Commit: d6fa74ab3d4cc77005836e72a2d6fe222bab4c59
https://github.com/llvm/llvm-project/commit/d6fa74ab3d4cc77005836e72a2d6fe222bab4c59
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
M lld/ELF/Driver.cpp
M lld/ELF/InputFiles.cpp
M lld/ELF/SymbolTable.cpp
M lld/ELF/Symbols.cpp
M lld/ELF/Symbols.h
M lld/ELF/SyntheticSections.cpp
M lld/ELF/Writer.cpp
Log Message:
-----------
[ELF] Merge exportDynamic/isExported and remove Symbol::includeInDynsym
Commit 3733ed6f1c6b0eef1e13e175ac81ad309fc0b080 introduced isExported to
cache includeInDynsym. If we don't unnecessarily set isExported for
undefined symbols, exportDynamic/includeInDynsym can be replaced with
isExported.
Commit: 51b123078e64d73f7d8db78645d6f56fbed3215d
https://github.com/llvm/llvm-project/commit/51b123078e64d73f7d8db78645d6f56fbed3215d
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-30 (Thu, 30 Jan 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/qshrn.ll
Log Message:
-----------
[msan][NFCI] Add tests for NEON saturating extract and narrow (#125140)
Copied from llvm/test/CodeGen/AArch64/qshrn.ll
Unknown instructions (not correctly handled):
- llvm.aarch64.neon.sqxtn.v2i32, llvm.aarch64.neon.sqxtn.v4i16,
llvm.aarch64.neon.sqxtn.v8i8
- llvm.aarch64.neon.sqxtun.v2i32, llvm.aarch64.neon.sqxtun.v4i16,
llvm.aarch64.neon.sqxtun.v8i8
- llvm.aarch64.neon.uqxtn.v2i32, llvm.aarch64.neon.uqxtn.v4i16,
llvm.aarch64.neon.uqxtn.v8i8
Commit: e6d16f93b329f2f9618d18d0b99c6060e206cf08
https://github.com/llvm/llvm-project/commit/e6d16f93b329f2f9618d18d0b99c6060e206cf08
Author: Pravin Jagtap <Pravin.Jagtap at amd.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/test/MC/AMDGPU/gfx950-unsupported.s
M llvm/test/MC/AMDGPU/gfx950_asm_read_tr.s
M llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_ds_read_tr.txt
Log Message:
-----------
[AMDGPU] Allow unaligned VGPR for ds_read_b96_tr_b6 (#125169)
All load transpose instructions follow gfx950 standard of even aligned
VGPR except ds_read_b96_tr_b6, which allows unaligned VGPR.
Co-authored-by: Sirish Pande
[Sirish.Pande at amd.com](mailto:Sirish.Pande at amd.com)
Commit: d2d8e2e0306ab1f0eac6406b5f2ec4d231b1f7ff
https://github.com/llvm/llvm-project/commit/d2d8e2e0306ab1f0eac6406b5f2ec4d231b1f7ff
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
Log Message:
-----------
[clang][bytecode] Handle invalid temporary descriptors (#125033)
This happens e.g. when a vector element type is not primitive.
Commit: 9f1c825fb62319b94ac9604f733afd59e9eb461b
https://github.com/llvm/llvm-project/commit/9f1c825fb62319b94ac9604f733afd59e9eb461b
Author: David Green <david.green at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/include/clang/Basic/TargetInfo.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/Sema/SemaType.cpp
M clang/test/CodeGen/AArch64/sme-intrinsics/aarch64-sme-attrs.cpp
Log Message:
-----------
[AArch64] Enable vscale_range with +sme (#124466)
If we have +sme but not +sve, we would not set vscale_range on
functions. It should be valid to apply it with the same range with just
+sme, which can help mitigate some performance regressions in cases such
as scalable vector bitcasts (https://godbolt.org/z/exhe4jd8d).
Commit: bc47daed6d5491a7c65d4dd42da6bb11d3b1ab00
https://github.com/llvm/llvm-project/commit/bc47daed6d5491a7c65d4dd42da6bb11d3b1ab00
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Driver/ToolChains/CommonArgs.cpp
Log Message:
-----------
[Driver] Add DragonFly for handling of libdl and libexecinfo (#125179)
Commit: c242c7c13919ed273292d52fd464201105a76b53
https://github.com/llvm/llvm-project/commit/c242c7c13919ed273292d52fd464201105a76b53
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
Log Message:
-----------
[AArch64] Don't store an MCRegister in an int64_t. NFC
Reassociate arithmetic to avoid negative values.
Commit: 13d0318a9848ec322ceea4f37fb6b421d70407b0
https://github.com/llvm/llvm-project/commit/13d0318a9848ec322ceea4f37fb6b421d70407b0
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
A lldb/test/API/functionalities/gdb_remote_client/TestReadMemory.py
Log Message:
-----------
[lldb] Add support for gdb-style 'x' packet (#124733)
See also
https://discourse.llvm.org/t/rfc-fixing-incompatibilties-of-the-x-packet-w-r-t-gdb/84288
and https://sourceware.org/pipermail/gdb/2025-January/051705.html
Commit: 3736de2e3c20b4ed496a6590bc758ac0e033bd4c
https://github.com/llvm/llvm-project/commit/3736de2e3c20b4ed496a6590bc758ac0e033bd4c
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/source/Core/Module.cpp
M lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-function.s
Log Message:
-----------
[lldb] Use Function::GetAddress in Module::FindFunctions (#124938)
The original code resulted in a misfire in the symtab vs. debug info
deduplication code, which caused us to return the same function twice
when searching via a regex (for functions whose entry point is also not
the lowest address).
Commit: 3ae0f3047b5a0de8ef98c167610f6018f615b7ea
https://github.com/llvm/llvm-project/commit/3ae0f3047b5a0de8ef98c167610f6018f615b7ea
Author: Luke Lau <luke at igalia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/mask-reg-alloc.mir
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.mir
Log Message:
-----------
[RISCV] Add missing implicit $vtype to vector copies in mir tests. NFC
After #118283 COPYs now have implicit uses on $vtype, but these were
silently missing in these tests because they're appended to the end of
line and so still pass.
Commit: 658c48e0b6d66c6280090c6fdf88137d50a35b67
https://github.com/llvm/llvm-project/commit/658c48e0b6d66c6280090c6fdf88137d50a35b67
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/X86/gfni-shifts.ll
Log Message:
-----------
[X86] gfni-shifts.ll - regenerate VPTERNLOG comments
Commit: c58eb8c16049439cdb0ddd87b5d57a1dcf946c31
https://github.com/llvm/llvm-project/commit/c58eb8c16049439cdb0ddd87b5d57a1dcf946c31
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
Log Message:
-----------
[X86] gfni-funnel-shifts.ll - regenerate VPTERNLOG comments
Commit: 97b066f4e92a0df46b9d10721e988210f0d1afb6
https://github.com/llvm/llvm-project/commit/97b066f4e92a0df46b9d10721e988210f0d1afb6
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/include/clang/Basic/LangOptions.h
M clang/lib/CodeGen/Targets/ARM.cpp
A clang/test/CodeGen/arm-empty-args.cpp
Log Message:
-----------
[ARM] Empty structs are 1-byte for C++ ABI (#124762)
For C++ (but not C), empty structs should be passed to functions as if
they are a 1 byte object with 1 byte alignment.
This is defined in Arm's CPPABI32:
https://github.com/ARM-software/abi-aa/blob/main/cppabi32/cppabi32.rst
For the purposes of parameter passing in AAPCS32, a parameter whose
type is an empty class shall be treated as if its type were an
aggregate with a single member of type unsigned byte.
The AArch64 equivalent of this has an exception for structs containing
an array of size zero, I've kept that logic for ARM. I've not found a
reason for this exception, but I've checked that GCC does have the same
behaviour for ARM as it does for AArch64.
The AArch64 version has an Apple ABI with different rules, which ignores
empty structs in both C and C++. This is documented at
https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms.
The ARM equivalent of that appears to be AAPCS16_VFP, used for WatchOS,
but I can't find any documentation for that ABI, so I'm not sure what
rules it should follow. For now I've left it following the AArch64 Apple
rules.
Commit: 2bffa5bf7abd4fc7b84f14d029a97c49f4b61130
https://github.com/llvm/llvm-project/commit/2bffa5bf7abd4fc7b84f14d029a97c49f4b61130
Author: Omair Javaid <omair.javaid at linaro.org>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_WoW64.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_i386.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_x86_64.cpp
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb][Windows] WoA HW Watchpoint support in LLDB (#108072)
This PR adds support for hardware watchpoints in LLDB for AArch64
Windows targets.
Windows does not provide an API to query the number of available
hardware watchpoints supported by underlying hardware platform.
Therefore, current implementation supports only a single hardware
watchpoint, which has been verified on Windows 11 using Microsoft
SQ2 and Snapdragon Elite X hardware.
LLDB test suite ninja check-lldb still fails watchpoint-related tests.
However, tests that do not require more than a single watchpoint
pass successfully when run individually.
Commit: aeaafce4644788963d9823067e46b50266af4f05
https://github.com/llvm/llvm-project/commit/aeaafce4644788963d9823067e46b50266af4f05
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/PrivateReductionUtils.cpp
M flang/lib/Lower/OpenMP/PrivateReductionUtils.h
M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
M flang/lib/Lower/OpenMP/ReductionProcessor.h
M flang/lib/Optimizer/CodeGen/CodeGenOpenMP.cpp
M flang/lib/Optimizer/OpenMP/MapsForPrivatizedSymbols.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-omp-private-allocatable.mlir
M flang/test/Analysis/AliasAnalysis/alias-analysis-omp-teams-distribute-private-ptr.mlir
M flang/test/Analysis/AliasAnalysis/alias-analysis-omp-teams-distribute-private.mlir
M flang/test/Fir/boxproc-openmp.fir
M flang/test/HLFIR/opt-variable-assign-omp.fir
M flang/test/Integration/OpenMP/copyprivate.f90
M flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
M flang/test/Integration/OpenMP/private-global.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/distribute-standalone-private.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/equivalence.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/target-private-allocatable.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/target-private-multiple-variables.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/target-private-simple.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/wsloop.f90
M flang/test/Lower/OpenMP/cfg-conversion-omp.private.f90
M flang/test/Lower/OpenMP/copyprivate.f90
M flang/test/Lower/OpenMP/default-clause-byref.f90
M flang/test/Lower/OpenMP/delayed-privatization-allocatable-array.f90
M flang/test/Lower/OpenMP/delayed-privatization-allocatable-firstprivate.f90
M flang/test/Lower/OpenMP/delayed-privatization-allocatable-private.f90
M flang/test/Lower/OpenMP/delayed-privatization-array.f90
M flang/test/Lower/OpenMP/delayed-privatization-character-array.f90
M flang/test/Lower/OpenMP/delayed-privatization-character.f90
M flang/test/Lower/OpenMP/delayed-privatization-default-init.f90
M flang/test/Lower/OpenMP/delayed-privatization-firstprivate.f90
A flang/test/Lower/OpenMP/delayed-privatization-lastprivate-of-private.f90
M flang/test/Lower/OpenMP/delayed-privatization-pointer.f90
M flang/test/Lower/OpenMP/delayed-privatization-private-firstprivate.f90
M flang/test/Lower/OpenMP/delayed-privatization-private.f90
M flang/test/Lower/OpenMP/delayed-privatization-reduction-byref.f90
M flang/test/Lower/OpenMP/delayed-privatization-reduction.f90
M flang/test/Lower/OpenMP/derived-type-allocatable.f90
M flang/test/Lower/OpenMP/firstprivate-alloc-comp.f90
M flang/test/Lower/OpenMP/implicit-dsa.f90
M flang/test/Lower/OpenMP/loop-directive.f90
M flang/test/Lower/OpenMP/parallel-firstprivate-clause-scalar.f90
M flang/test/Lower/OpenMP/parallel-private-clause-fixes.f90
M flang/test/Lower/OpenMP/parallel-private-clause-str.f90
M flang/test/Lower/OpenMP/parallel-private-clause.f90
M flang/test/Lower/OpenMP/parallel-reduction-allocatable-array.f90
M flang/test/Lower/OpenMP/parallel-reduction-pointer-array.f90
A flang/test/Lower/OpenMP/pointer-to-array.f90
M flang/test/Lower/OpenMP/private-commonblock.f90
M flang/test/Lower/OpenMP/private-derived-type.f90
M flang/test/Lower/OpenMP/same_var_first_lastprivate.f90
M flang/test/Lower/OpenMP/simd.f90
M flang/test/Lower/OpenMP/task2.f90
M flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90
M flang/test/Transforms/generic-loop-rewriting.mlir
M flang/test/Transforms/omp-maps-for-privatized-symbols.fir
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir
M mlir/test/Dialect/OpenMP/invalid.mlir
M mlir/test/Dialect/OpenMP/ops.mlir
M mlir/test/Target/LLVMIR/openmp-firstprivate.mlir
M mlir/test/Target/LLVMIR/openmp-llvm.mlir
M mlir/test/Target/LLVMIR/openmp-omp.private-dealloc.mlir
M mlir/test/Target/LLVMIR/openmp-private.mlir
M mlir/test/Target/LLVMIR/openmp-simd-private.mlir
M mlir/test/Target/LLVMIR/openmp-target-multiple-private.mlir
M mlir/test/Target/LLVMIR/openmp-target-private-allocatable.mlir
M mlir/test/Target/LLVMIR/openmp-target-private.mlir
M mlir/test/Target/LLVMIR/openmp-target-simd-on_device.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
M mlir/test/Target/LLVMIR/openmp-wsloop-private-cond_br.mlir
M mlir/test/Target/LLVMIR/openmp-wsloop-private.mlir
Log Message:
-----------
[mlir][OpenMP][flang] make private variable allocation implicit in omp.private (#124019)
The intention of this work is to give MLIR->LLVMIR conversion freedom to
control how the private variable is allocated so that it can be
allocated on the stack in ordinary cases or as part of a structure used
to give closure context for tasks which might outlive the current stack
frame. See RFC:
https://discourse.llvm.org/t/rfc-openmp-supporting-delayed-task-execution-with-firstprivate-variables/83084
For example, a privatizer for an integer used to look like
```mlir
omp.private {type = private} @x.privatizer : !fir.ref<i32> alloc {
^bb0(%arg0: !fir.ref<i32>):
%0 = ... allocate proper memory for the private clone ...
omp.yield(%0 : !fir.ref<i32>)
}
```
After this change, allocation become implicit in the operation:
```mlir
omp.private {type = private} @x.privatizer : i32
```
For more complex types that require initialization after allocation, an
init region can be used:
``` mlir
omp.private {type = private} @x.privatizer : !some.type init {
^bb0(%arg0: !some.pointer<!some.type>, %arg1: !some.pointer<!some.type>):
// initialize %arg1, using %arg0 as a mold for allocations
omp.yield(%arg1 : !some.pointer<!some.type>)
} dealloc {
^bb0(%arg0: !some.pointer<!some.type>):
... deallocate memory allocated by the init region ...
omp.yield
}
```
This patch lays the groundwork for delayed task execution but is not
enough on its own.
After this patch all gfortran tests which previously passed still pass.
There
are the following changes to the Fujitsu test suite:
- 0380_0009 and 0435_0009 are fixed
- 0688_0041 now fails at runtime. This patch is testing firstprivate
variables with tasks. Previously we got lucky with the undefined
behavior and won the race. After these changes we no longer get lucky.
This patch lays the groundwork for a proper fix for this issue.
In flang the lowering re-uses the existing lowering used for reduction
init and dealloc regions.
In flang, before this patch we hit a TODO with the same wording when
generating the copy region for firstprivate polymorphic variables. After
this patch the box-like fir.class is passed by reference into the copy
region, leading to a different path that didn't hit that old TODO but
the generated code still didn't work so I added a new TODO in
DataSharingProcessor.
Commit: a8a5998e9015523549a61458a9e5fdaedd0e2f59
https://github.com/llvm/llvm-project/commit/a8a5998e9015523549a61458a9e5fdaedd0e2f59
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/Transforms/DeadStoreElimination/stores-of-existing-values.ll
Log Message:
-----------
[DSE] Add tests for redundant store elimination with different attrs (NFC)
Commit: 6f6d8084ad38734abc826ade0bdab75c001a6863
https://github.com/llvm/llvm-project/commit/6f6d8084ad38734abc826ade0bdab75c001a6863
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/PhaseOrdering/X86/hadd.ll
M llvm/test/Transforms/PhaseOrdering/X86/hsub.ll
M llvm/test/Transforms/PhaseOrdering/X86/pr50392.ll
M llvm/test/Transforms/VectorCombine/X86/insert-binop-vector.ll
Log Message:
-----------
[VectorCombine] Fold insert(binop(x,y),binop(a,b),idx) --> binop(insert(x,a,idx),insert(y,b,idx)) (#124909)
Add foldInsExtBinop fold to cleanup missed vectorization cases which can happen on targets with cheap insert/extract instructions which prevent foldExtractExtract (binop(extract(x),extract(y)) -> extract(binop(x,shuffle(y)))) from helping with the merge.
Commit: 41910f72638354cfd27cf7c518dde47e9eb9deab
https://github.com/llvm/llvm-project/commit/41910f72638354cfd27cf7c518dde47e9eb9deab
Author: John Harrison <harjohn at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/tools/lldb-dap/IOStream.h
Log Message:
-----------
[lldb-dap] Fix build failure on Windows. (#125156)
A previous change is triggering a failure due to SOCKET not being
defined in IOStream.h. Adjusting the Windows includes to correct the
imports and using a more narrow import (winsock2.h vs windows.h).
Also removed a stale comment.
Tested this on an x86_64 wins 11 vm.
This should fix https://lab.llvm.org/buildbot/#/builders/197/builds/1379
and https://lab.llvm.org/buildbot/#/builders/141/builds/5878
Commit: 614f1ab7575c83a28811fc6881eba512788101a0
https://github.com/llvm/llvm-project/commit/614f1ab7575c83a28811fc6881eba512788101a0
Author: kper <kevin.per at protonmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[lldb] Add RISCV for Makefile.rules (#124758)
As discussed with @DavidSpickett in discord. Running the test runner
caused the following issue:
```
gmake: Entering directory '/home/kper/oss/llvm-project/build/lldb-test-build.noindex/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.test'
/home/kper/oss/llvm-project/build/bin/clang++ -std=c++11 -g -O0 -mriscv -I/home/kper/oss/llvm-project/lldb/packages/Python/lldbsuite/test/make/../../../../..//include -I/home/kper/oss/llvm-project/build/tools/lldb/include -I/home/kper/oss/llvm-project/lldb/test/API/functionalities/thread/concurrent_events -I/home/kper/oss/llvm-project/lldb/packages/Python/lldbsuite/test/make -include /home/kper/oss/llvm-project/lldb/packages/Python/lldbsuite/test/make/test_common.h -fno-limit-debug-info --driver-mode=g++ -MT main.o -MD -MP -MF main.d -c -o main.o /home/kper/oss/llvm-project/lldb/test/API/functionalities/thread/concurrent_events/main.cpp
clang++: error: unknown argument: '-mriscv'
gmake: *** [Makefile.rules:619: main.o] Error 1
```
By overriding the flags, we avoid the `-mriscv`.
Commit: 95e19e21c55db7ede8ff7795512bbfc4ca0ca782
https://github.com/llvm/llvm-project/commit/95e19e21c55db7ede8ff7795512bbfc4ca0ca782
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Support/Unix/Signals.inc
Log Message:
-----------
[llvm][Support] Enable dl_iterate_phdr support on OpenBSD and DragonFly (#125186)
Commit: a5f237f3ece6e85da6346b4b420878528d6f894d
https://github.com/llvm/llvm-project/commit/a5f237f3ece6e85da6346b4b420878528d6f894d
Author: Anton Sidorenko <anton.sidorenko at syntacore.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/tools/llvm-mca/Views/ResourcePressureView.cpp
M llvm/tools/llvm-mca/Views/ResourcePressureView.h
Log Message:
-----------
[MCA] Optimize memory consumption in resource pressure view (NFC) (#124904)
ResourceUsage is a very sparse table. On large input asm sequences it
consumes a lot of memory utilizing only a few percents of it (~4% on my
benchmark). Reorganization of ResourceUsage to keep only used fields
allows saving up to 18% of total memory use by mca or ~850% of input
file size (~1.1GB in absolute values in my case).
Commit: 4cfbe55d9157054c62a63aa4597305afa7e8bfa1
https://github.com/llvm/llvm-project/commit/4cfbe55d9157054c62a63aa4597305afa7e8bfa1
Author: Guojin <he.guojin at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/include/mlir/Target/LLVMIR/ModuleImport.h
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
A mlir/test/Target/LLVMIR/Import/target-triple.ll
Log Message:
-----------
[MLIR][LLVM] Import LLVM target triple into MLIR LLVM Dialect (#125084)
It would be essential and useful info to have it in MLIR when we are
doing optimizations at MLIR level using LLVM IR as input.
Commit: 28d7880618fc4d3702255803db186bfad2f9df59
https://github.com/llvm/llvm-project/commit/28d7880618fc4d3702255803db186bfad2f9df59
Author: Sam Parker <sam.parker at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
A llvm/test/CodeGen/WebAssembly/int-mac-reduction-loops.ll
A llvm/test/Transforms/LoopVectorize/WebAssembly/int-mac-reduction-costs.ll
Log Message:
-----------
[WebAssembly] getMemoryOpCost and getCastInstrCost (#122896)
Add inital implementations of these TTI methods for SIMD types. For
casts, The costing covers the free extensions provided by extmul_low as
well as extend_low. For memory operations we consider the use of
load32_zero and load64_zero, as well as full width v128 loads.
Commit: 466217eb0334d467ec8e9b96c52ee988aaadc389
https://github.com/llvm/llvm-project/commit/466217eb0334d467ec8e9b96c52ee988aaadc389
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
Log Message:
-----------
[SLP]Fix graph traversal in getSpillCost
getSpill cost relies on def-use order when performs the analysis for the
vectorized instructions live-over-calls spills.
Patch fixes it to check the dependencies based on TreeEntries and
performs actual vectorized type analysis.
Reviewers: RKSimon, preames
Reviewed By: preames
Pull Request: https://github.com/llvm/llvm-project/pull/124984
Commit: 32126a3fda7b840d6125dd4375bdf53502b3c110
https://github.com/llvm/llvm-project/commit/32126a3fda7b840d6125dd4375bdf53502b3c110
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
A llvm/test/Transforms/GlobalOpt/read-with-constexpr-users.ll
Log Message:
-----------
[GlobalOpt] Add tests with reads from globals with constant exprs.
Commit: 77d3f8a92564b533a3c60a8c8e0657c38fd88ba1
https://github.com/llvm/llvm-project/commit/77d3f8a92564b533a3c60a8c8e0657c38fd88ba1
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/docs/UsersManual.rst
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/test/CodeGen/tbaa-pointers.c
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/unittests/CodeGen/TBAAMetadataTest.cpp
Log Message:
-----------
[TBAA] Don't emit pointer-tbaa for void pointers. (#122116)
While there are no special rules in the standards regarding void
pointers and strict aliasing, emitting distinct tags for void pointers
break some common idioms and there is no good alternative to re-write
the code without strict-aliasing violations. An example is to count the
entries in an array of pointers:
int count_elements(void * values) {
void **seq = values;
int count;
for (count = 0; seq && seq[count]; count++);
return count;
}
https://clang.godbolt.org/z/8dTv51v8W
An example in the wild is from
https://github.com/llvm/llvm-project/issues/119099
This patch avoids emitting distinct tags for void pointers, to avoid
those idioms causing mis-compiles for now.
Fixes https://github.com/llvm/llvm-project/issues/119099.
Fixes https://github.com/llvm/llvm-project/issues/122537.
PR: https://github.com/llvm/llvm-project/pull/122116
Commit: 3c8dfce3def48982e47f2fbad5b78f409ef63467
https://github.com/llvm/llvm-project/commit/3c8dfce3def48982e47f2fbad5b78f409ef63467
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/InterpFrame.cpp
Log Message:
-----------
[clang][bytecode][NFC] Use RetPC in InterpFrame::getExpr() as well (#125200)
Both getLocation() and getRange() use the RetPC if the current function
doesn't have a usable body. Using PC here was just a typo.
Commit: e588085af03ba4be14a502806918fd74ca1cf367
https://github.com/llvm/llvm-project/commit/e588085af03ba4be14a502806918fd74ca1cf367
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/slpordering.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/alternate-vectorization-split-node.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/gather-with-minbith-user.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
M llvm/test/Transforms/SLPVectorizer/X86/buildvector-schedule-for-subvector.ll
M llvm/test/Transforms/SLPVectorizer/X86/long-full-reg-stores.ll
M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-load-reduced-as-part-of-bv.ll
M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reused-pointer.ll
M llvm/test/Transforms/SLPVectorizer/X86/splat-score-adjustment.ll
M llvm/test/Transforms/SLPVectorizer/addsub.ll
M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
Log Message:
-----------
[SLP]Reduce number of alternate instruction, where possible
Patch tries to remove wide alternate operations.
Currently SLP vectorizer emits something like this:
```
%0 = add i32
%1 = sub i32
%2 = add i32
%3 = sub i32
%4 = add i32
%5 = sub i32
%6 = add i32
%7 = sub i32
transformes to
%v1 = add <8 x i32>
%v2 = sub <8 x i32>
%res = shuffle %v1, %v2, <0, 9, 2, 11, 4, 13, 6, 15>
```
i.e. half of the results are just unused. This leads to increased
register pressure and potentially doubles number of operations.
Patch introduces SplitVectorize mode, where it splits the operations by
opcodes and produces instead something like this:
```
%v1 = add <4 x i32>
%v2 = sub <4 x i32>
%res = shuffle %v1, %v2, <0, 4, 1, 5, 2, 6, 3, 7>
```
It allows to improve the performance by reducing number of ops. Also, it
turns on some other improvements, like improved graph reordering.
-O3+LTO, AVX512
Metric: size..text
Program size..text
results results0 diff
test-suite :: MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc.test 277800.00 280536.00 1.0%
test-suite :: MultiSource/Benchmarks/FreeBench/pifft/pifft.test 81802.00 82426.00 0.8%
test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 790552.00 790952.00 0.1%
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test 383795.00 383987.00 0.1%
test-suite :: External/SPEC/CINT2017speed/600.perlbench_s/600.perlbench_s.test 2075541.00 2076501.00 0.0%
test-suite :: External/SPEC/CINT2017rate/500.perlbench_r/500.perlbench_r.test 2075541.00 2076501.00 0.0%
test-suite :: MultiSource/Benchmarks/Bullet/bullet.test 312702.00 312766.00 0.0%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12569783.00 12569751.00 -0.0%
test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 2049374.00 2049358.00 -0.0%
test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test 1091836.00 1091772.00 -0.0%
test-suite :: MultiSource/Applications/JM/lencod/lencod.test 852339.00 852211.00 -0.0%
test-suite :: MultiSource/Applications/oggenc/oggenc.test 190651.00 190523.00 -0.1%
test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/miniGMG/miniGMG.test 44203.00 44155.00 -0.1%
test-suite :: SingleSource/UnitTests/Vector/AVX512BWVL/Vector-AVX512BWVL-mask_set_bw.test 12997.00 12981.00 -0.1%
test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test 668971.00 658427.00 -1.6%
test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test 668971.00 658427.00 -1.6%
Prolangs-C/TimberWolfMC/timberwolfmc - small variations, some code not
inlined
FreeBench/pifft - extra stores <8 x double> vectorized, some other extra
vectorizations
CINT2006/464.h264ref - some smaller code + changes similar to x264
JM/ldecod - changes similar x264
CINT2017speed/600.perlbench_s
CINT2017rate/500.perlbench_r - significantly compact vector code
Benchmarks/Bullet - small variations
CFP2017rate/526.blender_r - small variations
CFP2017rate/510.parest_r - small variations
CINT2006/400.perlbench - extra vector code
JM/lencod - extra store <16 x i32> and other changes similar x264
Applications/oggenc - extra store <16 x i8>, small variations
DOE-ProxyApps-C/miniGMG - small variations
Vector/AVX512BWVL/Vector-AVX512BWVL-mask_set_bw - better vector code
CINT2017speed/625.x264_s
CINT2017rate/525.x264_r - the number of instructions increased, but
looks like they are more performant. E.g., for function
x264_pixel_satd_8x8, llvm-mca reports better throughput - 84 for the
current version and 59 for the new version.
-O3+LTO, march=rva32u64
CINT2017rate/525.x264_r - similar to x86, extra code in pixel_hadamard_ac
function vectorized, idct4x4dc stopped being vectorized (looks like
issue with shuffles cost)
CINT2006/400.perlbench - better vector code
CINT2006/445.gobmk - some variations in vector code
CINT2006/464.h264ref - extra code vectorized
CINT2017rate/500.perlbench_r - small variations
-O3+LTO, mcpu=sifive-p470
Metric: size..text
Program size..text
results results0 diff
test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 587336.00 587668.00 0.1%
test-suite :: MultiSource/Applications/JM/lencod/lencod.test 643308.00 643614.00 0.0%
test-suite :: MultiSource/Applications/d/make_dparser.test 79678.00 79710.00 0.0%
test-suite :: MultiSource/Benchmarks/Bullet/bullet.test 277322.00 277420.00 0.0%
test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test 933660.00 933682.00 0.0%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 9497722.00 9497682.00 -0.0%
test-suite :: External/SPEC/CINT2017rate/500.perlbench_r/500.perlbench_r.test 1767806.00 1767772.00 -0.0%
test-suite :: External/SPEC/CINT2017speed/600.perlbench_s/600.perlbench_s.test 1767806.00 1767772.00 -0.0%
test-suite :: MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame.test 148038.00 148024.00 -0.0%
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test 283036.00 283008.00 -0.0%
test-suite :: MultiSource/Benchmarks/mediabench/g721/g721encode/encode.test 4776.00 4772.00 -0.1%
test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test 540582.00 511772.00 -5.3%
test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test 540582.00 511772.00 -5.3%
CINT2006/464.h264ref - extra vector code in find_sad_16x16
JM/lencod - extra vector code in find_sad_16x16
d/make_dparser - smaller vector code
Benchmarks/Bullet - small variations
CINT2006/400.perlbench - smaller vector code
CFP2017rate/526.blender_r - small variations, extra store <8 x float> in
the loop, extra store <8 x i8> in loop
CINT2017rate/500.perlbench_r
CINT2017speed/600.perlbench_s - small variations
MiBench/consumer-lame - small variations
JM/ldecod - extra vector code
mediabench/g721/g721encode - small variations
CINT2017rate/525.x264_r
CINT2017speed/625.x264_s - reduced number of wide operations and
shuffles, saving the registers, similar to X86, extra code in
pixel_hadamard_ac vectorized, idct4x4dc not vectorized (issue with some
TTI costs)
Reviewers: RKSimon, hiraditya
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/123360
Commit: 650beee9125dc784978ed1716f62fe89fd157f58
https://github.com/llvm/llvm-project/commit/650beee9125dc784978ed1716f62fe89fd157f58
Author: David Green <david.green at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/AArch64/misched-fusion-cmp-bcc.ll
Log Message:
-----------
[AArch64] Change misched-fusion-cmp-bcc.ll to use valid cpu names. NFC
Commit: 8bd728180cadbab9fe11cd853670e488827ee302
https://github.com/llvm/llvm-project/commit/8bd728180cadbab9fe11cd853670e488827ee302
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/test/Shell/SymbolFile/DWARF/x86/explicit-member-function-quals.cpp
Log Message:
-----------
[lldb][test] explicit-member-function-quals.cpp: fix expected output
The `type lookup` output looks different.
Commit: 9cf8ee91451788b08a0bcda924bfbb3754c454da
https://github.com/llvm/llvm-project/commit/9cf8ee91451788b08a0bcda924bfbb3754c454da
Author: Anton Sidorenko <anton.sidorenko at syntacore.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/tools/llvm-mca/Views/BottleneckAnalysis.h
Log Message:
-----------
[MCA] Do not allocate space for DependenceEdge by default in DependencyGraphNode (NFC) (#125080)
For each instruction from the input assembly sequence, DependencyGraph
has a dedicated node (DGNode). Outgoing edges (data, resource and memory
dependencies) are tracked as SmallVector<..., 8> for each DGNode in the
graph. However, it's unlikely that a usual input instruction will have
approximately eight dependent instructions. Below is my statistics for
several RISC-V input sequences:
```
Number of | Number of nodes with
edges | this # of edges
---------------------------------
0 | 8239447
1 | 464252
2 | 6164
3 | 6783
4 | 939
5 | 500
6 | 545
7 | 116
8 | 2
9 | 1
10 | 1
```
Approximately the same distribution is produced by llvm-mca lit tests
for X86, AArch and RISC-V (even modified ones with extra dependencies
added).
On a rather big input asm sequences, the use of SmallVector<..., 8>
dramatically increases memory consumption without any need for it. In my
case, replacing it with SmallVector<...,0> reduces memory usage by ~28%
or ~1700% of input file size (2.2GB in absolute values).
There is no change in execution time, I verified it on mca lit-tests and
on my big test (execution time is ~30s in both cases).
This change was made with the same intention as #124904 and optimizes I
believe quite an unusual scenario. However, if there is no negative
impact on other known scenarios, I'd like to have the change in
llvm-project.
Commit: eb1a571114a799f532a12b2f062746d3b92fed88
https://github.com/llvm/llvm-project/commit/eb1a571114a799f532a12b2f062746d3b92fed88
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
A llvm/test/CodeGen/SystemZ/cond-move-10.mir
Log Message:
-----------
[SystemZ] Replace SELRMux with COPY in case of identical operands. (#125108)
If both operands of a SELRMux use the same register which is killed, and
the SELRMux is expanded to a jump sequence, a broken MIR results if the
kill flag is not removed.
This patch replaces the SELRMux with a COPY in these cases.
Commit: fcb12346dd656b6ce02971c3530b2680e3a332ac
https://github.com/llvm/llvm-project/commit/fcb12346dd656b6ce02971c3530b2680e3a332ac
Author: kadir çetinkaya <kadircet at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
Log Message:
-----------
[include-cleaner] Dont report explicit refs for global operator new/delete (#125199)
These are available for all translations implicitly. We shouldn't report
explicit refs and enforce includes.
Commit: ae570d5d77e806784064ee819211868e745d0fbe
https://github.com/llvm/llvm-project/commit/ae570d5d77e806784064ee819211868e745d0fbe
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Log Message:
-----------
[lldb][TypeSystemClang] Fix enum signedness in CompleteEnumType (#125203)
I tried using `CompleteEnumType` to replace some duplicated code in
`DWARFASTParserClang::ParseEnum` but tests started failing.
`CompleteEnumType` parses/attaches the child enumerators using the
signedness it got from `CompilerType::IsIntegerType`. However, this
would only report the correct signedness for builtin integer types
(never for `clang::EnumType`s). We have a different API for that in
`CompilerType::IsIntegerOrEnumerationType` which could've been used
there instead. This patch calls `IsEnumerationIntegerTypeSigned` to
determine signedness because we always pass an enum type into
`CompleteEnumType` anyway.
Based on git history this has been the case for a long time, but
possibly never caused issues because `ParseEnum` was completing the
definition manually instead of through `CompleteEnumType`.
I couldn't find a good way to test `CompleteEnumType` on its own because
it expects an enum type to be passed to it, which only gets created in
`ParseEnum` (at which point we already call `CompleteEnumType`). The
only other place we call `CompleteEnumType` at is in
[`CompleteTypeFromDWARF`](https://github.com/llvm/llvm-project/blob/466217eb0334d467ec8e9b96c52ee988aaadc389/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp#L2260-L2262).
Though I think we don't actually ever end up calling into that codepath
because we eagerly complete enum definitions. Maybe we can remove that
call to `CompleteEnumType` in a follow-up.
Commit: 4378ec7bf4906e160bf4108b5b059b5a7d8adb37
https://github.com/llvm/llvm-project/commit/4378ec7bf4906e160bf4108b5b059b5a7d8adb37
Author: Thomas Preud'homme <thomas.preudhomme at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/IRDL/IR/CMakeLists.txt
Log Message:
-----------
[MLIR][doc] Fix docs for IRDL using -gen-dialect-doc (#125195)
mlir-tblgen fails to generate doc for IRDL because while parsing IRDL.td
it also finds the definition of the builtin dialect and cannot determine
what dialect to generate documentation for. This is because IRDL.td
includes IRDLOps.td which includes BuiltinAttributes.td which in turns
includes BuiltinDialect.td.
Commit: c1163b843b63f775817b84f124cdcf33f25c28f6
https://github.com/llvm/llvm-project/commit/c1163b843b63f775817b84f124cdcf33f25c28f6
Author: Tomas Matheson <Tomas.Matheson at arm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/include/clang/Basic/AArch64SVEACLETypes.def
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Index/USRGeneration.cpp
M clang/lib/Sema/Sema.cpp
Log Message:
-----------
[NFC] remove string literals from AArch64SVEACLETypes.def (#125063)
Remove string literals from the macro calls.
Commit: 70ec2e4a2bf1a17c6f57eaf30b48e6c4523be25a
https://github.com/llvm/llvm-project/commit/70ec2e4a2bf1a17c6f57eaf30b48e6c4523be25a
Author: Vadim Curcă <80581374+VadimCurca at users.noreply.github.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/test/Dialect/Arith/canonicalize.mlir
Log Message:
-----------
[MLIR] Fix type incompatibility in BitcastOp fold (#125193)
This commit fixes a bug in the `arith::BitcastOp::fold` function where a
poisoned constant value was incorrectly cast to `IntegerAttr`, causing a
`cast<Ty>() argument of incompatible type!` error.
Commit: 46befd720995647485c516ba94a49eee5548283a
https://github.com/llvm/llvm-project/commit/46befd720995647485c516ba94a49eee5548283a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/EvalEmitter.h
Log Message:
-----------
[clang][bytecode][NFC] Remove unused function (#125201)
... and an unused include.
Commit: 85d417564b5f959f7434f2657cc9e1ab3575311f
https://github.com/llvm/llvm-project/commit/85d417564b5f959f7434f2657cc9e1ab3575311f
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/HLFIRTools.h
M flang/test/HLFIR/assign-codegen.fir
Log Message:
-----------
Revert "[flang][hlfir] get rid of box when translating scalars to extented value" (#125222)
Reverts llvm/llvm-project#125059
Broke OPTIONAL lowering for some intrinsics.
I have a proper fix for review
https://github.com/llvm/llvm-project/pull/125215, but I would like to
better test it, so I am reverting in the meantime.
Commit: 1a314b2472a834466e728533ac8b540b1d0d9304
https://github.com/llvm/llvm-project/commit/1a314b2472a834466e728533ac8b540b1d0d9304
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
Log Message:
-----------
PeepholeOpt: Fix copy current source index accounting bug
We were essentially using the current source index as a binary
value, and didn't actually use it for indexing so it did not
matter. Use the operand to ensure the value is actually correct.
Commit: cf8c730ce931e0a38ce4bfd00660c5eacf10d992
https://github.com/llvm/llvm-project/commit/cf8c730ce931e0a38ce4bfd00660c5eacf10d992
Author: erichkeane <ekeane at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Log Message:
-----------
Fix LinalgOps build error on older clang versions
As reported in the PR #123618, 0d4efa27252cbbea4b56 included a
construction of a `FailureOr` object with a `nullptr`, which didn't work
in at least clang-10. This patch changes it into a constructor call
instead of a brace-init call so that it is unambiguous.
Commit: 6dd07b17c7ff8e61073a7732e09fa828a64f7bec
https://github.com/llvm/llvm-project/commit/6dd07b17c7ff8e61073a7732e09fa828a64f7bec
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/slpordering.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/alternate-vectorization-split-node.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/gather-with-minbith-user.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
M llvm/test/Transforms/SLPVectorizer/X86/buildvector-schedule-for-subvector.ll
M llvm/test/Transforms/SLPVectorizer/X86/long-full-reg-stores.ll
M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-load-reduced-as-part-of-bv.ll
M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reused-pointer.ll
M llvm/test/Transforms/SLPVectorizer/X86/splat-score-adjustment.ll
M llvm/test/Transforms/SLPVectorizer/addsub.ll
M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
Log Message:
-----------
Revert "[SLP]Reduce number of alternate instruction, where possible"
This reverts commit e588085af03ba4be14a502806918fd74ca1cf367 to fix
a crash reported in https://github.com/llvm/llvm-project/pull/123360#issuecomment-2627439245
Commit: a325622be523e977e0c4bae81ea8e4c6916cdb21
https://github.com/llvm/llvm-project/commit/a325622be523e977e0c4bae81ea8e4c6916cdb21
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/test/Transforms/DeadStoreElimination/stores-of-existing-values.ll
Log Message:
-----------
[DSE] Allow attribute differences in redundant store elimination (#125190)
When comparing the instructions, enable attribute intersection to allow
differences in attributes.
Note that we don't actually have to intersect the attributes on the
earlier instruction, because we're not RAUWing, so there's no chance
that we make any values more poisonous.
Commit: 55be370f375416f615a840d1c0cabe2c819e6bbb
https://github.com/llvm/llvm-project/commit/55be370f375416f615a840d1c0cabe2c819e6bbb
Author: Narayan <32898329+vortex73 at users.noreply.github.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
A llvm/test/Transforms/InstCombine/select_frexp.ll
Log Message:
-----------
[InstCombine] Fold frexp of select to select of frexp (#121227)
This patch implements an optimization to push select operations through
frexp when one of the select operands is a constant. When we encounter:
```
define float @src(float %x, i1 %bool) {
%select = select i1 %bool, float 1.000000e+00, float %x
%frexp = tail call { float, i32 } @llvm.frexp.f32.i32(float %select)
%frexp.0 = extractvalue { float, i32 } %frexp, 0
ret float %frexp.0
}
```
We transform it to:
```
define float @tgt(float %x, i1 %bool) {
%frexp = tail call { float, i32 } @llvm.frexp.f32.i32(float %x)
%frexp.0 = extractvalue { float, i32 } %frexp, 0
%select = select i1 %bool, float 5.000000e-01, float %frexp.0
ret float %select
}
```
Fixes #92542
Commit: 1f56bb3137827d66093b66aa3a6447fdaba61783
https://github.com/llvm/llvm-project/commit/1f56bb3137827d66093b66aa3a6447fdaba61783
Author: Christian Clauss <cclauss at me.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M offload/DeviceRTL/include/Configuration.h
M offload/DeviceRTL/include/Mapping.h
M offload/DeviceRTL/include/State.h
M offload/DeviceRTL/include/Synchronization.h
M offload/DeviceRTL/src/Configuration.cpp
M offload/DeviceRTL/src/Misc.cpp
M offload/DeviceRTL/src/Reduction.cpp
M offload/DeviceRTL/src/Synchronization.cpp
M offload/DeviceRTL/src/Workshare.cpp
M offload/include/OpenMP/OMPT/Callback.h
M offload/include/PluginManager.h
M offload/include/device.h
M offload/include/omptarget.h
M offload/liboffload/API/APIDefs.td
M offload/liboffload/API/README.md
M offload/liboffload/src/OffloadLib.cpp
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
M offload/plugins-nextgen/common/CMakeLists.txt
M offload/plugins-nextgen/common/include/GlobalHandler.h
M offload/plugins-nextgen/common/include/JIT.h
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/include/RPC.h
M offload/plugins-nextgen/common/src/GlobalHandler.cpp
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/cuda/src/rtl.cpp
M offload/plugins-nextgen/host/dynamic_ffi/ffi.h
M offload/src/OpenMP/API.cpp
M offload/src/OpenMP/Mapping.cpp
M offload/src/PluginManager.cpp
M offload/src/device.cpp
M offload/src/interface.cpp
M offload/src/omptarget.cpp
M offload/test/api/omp_target_memcpy_async1.c
M offload/test/mapping/target_uses_allocator.c
M offload/test/offloading/fortran/dump_map_tables.f90
M offload/test/offloading/fortran/implicit-record-field-mapping.f90
M offload/test/offloading/fortran/local-descriptor-map-regress.f90
M offload/test/offloading/fortran/target-map-derived-type-full-1.f90
M offload/test/offloading/fortran/target-map-derived-type-full-implicit-1.f90
M offload/test/offloading/fortran/target-map-derived-type-full-implicit-2.f90
M offload/test/offloading/parallel_target_teams_reduction_max.cpp
M offload/test/offloading/parallel_target_teams_reduction_min.cpp
M offload/test/offloading/struct_mapping_with_pointers.cpp
M offload/test/unified_shared_memory/associate_ptr.c
M offload/test/unified_shared_memory/close_member.c
M offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp
Log Message:
-----------
[Offload][NFC] Fix typos discovered by codespell (#125119)
https://github.com/codespell-project/codespell
% `codespell
--ignore-words-list=archtype,hsa,identty,inout,iself,nd,te,ths,vertexes
--write-changes`
Commit: 5fbb8dd7da5cd8b76127e780d418fe780d3337a4
https://github.com/llvm/llvm-project/commit/5fbb8dd7da5cd8b76127e780d418fe780d3337a4
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/include/mlir-c/Dialect/LLVM.h
M mlir/include/mlir-c/Target/LLVMIR.h
M mlir/lib/CAPI/Dialect/LLVM.cpp
M mlir/lib/CAPI/Target/CMakeLists.txt
M mlir/lib/CAPI/Target/LLVMIR.cpp
M mlir/test/CAPI/translation.c
Log Message:
-----------
[mlir][llvmir][reland] expose Type(To/From)LLVMIRTranslator C API (#125110)
Commit: c8ba57ec23ddf6ab9a178dbabc8b61924f0f36fa
https://github.com/llvm/llvm-project/commit/c8ba57ec23ddf6ab9a178dbabc8b61924f0f36fa
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ParentMapContext.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#125157)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect NodeOrVector to be nonnull.
Commit: 9268494f03cb940de0ae4b747b447ffc07b10ea7
https://github.com/llvm/llvm-project/commit/9268494f03cb940de0ae4b747b447ffc07b10ea7
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
Log Message:
-----------
[TableGen] Migrate away from PointerUnion::dyn_cast (NFC) (#125158)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect DiagsInPedantic and GroupsInPedantic to be nonnull.
Commit: 5a116f8a730f6aba873ba7237a308495b2fcef2c
https://github.com/llvm/llvm-project/commit/5a116f8a730f6aba873ba7237a308495b2fcef2c
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[Vectorize] Migrate away from PointerUnion::dyn_cast (NFC) (#125159)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect InVectors.front() and P to be nonnull.
Commit: 7a0c6cfdf3ec3715e963c94267a22d8d743826fd
https://github.com/llvm/llvm-project/commit/7a0c6cfdf3ec3715e963c94267a22d8d743826fd
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/WindowScheduler.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#125160)
Commit: 0d63a3d7572039095fabeadc7f1370da7dfa0d1b
https://github.com/llvm/llvm-project/commit/0d63a3d7572039095fabeadc7f1370da7dfa0d1b
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/LegalizeDataValues.cpp
Log Message:
-----------
[mlir][acc] Update LegalizeDataValues pass to allow MappableType (#125134)
With the addition of new type interface MappableType, the
LegalizeDataValues should not make the assumption it can obtain a
pointer to the data (aka acc::getVarPtr() is now not guaranteed to get a
value - acc::getVar() must be used instead).
Thus update the pass to ensure it handles any var used in its data
clause operations.
Commit: 7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b
https://github.com/llvm/llvm-project/commit/7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/include/lldb/API/SBProcess.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Target/StopInfo.h
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadList.h
M lldb/include/lldb/Target/ThreadPlan.h
M lldb/include/lldb/Target/ThreadPlanBase.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
A lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
A lldb/packages/Python/lldbsuite/test/lldbreverse.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
M lldb/source/API/SBProcess.cpp
M lldb/source/API/SBThread.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
M lldb/source/Plugins/Process/scripted/ScriptedProcess.h
M lldb/source/Target/Process.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadList.cpp
M lldb/source/Target/ThreadPlanBase.cpp
A lldb/test/API/functionalities/reverse-execution/Makefile
A lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
A lldb/test/API/functionalities/reverse-execution/TestReverseContinueNotSupported.py
A lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
A lldb/test/API/functionalities/reverse-execution/main.c
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.cpp
Log Message:
-----------
Reland "[lldb] Implement basic support for reverse-continue" (#125242)
This reverts commit a774de807e56c1147d4630bfec3110c11d41776e.
This is the same changes as last time, plus:
* We load the binary into the target object so that on Windows, we can
resolve the locations of the functions.
* We now assert that each required breakpoint has at least 1 location,
to prevent an issue like that in the future.
* We are less strict about the unsupported error message, because it
prints "error: windows" on Windows instead of "error: gdb-remote".
Commit: 48a66e9b2a9a5083f26c95b14b09c9c897780f59
https://github.com/llvm/llvm-project/commit/48a66e9b2a9a5083f26c95b14b09c9c897780f59
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
Log Message:
-----------
[TTI] getTypeBasedIntrinsicInstrCost - add basic handling for strided load/store intrinsics (#125223)
As noted on #124499 - this is currently missing for type-only analysis and was falling back to scalarization for fixed vectors (and failing entirely for scalable vectors)
Commit: 0324c70f4e6a2115c9255d331274cc9413b66995
https://github.com/llvm/llvm-project/commit/0324c70f4e6a2115c9255d331274cc9413b66995
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
Log Message:
-----------
Revert 48a66e9b2a9a5083f26c95b14b09c9c897780f59 "[TTI] getTypeBasedIntrinsicInstrCost - add basic handling for strided load/store intrinsics (#125223)"
Investigating build bot failures (I think due to some other recent reversions).
Commit: 272ce90ed4814a2a5c87c78b5bcf24fc60b5703c
https://github.com/llvm/llvm-project/commit/272ce90ed4814a2a5c87c78b5bcf24fc60b5703c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/amdgpu-openmp-system-arch-fail.c
M clang/test/Driver/amdgpu-openmp-toolchain.c
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/Driver/openmp-offload-jit.c
M clang/test/Driver/openmp-system-arch.c
Log Message:
-----------
[Clang] Make OpenMP offloading consistently use the bound architecture (#125135)
Summary:
OpenMP was weirdly split between using the bound architecture from
`--offload-arch=` and the old `-march=` option which only worked for
single jobs. This patch removes that special handling. The main benefit
here is that we can now use `getToolchainArgs` without it throwing an
error.
I'm assuming SYCL doesn't care about this because they don't use an
architecture.
Commit: e2301d674976b84ba505065a9702f3376e05bc43
https://github.com/llvm/llvm-project/commit/e2301d674976b84ba505065a9702f3376e05bc43
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.h
Log Message:
-----------
[TableGen] Reduce size of MatchTableRecord (NFC) (#125221)
MatchTableRecord stores a 64-bit RawValue. However, this field is only
needed by a small part of the code (jump table generation).
Create a separate RecordAndValue structure that is used in just the
necessary places.
Based on massif, this reduces memory usage on RISCVGenGlobalISel.inc by
about 100MB (to 2.15GB).
Commit: fbf544c4226524d8518ebe375bad412a08358233
https://github.com/llvm/llvm-project/commit/fbf544c4226524d8518ebe375bad412a08358233
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
A clang/include/clang/CIR/FrontendAction/.clang-tidy
M clang/include/clang/CIR/LowerToLLVM.h
R clang/include/clang/CIRFrontendAction/.clang-tidy
A clang/lib/CIR/FrontendAction/.clang-tidy
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
Log Message:
-----------
[CIR] Fix some clang-tidy problems in CIR (#125128)
This adds a .clang-tidy file to the clang/lib/CIR/FrontendAction
directory, moves and updates the incorrectly located
include/clang/CIR/FrontendAction .clang-tidy file, and updates two files
from a recent commit to bring them into conformance with previously
agreed upon rules for where to use LLVM naming conventions and where to
use MLIR naming conventions.
Commit: b2447a25af2a64c038ad6e023aafbb36b7331378
https://github.com/llvm/llvm-project/commit/b2447a25af2a64c038ad6e023aafbb36b7331378
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
Log Message:
-----------
AMDGPU: Add willreturn to sendmsg intrinsics (#125014)
Commit: e31c6c97b795e57a7b1ee31ad37eced40c6305ed
https://github.com/llvm/llvm-project/commit/e31c6c97b795e57a7b1ee31ad37eced40c6305ed
Author: Brad Smith <brad at comstyle.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/runtime/exceptions.cpp
Log Message:
-----------
[flang] Fix building on aarch64 *BSD and musl libc after 9d8dc45d17088300e9e2086594ca581b119193c8 (#125183)
The fpu_control.h header appears to be GLIBC specific.
Commit: 65136a35309670c24bd0b8c98561fa4f7b503a70
https://github.com/llvm/llvm-project/commit/65136a35309670c24bd0b8c98561fa4f7b503a70
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
SCEV: migrate LoopInvariantPredicate to CmpPredicate (NFC) (#125204)
Follow up on 60dc450 (SCEV: migrate to CmpPredicate (NFC)) to migrate
the missed ScalarEvolution::LoopInvariantPredicate to CmpPredicate.
Commit: b9207aef09387342837069d2c0857e6d331a516c
https://github.com/llvm/llvm-project/commit/b9207aef09387342837069d2c0857e6d331a516c
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/docs/analyzer/user-docs/Annotations.rst
Log Message:
-----------
[NFC][analyzer][docs] Improve Annotations.rst (#122749)
This commit fixes three issues within the documentation file
`Annotations.rst` which was recently created by my earlier commit
https://github.com/llvm/llvm-project/pull/122246 .
(1) The section title "Annotations to Enhance Generic Checks" is changed
to "General Purpose Annotations" because it was a bit too verbose and it
used the obsolete name "checks" for what we now call "checkers" in the
static analyzer.
(2) Several code blocks were missing from the generated html because I
accidentally used `.. code-block: c` instead of `.. code-block:: c` and
so Sphinx parsed them as comment blocks. (Without printing any error or
warning...)
(3) The `ownership_*` attributes (which are used by `MallocChecker`)
were missing from this document, so I wrote a section that briefly
describes them and links to their full documentation.
Commit: 64142391fd6b56d2523adaaf5483553276d25b6e
https://github.com/llvm/llvm-project/commit/64142391fd6b56d2523adaaf5483553276d25b6e
Author: Kai Nacke <kai.peter.nacke at ibm.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/xray/CMakeLists.txt
M compiler-rt/lib/xray/xray_interface.cpp
M compiler-rt/lib/xray/xray_interface_internal.h
A compiler-rt/lib/xray/xray_s390x.cpp
A compiler-rt/lib/xray/xray_trampoline_s390x.S
M compiler-rt/lib/xray/xray_tsc.h
Log Message:
-----------
[SystemZ][XRay] Reland XRay runtime support for SystemZ (#124611)
Adds the runtime support routines for XRay on SystemZ. Only function
entry/exit is implemented.
The original PR 113252 was reverted due to errors caused by adding DSO
support to XRay.
This PR is the original implementation with the changed function
signatures. I'll add an implementation with DSO support later.
Commit: 7fd3743b9fe8f9e6177ef9957cdd431221b84b6f
https://github.com/llvm/llvm-project/commit/7fd3743b9fe8f9e6177ef9957cdd431221b84b6f
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
Log Message:
-----------
[RISCV] Rename Mips instruction records to start with MIPS_. NFC (#125170)
This matches established conventions and avoids potential future
conflicts with standard instructions.
Commit: bd95b57ef03aa5b034192c9ea1e353fb79708632
https://github.com/llvm/llvm-project/commit/bd95b57ef03aa5b034192c9ea1e353fb79708632
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
Log Message:
-----------
[RISCV][VLOpt] Move OperandInfo into anonymous namespace. Move getEMULEqualsEEWDivSEWTimesLMUL out of RISCVVType namespace. NFC (#125138)
We don't want OperandInfo to be visible outside of this translation
unit.
getEMULEqualsEEWDivSEWTimesLMUL is local to this file and declared
static. There's no reason to put it in a namespace.
Commit: 5c3db5a87ea578571e67f543772a3c12805121fe
https://github.com/llvm/llvm-project/commit/5c3db5a87ea578571e67f543772a3c12805121fe
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M .github/new-prs-labeler.yml
Log Message:
-----------
[Github] Label lldb-dap PRs (#125139)
Automatically apply the `lldb-dap` label to relevant PRs.
Commit: 1b0becf739ace0e04c57b50ab701b5e3d009ccbb
https://github.com/llvm/llvm-project/commit/1b0becf739ace0e04c57b50ab701b5e3d009ccbb
Author: Dave Lee <davelee.com at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/docs/use/variable.rst
Log Message:
-----------
[lldb] Add some formatting to variable.rst (NFC)
Commit: 759ef5811e2297f2cbe7578f7c118668e3467c6a
https://github.com/llvm/llvm-project/commit/759ef5811e2297f2cbe7578f7c118668e3467c6a
Author: Ikhlas Ajbar <iajbar at quicinc.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Driver/ToolChains/Hexagon.cpp
A clang/test/Driver/hexagon-cpu-default.c
M llvm/include/llvm/BinaryFormat/ELF.h
Log Message:
-----------
[Hexagon] Set the default compilation target to V68 (#125239)
Set the default compilation target to V68 if no Hexagon processor is
specified at the command-line.
Add the elf header changes for v81/v83/v85 architectures.
Commit: 88f858d85837dd342f49f25c87ab42837afd5799
https://github.com/llvm/llvm-project/commit/88f858d85837dd342f49f25c87ab42837afd5799
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
Log Message:
-----------
IndVarSimplify: thread CmpPredicate to SCEV (NFC) (#125240)
Relevant parts of ScalarEvolution's API accept a CmpPredicate instead of
a CmpInst::Predicate after 60dc450 (SCEV: migrate to CmpPredicate
(NFC)). After auditing the callers of these APIs, it was found that
IndVarSimplify was dropping samesign information. Fix this.
Commit: eb0af4e48d0e039849c6bbf36e791610e7ef9a06
https://github.com/llvm/llvm-project/commit/eb0af4e48d0e039849c6bbf36e791610e7ef9a06
Author: Michael Liao <michael.hliao at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/CIR/FrontendAction/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
Log Message:
-----------
[CIR] Fix shared build. NFC
Commit: ef8e0330801b43f8c7bec81c649d5a3e86238d7f
https://github.com/llvm/llvm-project/commit/ef8e0330801b43f8c7bec81c649d5a3e86238d7f
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64TargetMachine.h
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/aarch64-mixed-ptr-sizes.ll
M llvm/test/CodeGen/X86/mixed-ptr-sizes.ll
Log Message:
-----------
[llvm][aarch64] Add support for the MS qualifiers __ptr32, __ptr64, _sptr, __uptr (#112793)
MSVC has a set of qualifiers to allow using 32-bit signed/unsigned
pointers when building 64-bit targets. This is useful for WoW code
(i.e., the part of Windows that handles running 32-bit application on a
64-bit OS). Currently this is supported on x64 using the 270, 271 and
272 address spaces, but does not work for AArch64 at all.
This change handles pointers in the new address spaces by truncating or
extending the value as required. The implementation is modeled after
x86.
Note that the initial version of this change that was never merged
(<https://reviews.llvm.org/D158931>) took a much different approach that
involved arch-specific handling in the DAG combiner/selector, which
didn't feel like the correct approach.
That previous approach also used `UBFM` for all 32-bit to 64-bit
zero-extensions, which resulted in a lot of `lsr` instructions being
added. For example, in the `ptradd.ll` test, it resulted in:
```
%add = add i32 %b, %a
%conv = zext i32 %add to i64
```
Being expanded to:
```
add w8, w1, w0
lsr w0, w8, #0
```
Where the `lsr` instruction wasn't previously being added. I don't know
enough about the exact details of AArch64 to know if that's a desirable
change, so I've left it out of my change.
Backend half of #111879
Commit: 0ff49a745a43b6615a6ada180f2d11456b3beb05
https://github.com/llvm/llvm-project/commit/0ff49a745a43b6615a6ada180f2d11456b3beb05
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] add missing dep after 5fbb8dd7da5cd8b76127e780d418fe780d3337a4
Commit: ef91caec2cf313624829114802cff92ae682e550
https://github.com/llvm/llvm-project/commit/ef91caec2cf313624829114802cff92ae682e550
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDecl.cpp
M clang/test/Sema/MicrosoftCompatibility.c
M clang/test/Sema/MicrosoftCompatibility.cpp
Log Message:
-----------
Allow 'inline' on some declarations in MS compatibility mode (#125250)
Microsoft allows the 'inline' specifier on a typedef of a function type
in C modes. This is used by a system header (ufxclient.h), so instead
of giving a hard error, we diagnose with a warning. C++ mode and non-
Microsoft compatibility modes are not impacted.
Fixes https://github.com/llvm/llvm-project/issues/124869
Commit: 8d8a821b78305b2e78c7f5deb7e85e6f349608e3
https://github.com/llvm/llvm-project/commit/8d8a821b78305b2e78c7f5deb7e85e6f349608e3
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/docs/Extensions.md
M flang/lib/Semantics/check-io.cpp
M flang/runtime/io-api.cpp
Log Message:
-----------
[flang] Support OPEN(..., FORM="BINARY") (#124657)
... as a legacy spelling for OPEN(..., FORM="UNFORMATTED",
ACCESS="STREAM").
Commit: 36caa8f9e26e839daa75ad9f0d1d1934a8a8cd6c
https://github.com/llvm/llvm-project/commit/36caa8f9e26e839daa75ad9f0d1d1934a8a8cd6c
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Semantics/resolve-names-utils.cpp
A flang/test/Semantics/bug124487.f90
Log Message:
-----------
[flang] Fix crash on SMP with dummy procedure (#124663)
When a separate module procedure is defined with MODULE PROCEDURE, the
compiler crashes if there is a dummy procedure in the interface defined
with only a result type. This is due to the type already having been
defined on the ProcEntityDetails symbol as part of earlier wholesale
symbol duplication. Adjust the code to not define the result type of the
ProcEntityDetails if it is already present, but to verify that it is the
same type instead.
Fixes https://github.com/llvm/llvm-project/issues/124487.
Commit: 10b0a07e11b6fc53f2af63b7da7256a3e509835a
https://github.com/llvm/llvm-project/commit/10b0a07e11b6fc53f2af63b7da7256a3e509835a
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Evaluate/intrinsics.cpp
A flang/test/Evaluate/bug124618.f90
Log Message:
-----------
[flang] Fold KIND= arguments in intrinsic function references (#124666)
KIND= arguments in e.g. ACHAR(..., KIND=...) intrinsic function
references must be compilation-time constant expressions. The compiler
was failing to evaluate those expressions if they were not actually
literaly constant values.
Fixes https://github.com/llvm/llvm-project/issues/124618.
Commit: 4927a5ed4a03c027c6e77a231037b13b54017b13
https://github.com/llvm/llvm-project/commit/4927a5ed4a03c027c6e77a231037b13b54017b13
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Semantics/tools.cpp
A flang/test/Semantics/bug124621.f90
Log Message:
-----------
[flang] Allow defined assignment to CLASS(*) (#124817)
An unlimited polymorphic left-hand side variable is acceptable in the
definition of a defined assignment subroutine.
Fixes https://github.com/llvm/llvm-project/issues/124621.
Commit: cadc70c1f0f4dc72340891395dc213cf1a9472c9
https://github.com/llvm/llvm-project/commit/cadc70c1f0f4dc72340891395dc213cf1a9472c9
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/include/flang/Semantics/expression.h
M flang/lib/Semantics/expression.cpp
A flang/test/Semantics/bug12477.f90
M flang/test/Semantics/resolve110.f90
Log Message:
-----------
[flang] Prefer non-elemental to elemental defined operator resolution (#124941)
A non-elemental specific procedure must take precedence over an
elemental specific procedure in defined operator generic resolution.
Fixes https://github.com/llvm/llvm-project/issues/124777.
Commit: c82db773f47fce978c6ec5c567caeefa27e6521b
https://github.com/llvm/llvm-project/commit/c82db773f47fce978c6ec5c567caeefa27e6521b
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/bug124731.f90
M flang/test/Semantics/self-use.f90
Log Message:
-----------
[flang] Handle indirect USE of ancestor module into submodule (#124969)
A USE statement within a submodule (possibly in a nested scope) is not
allowed to USE the submodule's ancestor module directly, but it is
permissible to USE that ancestor module indirectly via another unrelated
module. Don't emit "already present in scope" errors for this case.
Fixes https://github.com/llvm/llvm-project/issues/124731.
Commit: 56c468474de77cd7b6954a74190f9603d393d02a
https://github.com/llvm/llvm-project/commit/56c468474de77cd7b6954a74190f9603d393d02a
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
A flang/test/Semantics/bug124716.f90
Log Message:
-----------
[flang] Suppress USEs of non-USE'able names in module files (#124980)
When harvesting and formatting symbols USE'd from other modules, don't
emit USE statements to module files for names unless they come from the
topmost scope of the module. There was a check to prevent names from
derived type scopes from escaping in this way, but it must be made more
general to prevent other cases like dummy arguments in interfaces.
Fixes https://github.com/llvm/llvm-project/issues/124716.
Commit: f8300f1c2a767e2ffaa6440249439b66bb5dec3b
https://github.com/llvm/llvm-project/commit/f8300f1c2a767e2ffaa6440249439b66bb5dec3b
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/bug124976.f90
Log Message:
-----------
[flang] Refine "same type" testing for intrinsic arguments (#125133)
Some errors aren't being caught, such as the case in the linked bug
where the PAD= argument to RESHAPE() didn't have the same declared type
as the ARRAY=; this led to a crash in lowering. Refine the "same type"
testing logic for intrinsic procedures, and add a better test.
Fixes https://github.com/llvm/llvm-project/issues/124976.
Commit: bf34884fb315ecf0bb867c774f45f8b5473aeb75
https://github.com/llvm/llvm-project/commit/bf34884fb315ecf0bb867c774f45f8b5473aeb75
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Log Message:
-----------
[AArch64] Fix a warning
This patch fixes:
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:6890:25: error:
unused variable 'TLI' [-Werror,-Wunused-variable]
Commit: 9955d849d6029103ef8423293054c6df888371f0
https://github.com/llvm/llvm-project/commit/9955d849d6029103ef8423293054c6df888371f0
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
Log Message:
-----------
[SLP][NFC]Add a test with the incorrect shuffled elements of buildvector
Commit: 6b8d076b1f0a00341945ed25626eaec099422982
https://github.com/llvm/llvm-project/commit/6b8d076b1f0a00341945ed25626eaec099422982
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/EvalEmitter.cpp
Log Message:
-----------
[clang][bytecode] Return failure for dead non-temporary pointers (#125247)
... even when we're not performing a lvalue-to-rvalue conversion.
Commit: f3549814f8a2e14b61ebe05b94cd216008633fa5
https://github.com/llvm/llvm-project/commit/f3549814f8a2e14b61ebe05b94cd216008633fa5
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
Log Message:
-----------
[clang][bytecode] Stack-allocate bottom function frame (#125253)
Instead of heap-allocating it. This is similar to what the current
interpeter does. In C, we have no function calls, so the extra heap
allocation never makes sense.
Commit: e78aa8f35e6dd66d5152396406d3d4f37f43e7f4
https://github.com/llvm/llvm-project/commit/e78aa8f35e6dd66d5152396406d3d4f37f43e7f4
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
Log Message:
-----------
[SLP]Use the size of gathered scalars when evaluating slice size
Need to use the size of the gathered scalars, not the original size of
the buildvector scalars, since gathered scalar size might be changed
during building the buildvector shuffles.
Fixes #125259
Commit: 631abff733b7f5bf1bac8fbcea13cfcf6c494450
https://github.com/llvm/llvm-project/commit/631abff733b7f5bf1bac8fbcea13cfcf6c494450
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
Log Message:
-----------
Revert "[SLP]Use the size of gathered scalars when evaluating slice size"
This reverts commit e78aa8f35e6dd66d5152396406d3d4f37f43e7f4 to fix
crashes reported in https://lab.llvm.org/buildbot/#/builders/140/builds/16047.
Commit: 2bfb3bae69718525fd9b1dc6e2dec9387c647a9e
https://github.com/llvm/llvm-project/commit/2bfb3bae69718525fd9b1dc6e2dec9387c647a9e
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/include/flang/Common/Fortran-features.h
M flang/lib/Common/Fortran-features.cpp
M flang/lib/Semantics/expression.cpp
M flang/test/Evaluate/rewrite-out_of_range.F90
M flang/test/Lower/HLFIR/convert-variable.f90
M flang/test/Lower/Intrinsics/abs.f90
M flang/test/Lower/Intrinsics/exponent.f90
M flang/test/Lower/Intrinsics/fma_real16.f90
M flang/test/Lower/Intrinsics/ieee_class_queries.f90
M flang/test/Lower/Intrinsics/modulo.f90
M flang/test/Lower/Intrinsics/powi_real16.f90
M flang/test/Lower/Intrinsics/random_number_real16.f90
M flang/test/Lower/Intrinsics/rrspacing.f90
M flang/test/Lower/Intrinsics/sign.f90
M flang/test/Lower/OpenMP/parallel-firstprivate-clause-scalar.f90
M flang/test/Lower/assignment.f90
M flang/test/Lower/math-lowering/abs.f90
M flang/test/Lower/math-lowering/aint.f90
M flang/test/Lower/real-operations-1.f90
M flang/test/Semantics/kinds01.f90
M flang/test/Semantics/kinds02.f90
M flang/test/Semantics/resolve41.f90
Log Message:
-----------
[flang] Make REAL/COMPLEX(10) a hard error for non-x86 targets (#124655)
Currently the use of REAL/COMPLEX(KIND=10) as a type or literal constant
suffix elicits an optional warning message only. This leads to compiler
internal errors during lowering when these types appear in code being
compiled to non-x86_64 targets. For better error messaging, make the use
of these types a hard error in semantics instead when they are not
supported by the target architecture.
Commit: f14f19738916572322c310e84196134545c15c49
https://github.com/llvm/llvm-project/commit/f14f19738916572322c310e84196134545c15c49
Author: Daniel Hoekwater <hoekwater at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/CFIFixup.cpp
Log Message:
-----------
[CFIFixup] Factor logic into helpers and use range-based loops (NFC) (#125137)
`runOnMachineFunction` is getting long (>100 lines), and the logic
for computing block info and performing block fixup can be abstracted
away.
Reduce nesting in the main block fixup loop and name conditions to
reflect their purpose.
Replace manual usage of iterators with a range-based for loop.
Source:
-
https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code
-
https://llvm.org/docs/CodingStandards.html#use-range-based-for-loops-wherever-possible
-
https://llvm.org/docs/CodingStandards.html#don-t-evaluate-end-every-time-through-a-loop
Commit: b25fe9cd368c198ec6e93493cb2168ba4e8463cf
https://github.com/llvm/llvm-project/commit/b25fe9cd368c198ec6e93493cb2168ba4e8463cf
Author: Thurston Dang <thurston at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vaddv.ll
Log Message:
-----------
[msan][NFCI] Add tests for Arm NEON add reduction to scalar (#125271)
Forked from llvm/test/CodeGen/AArch64/arm64-vaddv.ll
Incorrectly handled by handleUnknownInstruction:
- llvm.aarch64.neon.faddv
- llvm.aarch64.neon.saddv
- llvm.aarch64.neon.uaddv
Commit: 833ba0a77355a0cd3fefa8cc6bb17e6a9971d3fd
https://github.com/llvm/llvm-project/commit/833ba0a77355a0cd3fefa8cc6bb17e6a9971d3fd
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
Log Message:
-----------
[ObjC][ARC] Initialize member of ObjCARCContract (#125256)
This fixes a bug where hasCFGChanged was called before CFGChanged had
been initialized.
rdar://142842745
Commit: 2a2d6e66ce3a87f4f5168df717782d777063f7b8
https://github.com/llvm/llvm-project/commit/2a2d6e66ce3a87f4f5168df717782d777063f7b8
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/tools/lldb-dap/package.json
Log Message:
-----------
[lldb-dap] Bump the version to 0.2.9
Bump the version to 0.2.9 to publish #124986 in the Marketplace.
Commit: dbabad0fc04e7106a07dbeeb8ff23dc32ce6b2c6
https://github.com/llvm/llvm-project/commit/dbabad0fc04e7106a07dbeeb8ff23dc32ce6b2c6
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/test/API/functionalities/abbreviation/TestAbbreviations.py
Log Message:
-----------
[lldb] Use validation combination of options in TestAbbreviations (#125270)
Name and line number are part of different option groups and are not
compatible.
```
(lldb) breakpoint set -n foo -l 10
error: invalid combination of options for the given command
```
The help output for `breakpoint set` confirms this. This patch updates
the test to use two compatible options. With the improved error
reporting from #125125 this becomes an issue.
Commit: c7d4ccfd836b45bd589956e7485c2647d8912a69
https://github.com/llvm/llvm-project/commit/c7d4ccfd836b45bd589956e7485c2647d8912a69
Author: Alex Richardson <alexrichardson at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/PowerPC/pcrel-jump-table.ll
Log Message:
-----------
[PowerPC] Autogenerate a test checks in preparation for follow-up commit
This just adds more lines that are checked
Commit: e822dff0e9285707ad964ba831cb861d2f6f1714
https://github.com/llvm/llvm-project/commit/e822dff0e9285707ad964ba831cb861d2f6f1714
Author: Alex Richardson <alexrichardson at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/Mips/2010-07-20-Switch.ll
Log Message:
-----------
[MIPS] Autogenerate a jump tables test
This makes the check lines more strict and makes a follow-up change easier.
Commit: 7444ccdd26ae5f7de828f50820a80b6b4014c9fa
https://github.com/llvm/llvm-project/commit/7444ccdd26ae5f7de828f50820a80b6b4014c9fa
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
Log Message:
-----------
LAA: improve code in getStrideFromPointer (NFC) (#124780)
Strip dead code, inline a constant, and modernize style.
Commit: 9ff24f5114e5cd3f6f44d2269005e6b18e0906b3
https://github.com/llvm/llvm-project/commit/9ff24f5114e5cd3f6f44d2269005e6b18e0906b3
Author: Daniel Hoekwater <hoekwater at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/CFIFixup.cpp
Log Message:
-----------
Revert "[CFIFixup] Factor logic into helpers and use range-based loops (NFC) (#125137)"
This reverts commit f14f19738916572322c310e84196134545c15c49, which
breaks a number of build bots:
- https://lab.llvm.org/buildbot/#/builders/163/builds/12726
- https://lab.llvm.org/buildbot/#/builders/144/builds/17106
- https://lab.llvm.org/buildbot/#/builders/123/builds/12855
- https://lab.llvm.org/buildbot/#/builders/133/builds/10660
- https://lab.llvm.org/buildbot/#/builders/88/builds/7482
- https://lab.llvm.org/buildbot/#/builders/180/builds/12313
- https://lab.llvm.org/buildbot/#/builders/160/builds/12316
Commit: c640f97ccf723e64ff24af225cb995c905538406
https://github.com/llvm/llvm-project/commit/c640f97ccf723e64ff24af225cb995c905538406
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/include/llvm/TableGen/Record.h
Log Message:
-----------
[TableGen] Don't use inline storage for ReferenceLocs (NFC) (#125231)
The ReferenceLocs are not enabled by default (they are used by the
tablegen lsp server), and as such always empty, but still allocate
inline storage for the SmallVector. Disabling it saves about 200MB on
RISCVGenGlobalISel.inc.
(The equivalent field in Record already disables inline storage.)
Commit: 503e4b2d54ad81507d6072be522ce57b5393168c
https://github.com/llvm/llvm-project/commit/503e4b2d54ad81507d6072be522ce57b5393168c
Author: David Majnemer <david.majnemer at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/and-compare.ll
Log Message:
-----------
[InstCombine] Perform some cleanups, add some tests
No functional change is intended.
Commit: d841c8842e17b7e74c3ee98c13a8a2505566deed
https://github.com/llvm/llvm-project/commit/d841c8842e17b7e74c3ee98c13a8a2505566deed
Author: Philip Reames <preames at rivosinc.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Move spread(4,8) shuffle lowering above generic fallbacks [NFC
NFC because the patterns are distinct, but has confused me now twice
despite being the person who wrote said code.
Commit: 82b923defe27cc46ecf3084f3a8f1c0d1c36199e
https://github.com/llvm/llvm-project/commit/82b923defe27cc46ecf3084f3a8f1c0d1c36199e
Author: Daniel Hoekwater <hoekwater at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/CFIFixup.cpp
Log Message:
-----------
Reland "[CFIFixup] Factor logic into helpers and use range-based loops (NFC) #125137"
This patch was breaking tests due to inconsistent use of SmallVector.
After consolidating SmallVector usages, everything should work as
intended.
Commit: d9c9326a219a87620ff08bf1202441acb2dded2e
https://github.com/llvm/llvm-project/commit/d9c9326a219a87620ff08bf1202441acb2dded2e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
Log Message:
-----------
[SLP]Recalculate number of parts when requesting number of elements based on original scalars size
Need to recalculate number of parts, since gathered scalar size might be changed
during building the buildvector shuffles.
Fixes #125259
Commit: ffe3129e9bdc146ee4d91e849173d1c64b1ae974
https://github.com/llvm/llvm-project/commit/ffe3129e9bdc146ee4d91e849173d1c64b1ae974
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/include/mlir/Analysis/DataFlow/SparseAnalysis.h
Log Message:
-----------
[mlir] allow overriding visitRegionSuccessors (#125268)
This PR enables overriding AbstractSparseForwardDataFlowAnalysis::visitRegionSuccessors to control precisely how the region successors of `branch` are visited. For example in order to precisely control the order in which predecessor operand lattices are propagated from. An override is responsible for visiting all the known predecessors and propagating therefrom.
Commit: 87b7f63a117c340a6d9ca47959335fd7ef6c7ad2
https://github.com/llvm/llvm-project/commit/87b7f63a117c340a6d9ca47959335fd7ef6c7ad2
Author: Adrian Prantl <aprantl at apple.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/include/lldb/API/SBProcess.h
M lldb/include/lldb/Target/Process.h
M lldb/include/lldb/Target/StopInfo.h
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadList.h
M lldb/include/lldb/Target/ThreadPlan.h
M lldb/include/lldb/Target/ThreadPlanBase.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
R lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
R lldb/packages/Python/lldbsuite/test/lldbreverse.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
M lldb/source/API/SBProcess.cpp
M lldb/source/API/SBThread.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
M lldb/source/Plugins/Process/scripted/ScriptedProcess.h
M lldb/source/Target/Process.cpp
M lldb/source/Target/StopInfo.cpp
M lldb/source/Target/Thread.cpp
M lldb/source/Target/ThreadList.cpp
M lldb/source/Target/ThreadPlanBase.cpp
R lldb/test/API/functionalities/reverse-execution/Makefile
R lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
R lldb/test/API/functionalities/reverse-execution/TestReverseContinueNotSupported.py
R lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
R lldb/test/API/functionalities/reverse-execution/main.c
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.cpp
Log Message:
-----------
Revert "Reland "[lldb] Implement basic support for reverse-continue" (#125242)"
This reverts commit 7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b.
Breaking green dragon:
https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/as-lldb-cmake/19569/testReport/junit/lldb-api/functionalities_reverse-execution/TestReverseContinueWatchpoints_py/
Commit: fa6b7ec894d8ff2de39cef73acdcede8dae6f38c
https://github.com/llvm/llvm-project/commit/fa6b7ec894d8ff2de39cef73acdcede8dae6f38c
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
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] Replace strip_include_prefix in lldb with includes (#125293)
These both have the same result that the relevant include paths are
propagated to all dependents, but includes is dedup'd where
strip_include_prefix is not. So this reduces >100 include paths for all
transitive dependents.
Commit: 9333d8fb0749b1ae2b152a1003d2ecc00027b3d5
https://github.com/llvm/llvm-project/commit/9333d8fb0749b1ae2b152a1003d2ecc00027b3d5
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
Log Message:
-----------
[analyzer][NFC] Simplify and eliminate redundant map lookups (#125272)
Commit: 91e77d88a40f91d4da79c478dbb7d447bb59ed14
https://github.com/llvm/llvm-project/commit/91e77d88a40f91d4da79c478dbb7d447bb59ed14
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/utils/TableGen/InstrInfoEmitter.cpp
Log Message:
-----------
[TableGen] Restore OpName::OPERAND_LAST emission in InstrInfoEmitter (#125265)
- Looks like this sentinel value is used in some downstream backends, so
restore emitting it.
- It now also has the correct value (earlier code may have emitted an
incorrect value for OPERAND_LAST and hence it was removed in
https://github.com/llvm/llvm-project/pull/124960)
Commit: e6d12ad791f6eabb53623664a1563996efce44f7
https://github.com/llvm/llvm-project/commit/e6d12ad791f6eabb53623664a1563996efce44f7
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M bolt/test/X86/dynamic-relocs-on-entry.s
Log Message:
-----------
[BOLT][NFC] Fix test X86/dynamic-relocs-on-entry.s (#125264)
Commit: 6deee0d5b36c8b4b83209759df8d4933e4922bc8
https://github.com/llvm/llvm-project/commit/6deee0d5b36c8b4b83209759df8d4933e4922bc8
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lldb/include/lldb/Interpreter/Options.h
M lldb/source/Interpreter/CommandAlias.cpp
M lldb/source/Interpreter/CommandObject.cpp
M lldb/source/Interpreter/Options.cpp
M lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
M lldb/test/API/functionalities/abbreviation/TestAbbreviations.py
Log Message:
-----------
[lldb] Use llvm::Error instead of CommandReturnObject for error reporting (#125125)
Use `llvm::Error` instead of `CommandReturnObject` for error reporting.
The command return objects were populated with errors but never
displayed. With this patch they're at least logged.
Commit: 95c0c784ac9a91a8e12331ad9574ac6ad75318b1
https://github.com/llvm/llvm-project/commit/95c0c784ac9a91a8e12331ad9574ac6ad75318b1
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
workflows/premerge: Fix condition for macos job (#125237)
Commit: f50efe9c0b2f0a872b230b609b3c49a561474c96
https://github.com/llvm/llvm-project/commit/f50efe9c0b2f0a872b230b609b3c49a561474c96
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
M llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
Log Message:
-----------
[LVI] Pre commit test for #124480 (NFC)
Commit: c641c1aace9ce5bc307bdf9479d10f108505755e
https://github.com/llvm/llvm-project/commit/c641c1aace9ce5bc307bdf9479d10f108505755e
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
Log Message:
-----------
[VPlan] Pass VPValue operands to handleReplication. (NFC)
Update handleReplication to also take VPValue operands as argument, in
line with the other methods in VPRecipeBuilder.
Commit: 213a939a792f64e7bfdc684922abdf6cd1d3e388
https://github.com/llvm/llvm-project/commit/213a939a792f64e7bfdc684922abdf6cd1d3e388
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/test/CodeGen/LoongArch/annotate-tablejump.ll
M llvm/test/CodeGen/LoongArch/jr-without-ra.ll
M llvm/test/CodeGen/LoongArch/jump-table.ll
M llvm/test/CodeGen/Mips/2010-07-20-Switch.ll
M llvm/test/CodeGen/Mips/indirect-jump-hazard/jumptables.ll
M llvm/test/CodeGen/Mips/jump-table-mul.ll
M llvm/test/CodeGen/Mips/pseudo-jump-fill.ll
M llvm/test/CodeGen/PowerPC/absol-jump-table-enabled.ll
M llvm/test/CodeGen/PowerPC/aix-lower-jump-table-mir.ll
M llvm/test/CodeGen/PowerPC/aix-lower-jump-table.ll
M llvm/test/CodeGen/PowerPC/jump-tables-collapse-rotate.ll
M llvm/test/CodeGen/PowerPC/mcm-5.ll
M llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll
M llvm/test/CodeGen/PowerPC/pcrel-jump-table.ll
M llvm/test/CodeGen/RISCV/jumptable-swguarded.ll
M llvm/test/CodeGen/RISCV/jumptable.ll
M llvm/test/CodeGen/RISCV/shrinkwrap-jump-table.ll
M llvm/test/CodeGen/SystemZ/branch-05.ll
M llvm/test/CodeGen/SystemZ/branch-11.ll
M llvm/test/CodeGen/VE/Scalar/br_jt.ll
Log Message:
-----------
[LegalizeDAG] Use Base+Offset instead of Offset+Base for jump tables
This is needed for architectures that actually use strict pointer
arithmetic instead of integers such as AArch64 with FEAT_CPA (see
https://github.com/llvm/llvm-project/pull/105669) or CHERI. Using an
index as the first operand of pointer arithmetic may result in an
invalid output.
While there are quite a few codegen changes here, these only change the
order of registers in add instructions. One MIPS combine had to be
updated to handle the new node order.
Reviewed By: topperc
Pull Request: https://github.com/llvm/llvm-project/pull/125279
Commit: 2b04291830a2a34b681ae711dabfa1032f6c84f7
https://github.com/llvm/llvm-project/commit/2b04291830a2a34b681ae711dabfa1032f6c84f7
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorInsertExtractStridedSliceRewritePatterns.cpp
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
Log Message:
-----------
[mlir][Vector] Fix scalable InsertSlice/ExtractSlice lowering (#124861)
It looks like scalable `vector.insertslice/extractslice` ops made their way
through lowering patterns that generate `vector.shuffle` ops. I'm not
sure why this wasn't caught by the verifier, probably because the
shuffle op was folded into something else as part of the same rewrite
and the IR wasn't verified.
This PR fixes the issue by preventing scalable vector.insertslice/extractslice
ops to be lowered to vector shuffles. Instead, they are now lowered to a
sequence of insertslice/extractelement ops using an existing patter.
Commit: 9ad153a696e227de7177e54fc025251b05676515
https://github.com/llvm/llvm-project/commit/9ad153a696e227de7177e54fc025251b05676515
Author: Renaud Kauffmann <rkauffmann at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M flang/module/cudadevice.f90
Log Message:
-----------
[flang][cuda] Adding more bindings to libcudadevice (#125276)
Commit: 41745a200557c8a8b556bfc91fb2908a141b20e5
https://github.com/llvm/llvm-project/commit/41745a200557c8a8b556bfc91fb2908a141b20e5
Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/DirectX/DXILDataScalarization.cpp
M llvm/lib/Target/DirectX/DXILFlattenArrays.cpp
Log Message:
-----------
[NFC][DirectX] Change deprecated insertBefore(Instruction*) API (#125308)
This fixes build errors due to deprecation of this API in commit
79499f010d2bfe809187a9a5f042d4e4ee1f1bcc
All tests in llvm/test/CodeGen/DirectX - including those added in commit
5ac624c8234fe0a62cbf0447dbf7035ea29d062e that added the original code
verified to pass.
Commit: ec7b13710ef0a81ff266f0ce4cfef6005ff2fcff
https://github.com/llvm/llvm-project/commit/ec7b13710ef0a81ff266f0ce4cfef6005ff2fcff
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/NVPTX/cp-async-bulk.ll
Log Message:
-----------
[NVPTX] Fix `--check-prefixes` in `cp-async-bulk.ll` (NFC) (#125146)
I ran `update_llc_test_checks` over all of the `NVPTX` tests. The only
modification it made was to `cp-async-bulk.ll`. Thus, I'm creating this
PR to update `cp-async-bulk.ll`.
Commit: ae7f7c40150d1b887e4d1f2fb67f6f681a51fa40
https://github.com/llvm/llvm-project/commit/ae7f7c40150d1b887e4d1f2fb67f6f681a51fa40
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
Log Message:
-----------
[RISCV] Add PseudoCCMOVGPRNoX0 to RISCVOptWInstrs.
Commit: db7e2e57822142c3fcf82781f8a375d3ea5e20ae
https://github.com/llvm/llvm-project/commit/db7e2e57822142c3fcf82781f8a375d3ea5e20ae
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/opt-w-instrs.mir
Log Message:
-----------
[RISCV] Add PseudoCCMOVGPRNoX0 test caes for RISCVOptWInstrs. NFC
Commit: c3c326213e80abd6db9da83dbf0ab8452780705c
https://github.com/llvm/llvm-project/commit/c3c326213e80abd6db9da83dbf0ab8452780705c
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/canonicalize.mlir
Log Message:
-----------
[mlir][Vector] Fix `vector.shuffle` folder for poison indices (#124863)
This PR fixes the folder of a `vector.shuffle` with constant input
vectors in the presence of a poison index. Partially poison vectors are
currently not supported in UB so the folder select v1[0] for elements
indexed by poison.
Commit: a3799f2ca2f826c487a4d4aab784c9549ad6af82
https://github.com/llvm/llvm-project/commit/a3799f2ca2f826c487a4d4aab784c9549ad6af82
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/vlseg-vsseg.s
Log Message:
-----------
[RISCV] Remove potentially incompatible vtype toggles fro mvlseg-vsseg mca test (#125226)
Commit: 5dc815503fa358a104e84e34385a69f2803b6663
https://github.com/llvm/llvm-project/commit/5dc815503fa358a104e84e34385a69f2803b6663
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/TargetParser/Host.cpp
M llvm/unittests/TargetParser/Host.cpp
Log Message:
-----------
[RISCV] Add ESWIN EIC770X (SiFive P550) to getHostCPUNameForRISCV. (#125277)
This enables -mcpu=native for the HiFive Premier P550 board.
Commit: 1eac7cd5d1a3738f43d737d74ea299e08a1c3b61
https://github.com/llvm/llvm-project/commit/1eac7cd5d1a3738f43d737d74ea299e08a1c3b61
Author: Janis Heims <technoelf at undertheprinter.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/M68k/M68kExpandPseudo.cpp
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/lib/Target/M68k/M68kInstrInfo.cpp
M llvm/lib/Target/M68k/M68kRegisterInfo.td
M llvm/test/CodeGen/M68k/PR57660.ll
A llvm/test/CodeGen/M68k/register-spills.ll
Log Message:
-----------
[M68k] always use movem for register spills (#106715)
Fixes #106206 and #106209.
Commit: f73f5af442d5dfa762b69a82f0c2cdf8898b9060
https://github.com/llvm/llvm-project/commit/f73f5af442d5dfa762b69a82f0c2cdf8898b9060
Author: Amit Kumar Pandey <137622562+ampandey-1995 at users.noreply.github.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/include/clang/Driver/Options.td
Log Message:
-----------
[Driver] Refactor option '-mlink-bitcode-file'. (#125322)
Associate '-mlink-bitcode-file' as both CC1 and FC1 option. Fixes
https://gitlab.e4s.io/uo-public/llvm-openmp-offloading-v2/-/jobs/360327
Commit: 280609c215e4a684cad215ea5be913293de0d255
https://github.com/llvm/llvm-project/commit/280609c215e4a684cad215ea5be913293de0d255
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/Format/FormatToken.cpp
Log Message:
-----------
[clang-format][NFC] Minor improvement to FormatToken::isTypeName()
Commit: 598106d88a0fe5f4ac7767e8de63cb721e218e33
https://github.com/llvm/llvm-project/commit/598106d88a0fe5f4ac7767e8de63cb721e218e33
Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
M mlir/lib/Dialect/Linalg/Transforms/EraseUnusedOperandsAndResults.cpp
Log Message:
-----------
[mlir][Linalg] NFC: Expose a method to deduplicate operands/remove dead results of `linalg.generic` op. (#125141)
This functionality was wrapped within a pattern. Expose this as a
separate transformations function that can be used outside of pattern
rewrite mechanism.
---------
Signed-off-by: MaheshRavishankar <mahesh.ravishankar at gmail.com>
Commit: 386af4a5c64ab75eaee2448dc38f2e34a40bfed0
https://github.com/llvm/llvm-project/commit/386af4a5c64ab75eaee2448dc38f2e34a40bfed0
Author: Jorge Gorbe Moya <jgorbe at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
Log Message:
-----------
Revert "[clang][bytecode] Stack-allocate bottom function frame" (#125325)
Reverts llvm/llvm-project#125253
It introduced an msan failure. Caught by a buildbot here:
https://lab.llvm.org/buildbot/#/builders/164/builds/6922/steps/17/logs/stdio
Commit: 994cea3f0a2d0caf4d66321ad5a06ab330144d89
https://github.com/llvm/llvm-project/commit/994cea3f0a2d0caf4d66321ad5a06ab330144d89
Author: Fangrui Song <i at maskray.me>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Symbols.cpp
M lld/ELF/SyntheticSections.cpp
M lld/ELF/Writer.cpp
M lld/test/ELF/executable-undefined-ignoreall.s
M lld/test/ELF/ppc32-weak-undef-call.s
M lld/test/ELF/ppc64-undefined-weak.s
M lld/test/ELF/riscv-gp.s
M lld/test/ELF/weak-undef-lib.s
M lld/test/ELF/weak-undef-no-dynamic-linker.s
M lld/test/ELF/weak-undef-rw.s
Log Message:
-----------
[ELF] Refine isExported/isPreemptible condition
Commit f10441ad003236ef3b9e5415a571d2be0c0ce5ce dropped a special case
for isUndefWeak and --no-dynamic-linking but also made --export-dynamic
ineffective for static PIE.
This change restores the --export-dynamic behavior and entirely drops
special handling of --no-dynamic-linker:
* -pie with no input DSO, similar to --no-dynamic-linker, suppresses
undefined symbols in .dynsym
The new behaviors resemble GNU ld more.
Commit: 32d7211ae6d0c36d69d7d2793889fbbc9cf2d655
https://github.com/llvm/llvm-project/commit/32d7211ae6d0c36d69d7d2793889fbbc9cf2d655
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
Log Message:
-----------
[NVPTX] Fix typo in `NVPTXISelLowering.cpp` (NFC) (#125333)
Commit: 028b69009a221e16076be77752514525b321d012
https://github.com/llvm/llvm-project/commit/028b69009a221e16076be77752514525b321d012
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/utils/TableGen/DAGISelMatcherOpt.cpp
Log Message:
-----------
[TableGen] Remove unnecessary check before calling SmallVector::erase. NFC
This was checking whether the erase is needed, but erase is safe
to call with equal iterators.
Commit: 83cad6805d144d941bdda99d71a6df2cf113a76d
https://github.com/llvm/llvm-project/commit/83cad6805d144d941bdda99d71a6df2cf113a76d
Author: Srinivasa Ravi <srinivasar at nvidia.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/test/Target/LLVMIR/nvvm/cvt_tf32.mlir
M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
Log Message:
-----------
[MLIR][NVVM] Update Float to TF32 conversion Op (#125048)
This change updates the Float to TF32 conversion MLIR Op to include
lowering to the new intrinsics introduced in sm_100 through ptx8.6:
- `nvvm_f2tf32_rn_satfinite`
- `nvvm_f2tf32_rn_relu_satfinite`
- `nvvm_f2tf32_rz_satfinite`
- `nvvm_f2tf32_rz_relu_satfinite`
PTX Spec Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/#data-movement-and-conversion-instructions-cvt
Commit: 626c23112fe25c1e327f5b17ad94f805588cec1c
https://github.com/llvm/llvm-project/commit/626c23112fe25c1e327f5b17ad94f805588cec1c
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Use `SimplifyQuery` in `isKnownNonEqual` (#124942)
It is needed by https://github.com/llvm/llvm-project/pull/117442.
Commit: 3ec6a6b85aed838b7d56bd6843cad52e822b9111
https://github.com/llvm/llvm-project/commit/3ec6a6b85aed838b7d56bd6843cad52e822b9111
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/fabs.ll
M llvm/test/Transforms/InstCombine/fneg-fabs.ll
Log Message:
-----------
[InstCombine] Fix FMF propagation in `foldSelectWithFCmpToFabs` (#121580)
Consider the following pattern:
```
%cmp = fcmp <pred> double %x, 0.000000e+00
%negX = fneg <fmf> double %x
%sel = select i1 %cmp, double %x, double %negX
```
We cannot propagate ninf from fneg to select since `%negX` may not be
chosen. Similarly, we cannot propagate nnan unless `%negX` is guaranteed
to be selected when `%x` is NaN.
This patch also propagates nnan/ninf from fcmp to avoid regression in
`PhaseOrdering/generate-fabs.ll`.
Alive2: https://alive2.llvm.org/ce/z/t6U-tA
Closes https://github.com/llvm/llvm-project/issues/121430 and
https://github.com/llvm/llvm-project/issues/113989.
Commit: d0a142eaea03661e8399f2c1733b93d21d55dfee
https://github.com/llvm/llvm-project/commit/d0a142eaea03661e8399f2c1733b93d21d55dfee
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
Log Message:
-----------
[clang][dataflow][NFC] Remove double lookup (#125282)
Commit: 0d21ef4e6c50c7d4d591adf7e6dbd6232e8a99c4
https://github.com/llvm/llvm-project/commit/0d21ef4e6c50c7d4d591adf7e6dbd6232e8a99c4
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
Log Message:
-----------
[clang][mutation analyzer][NFC] Simplify code in ExprMutationAnalyzer (#125283)
Commit: 65708bad579229cd7f62b8d0eaefda4bb20eb6d8
https://github.com/llvm/llvm-project/commit/65708bad579229cd7f62b8d0eaefda4bb20eb6d8
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/CodeGen/CGOpenCLRuntime.cpp
Log Message:
-----------
[clang][CodeGenOpenCL][NFC] Remove redundant map lookups (#125285)
Commit: 6e7213bc3031b37f008b6429796f9bee1c112c1f
https://github.com/llvm/llvm-project/commit/6e7213bc3031b37f008b6429796f9bee1c112c1f
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[Analysis] Fix a warning
This patch fixes:
llvm/lib/Analysis/ValueTracking.cpp:116:27: error: unused function
'safeCxtI' [-Werror,-Wunused-function]
Commit: 7271681286ec0eb8e1b0dc9982b3914701715d7f
https://github.com/llvm/llvm-project/commit/7271681286ec0eb8e1b0dc9982b3914701715d7f
Author: Kazu Hirata <kazu at google.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/lib/CodeGen/CFIFixup.cpp
Log Message:
-----------
[CFIFixup] Add a default constructor to BlockFlags (NFC) (#125296)
This patch adds a default constructor to BlockFlags to initialize its
members to false, placing initializers close to the member
declarations.
Note that once C++20 is available in our codebase, we can replace
the explicit default constructor with:
bool Reachable : 1 = true;
:
Commit: 2d17fc4ca31dcc8fdc5df0c554d548e348a5ee0b
https://github.com/llvm/llvm-project/commit/2d17fc4ca31dcc8fdc5df0c554d548e348a5ee0b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
M llvm/utils/TableGen/DAGISelMatcherOpt.cpp
Log Message:
-----------
[TableGen] Reorder code in ContractNodes to prevents unnecessary recursion. NFC
The code that moves CheckOpcode before CheckType/CheckChildType/RecordDwith
was running after ContractNodes started unwinding its recursion. If a
move occurs we would start a new recursion going forward
through the list again. I don't believe this can lead to any new
combines so it was just wasted work.
This patch moves the code earlier so it doesn't start a new recursion.
Commit: 9399a1ddb82ff400f237a2353d17871106e9005c
https://github.com/llvm/llvm-project/commit/9399a1ddb82ff400f237a2353d17871106e9005c
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Analysis/CmpInstAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/select.ll
Log Message:
-----------
[InstSimplify] Handle trunc to i1 in Select with bit test folds. (#122944)
Proof: https://alive2.llvm.org/ce/z/Jncqb2
Commit: bfa7edcc6652bdb37d53e0cec64926aab3f280eb
https://github.com/llvm/llvm-project/commit/bfa7edcc6652bdb37d53e0cec64926aab3f280eb
Author: Ben Shi <2283975856 at qq.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
Log Message:
-----------
[clang][StaticAnalyzer][NFC] Fix a typo in comments (#125339)
Commit: 69905810c483811abff5f9971799bc8a32eb4514
https://github.com/llvm/llvm-project/commit/69905810c483811abff5f9971799bc8a32eb4514
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vmovn.ll
Log Message:
-----------
[msan][NFCI] Add tests for Arm NEON saturating extract narrow (#125331)
Forked from llvm/test/CodeGen/AArch64/arm64-vmovn.ll
Unknown intrinsics which are currently incorrectly handled by
visitInstruction:
- llvm.aarch64.neon.sqxtn
- llvm.aarch64.neon.sqxtun
- llvm.aarch64.neon.uqxtn
Commit: 44aa618ef67d302f5ab77cc591fb3434fe967a2e
https://github.com/llvm/llvm-project/commit/44aa618ef67d302f5ab77cc591fb3434fe967a2e
Author: yronglin <yronglin777 at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ParentMap.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/ReachableCode.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/test/AST/ast-dump-recovery.cpp
M clang/test/Analysis/lifetime-extended-regions.cpp
M clang/test/SemaCXX/cxx2c-placeholder-vars.cpp
M clang/test/SemaCXX/warn-unreachable.cpp
Log Message:
-----------
[Analyzer][CFG] Correctly handle rebuilt default arg and default init expression (#117437)
Clang currently support extending lifetime of object bound to reference
members of aggregates, that are created from default member initializer.
This PR address this change and updaye CFG and ExprEngine.
This PR reapply https://github.com/llvm/llvm-project/pull/91879.
Fixes https://github.com/llvm/llvm-project/issues/93725.
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Commit: 7612dcc6e8d8e7f19b364084effbb01946294720
https://github.com/llvm/llvm-project/commit/7612dcc6e8d8e7f19b364084effbb01946294720
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
Log Message:
-----------
[clang] NFC, add a "continue" bailout in the for-loop of
DeclareImplicitDeductionGuidesForTypeAlias.
This improves the code readability.
Commit: 9725595f3acc0c1aaa354e15ac4ee2b1f8ff4cc9
https://github.com/llvm/llvm-project/commit/9725595f3acc0c1aaa354e15ac4ee2b1f8ff4cc9
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/opaque-ptr.ll
Log Message:
-----------
[InstCombine] Check nowrap flags when folding comparison of GEPs with the same base pointer (#121892)
Alive2: https://alive2.llvm.org/ce/z/P5XbMx
Closes https://github.com/llvm/llvm-project/issues/121890
TODO: It is still safe to perform this transform without nowrap flags if
the corresponding scale factor is 1 byte:
https://alive2.llvm.org/ce/z/J-JCJd
Commit: 48f88651a01b050a28be99e5cdffe495754ea79a
https://github.com/llvm/llvm-project/commit/48f88651a01b050a28be99e5cdffe495754ea79a
Author: Sergio Sánchez Ramírez <15837247+mofeing at users.noreply.github.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/MPI/IR/MPI.td
M mlir/include/mlir/Dialect/MPI/IR/MPIOps.td
M mlir/include/mlir/Dialect/MPI/IR/MPITypes.td
M mlir/lib/Dialect/MPI/IR/MPIOps.cpp
M mlir/test/Dialect/MPI/ops.mlir
Log Message:
-----------
[MLIR] Extend MPI dialect (#123255)
cc @tobiasgrosser @wsmoses
this PR adds some new ops and types to the MLIR MPI dialect. the goal is
to get the minimum required ops here to get a project of us working, and
if everything works well, continue adding ops to the mpi dialect on
subsequent PRs until we achieve some level of compliance with the MPI
standard.
---
Things left to do in subsequent PRs:
- Add back the `mpi.comm` type and add as optional argument of current
implemented ops that should support it (i.e. `send`, `recv`, `isend`,
`irecv`, `allreduce`, `barrier`).
- Support defining custom `MPI_Op`s (the MPI operations, not the
tablegen `MPI_Op`) as regions.
- Add more ops.
Commit: 16d4453f2f5d9554ce39507fda0f33ce9066007b
https://github.com/llvm/llvm-project/commit/16d4453f2f5d9554ce39507fda0f33ce9066007b
Author: Balazs Benics <benicsbalazs at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/InlineSpiller.cpp
Log Message:
-----------
[CodeGen][NFC] Remove redundant map lookup (#125342)
Commit: 657dc6d05e8e20d5c3b41161ace7fba5d2cb6e26
https://github.com/llvm/llvm-project/commit/657dc6d05e8e20d5c3b41161ace7fba5d2cb6e26
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/AST/TemplateName.cpp
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#125335)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect InVectors.front() and P to be nonnull.
Commit: e11e65f08b00a96916ce5ec21bf31d061158829d
https://github.com/llvm/llvm-project/commit/e11e65f08b00a96916ce5ec21bf31d061158829d
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
Log Message:
-----------
[CodeGen] Migrate away from PointerUnion::dyn_cast (NFC) (#125336)
Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:
// FIXME: Replace the uses of is(), get() and dyn_cast() with
// isa<T>, cast<T> and the llvm::dyn_cast<T>
Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect E to be nonnull.
Commit: 8266eedfdccddfc8901679ee55e358793e29bba5
https://github.com/llvm/llvm-project/commit/8266eedfdccddfc8901679ee55e358793e29bba5
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/SandboxIR/Region.cpp
Log Message:
-----------
[SandboxIR] Avoid repeated hash lookups (NFC) (#125337)
Commit: 71d05ac64e65283886b51004f3fd40e18478cddd
https://github.com/llvm/llvm-project/commit/71d05ac64e65283886b51004f3fd40e18478cddd
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
Log Message:
-----------
[TTI] getTypeBasedIntrinsicInstrCost - add basic handling for strided load/store intrinsics (#125223) (REAPPLIED)
As noted on #124499 - this is currently missing for type-only analysis and was falling back to scalarization for fixed vectors (and failing entirely for scalable vectors)
Commit: 2791843bb5aedc8e6b103cf4e9188fd51efb5527
https://github.com/llvm/llvm-project/commit/2791843bb5aedc8e6b103cf4e9188fd51efb5527
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
Log Message:
-----------
[CostModel][RISCV] vp-intrinsics.ll - add common check prefix for ARGBASED + TYPEBASED test coverage (#125245)
Inspired by #125223 - helps identify when the cost models are relying on arg data (or failures in getTypeBasedIntrinsicInstrCost)
Commit: 06130ed341ddbf697045731300651fbbcb63f0ff
https://github.com/llvm/llvm-project/commit/06130ed341ddbf697045731300651fbbcb63f0ff
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
M clang/lib/AST/ByteCode/InterpState.h
Log Message:
-----------
Reapply "[clang][bytecode] Stack-allocate bottom function frame" (#12… (#125349)
…5325)
Move the BottomFrame to InterpState instead.
Commit: 15336823adbd41d401185c2fecf2c063f6a64f73
https://github.com/llvm/llvm-project/commit/15336823adbd41d401185c2fecf2c063f6a64f73
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
Log Message:
-----------
[RISCV] Simplify MIPS CCMov patterns. NFC (#125318)
We have ComplexPatterns that reduce 3 patterns to 1, by handling the
==/!= 0, imm, and register cases. These are used for XTHeadCondMove,
Zicond, XVentanaCondOps, and our basic seteq/setne patterns.
Commit: ff9c041d96afdf378d11c14bea60de8437f4fbcc
https://github.com/llvm/llvm-project/commit/ff9c041d96afdf378d11c14bea60de8437f4fbcc
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/call-reqd-group-size.ll
M llvm/test/CodeGen/AMDGPU/call-waitcnt.ll
M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-sgprs-fixed-abi.ll
M llvm/test/CodeGen/AMDGPU/cc-update.ll
M llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmin.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
M llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
M llvm/test/CodeGen/AMDGPU/set-inactive-wwm-overwrite.ll
M llvm/test/CodeGen/AMDGPU/sibling-call.ll
M llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
M llvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll
M llvm/test/CodeGen/AMDGPU/swdev373493.ll
M llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.ll
M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved.ll
M llvm/test/CodeGen/ARM/arm-shrink-wrapping-linux.ll
M llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
M llvm/test/CodeGen/ARM/vector-DAGCombine.ll
M llvm/test/CodeGen/PowerPC/p10-spill-creq.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/minloop.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-float-loops.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions.ll
M llvm/test/CodeGen/Thumb2/mve-float32regloops.ll
M llvm/test/CodeGen/Thumb2/mve-gather-increment.ll
M llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
M llvm/test/CodeGen/Thumb2/mve-laneinterleaving-reduct.ll
M llvm/test/CodeGen/Thumb2/mve-postinc-dct.ll
M llvm/test/CodeGen/Thumb2/mve-postinc-distribute.ll
M llvm/test/CodeGen/Thumb2/mve-postinc-lsr.ll
M llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
M llvm/test/CodeGen/Thumb2/mve-tailpred-nonzerostart.ll
M llvm/test/CodeGen/Thumb2/pacbti-m-varargs-2.ll
M llvm/test/CodeGen/Thumb2/pacbti-m-vla.ll
M llvm/test/CodeGen/Thumb2/setjmp_longjmp.ll
M llvm/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll
Log Message:
-----------
[MachineScheduler] Fix physreg dependencies of ExitSU (#123541)
Providing the correct operand index allows addPhysRegDataDeps to compute
the correct latency.
Pull Request: https://github.com/llvm/llvm-project/pull/123541
Commit: 5cba1f123f738d0a777cc7cb5f4cd270c645b1fe
https://github.com/llvm/llvm-project/commit/5cba1f123f738d0a777cc7cb5f4cd270c645b1fe
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Log Message:
-----------
[RISCV] Simplify usage of SplatPat_simm5_plus1. NFC (#125340)
Make SplatPat_simm5_plus1 responsible for decrementing the immediate
instead of requiring DecImm SDNodeXForm to be used after. This allows
better sharing of tablegen classes.
Commit: d5a7a483a65f830a0c7a931781bc90046dc67ff4
https://github.com/llvm/llvm-project/commit/d5a7a483a65f830a0c7a931781bc90046dc67ff4
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Target/X86/X86TargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
M llvm/test/Transforms/SLPVectorizer/X86/buildvector-schedule-for-subvector.ll
M llvm/test/Transforms/SLPVectorizer/X86/long-full-reg-stores.ll
M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-load-reduced-as-part-of-bv.ll
M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reused-pointer.ll
M llvm/test/Transforms/SLPVectorizer/X86/splat-score-adjustment.ll
M llvm/test/Transforms/SLPVectorizer/addsub.ll
Log Message:
-----------
[SLP]Reduce number of alternate instruction, where possible
Patch tries to remove wide alternate operations.
Currently SLP vectorizer emits something like this:
```
%0 = add i32
%1 = sub i32
%2 = add i32
%3 = sub i32
%4 = add i32
%5 = sub i32
%6 = add i32
%7 = sub i32
transformes to
%v1 = add <8 x i32>
%v2 = sub <8 x i32>
%res = shuffle %v1, %v2, <0, 9, 2, 11, 4, 13, 6, 15>
```
i.e. half of the results are just unused. This leads to increased
register pressure and potentially doubles number of operations.
Patch introduces SplitVectorize mode, where it splits the operations by
opcodes and produces instead something like this:
```
%v1 = add <4 x i32>
%v2 = sub <4 x i32>
%res = shuffle %v1, %v2, <0, 4, 1, 5, 2, 6, 3, 7>
```
It allows to improve the performance by reducing number of ops. Also, it
turns on some other improvements, like improved graph reordering.
-O3+LTO, AVX512
Metric: size..text
Program size..text
results results0 diff
test-suite :: MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc.test 277800.00 280536.00 1.0%
test-suite :: MultiSource/Benchmarks/FreeBench/pifft/pifft.test 81802.00 82426.00 0.8%
test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 790552.00 790952.00 0.1%
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test 383795.00 383987.00 0.1%
test-suite :: External/SPEC/CINT2017speed/600.perlbench_s/600.perlbench_s.test 2075541.00 2076501.00 0.0%
test-suite :: External/SPEC/CINT2017rate/500.perlbench_r/500.perlbench_r.test 2075541.00 2076501.00 0.0%
test-suite :: MultiSource/Benchmarks/Bullet/bullet.test 312702.00 312766.00 0.0%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12569783.00 12569751.00 -0.0%
test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 2049374.00 2049358.00 -0.0%
test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test 1091836.00 1091772.00 -0.0%
test-suite :: MultiSource/Applications/JM/lencod/lencod.test 852339.00 852211.00 -0.0%
test-suite :: MultiSource/Applications/oggenc/oggenc.test 190651.00 190523.00 -0.1%
test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/miniGMG/miniGMG.test 44203.00 44155.00 -0.1%
test-suite :: SingleSource/UnitTests/Vector/AVX512BWVL/Vector-AVX512BWVL-mask_set_bw.test 12997.00 12981.00 -0.1%
test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test 668971.00 658427.00 -1.6%
test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test 668971.00 658427.00 -1.6%
Prolangs-C/TimberWolfMC/timberwolfmc - small variations, some code not
inlined
FreeBench/pifft - extra stores <8 x double> vectorized, some other extra
vectorizations
CINT2006/464.h264ref - some smaller code + changes similar to x264
JM/ldecod - changes similar x264
CINT2017speed/600.perlbench_s
CINT2017rate/500.perlbench_r - significantly compact vector code
Benchmarks/Bullet - small variations
CFP2017rate/526.blender_r - small variations
CFP2017rate/510.parest_r - small variations
CINT2006/400.perlbench - extra vector code
JM/lencod - extra store <16 x i32> and other changes similar x264
Applications/oggenc - extra store <16 x i8>, small variations
DOE-ProxyApps-C/miniGMG - small variations
Vector/AVX512BWVL/Vector-AVX512BWVL-mask_set_bw - better vector code
CINT2017speed/625.x264_s
CINT2017rate/525.x264_r - the number of instructions increased, but
looks like they are more performant. E.g., for function
x264_pixel_satd_8x8, llvm-mca reports better throughput - 84 for the
current version and 59 for the new version.
-O3+LTO, march=rva32u64
CINT2017rate/525.x264_r - similar to x86, extra code in pixel_hadamard_ac
function vectorized, idct4x4dc stopped being vectorized (looks like
issue with shuffles cost)
CINT2006/400.perlbench - better vector code
CINT2006/445.gobmk - some variations in vector code
CINT2006/464.h264ref - extra code vectorized
CINT2017rate/500.perlbench_r - small variations
-O3+LTO, mcpu=sifive-p470
Metric: size..text
Program size..text
results results0 diff
test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 587336.00 587668.00 0.1%
test-suite :: MultiSource/Applications/JM/lencod/lencod.test 643308.00 643614.00 0.0%
test-suite :: MultiSource/Applications/d/make_dparser.test 79678.00 79710.00 0.0%
test-suite :: MultiSource/Benchmarks/Bullet/bullet.test 277322.00 277420.00 0.0%
test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test 933660.00 933682.00 0.0%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 9497722.00 9497682.00 -0.0%
test-suite :: External/SPEC/CINT2017rate/500.perlbench_r/500.perlbench_r.test 1767806.00 1767772.00 -0.0%
test-suite :: External/SPEC/CINT2017speed/600.perlbench_s/600.perlbench_s.test 1767806.00 1767772.00 -0.0%
test-suite :: MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame.test 148038.00 148024.00 -0.0%
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test 283036.00 283008.00 -0.0%
test-suite :: MultiSource/Benchmarks/mediabench/g721/g721encode/encode.test 4776.00 4772.00 -0.1%
test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test 540582.00 511772.00 -5.3%
test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test 540582.00 511772.00 -5.3%
CINT2006/464.h264ref - extra vector code in find_sad_16x16
JM/lencod - extra vector code in find_sad_16x16
d/make_dparser - smaller vector code
Benchmarks/Bullet - small variations
CINT2006/400.perlbench - smaller vector code
CFP2017rate/526.blender_r - small variations, extra store <8 x float> in
the loop, extra store <8 x i8> in loop
CINT2017rate/500.perlbench_r
CINT2017speed/600.perlbench_s - small variations
MiBench/consumer-lame - small variations
JM/ldecod - extra vector code
mediabench/g721/g721encode - small variations
CINT2017rate/525.x264_r
CINT2017speed/625.x264_s - reduced number of wide operations and
shuffles, saving the registers, similar to X86, extra code in
pixel_hadamard_ac vectorized, idct4x4dc not vectorized (issue with some
TTI costs)
Reviewers: RKSimon, hiraditya
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/123360
Commit: 4f381d0be845a8702c89a0a7f4bd9188e1ff60a3
https://github.com/llvm/llvm-project/commit/4f381d0be845a8702c89a0a7f4bd9188e1ff60a3
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[VPlan] Use Operands to create VPReplicateRecipe for invar store. (NFC)
Commit: 75b922dccfc35ec25a520b1941e6682a300802b8
https://github.com/llvm/llvm-project/commit/75b922dccfc35ec25a520b1941e6682a300802b8
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
A llvm/test/Transforms/LoopVectorize/AArch64/drop-poison-generating-flags.ll
Log Message:
-----------
[VPlan] Check VPWidenIntrinsicSC in VPRecipeWithIRFlags::classof.
When VPWidenIntrinsicRecipe was changed to inhert from VPRecipeWithIRFlags,
VPRecipeWithIRFlags::classof wasn't updated accordingly. Also check for
VPWidenIntrinsicSC in VPRecipeWithIRFlags::classof.
Fixes https://github.com/llvm/llvm-project/issues/125301.
Commit: b798679c076af4acaa806e893b038372f5954298
https://github.com/llvm/llvm-project/commit/b798679c076af4acaa806e893b038372f5954298
Author: Saleem Abdulrasool <abdulras at thebrowser.company>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/test/CodeGen/blocks-windows.c
Log Message:
-----------
test: correct a typo in the check identifier (NFCI)
This corrects a swapped order of the spelling of blocks in the check.
This enables the correct forward declarations which were previously
disabled.
Commit: 14776c6d138d30653d542416141ab2adc5305e9d
https://github.com/llvm/llvm-project/commit/14776c6d138d30653d542416141ab2adc5305e9d
Author: FantasqueX <fantasquex at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/docs/tutorial/MyFirstLanguageFrontend/LangImpl09.rst
Log Message:
-----------
[Kaleidoscope] Fix typo (#125366)
Remove duplicate word.
Commit: 5c3c0a8cec9205efba78583bd0b8a646270968a1
https://github.com/llvm/llvm-project/commit/5c3c0a8cec9205efba78583bd0b8a646270968a1
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M lld/ELF/ScriptLexer.cpp
M lld/ELF/ScriptLexer.h
M lld/ELF/ScriptParser.cpp
Log Message:
-----------
[ELF] Replace inExpr with lexState. NFC
We may add another state State::Wild to behave more lik GNU ld.
Commit: 312055d1da169f043e65b35fcd62d6d685700114
https://github.com/llvm/llvm-project/commit/312055d1da169f043e65b35fcd62d6d685700114
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/test/CodeGen/NVPTX/griddepcontrol.ll
M llvm/test/CodeGen/NVPTX/kernel-param-align.ll
M llvm/test/CodeGen/NVPTX/lower-args.ll
Log Message:
-----------
[NVPTX] Fix `ptxas` failures (NFC) (#125147)
Note:
[lower-args.ll](https://github.com/llvm/llvm-project/compare/main...justinfargnoli:dev/jf/ptxas?expand=1#diff-649d37d1f897d829fb809025437ba5df2e0c8da8395bbac7be713cd8f5bd8237)
and
[kernel-param-align.ll](https://github.com/llvm/llvm-project/compare/main...justinfargnoli:dev/jf/ptxas?expand=1#diff-31f196478b41b95b51298eb8e2efccc8a6f1156f13b648c07db27dd09579f74e)
fail because`ptxas` doesn't support constant pointers in separate
complication mode (`-c`).
Commit: 648981f913431749c4656268ed670677a88511f6
https://github.com/llvm/llvm-project/commit/648981f913431749c4656268ed670677a88511f6
Author: Roland McGrath <mcgrathr at google.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/src/__support/CPP/span.h
M libc/test/src/setjmp/CMakeLists.txt
M libc/test/src/setjmp/setjmp_test.cpp
Log Message:
-----------
[libc] Build with -Wdeprecated, fix some warnings (#125373)
While GCC's -Wdeprecated is on by default and doesn't do much,
Clang's -Wdeprecated enables many more things. More apply in
C++20, so switch a test file that tickled one to using that. In
future, C++20 should probably be made the baseline for compiling
all the libc code.
Commit: bd7bc84f24e185b79161219ab76503f3c4671413
https://github.com/llvm/llvm-project/commit/bd7bc84f24e185b79161219ab76503f3c4671413
Author: Roland McGrath <mcgrathr at google.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
A .ci/compute-projects.sh
M .ci/generate-buildkite-pipeline-premerge
M .ci/generate_test_report.py
A .ci/metrics/Dockerfile
A .ci/metrics/metrics.py
A .ci/metrics/requirements.lock.txt
A .ci/metrics/requirements.txt
M .ci/monolithic-linux.sh
M .ci/monolithic-windows.sh
M .git-blame-ignore-revs
M .github/CODEOWNERS
M .github/new-issues-labeler.yml
M .github/new-prs-labeler.yml
A .github/workflows/build-ci-container-windows.yml
M .github/workflows/build-ci-container.yml
A .github/workflows/build-metrics-container.yml
R .github/workflows/clang-tests.yml
A .github/workflows/commit-access-greeter.yml
M .github/workflows/commit-access-review.py
A .github/workflows/containers/github-action-ci-windows/Dockerfile
A .github/workflows/containers/github-action-ci/Dockerfile
R .github/workflows/containers/github-action-ci/bootstrap.patch
R .github/workflows/containers/github-action-ci/stage1.Dockerfile
R .github/workflows/containers/github-action-ci/stage2.Dockerfile
R .github/workflows/containers/github-action-ci/storage.conf
M .github/workflows/docs.yml
A .github/workflows/hlsl-matrix.yaml
A .github/workflows/hlsl-test-all.yaml
A .github/workflows/libc-fullbuild-tests.yml
A .github/workflows/libc-overlay-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libclang-python-tests.yml
R .github/workflows/libclc-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
M .github/workflows/libcxx-restart-preempted-jobs.yaml
R .github/workflows/lld-tests.yml
R .github/workflows/lldb-tests.yml
M .github/workflows/llvm-project-tests.yml
M .github/workflows/llvm-tests.yml
M .github/workflows/new-issues.yml
M .github/workflows/pr-code-format.yml
A .github/workflows/premerge.yaml
M .github/workflows/release-binaries-all.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/spirv-tests.yml
M .gitignore
M bolt/CMakeLists.txt
R bolt/CODE_OWNERS.TXT
A bolt/Maintainers.txt
A bolt/docs/BinaryAnalysis.md
M bolt/docs/CommandLineArgumentReference.md
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryData.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/include/bolt/Core/DebugNames.h
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/include/bolt/Passes/ADRRelaxationPass.h
M bolt/include/bolt/Passes/IdenticalCodeFolding.h
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Rewrite/RewriteInstance.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Core/CMakeLists.txt
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugNames.cpp
M bolt/lib/Core/Relocation.cpp
M bolt/lib/Passes/CMakeLists.txt
M bolt/lib/Passes/IdenticalCodeFolding.cpp
M bolt/lib/Passes/Inliner.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Passes/PLTCall.cpp
M bolt/lib/Passes/ReorderFunctions.cpp
M bolt/lib/Passes/SplitFunctions.cpp
M bolt/lib/Passes/VeneerElimination.cpp
M bolt/lib/Profile/CMakeLists.txt
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Rewrite/BinaryPassManager.cpp
M bolt/lib/Rewrite/BoltDiff.cpp
M bolt/lib/Rewrite/CMakeLists.txt
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/lib/Rewrite/JITLinkLinker.cpp
M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
M bolt/lib/Rewrite/MachORewriteInstance.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/RuntimeLibs/CMakeLists.txt
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/lib/Target/AArch64/CMakeLists.txt
M bolt/lib/Target/RISCV/CMakeLists.txt
M bolt/lib/Target/X86/CMakeLists.txt
M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
M bolt/lib/Utils/CMakeLists.txt
M bolt/lib/Utils/CommandLineOpts.cpp
M bolt/runtime/CMakeLists.txt
A bolt/test/AArch64/check-init-not-moved.s
M bolt/test/AArch64/data-at-0-offset.c
M bolt/test/AArch64/double_jump.cpp
A bolt/test/AArch64/exceptions-plt.cpp
A bolt/test/AArch64/inline-small-function-1.s
A bolt/test/AArch64/inline-small-function-2.s
A bolt/test/AArch64/jump-table-heuristic-fail.s
A bolt/test/AArch64/long-jmp-one-stub.s
A bolt/test/AArch64/pad-before-funcs.s
A bolt/test/AArch64/remove-nops.s
M bolt/test/AArch64/test-indirect-branch.s
M bolt/test/AArch64/veneer-lld-abs.s
M bolt/test/CMakeLists.txt
M bolt/test/RISCV/call-annotations.s
M bolt/test/RISCV/relax.s
M bolt/test/RISCV/reloc-branch.s
M bolt/test/RISCV/reloc-jal.s
M bolt/test/R_ABS.pic.lld.cpp
M bolt/test/X86/double-jump.test
A bolt/test/X86/dwarf5-debug-names-abstract-origin-linkage-name-only.s
A bolt/test/X86/dwarf5-debug-names-abstract-origin-specification.s
A bolt/test/X86/dwarf5-debug-names-gnu-push-tls-address.s
A bolt/test/X86/dwarf5-debug-names-union.test
M bolt/test/X86/dwarf5-df-inlined-subroutine-gc-sections-range.test
M bolt/test/X86/dynamic-relocs-on-entry.s
A bolt/test/X86/exceptions-compact.s
A bolt/test/X86/icf-safe-icp.test
A bolt/test/X86/icf-safe-process-rela-data.test
A bolt/test/X86/icf-safe-test1-no-relocs.test
A bolt/test/X86/icf-safe-test1.test
A bolt/test/X86/icf-safe-test2GlobalConstPtrNoPic.test
M bolt/test/X86/jmp-optimization.test
M bolt/test/X86/linux-alt-instruction.s
M bolt/test/X86/linux-bug-table.s
M bolt/test/X86/linux-exceptions.s
M bolt/test/X86/linux-orc.s
M bolt/test/X86/linux-parainstructions.s
M bolt/test/X86/linux-pci-fixup.s
M bolt/test/X86/linux-smp-locks.s
M bolt/test/X86/linux-static-calls.s
M bolt/test/X86/linux-static-keys.s
A bolt/test/X86/linux-version.S
M bolt/test/X86/match-functions-with-call-graph.test
A bolt/test/X86/pie-eh-split-undo.s
A bolt/test/binary-analysis/AArch64/Inputs/dummy.txt
A bolt/test/binary-analysis/AArch64/cmdline-args.test
A bolt/test/binary-analysis/AArch64/lit.local.cfg
M bolt/test/lit.cfg.py
M bolt/test/lit.local.cfg
A bolt/test/merge-fdata-bat-no-lbr.test
A bolt/test/merge-fdata-lbr-mode.test
A bolt/test/merge-fdata-mixed-bat-no-lbr.test
A bolt/test/merge-fdata-mixed-mode.test
A bolt/test/merge-fdata-no-lbr-mode.test
M bolt/test/pie.test
M bolt/test/runtime/X86/Inputs/pie-exceptions-failed-split.s
M bolt/test/runtime/X86/instrumentation-indirect.c
R bolt/test/runtime/X86/pie-exceptions-failed-split.test
A bolt/test/runtime/X86/pie-exceptions-split.test
M bolt/test/runtime/bolt-reserved.cpp
A bolt/test/runtime/exceptions-plt.cpp
M bolt/test/unreadable-profile.test
M bolt/tools/CMakeLists.txt
A bolt/tools/binary-analysis/CMakeLists.txt
A bolt/tools/binary-analysis/binary-analysis.cpp
M bolt/tools/merge-fdata/merge-fdata.cpp
M bolt/unittests/Core/BinaryContext.cpp
M bolt/unittests/Core/CMakeLists.txt
M bolt/unittests/Core/MCPlusBuilder.cpp
A bolt/unittests/Core/MemoryMaps.cpp
M bolt/utils/bughunter.sh
R clang-tools-extra/CODE_OWNERS.TXT
A clang-tools-extra/Maintainers.txt
M clang-tools-extra/clang-doc/MDGenerator.cpp
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-include-fixer/IncludeFixer.cpp
M clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp
M clang-tools-extra/clang-tidy/ClangTidy.cpp
M clang-tools-extra/clang-tidy/ClangTidy.h
M clang-tools-extra/clang-tidy/ClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/ClangTidyCheck.h
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/clang-tidy/ClangTidyOptions.h
M clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
M clang-tools-extra/clang-tidy/ClangTidyProfiling.h
M clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h
M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
M clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
A clang-tools-extra/clang-tidy/bugprone/IncorrectEnableSharedFromThisCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/IncorrectEnableSharedFromThisCheck.h
M clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.h
M clang-tools-extra/clang-tidy/bugprone/OptionalValueConversionCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/TooSmallLoopVariableCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.h
M clang-tools-extra/clang-tidy/bugprone/UnhandledSelfAssignmentCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.h
M clang-tools-extra/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidConstOrRefDataMembersCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt
M clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
R clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp
R clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.h
M clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/RvalueReferenceParamNotMovedCheck.cpp
M clang-tools-extra/clang-tidy/hicpp/MultiwayPathsCoveredCheck.cpp
M clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp
M clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
M clang-tools-extra/clang-tidy/misc/UnusedParametersCheck.cpp
M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
M clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.h
M clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
M clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp
M clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.h
M clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp
A clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.h
M clang-tools-extra/clang-tidy/modernize/UseStartsEndsWithCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseUsingCheck.h
M clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
M clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp
M clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.h
M clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h
M clang-tools-extra/clang-tidy/readability/RedundantAccessSpecifiersCheck.h
M clang-tools-extra/clang-tidy/readability/RedundantCastingCheck.cpp
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
M clang-tools-extra/clang-tidy/tool/CMakeLists.txt
M clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
M clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.h
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clangd/CMakeLists.txt
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/ClangdLSPServer.h
M clang-tools-extra/clangd/ClangdServer.cpp
M clang-tools-extra/clangd/ClangdServer.h
M clang-tools-extra/clangd/CodeComplete.cpp
M clang-tools-extra/clangd/CompileCommands.cpp
M clang-tools-extra/clangd/Compiler.cpp
M clang-tools-extra/clangd/Config.h
M clang-tools-extra/clangd/ConfigCompile.cpp
M clang-tools-extra/clangd/ConfigFragment.h
M clang-tools-extra/clangd/ConfigYAML.cpp
M clang-tools-extra/clangd/Diagnostics.cpp
M clang-tools-extra/clangd/Diagnostics.h
M clang-tools-extra/clangd/FindTarget.cpp
M clang-tools-extra/clangd/FindTarget.h
M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
M clang-tools-extra/clangd/GlobalCompilationDatabase.h
M clang-tools-extra/clangd/Headers.cpp
M clang-tools-extra/clangd/Headers.h
R clang-tools-extra/clangd/HeuristicResolver.cpp
R clang-tools-extra/clangd/HeuristicResolver.h
M clang-tools-extra/clangd/Hover.cpp
M clang-tools-extra/clangd/IncludeCleaner.h
M clang-tools-extra/clangd/InlayHints.cpp
M clang-tools-extra/clangd/ModulesBuilder.cpp
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/ParsedAST.h
M clang-tools-extra/clangd/Preamble.cpp
M clang-tools-extra/clangd/ProjectModules.h
M clang-tools-extra/clangd/ScanningProjectModules.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang-tools-extra/clangd/TUScheduler.cpp
M clang-tools-extra/clangd/TUScheduler.h
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/XRefs.h
M clang-tools-extra/clangd/benchmarks/IndexBenchmark.cpp
M clang-tools-extra/clangd/index/Background.cpp
M clang-tools-extra/clangd/index/Background.h
M clang-tools-extra/clangd/index/BackgroundRebuild.cpp
M clang-tools-extra/clangd/index/FileIndex.cpp
M clang-tools-extra/clangd/index/FileIndex.h
M clang-tools-extra/clangd/index/Index.cpp
M clang-tools-extra/clangd/index/Index.h
M clang-tools-extra/clangd/index/MemIndex.cpp
M clang-tools-extra/clangd/index/MemIndex.h
M clang-tools-extra/clangd/index/Merge.cpp
M clang-tools-extra/clangd/index/Merge.h
M clang-tools-extra/clangd/index/ProjectAware.cpp
M clang-tools-extra/clangd/index/Ref.h
M clang-tools-extra/clangd/index/Serialization.cpp
M clang-tools-extra/clangd/index/Serialization.h
M clang-tools-extra/clangd/index/SymbolCollector.cpp
M clang-tools-extra/clangd/index/SymbolCollector.h
M clang-tools-extra/clangd/index/dex/Dex.cpp
M clang-tools-extra/clangd/index/dex/Dex.h
M clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp
M clang-tools-extra/clangd/index/remote/Client.cpp
M clang-tools-extra/clangd/index/remote/Index.proto
M clang-tools-extra/clangd/index/remote/Service.proto
M clang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
M clang-tools-extra/clangd/index/remote/marshalling/Marshalling.h
M clang-tools-extra/clangd/index/remote/server/Server.cpp
M clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
M clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
M clang-tools-extra/clangd/support/DirectiveTree.cpp
M clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx
M clang-tools-extra/clangd/test/type-hierarchy-ext.test
M clang-tools-extra/clangd/test/type-hierarchy.test
M clang-tools-extra/clangd/tool/Check.cpp
M clang-tools-extra/clangd/tool/ClangdMain.cpp
M clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
M clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
M clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
M clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp
M clang-tools-extra/clangd/unittests/DexTests.cpp
M clang-tools-extra/clangd/unittests/DumpASTTests.cpp
M clang-tools-extra/clangd/unittests/FileIndexTests.cpp
M clang-tools-extra/clangd/unittests/FindTargetTests.cpp
M clang-tools-extra/clangd/unittests/HeadersTests.cpp
M clang-tools-extra/clangd/unittests/IndexTests.cpp
M clang-tools-extra/clangd/unittests/InlayHintTests.cpp
M clang-tools-extra/clangd/unittests/Matchers.h
M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
M clang-tools-extra/clangd/unittests/RenameTests.cpp
M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
M clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp
M clang-tools-extra/clangd/unittests/TestTU.cpp
M clang-tools-extra/clangd/unittests/TestWorkspace.cpp
M clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp
M clang-tools-extra/clangd/unittests/XRefsTests.cpp
M clang-tools-extra/clangd/unittests/tweaks/DefineOutlineTests.cpp
M clang-tools-extra/clangd/unittests/tweaks/ExtractVariableTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/Contributing.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/assert-side-effect.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/branch-clone.rst
A clang-tools-extra/docs/clang-tidy/checks/bugprone/incorrect-enable-shared-from-this.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-functions.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-local-non-trivial-variable.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.PureVirtualCall.rst
A clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.SelfAssignment.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.OSObjectCStyleCast.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.MIG.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.OSObjectRetainCount.rst
M clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.rst
M clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/valist.CopyToSelf.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/valist.Uninitialized.rst
R clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/valist.Unterminated.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/narrowing-conversions.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/redundant-expression.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/unused-parameters.rst
M clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst
A clang-tools-extra/docs/clang-tidy/checks/modernize/use-integer-sign-comparison.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-starts-ends-with.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/for-range-copy.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst
M clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-value-param.rst
M clang-tools-extra/docs/clang-tidy/checks/readability/container-size-empty.rst
M clang-tools-extra/docs/clang-tidy/index.rst
M clang-tools-extra/include-cleaner/include/clang-include-cleaner/Analysis.h
M clang-tools-extra/include-cleaner/lib/Analysis.cpp
M clang-tools-extra/include-cleaner/lib/AnalysisInternal.h
M clang-tools-extra/include-cleaner/lib/FindHeaders.cpp
M clang-tools-extra/include-cleaner/lib/HTMLReport.cpp
M clang-tools-extra/include-cleaner/lib/LocateSymbol.cpp
M clang-tools-extra/include-cleaner/lib/WalkAST.cpp
M clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp
M clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
M clang-tools-extra/include-cleaner/unittests/FindHeadersTest.cpp
M clang-tools-extra/include-cleaner/unittests/LocateSymbolTest.cpp
M clang-tools-extra/include-cleaner/unittests/RecordTest.cpp
M clang-tools-extra/modularize/CoverageChecker.cpp
M clang-tools-extra/modularize/ModuleAssistant.cpp
M clang-tools-extra/test/CMakeLists.txt
A clang-tools-extra/test/clang-doc/builtin_types.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
A clang-tools-extra/test/clang-reorder-fields/Comments.cpp
A clang-tools-extra/test/clang-reorder-fields/FieldAnnotationsInMacros.cpp
M clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string
M clang-tools-extra/test/clang-tidy/checkers/bugprone/argument-comment-strict.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-2.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-consteval.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/incorrect-enable-shared-from-this.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-bitfields.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-equivalentbitwidth-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-ignoreconversionfromtypes-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-intemplates-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-long-is-32bits.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-narrowingfloatingpoint-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-narrowinginteger-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-narrowingintegertofloatingpoint-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-pedanticmode-option.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions-unsigned-char.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/narrowing-conversions.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/optional-value-conversion-construct-from-std.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/return-const-ref-from-parameter.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-self-assignment.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-functions-custom-regex.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-local-non-trivial-variable-name-independence.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-bitfields.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-equivalentbitwidth-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-ignoreconversionfromtypes-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-intemplates-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-long-is-32bits.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-narrowingfloatingpoint-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-narrowinginteger-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-narrowingintegertofloatingpoint-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-pedanticmode-option.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions-unsigned-char.cpp
R clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/narrowing-conversions.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-type-const-cast.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-type-static-cast-downcast.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/pro-type-vararg.cpp
M clang-tools-extra/test/clang-tidy/checkers/fuchsia/default-arguments-calls.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/redundant-expression-2.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/redundant-expression.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/unused-parameters-strict.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/unused-parameters.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-consteval.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp
A clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/raw-string-literal.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison-qt.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-integer-sign-comparison.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-starts-ends-with.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format-fmt.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-format.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-absl.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-using.cpp
M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-copy-initialization.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-casting.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/Inputs/normalized-path/code.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/Inputs/normalized-path/error-config/.clang-tidy
A clang-tools-extra/test/clang-tidy/infrastructure/Inputs/param/parameters.txt
A clang-tools-extra/test/clang-tidy/infrastructure/deprecation-global-option.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/normalized-path.test
A clang-tools-extra/test/clang-tidy/infrastructure/read-parameters-from-file-error.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/read-parameters-from-file.cpp
M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
M clang-tools-extra/unittests/clang-tidy/IncludeCleanerTest.cpp
M clang/CMakeLists.txt
M clang/Maintainers.rst
M clang/bindings/python/clang/cindex.py
M clang/bindings/python/tests/cindex/test_cursor.py
M clang/bindings/python/tests/cindex/test_type.py
M clang/cmake/caches/Android.cmake
M clang/cmake/caches/CrossWinToARMLinux.cmake
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/cmake/caches/Fuchsia.cmake
M clang/cmake/caches/hexagon-unknown-linux-musl-clang-cross.cmake
M clang/cmake/modules/AddClang.cmake
M clang/docs/BoundsSafety.rst
A clang/docs/BoundsSafetyAdoptionGuide.rst
M clang/docs/ClangFormat.rst
M clang/docs/ClangFormatStyleOptions.rst
M clang/docs/ClangOffloadBundler.rst
M clang/docs/ClangTransformerTutorial.rst
M clang/docs/ConstantInterpreter.rst
M clang/docs/HIPSupport.rst
M clang/docs/InternalsManual.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/LibASTMatchersReference.html
M clang/docs/MatrixTypes.rst
M clang/docs/Modules.rst
M clang/docs/Multilib.rst
M clang/docs/OpenMPSupport.rst
M clang/docs/RealtimeSanitizer.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerCoverage.rst
M clang/docs/StandardCPlusPlusModules.rst
M clang/docs/ThreadSafetyAnalysis.rst
A clang/docs/TypeSanitizer.rst
M clang/docs/UndefinedBehaviorSanitizer.rst
M clang/docs/UsersManual.rst
M clang/docs/analyzer/checkers.rst
A clang/docs/analyzer/images/example_attribute_nonnull.png
A clang/docs/analyzer/images/example_cf_returns_retained.png
A clang/docs/analyzer/images/example_custom_assert.png
A clang/docs/analyzer/images/example_ns_returns_retained.png
A clang/docs/analyzer/images/example_null_pointer.png
A clang/docs/analyzer/images/example_use_assert.png
M clang/docs/analyzer/user-docs.rst
A clang/docs/analyzer/user-docs/Annotations.rst
M clang/docs/analyzer/user-docs/FAQ.rst
M clang/docs/index.rst
M clang/docs/tools/dump_ast_matchers.py
M clang/docs/tools/dump_format_help.py
M clang/docs/tools/dump_format_style.py
M clang/examples/Attribute/Attribute.cpp
M clang/examples/CallSuperAttribute/CallSuperAttrInfo.cpp
M clang/include/clang-c/CXString.h
M clang/include/clang-c/Index.h
M clang/include/clang/APINotes/Types.h
R clang/include/clang/ARCMigrate/ARCMT.h
R clang/include/clang/ARCMigrate/ARCMTActions.h
R clang/include/clang/ARCMigrate/FileRemapper.h
M clang/include/clang/AST/APValue.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTLambda.h
M clang/include/clang/AST/ASTNodeTraverser.h
M clang/include/clang/AST/Attr.h
M clang/include/clang/AST/AttrIterator.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/AST/DeclContextInternals.h
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/AST/ExprConcepts.h
M clang/include/clang/AST/ExprObjC.h
M clang/include/clang/AST/ExternalASTMerger.h
M clang/include/clang/AST/ExternalASTSource.h
M clang/include/clang/AST/OpenACCClause.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Redeclarable.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/AST/StmtOpenACC.h
A clang/include/clang/AST/StmtSYCL.h
M clang/include/clang/AST/StmtVisitor.h
M clang/include/clang/AST/TemplateBase.h
M clang/include/clang/AST/TextNodeDumper.h
M clang/include/clang/AST/Type.h
M clang/include/clang/AST/TypeLoc.h
M clang/include/clang/AST/TypeProperties.td
M clang/include/clang/AST/UnresolvedSet.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/ASTMatchers/ASTMatchersInternal.h
M clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h
M clang/include/clang/Analysis/Analyses/ThreadSafety.h
M clang/include/clang/Analysis/FlowSensitive/ASTOps.h
M clang/include/clang/Analysis/FlowSensitive/CachedConstAccessorsLattice.h
M clang/include/clang/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.h
A clang/include/clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h
M clang/include/clang/Basic/AArch64SVEACLETypes.def
M clang/include/clang/Basic/AddressSpaces.h
A clang/include/clang/Basic/AllDiagnosticKinds.inc
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/AttributeCommonInfo.h
M clang/include/clang/Basic/Attributes.h
M clang/include/clang/Basic/Builtins.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/BuiltinsAArch64.def
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/include/clang/Basic/BuiltinsARM.def
M clang/include/clang/Basic/BuiltinsBase.td
R clang/include/clang/Basic/BuiltinsHexagon.def
A clang/include/clang/Basic/BuiltinsHexagon.td
R clang/include/clang/Basic/BuiltinsHexagonDep.def
M clang/include/clang/Basic/BuiltinsLoongArchLASX.def
M clang/include/clang/Basic/BuiltinsLoongArchLSX.def
R clang/include/clang/Basic/BuiltinsNVPTX.def
A clang/include/clang/Basic/BuiltinsNVPTX.td
A clang/include/clang/Basic/BuiltinsSPIRV.td
M clang/include/clang/Basic/BuiltinsSystemZ.def
R clang/include/clang/Basic/BuiltinsX86.def
M clang/include/clang/Basic/BuiltinsX86.td
A clang/include/clang/Basic/BuiltinsX86Base.td
R clang/include/clang/Basic/BuiltinsX86_64.def
A clang/include/clang/Basic/BuiltinsX86_64.td
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/CodeGenOptions.h
M clang/include/clang/Basic/Cuda.h
M clang/include/clang/Basic/DeclNodes.td
M clang/include/clang/Basic/Diagnostic.h
M clang/include/clang/Basic/DiagnosticAST.h
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/include/clang/Basic/DiagnosticAnalysis.h
M clang/include/clang/Basic/DiagnosticCategories.h
M clang/include/clang/Basic/DiagnosticComment.h
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Basic/DiagnosticCrossTU.h
M clang/include/clang/Basic/DiagnosticDriver.h
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticFrontend.h
M clang/include/clang/Basic/DiagnosticFrontendKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticIDs.h
M clang/include/clang/Basic/DiagnosticInstallAPI.h
M clang/include/clang/Basic/DiagnosticLex.h
M clang/include/clang/Basic/DiagnosticLexKinds.td
M clang/include/clang/Basic/DiagnosticParse.h
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticRefactoring.h
M clang/include/clang/Basic/DiagnosticSema.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/DiagnosticSerialization.h
M clang/include/clang/Basic/Features.def
M clang/include/clang/Basic/FileEntry.h
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Basic/OpenACCClauses.def
M clang/include/clang/Basic/OpenACCKinds.h
M clang/include/clang/Basic/OpenMPKinds.def
M clang/include/clang/Basic/OpenMPKinds.h
M clang/include/clang/Basic/PointerAuthOptions.h
M clang/include/clang/Basic/Sanitizers.def
M clang/include/clang/Basic/Sanitizers.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Basic/Version.inc.in
M clang/include/clang/Basic/arm_immcheck_incl.td
M clang/include/clang/Basic/arm_mve.td
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_neon_incl.td
M clang/include/clang/Basic/arm_sme.td
M clang/include/clang/Basic/arm_sve.td
M clang/include/clang/Basic/arm_sve_sme_incl.td
M clang/include/clang/CIR/CIRGenerator.h
M clang/include/clang/CIR/CMakeLists.txt
A clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
A clang/include/clang/CIR/Dialect/IR/CIRAttrs.h
A clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRDialect.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
A clang/include/clang/CIR/Dialect/IR/CIRTypes.h
A clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/Dialect/IR/CMakeLists.txt
A clang/include/clang/CIR/FrontendAction/.clang-tidy
M clang/include/clang/CIR/FrontendAction/CIRGenAction.h
A clang/include/clang/CIR/Interfaces/CIRFPTypeInterface.h
A clang/include/clang/CIR/Interfaces/CIRFPTypeInterface.td
A clang/include/clang/CIR/Interfaces/CMakeLists.txt
A clang/include/clang/CIR/LowerToLLVM.h
R clang/include/clang/CIRFrontendAction/.clang-tidy
M clang/include/clang/CodeGen/BackendUtil.h
M clang/include/clang/Config/config.h.cmake
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Multilib.h
M clang/include/clang/Driver/OffloadBundler.h
M clang/include/clang/Driver/Options.td
M clang/include/clang/Driver/SanitizerArgs.h
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
M clang/include/clang/Format/Format.h
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Lex/Lexer.h
M clang/include/clang/Lex/PreprocessingRecord.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/CMakeLists.txt
M clang/include/clang/Sema/DeclSpec.h
A clang/include/clang/Sema/HeuristicResolver.h
M clang/include/clang/Sema/MultiplexExternalSemaSource.h
M clang/include/clang/Sema/Overload.h
M clang/include/clang/Sema/ParsedAttr.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaARM.h
M clang/include/clang/Sema/SemaCodeCompletion.h
M clang/include/clang/Sema/SemaConcept.h
M clang/include/clang/Sema/SemaHLSL.h
M clang/include/clang/Sema/SemaInternal.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/include/clang/Sema/SemaOpenMP.h
A clang/include/clang/Sema/SemaSPIRV.h
M clang/include/clang/Sema/SemaSYCL.h
M clang/include/clang/Sema/Template.h
M clang/include/clang/Sema/TemplateDeduction.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTReader.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
M clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
A clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntPtr.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
M clang/include/clang/Tooling/Inclusions/IncludeStyle.h
M clang/include/clang/Tooling/Tooling.h
M clang/include/module.modulemap
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesManager.cpp
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesTypes.cpp
M clang/lib/APINotes/APINotesWriter.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
R clang/lib/ARCMigrate/ARCMT.cpp
R clang/lib/ARCMigrate/ARCMTActions.cpp
R clang/lib/ARCMigrate/CMakeLists.txt
R clang/lib/ARCMigrate/FileRemapper.cpp
R clang/lib/ARCMigrate/Internals.h
R clang/lib/ARCMigrate/ObjCMT.cpp
R clang/lib/ARCMigrate/PlistReporter.cpp
R clang/lib/ARCMigrate/TransAPIUses.cpp
R clang/lib/ARCMigrate/TransARCAssign.cpp
R clang/lib/ARCMigrate/TransAutoreleasePool.cpp
R clang/lib/ARCMigrate/TransBlockObjCVariable.cpp
R clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp
R clang/lib/ARCMigrate/TransGCAttrs.cpp
R clang/lib/ARCMigrate/TransGCCalls.cpp
R clang/lib/ARCMigrate/TransProperties.cpp
R clang/lib/ARCMigrate/TransProtectedScope.cpp
R clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
R clang/lib/ARCMigrate/TransUnbridgedCasts.cpp
R clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp
R clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp
R clang/lib/ARCMigrate/TransformActions.cpp
R clang/lib/ARCMigrate/Transforms.cpp
R clang/lib/ARCMigrate/Transforms.h
M clang/lib/AST/APValue.cpp
M clang/lib/AST/ASTConcept.cpp
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTDiagnostic.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/ASTImporterLookupTable.cpp
M clang/lib/AST/ASTStructuralEquivalence.cpp
A clang/lib/AST/ByteCode/BitcastBuffer.cpp
A clang/lib/AST/ByteCode/BitcastBuffer.h
M clang/lib/AST/ByteCode/Boolean.h
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/FixedPoint.h
M clang/lib/AST/ByteCode/Integral.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/lib/AST/ByteCode/InterpFrame.h
M clang/lib/AST/ByteCode/InterpState.cpp
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/ByteCode/Record.h
M clang/lib/AST/CMakeLists.txt
M clang/lib/AST/CXXInheritance.cpp
M clang/lib/AST/CommentLexer.cpp
M clang/lib/AST/CommentParser.cpp
M clang/lib/AST/CommentSema.cpp
M clang/lib/AST/ComputeDependence.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclBase.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/DeclFriend.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ExprClassification.cpp
M clang/lib/AST/ExprConcepts.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ExternalASTMerger.cpp
M clang/lib/AST/ExternalASTSource.cpp
M clang/lib/AST/ItaniumCXXABI.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/ODRHash.cpp
M clang/lib/AST/OpenACCClause.cpp
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/ParentMap.cpp
M clang/lib/AST/ParentMapContext.cpp
M clang/lib/AST/Randstruct.cpp
M clang/lib/AST/RecordLayoutBuilder.cpp
M clang/lib/AST/Stmt.cpp
M clang/lib/AST/StmtOpenACC.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TemplateBase.cpp
M clang/lib/AST/TemplateName.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/AST/Type.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
M clang/lib/ASTMatchers/Dynamic/Registry.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/Consumed.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/Analysis/FlowSensitive/ASTOps.cpp
M clang/lib/Analysis/FlowSensitive/Arena.cpp
M clang/lib/Analysis/FlowSensitive/CMakeLists.txt
M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
M clang/lib/Analysis/FlowSensitive/Models/ChromiumCheckModel.cpp
M clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp
A clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
M clang/lib/Analysis/IntervalPartition.cpp
M clang/lib/Analysis/PathDiagnostic.cpp
M clang/lib/Analysis/ReachableCode.cpp
M clang/lib/Analysis/ThreadSafety.cpp
M clang/lib/Analysis/ThreadSafetyCommon.cpp
M clang/lib/Analysis/UnsafeBufferUsage.cpp
M clang/lib/Basic/Attributes.cpp
M clang/lib/Basic/Builtins.cpp
M clang/lib/Basic/CMakeLists.txt
M clang/lib/Basic/CodeGenOptions.cpp
M clang/lib/Basic/Cuda.cpp
M clang/lib/Basic/Diagnostic.cpp
M clang/lib/Basic/DiagnosticIDs.cpp
M clang/lib/Basic/FileManager.cpp
M clang/lib/Basic/LangOptions.cpp
M clang/lib/Basic/Sanitizers.cpp
M clang/lib/Basic/SourceManager.cpp
A clang/lib/Basic/TargetDefines.h
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets.cpp
M clang/lib/Basic/Targets.h
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/ARM.h
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/LoongArch.cpp
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/Mips.cpp
M clang/lib/Basic/Targets/Mips.h
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/NVPTX.h
M clang/lib/Basic/Targets/OSTargets.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Basic/Targets/SPIR.cpp
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/SystemZ.cpp
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/TCE.h
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/Basic/Targets/X86.h
A clang/lib/Basic/Targets/Xtensa.cpp
A clang/lib/Basic/Targets/Xtensa.h
M clang/lib/CIR/CMakeLists.txt
A clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenTypeCache.h
A clang/lib/CIR/CodeGen/CIRGenTypes.cpp
A clang/lib/CIR/CodeGen/CIRGenTypes.h
M clang/lib/CIR/CodeGen/CIRGenerator.cpp
M clang/lib/CIR/CodeGen/CMakeLists.txt
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/IR/CMakeLists.txt
A clang/lib/CIR/FrontendAction/.clang-tidy
M clang/lib/CIR/FrontendAction/CIRGenAction.cpp
M clang/lib/CIR/FrontendAction/CMakeLists.txt
A clang/lib/CIR/Interfaces/CIRFPTypeInterface.cpp
A clang/lib/CIR/Interfaces/CMakeLists.txt
A clang/lib/CIR/Lowering/CMakeLists.txt
A clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
A clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/ABIInfo.cpp
M clang/lib/CodeGen/ABIInfo.h
M clang/lib/CodeGen/ABIInfoImpl.cpp
M clang/lib/CodeGen/BackendConsumer.h
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGCleanup.h
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDebugInfo.h
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGDeclCXX.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CGLoopInfo.cpp
M clang/lib/CodeGen/CGNonTrivialStruct.cpp
M clang/lib/CodeGen/CGObjC.cpp
M clang/lib/CodeGen/CGObjCGNU.cpp
M clang/lib/CodeGen/CGObjCMac.cpp
M clang/lib/CodeGen/CGObjCRuntime.cpp
M clang/lib/CodeGen/CGOpenCLRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.h
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/CodeGenPGO.cpp
M clang/lib/CodeGen/CodeGenPGO.h
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/ConstantInitBuilder.cpp
M clang/lib/CodeGen/CoverageMappingGen.cpp
M clang/lib/CodeGen/CoverageMappingGen.h
M clang/lib/CodeGen/EHScopeStack.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/ObjectFilePCHContainerWriter.cpp
M clang/lib/CodeGen/SanitizerMetadata.cpp
M clang/lib/CodeGen/SwiftCallingConv.cpp
M clang/lib/CodeGen/TargetInfo.h
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/AMDGPU.cpp
M clang/lib/CodeGen/Targets/ARM.cpp
M clang/lib/CodeGen/Targets/LoongArch.cpp
M clang/lib/CodeGen/Targets/Mips.cpp
M clang/lib/CodeGen/Targets/NVPTX.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/lib/CodeGen/Targets/XCore.cpp
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/Compilation.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/DriverOptions.cpp
M clang/lib/Driver/Multilib.cpp
M clang/lib/Driver/OffloadBundler.cpp
M clang/lib/Driver/SanitizerArgs.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/Arch/ARM.cpp
M clang/lib/Driver/ToolChains/Arch/ARM.h
M clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
M clang/lib/Driver/ToolChains/Arch/Mips.cpp
M clang/lib/Driver/ToolChains/Arch/Mips.h
M clang/lib/Driver/ToolChains/Arch/X86.cpp
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/BareMetal.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/FreeBSD.cpp
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Gnu.h
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/Linux.h
M clang/lib/Driver/ToolChains/MSVC.cpp
M clang/lib/Driver/ToolChains/MSVC.h
M clang/lib/Driver/ToolChains/MinGW.cpp
M clang/lib/Driver/ToolChains/NetBSD.cpp
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/lib/Driver/ToolChains/ROCm.h
M clang/lib/Driver/ToolChains/SPIRV.cpp
M clang/lib/Driver/ToolChains/SPIRV.h
A clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp
A clang/lib/Driver/ToolChains/SPIRVOpenMP.h
A clang/lib/Driver/ToolChains/SYCL.cpp
A clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/ToolChains/UEFI.cpp
M clang/lib/Driver/ToolChains/UEFI.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Driver/XRayArgs.cpp
M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
M clang/lib/Format/AffectedRangeManager.cpp
M clang/lib/Format/AffectedRangeManager.h
M clang/lib/Format/CMakeLists.txt
M clang/lib/Format/ContinuationIndenter.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatToken.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/FormatTokenLexer.cpp
M clang/lib/Format/FormatTokenLexer.h
M clang/lib/Format/MacroExpander.cpp
M clang/lib/Format/MatchFilePath.cpp
M clang/lib/Format/QualifierAlignmentFixer.cpp
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/TokenAnnotator.h
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
M clang/lib/Frontend/DependencyFile.cpp
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Frontend/LogDiagnosticPrinter.cpp
M clang/lib/Frontend/Rewrite/FrontendActions.cpp
M clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
M clang/lib/Frontend/TextDiagnosticPrinter.cpp
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/Headers/amdgpuintrin.h
M clang/lib/Headers/amxavx512intrin.h
M clang/lib/Headers/amxintrin.h
M clang/lib/Headers/amxtf32transposeintrin.h
M clang/lib/Headers/avx10_2_512bf16intrin.h
M clang/lib/Headers/avx10_2_512convertintrin.h
M clang/lib/Headers/avx10_2_512minmaxintrin.h
M clang/lib/Headers/avx10_2_512satcvtintrin.h
M clang/lib/Headers/avx10_2bf16intrin.h
M clang/lib/Headers/avx10_2convertintrin.h
M clang/lib/Headers/avx10_2copyintrin.h
M clang/lib/Headers/avx10_2minmaxintrin.h
M clang/lib/Headers/avx10_2satcvtintrin.h
M clang/lib/Headers/avx512vpopcntdqintrin.h
M clang/lib/Headers/avx512vpopcntdqvlintrin.h
M clang/lib/Headers/cuda_wrappers/cmath
M clang/lib/Headers/hlsl/hlsl_detail.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/hvx_hexagon_protos.h
M clang/lib/Headers/intrin.h
M clang/lib/Headers/intrin0.h
M clang/lib/Headers/larchintrin.h
M clang/lib/Headers/lasxintrin.h
M clang/lib/Headers/lsxintrin.h
M clang/lib/Headers/nvptxintrin.h
M clang/lib/Headers/vecintrin.h
M clang/lib/Index/FileIndexRecord.cpp
M clang/lib/Index/IndexDecl.cpp
M clang/lib/Index/USRGeneration.cpp
M clang/lib/Interpreter/CMakeLists.txt
M clang/lib/Interpreter/CodeCompletion.cpp
M clang/lib/Interpreter/Interpreter.cpp
M clang/lib/Interpreter/Wasm.cpp
M clang/lib/Lex/InitHeaderSearch.cpp
M clang/lib/Lex/Lexer.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseHLSL.cpp
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Parse/Parser.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/CMakeLists.txt
M clang/lib/Sema/CheckExprLifetime.cpp
M clang/lib/Sema/CheckExprLifetime.h
M clang/lib/Sema/DeclSpec.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
A clang/lib/Sema/HeuristicResolver.cpp
M clang/lib/Sema/JumpDiagnostics.cpp
M clang/lib/Sema/MultiplexExternalSemaSource.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/lib/Sema/SemaAPINotes.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCodeComplete.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaDeclObjC.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaFunctionEffects.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaOpenACC.cpp
A clang/lib/Sema/SemaOpenACCClause.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaOverload.cpp
A clang/lib/Sema/SemaSPIRV.cpp
M clang/lib/Sema/SemaSYCL.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaStmtAsm.cpp
M clang/lib/Sema/SemaStmtAttr.cpp
M clang/lib/Sema/SemaSwift.cpp
M clang/lib/Sema/SemaSystemZ.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaTemplateVariadic.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/SemaX86.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTCommon.cpp
M clang/lib/Serialization/ASTCommon.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTReaderInternals.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/Serialization/CMakeLists.txt
M clang/lib/Serialization/GeneratePCH.cpp
M clang/lib/Serialization/MultiOnDiskHashTable.h
A clang/lib/Serialization/TemplateArgumentHasher.cpp
A clang/lib/Serialization/TemplateArgumentHasher.h
M clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
M clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
M clang/lib/StaticAnalyzer/Checkers/BitwiseShiftChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp
M clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
R clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/Iterator.cpp
M clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.h
A clang/lib/StaticAnalyzer/Checkers/WebKit/MemoryUnsafeCastChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp
M clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
M clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
M clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
M clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
M clang/lib/StaticAnalyzer/Core/RegionStore.cpp
M clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
M clang/lib/StaticAnalyzer/Core/SVals.cpp
M clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
M clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
M clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
M clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/Z3CrosscheckVisitor.cpp
M clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp
M clang/lib/Testing/TestAST.cpp
M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
M clang/lib/Tooling/Inclusions/Stdlib/StdSpecialSymbolMap.inc
M clang/lib/Tooling/Inclusions/Stdlib/StdSymbolMap.inc
M clang/lib/Tooling/Tooling.cpp
M clang/runtime/CMakeLists.txt
M clang/test/APINotes/Inputs/Headers/Lifetimebound.apinotes
M clang/test/APINotes/Inputs/Headers/Lifetimebound.h
M clang/test/APINotes/Inputs/Headers/SwiftImportAs.apinotes
M clang/test/APINotes/Inputs/Headers/SwiftImportAs.h
A clang/test/APINotes/Inputs/Headers/SwiftReturnOwnershipForObjC.apinotes
A clang/test/APINotes/Inputs/Headers/SwiftReturnOwnershipForObjC.h
M clang/test/APINotes/Inputs/Headers/Templates.h
M clang/test/APINotes/Inputs/Headers/module.modulemap
M clang/test/APINotes/lifetimebound.cpp
M clang/test/APINotes/swift-import-as.cpp
A clang/test/APINotes/swift-return-ownership.m
M clang/test/APINotes/templates.cpp
R clang/test/ARCMT/Common.h
R clang/test/ARCMT/GC-check-warn-nsalloc.m
R clang/test/ARCMT/GC-check.m
R clang/test/ARCMT/GC-no-arc-runtime.m
R clang/test/ARCMT/GC-no-arc-runtime.m.result
R clang/test/ARCMT/GC-no-finalize-removal.m
R clang/test/ARCMT/GC-no-finalize-removal.m.result
R clang/test/ARCMT/GC.h
R clang/test/ARCMT/GC.m
R clang/test/ARCMT/GC.m.result
R clang/test/ARCMT/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Buried/Treasure.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Module.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/NotInModule.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Sub.h
R clang/test/ARCMT/Inputs/Module.framework/Headers/Sub2.h
R clang/test/ARCMT/Inputs/Module.framework/Module
R clang/test/ARCMT/Inputs/Module.framework/PrivateHeaders/ModulePrivate.h
R clang/test/ARCMT/Inputs/module.modulemap
R clang/test/ARCMT/Inputs/test.h
R clang/test/ARCMT/Inputs/test.h.result
R clang/test/ARCMT/Inputs/test1.m.in
R clang/test/ARCMT/Inputs/test1.m.in.result
R clang/test/ARCMT/Inputs/test2.m.in
R clang/test/ARCMT/Inputs/test2.m.in.result
R clang/test/ARCMT/Inputs/with space/test.h
R clang/test/ARCMT/Inputs/with space/test.h.result
R clang/test/ARCMT/Inputs/with space/test1.m.in
R clang/test/ARCMT/Inputs/with space/test1.m.in.result
R clang/test/ARCMT/Inputs/with space/test2.m.in
R clang/test/ARCMT/Inputs/with space/test2.m.in.result
R clang/test/ARCMT/allowlisted/Inputs/header1.h
R clang/test/ARCMT/allowlisted/header1.h
R clang/test/ARCMT/allowlisted/header1.h.result
R clang/test/ARCMT/allowlisted/header2.h
R clang/test/ARCMT/allowlisted/header2.h.result
R clang/test/ARCMT/allowlisted/objcmt-with-allowlist-impl.m
R clang/test/ARCMT/allowlisted/objcmt-with-allowlist-impl.m.result
R clang/test/ARCMT/allowlisted/objcmt-with-allowlist.m
R clang/test/ARCMT/api.m
R clang/test/ARCMT/api.m.result
R clang/test/ARCMT/assign-prop-no-arc-runtime.m
R clang/test/ARCMT/assign-prop-no-arc-runtime.m.result
R clang/test/ARCMT/assign-prop-with-arc-runtime.m
R clang/test/ARCMT/assign-prop-with-arc-runtime.m.result
R clang/test/ARCMT/atautorelease-2.m
R clang/test/ARCMT/atautorelease-2.m.result
R clang/test/ARCMT/atautorelease-3.m
R clang/test/ARCMT/atautorelease-3.m.result
R clang/test/ARCMT/atautorelease-check.m
R clang/test/ARCMT/atautorelease.m
R clang/test/ARCMT/atautorelease.m.result
R clang/test/ARCMT/autoreleases.m
R clang/test/ARCMT/autoreleases.m.result
R clang/test/ARCMT/block_copy_release.m
R clang/test/ARCMT/block_copy_release.m.result
R clang/test/ARCMT/check-api.m
R clang/test/ARCMT/check-with-pch.m
R clang/test/ARCMT/check-with-serialized-diag.m
R clang/test/ARCMT/checking-in-arc.m
R clang/test/ARCMT/checking.m
R clang/test/ARCMT/cxx-checking.mm
R clang/test/ARCMT/cxx-rewrite.mm
R clang/test/ARCMT/cxx-rewrite.mm.result
R clang/test/ARCMT/dealloc.m
R clang/test/ARCMT/dealloc.m.result
R clang/test/ARCMT/designated-init-in-header/designated-init-in-header.m
R clang/test/ARCMT/designated-init-in-header/file1.m.in
R clang/test/ARCMT/designated-init-in-header/file2.m.in
R clang/test/ARCMT/designated-init-in-header/file2.m.in.result
R clang/test/ARCMT/designated-init-in-header/header1.h
R clang/test/ARCMT/designated-init-in-header/header1.h.result
R clang/test/ARCMT/dispatch.m
R clang/test/ARCMT/dispatch.m.result
R clang/test/ARCMT/driver-migrate.m
R clang/test/ARCMT/init.m
R clang/test/ARCMT/init.m.result
R clang/test/ARCMT/lit.local.cfg
R clang/test/ARCMT/migrate-emit-errors.m
R clang/test/ARCMT/migrate-on-pch-and-module.m
R clang/test/ARCMT/migrate-plist-output.m
R clang/test/ARCMT/migrate-space-in-path.m
R clang/test/ARCMT/migrate-with-pch.m
R clang/test/ARCMT/migrate.m
R clang/test/ARCMT/no-canceling-bridge-to-bridge-cast.m
R clang/test/ARCMT/nonobjc-to-objc-cast-2.m
R clang/test/ARCMT/nonobjc-to-objc-cast.m
R clang/test/ARCMT/nonobjc-to-objc-cast.m.result
R clang/test/ARCMT/objcmt-arc-cf-annotations.m
R clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
R clang/test/ARCMT/objcmt-atomic-property.m
R clang/test/ARCMT/objcmt-atomic-property.m.result
R clang/test/ARCMT/objcmt-boxing.m
R clang/test/ARCMT/objcmt-boxing.m.result
R clang/test/ARCMT/objcmt-designated-initializer.m
R clang/test/ARCMT/objcmt-designated-initializer.m.result
R clang/test/ARCMT/objcmt-instancetype-2.m
R clang/test/ARCMT/objcmt-instancetype-2.m.result
R clang/test/ARCMT/objcmt-instancetype-unnecessary-diff.m
R clang/test/ARCMT/objcmt-instancetype.m
R clang/test/ARCMT/objcmt-instancetype.m.result
R clang/test/ARCMT/objcmt-invalid-code.mm
R clang/test/ARCMT/objcmt-invalid-code.mm.result
R clang/test/ARCMT/objcmt-migrate-all.m
R clang/test/ARCMT/objcmt-migrate-all.m.result
R clang/test/ARCMT/objcmt-ns-enum-crash.m
R clang/test/ARCMT/objcmt-ns-enum-crash.m.result
R clang/test/ARCMT/objcmt-ns-macros.m
R clang/test/ARCMT/objcmt-ns-macros.m.result
R clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m
R clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m.result
R clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m
R clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m.result
R clang/test/ARCMT/objcmt-numeric-literals.m
R clang/test/ARCMT/objcmt-numeric-literals.m.result
R clang/test/ARCMT/objcmt-property-availability.m
R clang/test/ARCMT/objcmt-property-availability.m.result
R clang/test/ARCMT/objcmt-property-dot-syntax.m
R clang/test/ARCMT/objcmt-property-dot-syntax.m.result
R clang/test/ARCMT/objcmt-property.m
R clang/test/ARCMT/objcmt-property.m.result
R clang/test/ARCMT/objcmt-protocol-conformance.m
R clang/test/ARCMT/objcmt-protocol-conformance.m.result
R clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m
R clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m.result
R clang/test/ARCMT/objcmt-subscripting-literals.m
R clang/test/ARCMT/objcmt-subscripting-literals.m.result
R clang/test/ARCMT/objcmt-subscripting-unavailable.m
R clang/test/ARCMT/objcmt-subscripting-unavailable.m.result
R clang/test/ARCMT/objcmt-undefined-ns-macros.m
R clang/test/ARCMT/objcmt-undefined-ns-macros.m.result
R clang/test/ARCMT/objcmt-with-pch.m
R clang/test/ARCMT/objcmt-with-pch.m.result
R clang/test/ARCMT/protected-scope.m
R clang/test/ARCMT/protected-scope.m.result
R clang/test/ARCMT/releases-driver.m
R clang/test/ARCMT/releases-driver.m.result
R clang/test/ARCMT/releases.m
R clang/test/ARCMT/releases.m.result
R clang/test/ARCMT/remap-applying.c
R clang/test/ARCMT/remap-applying.c.result
R clang/test/ARCMT/remove-dealloc-method.m
R clang/test/ARCMT/remove-dealloc-method.m.result
R clang/test/ARCMT/remove-dealloc-zerouts.m
R clang/test/ARCMT/remove-dealloc-zerouts.m.result
R clang/test/ARCMT/remove-statements.m
R clang/test/ARCMT/remove-statements.m.result
R clang/test/ARCMT/retains.m
R clang/test/ARCMT/retains.m.result
R clang/test/ARCMT/rewrite-block-var.m
R clang/test/ARCMT/rewrite-block-var.m.result
R clang/test/ARCMT/safe-arc-assign.m
R clang/test/ARCMT/safe-arc-assign.m.result
R clang/test/ARCMT/verify.m
R clang/test/ARCMT/with-arc-mode-modify.m
R clang/test/ARCMT/with-arc-mode-modify.m.result
A clang/test/AST/ByteCode/altivec.c
A clang/test/AST/ByteCode/amdgpu-nullptr.cl
A clang/test/AST/ByteCode/builtin-bit-cast-bitfields.cpp
M clang/test/AST/ByteCode/builtin-bit-cast-long-double.cpp
M clang/test/AST/ByteCode/builtin-bit-cast.cpp
M clang/test/AST/ByteCode/builtin-constant-p.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/AST/ByteCode/c23.c
M clang/test/AST/ByteCode/complex.cpp
M clang/test/AST/ByteCode/constexpr.c
M clang/test/AST/ByteCode/cxx11.cpp
M clang/test/AST/ByteCode/cxx17.cpp
M clang/test/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/cxx23.cpp
M clang/test/AST/ByteCode/cxx2a.cpp
M clang/test/AST/ByteCode/cxx98.cpp
M clang/test/AST/ByteCode/functions.cpp
M clang/test/AST/ByteCode/if.cpp
M clang/test/AST/ByteCode/lifetimes.cpp
M clang/test/AST/ByteCode/literals.cpp
A clang/test/AST/ByteCode/neon.c
M clang/test/AST/ByteCode/new-delete.cpp
M clang/test/AST/ByteCode/placement-new.cpp
M clang/test/AST/ByteCode/records.cpp
M clang/test/AST/ByteCode/shifts.cpp
M clang/test/AST/ByteCode/unions.cpp
M clang/test/AST/ByteCode/vectors.cpp
R clang/test/AST/HLSL/AppendStructuredBuffer-AST.hlsl
A clang/test/AST/HLSL/ArrayOutArgExpr.hlsl
A clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl
R clang/test/AST/HLSL/ConsumeStructuredBuffer-AST.hlsl
A clang/test/AST/HLSL/HLSLControlFlowHint.hlsl
R clang/test/AST/HLSL/RWBuffer-AST.hlsl
R clang/test/AST/HLSL/RWStructuredBuffer-AST.hlsl
R clang/test/AST/HLSL/RasterizerOrderedStructuredBuffer-AST.hlsl
R clang/test/AST/HLSL/StructuredBuffer-AST.hlsl
A clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
A clang/test/AST/HLSL/TypedBuffers-AST.hlsl
R clang/test/AST/HLSL/ast-dump-comment-cbuffe-tbufferr.hlsl
A clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl
A clang/test/AST/HLSL/cbuffer.hlsl
A clang/test/AST/HLSL/cbuffer_and_namespaces.hlsl
R clang/test/AST/HLSL/cbuffer_tbuffer.hlsl
A clang/test/AST/HLSL/is_structured_resource_element_compatible_concept.hlsl
A clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl
M clang/test/AST/HLSL/packoffset.hlsl
M clang/test/AST/HLSL/pch_hlsl_buffer.hlsl
M clang/test/AST/HLSL/resource_binding_attr.hlsl
A clang/test/AST/ast-dump-APValue-lvalue.cpp
M clang/test/AST/ast-dump-APValue-todo.cpp
A clang/test/AST/ast-dump-binding-pack.cpp
A clang/test/AST/ast-dump-cxx2b-deducing-this.cpp
M clang/test/AST/ast-dump-decl.c
M clang/test/AST/ast-dump-records.c
M clang/test/AST/ast-dump-records.cpp
M clang/test/AST/ast-dump-recovery.cpp
M clang/test/AST/ast-dump-special-member-functions.cpp
M clang/test/AST/ast-dump-types-json.cpp
M clang/test/AST/ast-print-openacc-combined-construct.cpp
A clang/test/AST/ast-print-openacc-data-construct.cpp
A clang/test/AST/ast-print-openacc-init-construct.cpp
A clang/test/AST/ast-print-openacc-set-construct.cpp
A clang/test/AST/ast-print-openacc-shutdown-construct.cpp
A clang/test/AST/ast-print-openacc-update-construct.cpp
A clang/test/AST/ast-print-openacc-wait-construct.cpp
A clang/test/AST/ast-print-packindexingexpr.cpp
M clang/test/AST/attr-counted-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-counted-by-or-null-struct-ptrs.c
M clang/test/AST/attr-counted-by-struct-ptrs.c
M clang/test/AST/attr-lifetime-capture-by.cpp
M clang/test/AST/attr-sized-by-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-late-parsed-struct-ptrs.c
M clang/test/AST/attr-sized-by-or-null-struct-ptrs.c
M clang/test/AST/attr-sized-by-struct-ptrs.c
A clang/test/AST/ms-constexpr-new.cpp
A clang/test/ASTSYCL/ast-dump-sycl-kernel-call-stmt.cpp
M clang/test/ASTSYCL/ast-dump-sycl-kernel-entry-point.cpp
M clang/test/Analysis/Checkers/WebKit/call-args-checked-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/call-args-checked-ptr.cpp
M clang/test/Analysis/Checkers/WebKit/call-args-counted-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/call-args.cpp
M clang/test/Analysis/Checkers/WebKit/local-vars-checked-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/local-vars-counted-const-member.cpp
A clang/test/Analysis/Checkers/WebKit/memory-unsafe-cast.cpp
A clang/test/Analysis/Checkers/WebKit/memory-unsafe-cast.mm
M clang/test/Analysis/Checkers/WebKit/mock-types.h
M clang/test/Analysis/Checkers/WebKit/ref-cntbl-crtp-base-no-virtual-dtor.cpp
A clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures-find-lambda-crash.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
A clang/test/Analysis/Inputs/ctu-test-import-failure-import.cpp
A clang/test/Analysis/Inputs/ctu-test-import-failure-import.cpp.externalDefMap.ast-dump.txt
M clang/test/Analysis/Inputs/expected-plists/plist-output.m.plist
A clang/test/Analysis/PR121201.cpp
M clang/test/Analysis/analyzer-config.c
M clang/test/Analysis/analyzer-enabled-checkers.c
A clang/test/Analysis/anonymous-decls.cpp
M clang/test/Analysis/bstring.cpp
A clang/test/Analysis/bugfix-124477.m
M clang/test/Analysis/chroot.c
M clang/test/Analysis/const-method-call.cpp
M clang/test/Analysis/copy-elision.cpp
M clang/test/Analysis/ctor-trivial-copy.cpp
A clang/test/Analysis/ctu-test-import-failure.cpp
M clang/test/Analysis/cxx-uninitialized-object-unguarded-access.cpp
M clang/test/Analysis/dump_egraph.cpp
M clang/test/Analysis/embed.c
M clang/test/Analysis/explain-svals.cpp
M clang/test/Analysis/expr-inspection-printState-diseq-info.c
M clang/test/Analysis/expr-inspection-printState-eq-classes.c
R clang/test/Analysis/identical-expressions.cpp
M clang/test/Analysis/initializer.cpp
M clang/test/Analysis/inline-unique-reports.c
M clang/test/Analysis/iterator-modeling.cpp
M clang/test/Analysis/lifetime-extended-regions.cpp
A clang/test/Analysis/loop-assumptions.c
M clang/test/Analysis/loop-unrolling.cpp
M clang/test/Analysis/malloc.c
M clang/test/Analysis/misc-ps-region-store.m
M clang/test/Analysis/nil-receiver-undefined-larger-than-voidptr-ret.m
M clang/test/Analysis/novoidtypecrash.c
M clang/test/Analysis/null-deref-path-notes.cpp
M clang/test/Analysis/plist-output.m
M clang/test/Analysis/plist-stats-output.c
M clang/test/Analysis/ptr-arith.cpp
M clang/test/Analysis/reference.cpp
M clang/test/Analysis/scopes-cfg-output.cpp
M clang/test/Analysis/show-checker-list.c
M clang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c
M clang/test/Analysis/stl-algorithm-modeling-aggressive-std-find-modeling.cpp
M clang/test/Analysis/stl-algorithm-modeling.cpp
M clang/test/Analysis/string.c
M clang/test/Analysis/string.cpp
A clang/test/Analysis/string_notnullterm.c
M clang/test/Analysis/structured_bindings.cpp
M clang/test/Analysis/symbol-simplification-disequality-info.cpp
M clang/test/Analysis/symbol-simplification-fixpoint-one-iteration.cpp
M clang/test/Analysis/symbol-simplification-fixpoint-two-iterations.cpp
M clang/test/Analysis/template-param-objects.cpp
M clang/test/Analysis/unary-sym-expr.c
A clang/test/Analysis/void-call-exit-modelling.c
A clang/test/Analysis/z3-crosscheck-max-attempts.cpp
M clang/test/Analysis/z3/D83660.c
R clang/test/Analysis/z3/Inputs/MockZ3_solver_check.c
A clang/test/Analysis/z3/Inputs/MockZ3_solver_check.cpp
M clang/test/Analysis/z3/crosscheck-statistics.c
A clang/test/C/C23/n2412.c
A clang/test/CIR/Lowering/hello.c
A clang/test/CIR/global-var-simple.cpp
M clang/test/CMakeLists.txt
M clang/test/CXX/basic/basic.link/p3.cpp
M clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p5-ex2.cpp
M clang/test/CXX/basic/basic.scope/basic.scope.namespace/p2.cpp
M clang/test/CXX/class.access/class.friend/p11.cpp
M clang/test/CXX/conv/conv.mem/p4.cpp
M clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp
M clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/p1.cpp
M clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p13.cpp
M clang/test/CXX/drs/cwg0xx.cpp
M clang/test/CXX/drs/cwg10xx.cpp
M clang/test/CXX/drs/cwg118.cpp
M clang/test/CXX/drs/cwg11xx.cpp
M clang/test/CXX/drs/cwg12xx.cpp
M clang/test/CXX/drs/cwg13xx.cpp
M clang/test/CXX/drs/cwg14xx.cpp
M clang/test/CXX/drs/cwg158.cpp
M clang/test/CXX/drs/cwg15xx.cpp
M clang/test/CXX/drs/cwg16xx.cpp
M clang/test/CXX/drs/cwg1748.cpp
M clang/test/CXX/drs/cwg177x.cpp
M clang/test/CXX/drs/cwg17xx.cpp
M clang/test/CXX/drs/cwg1807.cpp
M clang/test/CXX/drs/cwg18xx.cpp
M clang/test/CXX/drs/cwg19xx.cpp
M clang/test/CXX/drs/cwg1xx.cpp
M clang/test/CXX/drs/cwg20xx.cpp
M clang/test/CXX/drs/cwg21xx.cpp
M clang/test/CXX/drs/cwg22xx.cpp
M clang/test/CXX/drs/cwg2335.cpp
A clang/test/CXX/drs/cwg2353.cpp
M clang/test/CXX/drs/cwg23xx.cpp
M clang/test/CXX/drs/cwg24xx.cpp
M clang/test/CXX/drs/cwg2504.cpp
M clang/test/CXX/drs/cwg25xx.cpp
M clang/test/CXX/drs/cwg26xx.cpp
A clang/test/CXX/drs/cwg273.cpp
M clang/test/CXX/drs/cwg2771.cpp
M clang/test/CXX/drs/cwg27xx.cpp
M clang/test/CXX/drs/cwg28xx.cpp
M clang/test/CXX/drs/cwg29xx.cpp
M clang/test/CXX/drs/cwg2xx.cpp
M clang/test/CXX/drs/cwg3xx.cpp
M clang/test/CXX/drs/cwg492.cpp
M clang/test/CXX/drs/cwg4xx.cpp
M clang/test/CXX/drs/cwg571.cpp
A clang/test/CXX/drs/cwg593.cpp
M clang/test/CXX/drs/cwg5xx.cpp
M clang/test/CXX/drs/cwg605.cpp
M clang/test/CXX/drs/cwg6xx.cpp
M clang/test/CXX/drs/cwg722.cpp
M clang/test/CXX/drs/cwg7xx.cpp
M clang/test/CXX/drs/cwg8xx.cpp
M clang/test/CXX/drs/cwg9xx.cpp
R clang/test/CXX/drs/cwgr593.cpp
M clang/test/CXX/expr/expr.const/p2-0x.cpp
M clang/test/CXX/expr/expr.const/p3-0x.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.lambda/p7.cpp
M clang/test/CXX/expr/expr.unary/expr.delete/p10.cpp
M clang/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
M clang/test/CXX/module/basic/basic.def.odr/p4.cppm
M clang/test/CXX/module/basic/basic.link/p2.cppm
M clang/test/CXX/module/module.import/p2.cpp
M clang/test/CXX/module/module.interface/p7.cpp
M clang/test/CXX/module/module.reach/p5.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-0x.cpp
M clang/test/CXX/temp/temp.decls/temp.variadic/fixed-expansion.cpp
M clang/test/CXX/temp/temp.decls/temp.variadic/sizeofpack.cpp
M clang/test/CXX/temp/temp.param/p12.cpp
M clang/test/CXX/temp/temp.res/p4.cpp
M clang/test/ClangScanDeps/strip-input-args.m
A clang/test/CodeCompletion/keywords-cxx20.cpp
M clang/test/CodeCompletion/member-access.cpp
M clang/test/CodeGen/2003-06-26-CFECrash.c
M clang/test/CodeGen/2003-08-18-SigSetJmp.c
M clang/test/CodeGen/2003-08-23-LocalUnionTest.c
M clang/test/CodeGen/2003-10-29-AsmRename.c
M clang/test/CodeGen/2003-11-20-ComplexDivision.c
M clang/test/CodeGen/2004-06-18-VariableLengthArrayOfStructures.c
M clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c
M clang/test/CodeGen/2005-01-02-VAArgError-ICE.c
M clang/test/CodeGen/2005-06-15-ExpandGotoInternalProblem.c
M clang/test/CodeGen/2007-01-06-KNR-Proto.c
M clang/test/CodeGen/2008-05-06-CFECrash.c
M clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c
M clang/test/CodeGen/2008-10-13-FrontendCrash.c
M clang/test/CodeGen/2009-01-21-InvalidIterator.c
M clang/test/CodeGen/2009-05-04-EnumInreg.c
M clang/test/CodeGen/2009-07-15-pad-wchar_t-array.c
M clang/test/CodeGen/AArch64/args.cpp
A clang/test/CodeGen/AArch64/builtin-shufflevector-fp8.c
M clang/test/CodeGen/AArch64/cpu-supports-target.c
M clang/test/CodeGen/AArch64/cpu-supports.c
A clang/test/CodeGen/AArch64/fixed-register-global.c
M clang/test/CodeGen/AArch64/fmv-dependencies.c
A clang/test/CodeGen/AArch64/fmv-features.c
A clang/test/CodeGen/AArch64/fmv-mix-explicit-implicit-default.c
A clang/test/CodeGen/AArch64/fmv-priority.c
A clang/test/CodeGen/AArch64/fp8-cast.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_cvt.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_fdot.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_fmla.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_reinterpret.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_cvt.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_fmopa.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sme2_fp8_mla.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sve2_fp8_cvt.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sve2_fp8_cvtn.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sve2_fp8_fdot.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sve2_fp8_fmla.c
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_sve2_fp8_reinterpret.c
M clang/test/CodeGen/AArch64/fpm-helpers.c
M clang/test/CodeGen/AArch64/ls64-inline-asm.c
M clang/test/CodeGen/AArch64/mixed-target-attributes.c
M clang/test/CodeGen/AArch64/neon-vcmla.c
M clang/test/CodeGen/AArch64/pure-scalable-args.c
A clang/test/CodeGen/AArch64/sincos.c
A clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c
M clang/test/CodeGen/AArch64/sme-inline-streaming-attrs.c
M clang/test/CodeGen/AArch64/sme-intrinsics/aarch64-sme-attrs.cpp
M clang/test/CodeGen/AArch64/sme-intrinsics/acle_sme_ld1_vnum.c
M clang/test/CodeGen/AArch64/sme-intrinsics/acle_sme_st1_vnum.c
M clang/test/CodeGen/AArch64/sme-intrinsics/acle_sme_state_funs.c
A clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_fp8_fdot.c
A clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_fp8_fvdot.c
M clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c
M clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.cpp
M clang/test/CodeGen/AArch64/sve-vector-bitwise-ops.c
M clang/test/CodeGen/AArch64/sve-vls-arith-ops.c
M clang/test/CodeGen/AArch64/sve-vls-bitwise-ops.c
M clang/test/CodeGen/AArch64/sve-vls-compare-ops.c
M clang/test/CodeGen/AArch64/sve-vls-shift-ops.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_bdep.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_bext.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_bgrp.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_luti.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_dupq.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_extq.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_st1_single.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_store.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_tblq.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_tbxq.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_uzpq1.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_uzpq2.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_zipq1.c
M clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_zipq2.c
M clang/test/CodeGen/AArch64/targetattr.c
M clang/test/CodeGen/PowerPC/aix-vaargs.c
M clang/test/CodeGen/PowerPC/builtins-ppc-pair-mma.c
M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-bitcast.c
M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-cast.c
M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-codegen.c
M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-globals.c
A clang/test/CodeGen/RISCV/builtin-cpu-is-error.c
A clang/test/CodeGen/RISCV/builtin-cpu-is.c
M clang/test/CodeGen/RISCV/riscv-func-attr-target.c
M clang/test/CodeGen/RISCV/riscv-inline-asm.c
M clang/test/CodeGen/RISCV/rvv-vls-arith-ops.c
M clang/test/CodeGen/RISCV/rvv-vls-bitwise-ops.c
M clang/test/CodeGen/RISCV/rvv-vls-compare-ops.c
M clang/test/CodeGen/RISCV/rvv-vls-shift-ops.c
A clang/test/CodeGen/SystemZ/builtin-setjmp-logjmp.c
A clang/test/CodeGen/SystemZ/builtins-systemz-bitop.c
A clang/test/CodeGen/SystemZ/builtins-systemz-vector5-error.c
A clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c
M clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c
M clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-error.c
M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c
M clang/test/CodeGen/SystemZ/builtins-systemz-zvector3-error.c
M clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c
A clang/test/CodeGen/SystemZ/builtins-systemz-zvector5-error.c
A clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c
M clang/test/CodeGen/SystemZ/systemz-abi-vector.c
M clang/test/CodeGen/SystemZ/systemz-abi.c
M clang/test/CodeGen/SystemZ/systemz-inline-asm.c
M clang/test/CodeGen/SystemZ/vec-abi-gnuattr-05.c
M clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes-malloc.c
M clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes.c
M clang/test/CodeGen/SystemZ/zvector.c
M clang/test/CodeGen/X86/amx_api.c
M clang/test/CodeGen/X86/amx_avx512_api.c
A clang/test/CodeGen/X86/amx_tile.c
M clang/test/CodeGen/X86/amxavx512-builtins.c
M clang/test/CodeGen/X86/avx10_2_512bf16-builtins.c
M clang/test/CodeGen/X86/avx10_2_512convert-builtins.c
M clang/test/CodeGen/X86/avx10_2_512minmax-builtins.c
M clang/test/CodeGen/X86/avx10_2_512minmax-error.c
M clang/test/CodeGen/X86/avx10_2_512satcvt-builtins.c
M clang/test/CodeGen/X86/avx10_2bf16-builtins.c
M clang/test/CodeGen/X86/avx10_2convert-builtins.c
M clang/test/CodeGen/X86/avx10_2minmax-builtins.c
M clang/test/CodeGen/X86/avx10_2satcvt-builtins.c
M clang/test/CodeGen/X86/avx512fp16-abi.c
M clang/test/CodeGen/X86/avx512vpopcntdq-builtins.c
M clang/test/CodeGen/X86/avx512vpopcntdqvl-builtins.c
M clang/test/CodeGen/X86/builtin_test_helpers.h
M clang/test/CodeGen/X86/cx-complex-range.c
M clang/test/CodeGen/X86/math-builtins.c
M clang/test/CodeGen/X86/ms-x86-intrinsics.c
M clang/test/CodeGen/X86/x86_64-atomic-128.c
M clang/test/CodeGen/alias.cpp
M clang/test/CodeGen/align-local.c
A clang/test/CodeGen/allow-ubsan-check-inline.c
M clang/test/CodeGen/allow-ubsan-check.c
M clang/test/CodeGen/amdgpu-barrier-type-debug-info.c
M clang/test/CodeGen/arm-bf16-convert-intrinsics.c
M clang/test/CodeGen/arm-cmse-attr.c
M clang/test/CodeGen/arm-cmse-nonsecure.c
M clang/test/CodeGen/arm-cmse-secure.c
A clang/test/CodeGen/arm-empty-args.cpp
M clang/test/CodeGen/arm-mfp8.c
M clang/test/CodeGen/arm-mve-intrinsics/vadc.c
M clang/test/CodeGen/arm-vfp16-arguments.c
M clang/test/CodeGen/arm-vfp16-arguments2.cpp
M clang/test/CodeGen/arm64-microsoft-intrinsics.c
M clang/test/CodeGen/arm64_32-vaarg.c
A clang/test/CodeGen/atomic-test-and-set.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c
M clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
M clang/test/CodeGen/attr-counted-by-pr110385.c
M clang/test/CodeGen/attr-counted-by.c
M clang/test/CodeGen/attr-cpuspecific.c
M clang/test/CodeGen/attr-noinline.cpp
M clang/test/CodeGen/attr-noreturn.c
M clang/test/CodeGen/attr-target-clones-aarch64.c
M clang/test/CodeGen/attr-target-version.c
M clang/test/CodeGen/attr-target-x86.c
M clang/test/CodeGen/block-copy.c
M clang/test/CodeGen/blocks-windows.c
M clang/test/CodeGen/bounds-checking.c
M clang/test/CodeGen/builtin-memfns.c
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGen/builtins-nvptx.c
M clang/test/CodeGen/builtins-wasm.c
M clang/test/CodeGen/catch-nullptr-and-nonzero-offset-when-nullptr-is-defined.c
M clang/test/CodeGen/catch-nullptr-and-nonzero-offset.c
M clang/test/CodeGen/catch-pointer-overflow-volatile.c
M clang/test/CodeGen/catch-pointer-overflow.c
M clang/test/CodeGen/catch-undef-behavior.c
M clang/test/CodeGen/cfi-unrelated-cast.cpp
M clang/test/CodeGen/code-coverage.c
M clang/test/CodeGen/const-label-addr.c
M clang/test/CodeGen/cx-complex-range.c
M clang/test/CodeGen/debug-info-crash.c
M clang/test/CodeGen/debug-info.c
A clang/test/CodeGen/embed-bitcode-marker-with-nonzero-as.c
M clang/test/CodeGen/empty-union-init.c
M clang/test/CodeGen/exceptions-seh.c
M clang/test/CodeGen/exprs.c
M clang/test/CodeGen/ext-int-cc.c
A clang/test/CodeGen/extend-variable-liveness-except.cpp
A clang/test/CodeGen/extend-variable-liveness-wide-scalar.cpp
A clang/test/CodeGen/extend-variable-liveness.c
A clang/test/CodeGen/fake-use-determinism.c
A clang/test/CodeGen/fake-use-lambda.cpp
A clang/test/CodeGen/fake-use-landingpad.c
A clang/test/CodeGen/fake-use-noreturn.cpp
A clang/test/CodeGen/fake-use-return-line.c
A clang/test/CodeGen/fake-use-sanitizer.cpp
A clang/test/CodeGen/fake-use-scalar.c
A clang/test/CodeGen/fake-use-this.cpp
A clang/test/CodeGen/fake-use-while.c
M clang/test/CodeGen/ignore-overflow-pattern.c
M clang/test/CodeGen/implicit-arg.c
A clang/test/CodeGen/import-call-optimization.c
M clang/test/CodeGen/integer-overflow.c
M clang/test/CodeGen/isfpclass.c
M clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c
M clang/test/CodeGen/math-libcalls-tbaa.c
M clang/test/CodeGen/matrix-type-operators-fast-math.c
M clang/test/CodeGen/memtag-globals.cpp
M clang/test/CodeGen/mips-vector-return.c
M clang/test/CodeGen/mips64-nontrivial-return.cpp
M clang/test/CodeGen/ms-intrinsics-other.c
M clang/test/CodeGen/ms-intrinsics.c
M clang/test/CodeGen/ms-mixed-ptr-sizes.c
M clang/test/CodeGen/msan-param-retval.c
M clang/test/CodeGen/msan-param-retval.cpp
M clang/test/CodeGen/nofpclass.c
M clang/test/CodeGen/nvptx_attributes.c
M clang/test/CodeGen/object-size.c
A clang/test/CodeGen/pointer-overflow.c
M clang/test/CodeGen/pragma-comment.c
M clang/test/CodeGen/ptrauth-function-attributes.c
M clang/test/CodeGen/ptrauth-module-flags.c
M clang/test/CodeGen/sanitize-coverage-gated-callbacks.c
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
A clang/test/CodeGen/sanitize-type-attr.cpp
A clang/test/CodeGen/sanitize-type-globals.cpp
M clang/test/CodeGen/scoped-atomic-ops.c
M clang/test/CodeGen/scoped-fence-ops.c
M clang/test/CodeGen/sparcv8-abi.c
M clang/test/CodeGen/sret.c
M clang/test/CodeGen/static-order.c
M clang/test/CodeGen/staticinit.c
M clang/test/CodeGen/struct-copy.c
M clang/test/CodeGen/struct.c
M clang/test/CodeGen/target-data.c
M clang/test/CodeGen/tbaa-pointers.c
M clang/test/CodeGen/tbaa-reference.cpp
M clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
M clang/test/CodeGen/transparent-union-type.c
M clang/test/CodeGen/ubsan-debuglog-return.c
M clang/test/CodeGen/ubsan-pointer-overflow.c
M clang/test/CodeGen/ubsan-trap-debugloc.c
A clang/test/CodeGen/ubsan-trap-merge.c
M clang/test/CodeGen/union-tbaa1.c
M clang/test/CodeGen/union.c
M clang/test/CodeGen/ve-abi.c
M clang/test/CodeGen/xcore-abi.c
M clang/test/CodeGenCUDA/amdgpu-atomic-ops.cu
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCUDA/amdgpu-kernel-attrs.cu
M clang/test/CodeGenCUDA/atomic-ops.cu
M clang/test/CodeGenCUDA/device-fun-linkage.cu
M clang/test/CodeGenCUDA/grid-constant.cu
M clang/test/CodeGenCUDA/offload_via_llvm.cu
M clang/test/CodeGenCUDA/offloading-entries.cu
M clang/test/CodeGenCUDA/ptx-kernels.cu
M clang/test/CodeGenCUDA/usual-deallocators.cu
M clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp
M clang/test/CodeGenCXX/2007-09-10-RecursiveTypeResolution.cpp
M clang/test/CodeGenCXX/2007-10-01-StructResize.cpp
M clang/test/CodeGenCXX/2009-08-11-VectorRetTy.cpp
M clang/test/CodeGenCXX/2010-07-23-DeclLoc.cpp
M clang/test/CodeGenCXX/aarch64-mangle-neon-vectors.cpp
A clang/test/CodeGenCXX/aarch64-mangle-sme-atts.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp
A clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp
M clang/test/CodeGenCXX/aarch64-sve-vector-conditional-op.cpp
M clang/test/CodeGenCXX/aarch64-sve-vector-init.cpp
M clang/test/CodeGenCXX/address-space-cast-coerce.cpp
M clang/test/CodeGenCXX/array-value-initialize.cpp
M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
M clang/test/CodeGenCXX/attr-target-version.cpp
M clang/test/CodeGenCXX/attr.cpp
A clang/test/CodeGenCXX/auto-var-init-attr.cpp
M clang/test/CodeGenCXX/auto-var-init.cpp
M clang/test/CodeGenCXX/bitfield-ir.cpp
M clang/test/CodeGenCXX/c-linkage.cpp
M clang/test/CodeGenCXX/catch-undef-behavior.cpp
M clang/test/CodeGenCXX/conditional-gnu-ext.cpp
M clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp
M clang/test/CodeGenCXX/cxx2b-deducing-this.cpp
A clang/test/CodeGenCXX/cxx2c-decomposition.cpp
A clang/test/CodeGenCXX/debug-info-codeview-nodebug.cpp
M clang/test/CodeGenCXX/debug-info-cxx0x.cpp
A clang/test/CodeGenCXX/debug-info-ms-novtable.cpp
A clang/test/CodeGenCXX/debug-info-object-pointer.cpp
M clang/test/CodeGenCXX/debug-info-scoped-class.cpp
M clang/test/CodeGenCXX/debug-lambda-this.cpp
M clang/test/CodeGenCXX/default-arguments.cpp
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
M clang/test/CodeGenCXX/expr.cpp
M clang/test/CodeGenCXX/ext-int.cpp
M clang/test/CodeGenCXX/fmv-namespace.cpp
A clang/test/CodeGenCXX/gh119046.cpp
M clang/test/CodeGenCXX/inline-then-fold-variadics.cpp
M clang/test/CodeGenCXX/lambda-expressions-nested-linkage.cpp
M clang/test/CodeGenCXX/mangle-exprs.cpp
M clang/test/CodeGenCXX/mangle-neon-vectors.cpp
M clang/test/CodeGenCXX/mangle-variadic-templates.cpp
M clang/test/CodeGenCXX/mangle.cpp
M clang/test/CodeGenCXX/matrix-type-operators.cpp
M clang/test/CodeGenCXX/matrix-type.cpp
A clang/test/CodeGenCXX/matrix-vector-bit-int.cpp
M clang/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp
M clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
M clang/test/CodeGenCXX/microsoft-abi-static-initializers.cpp
M clang/test/CodeGenCXX/microsoft-abi-typeid.cpp
A clang/test/CodeGenCXX/ms-uneval-context-crash.cpp
M clang/test/CodeGenCXX/new-alias.cpp
M clang/test/CodeGenCXX/noescape.cpp
M clang/test/CodeGenCXX/nrvo.cpp
M clang/test/CodeGenCXX/ptrauth-member-function-pointer.cpp
M clang/test/CodeGenCXX/reference-field.cpp
M clang/test/CodeGenCXX/return.cpp
M clang/test/CodeGenCXX/template-instantiation.cpp
M clang/test/CodeGenCXX/trap-fnattr.cpp
M clang/test/CodeGenCXX/ubsan-check-debuglocs.cpp
M clang/test/CodeGenCXX/wasm-args-returns.cpp
M clang/test/CodeGenHIP/printf_nonhostcall.cpp
M clang/test/CodeGenHLSL/ArrayAssignable.hlsl
M clang/test/CodeGenHLSL/ArrayTemporary.hlsl
A clang/test/CodeGenHLSL/BasicFeatures/ArrayOutputArguments.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/OutputArguments.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/standard_conversion_sequences.hlsl
A clang/test/CodeGenHLSL/Bool.hlsl
A clang/test/CodeGenHLSL/HLSLControlFlowHint.hlsl
M clang/test/CodeGenHLSL/builtins/AppendStructuredBuffer-elementtype.hlsl
A clang/test/CodeGenHLSL/builtins/ByteAddressBuffers-constructors.hlsl
M clang/test/CodeGenHLSL/builtins/ConsumeStructuredBuffer-elementtype.hlsl
A clang/test/CodeGenHLSL/builtins/D3DCOLORtoUBYTE4.hlsl
A clang/test/CodeGenHLSL/builtins/GroupMemoryBarrierWithGroupSync.hlsl
A clang/test/CodeGenHLSL/builtins/RWBuffer-constructor-opt.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-constructor.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-elementtype.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-subscript.hlsl
M clang/test/CodeGenHLSL/builtins/RWStructuredBuffer-elementtype.hlsl
M clang/test/CodeGenHLSL/builtins/RasterizerOrderedStructuredBuffer-elementtype.hlsl
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/StructuredBuffer-elementtype.hlsl
M clang/test/CodeGenHLSL/builtins/StructuredBuffers-constructors.hlsl
A clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-lib.hlsl
A clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-ps.hlsl
M clang/test/CodeGenHLSL/builtins/StructuredBuffers-subscripts.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl
A clang/test/CodeGenHLSL/builtins/WaveActiveSum.hlsl
M clang/test/CodeGenHLSL/builtins/WaveReadLaneAt.hlsl
M clang/test/CodeGenHLSL/builtins/abs.hlsl
M clang/test/CodeGenHLSL/builtins/acos.hlsl
A clang/test/CodeGenHLSL/builtins/asdouble.hlsl
M clang/test/CodeGenHLSL/builtins/asin.hlsl
M clang/test/CodeGenHLSL/builtins/atan.hlsl
M clang/test/CodeGenHLSL/builtins/atan2.hlsl
M clang/test/CodeGenHLSL/builtins/ceil.hlsl
M clang/test/CodeGenHLSL/builtins/clamp.hlsl
M clang/test/CodeGenHLSL/builtins/clip.hlsl
M clang/test/CodeGenHLSL/builtins/cos.hlsl
M clang/test/CodeGenHLSL/builtins/cosh.hlsl
M clang/test/CodeGenHLSL/builtins/cross.hlsl
M clang/test/CodeGenHLSL/builtins/degrees.hlsl
A clang/test/CodeGenHLSL/builtins/distance.hlsl
M clang/test/CodeGenHLSL/builtins/dot-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/dot.hlsl
M clang/test/CodeGenHLSL/builtins/exp.hlsl
M clang/test/CodeGenHLSL/builtins/exp2.hlsl
A clang/test/CodeGenHLSL/builtins/firstbitlow.hlsl
M clang/test/CodeGenHLSL/builtins/floor.hlsl
M clang/test/CodeGenHLSL/builtins/fmod.hlsl
M clang/test/CodeGenHLSL/builtins/frac.hlsl
M clang/test/CodeGenHLSL/builtins/hlsl_resource_t.hlsl
M clang/test/CodeGenHLSL/builtins/length.hlsl
M clang/test/CodeGenHLSL/builtins/lerp-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/lerp.hlsl
M clang/test/CodeGenHLSL/builtins/log.hlsl
M clang/test/CodeGenHLSL/builtins/log10.hlsl
M clang/test/CodeGenHLSL/builtins/log2.hlsl
M clang/test/CodeGenHLSL/builtins/mad.hlsl
M clang/test/CodeGenHLSL/builtins/max.hlsl
M clang/test/CodeGenHLSL/builtins/min.hlsl
M clang/test/CodeGenHLSL/builtins/normalize.hlsl
M clang/test/CodeGenHLSL/builtins/pow.hlsl
M clang/test/CodeGenHLSL/builtins/radians.hlsl
M clang/test/CodeGenHLSL/builtins/rcp.hlsl
M clang/test/CodeGenHLSL/builtins/round.hlsl
M clang/test/CodeGenHLSL/builtins/rsqrt.hlsl
M clang/test/CodeGenHLSL/builtins/saturate.hlsl
M clang/test/CodeGenHLSL/builtins/sin.hlsl
M clang/test/CodeGenHLSL/builtins/sinh.hlsl
M clang/test/CodeGenHLSL/builtins/sqrt.hlsl
M clang/test/CodeGenHLSL/builtins/step.hlsl
M clang/test/CodeGenHLSL/builtins/tan.hlsl
M clang/test/CodeGenHLSL/builtins/tanh.hlsl
M clang/test/CodeGenHLSL/builtins/trunc.hlsl
M clang/test/CodeGenHLSL/cbuf.hlsl
M clang/test/CodeGenHLSL/cbuf_in_namespace.hlsl
A clang/test/CodeGenHLSL/debug/rwbuffer_debug_info.hlsl
M clang/test/CodeGenHLSL/float3.hlsl
M clang/test/CodeGenHLSL/implicit-norecurse-attrib.hlsl
M clang/test/CodeGenHLSL/inline-functions.hlsl
A clang/test/CodeGenHLSL/resource-bindings.hlsl
A clang/test/CodeGenHLSL/semantics/SV_GroupID.hlsl
A clang/test/CodeGenHLSL/semantics/SV_GroupThreadID.hlsl
M clang/test/CodeGenHLSL/static_global_and_function_in_cb.hlsl
M clang/test/CodeGenHLSL/this-reference.hlsl
M clang/test/CodeGenObjC/2007-10-18-ProDescriptor.m
M clang/test/CodeGenObjC/2008-11-25-Blocks.m
M clang/test/CodeGenObjC/arc-ternary-op.m
M clang/test/CodeGenObjC/debug-info-crash.m
M clang/test/CodeGenObjC/encode-test.m
M clang/test/CodeGenObjC/message-arrays.m
M clang/test/CodeGenObjC/metadata-symbols-32.m
M clang/test/CodeGenObjC/metadata-symbols-64.m
M clang/test/CodeGenObjC/noescape.m
M clang/test/CodeGenObjC/objc2-weak-compare.m
M clang/test/CodeGenObjC/objc2-write-barrier-2.m
M clang/test/CodeGenObjC/protocols-lazy.m
M clang/test/CodeGenObjC/strong-in-c-struct.m
M clang/test/CodeGenObjCXX/arc.mm
M clang/test/CodeGenObjCXX/debug-info-line.mm
M clang/test/CodeGenObjCXX/instantiate-return.mm
M clang/test/CodeGenObjCXX/pr14474-gline-tables-only.mm
M clang/test/CodeGenObjCXX/property-dot-reference.mm
M clang/test/CodeGenObjCXX/return.mm
M clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
M clang/test/CodeGenOpenCL/amdgpu-alignment.cl
M clang/test/CodeGenOpenCL/amdgpu-call-kernel.cl
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/amdgpu-features.cl
M clang/test/CodeGenOpenCL/amdgpu-nullptr.cl
M clang/test/CodeGenOpenCL/atomic-builtins-default-to-device-scope.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx11-err.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-err.cl
A clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-read-tr.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-mfma.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
M clang/test/CodeGenOpenCL/kernel-param-alignment.cl
M clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl
M clang/test/CodeGenOpenCL/opencl_types.cl
M clang/test/CodeGenOpenCL/preserve_vec3.cl
M clang/test/CodeGenOpenCL/ptx-calls.cl
M clang/test/CodeGenOpenCL/ptx-kernels.cl
M clang/test/CodeGenOpenCL/reflect.cl
M clang/test/CodeGenOpenCLCXX/array-type-infinite-loop.clcpp
A clang/test/CodeGenSPIRV/Builtins/distance.c
A clang/test/CodeGenSPIRV/Builtins/length.c
M clang/test/CoverageMapping/single-byte-counters.cpp
M clang/test/CoverageMapping/switch.cpp
M clang/test/CoverageMapping/switchmacro.c
A clang/test/Driver/Inputs/MacOSX15.1.sdk/embedded/usr/include/.keep
A clang/test/Driver/Inputs/MacOSX15.1.sdk/embedded/usr/local/include/.keep
A clang/test/Driver/Inputs/MacOSX15.1.sdk/usr/include/c++/v1/.keep
A clang/test/Driver/Inputs/MacOSX15.1.sdk/usr/local/include/.keep
A clang/test/Driver/Inputs/config-l.cfg
A clang/test/Driver/Inputs/config-zos/clang.cfg
A clang/test/Driver/Inputs/config-zos/def.cfg
A clang/test/Driver/Inputs/config-zos/tst/def.cfg
R clang/test/Driver/Inputs/libomptarget/libomptarget-nvptx-sm_52.bc
A clang/test/Driver/Inputs/libomptarget/libomptarget-nvptx.bc
R clang/test/Driver/Inputs/libomptarget/subdir/libomptarget-nvptx-sm_52.bc
A clang/test/Driver/Inputs/libomptarget/subdir/libomptarget-nvptx.bc
A clang/test/Driver/Inputs/multilib/multilib-custom-flags.yaml
A clang/test/Driver/Inputs/spirv-openmp/lib/libomptarget-spirv64.bc
R clang/test/Driver/aarch64-fixed-register-global.c
A clang/test/Driver/aarch64-fujitsu-monaka.c
M clang/test/Driver/aarch64-implied-sme-features.c
M clang/test/Driver/aarch64-implied-sve-features.c
M clang/test/Driver/aarch64-ptrauth.c
M clang/test/Driver/amdgpu-openmp-system-arch-fail.c
M clang/test/Driver/amdgpu-openmp-toolchain.c
M clang/test/Driver/arm-cortex-cpus-2.c
M clang/test/Driver/arm-mfpu.c
A clang/test/Driver/baremetal-multilib-custom-flags-parsing.yaml
A clang/test/Driver/baremetal-multilib-custom-flags.yaml
M clang/test/Driver/baremetal-multilib.yaml
M clang/test/Driver/baremetal-sysroot.cpp
M clang/test/Driver/baremetal.cpp
M clang/test/Driver/cc-log-diagnostics.c
M clang/test/Driver/cl-options.c
M clang/test/Driver/clang-offload-bundler-zlib.c
M clang/test/Driver/clang_f_opts.c
M clang/test/Driver/clang_wrapv_opts.c
M clang/test/Driver/codeview-column-info.c
M clang/test/Driver/config-file.c
M clang/test/Driver/config-file3.c
A clang/test/Driver/config-zos.c
A clang/test/Driver/config-zos1.c
M clang/test/Driver/cuda-arch-translation.cu
M clang/test/Driver/cuda-bindings.cu
M clang/test/Driver/cuda-cross-compiling.c
A clang/test/Driver/cuda-no-threadsafe-statics.cu
M clang/test/Driver/cuda-options.cu
M clang/test/Driver/cuda-output-asm.cu
A clang/test/Driver/darwin-embedded-search-paths-libcxx.c
A clang/test/Driver/darwin-embedded-search-paths.c
M clang/test/Driver/darwin-version.c
A clang/test/Driver/dxc_options.hlsl
M clang/test/Driver/dxc_spirv.hlsl
A clang/test/Driver/extend-variable-liveness.c
A clang/test/Driver/fno-plt.c
A clang/test/Driver/fprofile-generate-temporal.c
A clang/test/Driver/fprofile-sample-use.c
M clang/test/Driver/frame-pointer-elim.c
M clang/test/Driver/freebsd.c
R clang/test/Driver/frelaxed-template-template-args.cpp
M clang/test/Driver/fsanitize.c
M clang/test/Driver/fuchsia.c
A clang/test/Driver/fuse-lipo.c
M clang/test/Driver/fveclib.c
A clang/test/Driver/hexagon-cpu-default.c
M clang/test/Driver/hexagon-toolchain-elf.c
M clang/test/Driver/hexagon-toolchain-linux.c
M clang/test/Driver/hip-code-object-version.hip
M clang/test/Driver/hip-cuid.hip
M clang/test/Driver/hip-device-libs.hip
M clang/test/Driver/hip-rdc-device-only.hip
M clang/test/Driver/hip-sanitize-options.hip
M clang/test/Driver/hip-target-id.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/hip-toolchain-rdc-separate.hip
M clang/test/Driver/hip-toolchain-rdc.hip
M clang/test/Driver/hipspv-toolchain.hip
M clang/test/Driver/linker-wrapper-image.c
M clang/test/Driver/linker-wrapper.c
M clang/test/Driver/linux-as.c
M clang/test/Driver/linux-ld.c
M clang/test/Driver/loongarch-march.c
A clang/test/Driver/loongarch-mdiv32.c
A clang/test/Driver/loongarch-mlamcas.c
A clang/test/Driver/loongarch-mld-seq-sa.c
A clang/test/Driver/loongarch-mscq.c
A clang/test/Driver/loongarch-relax-features.c
M clang/test/Driver/lto.c
M clang/test/Driver/mingw.cpp
M clang/test/Driver/module-fgen-reduced-bmi.cppm
M clang/test/Driver/modules-print-library-module-manifest-path.cpp
M clang/test/Driver/netbsd.c
R clang/test/Driver/objc-sdk-migration-options.m
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/Driver/openmp-offload-jit.c
M clang/test/Driver/openmp-offload.c
M clang/test/Driver/openmp-system-arch.c
M clang/test/Driver/print-enabled-extensions/aarch64-ampere1b.c
M clang/test/Driver/print-enabled-extensions/aarch64-apple-m4.c
M clang/test/Driver/print-enabled-extensions/aarch64-armv9.4-a.c
M clang/test/Driver/print-enabled-extensions/aarch64-armv9.5-a.c
M clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c
M clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c
A clang/test/Driver/print-enabled-extensions/aarch64-fujitsu-monaka.c
M clang/test/Driver/print-enabled-extensions/riscv-rocket-rv64.c
M clang/test/Driver/print-multi-selection-flags.c
A clang/test/Driver/print-supported-cpus-aarch64.c
M clang/test/Driver/print-supported-extensions-aarch64.c
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Driver/ps4-sdk-root.c
M clang/test/Driver/ps5-linker.c
M clang/test/Driver/ps5-sdk-root.c
M clang/test/Driver/relax.s
M clang/test/Driver/riscv-cpus.c
M clang/test/Driver/rocm-device-libs.cl
M clang/test/Driver/sanitizer-ld.c
A clang/test/Driver/spirv-openmp-toolchain.c
M clang/test/Driver/spirv-toolchain.cl
M clang/test/Driver/stack-clash-protection.c
A clang/test/Driver/sycl-offload-jit.cpp
M clang/test/Driver/sysroot.c
M clang/test/Driver/systemz-march.c
M clang/test/Driver/tls-dialect.c
M clang/test/Driver/uefi-constructed-args.c
A clang/test/Driver/uefi-defines.c
A clang/test/Driver/unknown-arg-drivermodes.test
M clang/test/Driver/unsupported-option.c
M clang/test/Driver/unsupported-target-arch.c
M clang/test/Driver/wasm-toolchain.c
M clang/test/Driver/x86-target-features.c
A clang/test/Driver/xtensa-char.c
M clang/test/ExtractAPI/anonymous_record_no_typedef.c
M clang/test/ExtractAPI/objc_external_category.m
M clang/test/FixIt/fixit-availability-maccatalyst.m
M clang/test/FixIt/fixit-c++11.cpp
A clang/test/Format/docs_updated.test
M clang/test/Format/lit.local.cfg
M clang/test/Frontend/absolute-paths.c
M clang/test/Frontend/ast-codegen.c
M clang/test/Frontend/ast-main.cpp
A clang/test/Frontend/custom-diag-werror-interaction.c
M clang/test/Frontend/ftime-report-template-decl.cpp
M clang/test/Headers/__clang_hip_math_ocml_rounded_ops.hip
A clang/test/Headers/crash-instantiated-in-scope-cxx-modules4.cpp
A clang/test/Headers/crash-instantiated-in-scope-cxx-modules5.cpp
M clang/test/Headers/gpuintrin.c
M clang/test/Import/cxx-anon-namespace/test.cpp
M clang/test/Index/crash-recovery-modules.m
M clang/test/Index/print-type.cpp
M clang/test/Layout/ms-x86-member-pointers.cpp
M clang/test/Lexer/cxx-features.cpp
M clang/test/Lexer/gnu-flags.c
M clang/test/LibClang/symbols.test
M clang/test/Misc/diag-template-diffing-cxx98.cpp
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Misc/serialized-diags-stable.c
M clang/test/Misc/target-invalid-cpu-note/aarch64.c
M clang/test/Misc/target-invalid-cpu-note/arm.c
M clang/test/Misc/target-invalid-cpu-note/hexagon.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M clang/test/Misc/target-invalid-cpu-note/riscv.c
M clang/test/Misc/target-invalid-cpu-note/systemz.c
M clang/test/Misc/warning-flags.c
M clang/test/Modules/ExtDebugInfo.m
M clang/test/Modules/ModuleDebugInfo.m
M clang/test/Modules/Reachability-template-default-arg.cpp
M clang/test/Modules/compare-record.c
M clang/test/Modules/cxx-templates.cpp
M clang/test/Modules/cxx20-10-1-ex2.cpp
M clang/test/Modules/deduction-guide3.cppm
M clang/test/Modules/empty.modulemap
A clang/test/Modules/expose-static-inline-from-gmf-1.cppm
A clang/test/Modules/expose-static-inline-from-gmf-2.cppm
A clang/test/Modules/expose-static-inline-from-gmf-3.cppm
A clang/test/Modules/expose-static-inline-from-gmf-4.cppm
A clang/test/Modules/expose-static-inline-from-gmf-5.cppm
A clang/test/Modules/friend-inline-function-body.cpp
A clang/test/Modules/gmodules-codegenopts.c
A clang/test/Modules/gmodules-nodebug.cpp
A clang/test/Modules/initializer-list-recognition-through-export-and-linkage-issue-118218.cpp
A clang/test/Modules/missing-body-in-import.cpp
A clang/test/Modules/module-local-hidden-friend-2.cppm
A clang/test/Modules/module-local-hidden-friend.cppm
A clang/test/Modules/module-local-visibility-in-language-linkage.cppm
A clang/test/Modules/module-local-with-templates.cppm
M clang/test/Modules/odr_hash.cpp
A clang/test/Modules/pcm-with-errors.cpp
A clang/test/Modules/pr120277.cppm
A clang/test/Modules/pr121066.cpp
M clang/test/Modules/pr61067.cppm
A clang/test/Modules/pr90154.cppm
A clang/test/Modules/prune-non-affecting-module-map-repeated-textual.cpp
A clang/test/Modules/recursive-instantiations.cppm
M clang/test/Modules/redecl-merge.m
A clang/test/Modules/visibility-for-implicit-global-module.cppm
A clang/test/Modules/vtable-in-explicit-instantiation.cppm
R clang/test/OpenMP/allocate_allocator_modifier_ast_print.cpp
R clang/test/OpenMP/allocate_allocator_modifier_codegen.cpp
R clang/test/OpenMP/allocate_allocator_modifier_messages.cpp
A clang/test/OpenMP/allocate_modifiers_ast_print.cpp
A clang/test/OpenMP/allocate_modifiers_codegen.cpp
A clang/test/OpenMP/allocate_modifiers_messages.cpp
A clang/test/OpenMP/amdgpu_threadprivate.cpp
M clang/test/OpenMP/assumes_include_nvptx.cpp
M clang/test/OpenMP/barrier_codegen.cpp
M clang/test/OpenMP/bug54082.c
M clang/test/OpenMP/declare_mapper_codegen.cpp
M clang/test/OpenMP/declare_mapper_messages.c
M clang/test/OpenMP/declare_simd_aarch64.c
M clang/test/OpenMP/declare_target_ast_print.cpp
M clang/test/OpenMP/declare_target_codegen.cpp
M clang/test/OpenMP/declare_target_link_codegen.cpp
M clang/test/OpenMP/declare_target_messages.cpp
M clang/test/OpenMP/depobj_messages.cpp
M clang/test/OpenMP/distribute_parallel_for_ast_print.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp
M clang/test/OpenMP/distribute_simd_ast_print.cpp
M clang/test/OpenMP/distribute_simd_misc_messages.c
M clang/test/OpenMP/driver.c
M clang/test/OpenMP/error_ast_print.cpp
M clang/test/OpenMP/error_codegen.cpp
M clang/test/OpenMP/error_message.cpp
M clang/test/OpenMP/flush_ast_print.cpp
M clang/test/OpenMP/flush_codegen.cpp
M clang/test/OpenMP/flush_messages.cpp
M clang/test/OpenMP/for_linear_messages.cpp
M clang/test/OpenMP/for_simd_ast_print.cpp
M clang/test/OpenMP/irbuilder_simd_aligned.cpp
A clang/test/OpenMP/masked_taskloop_codegen.c
A clang/test/OpenMP/masked_taskloop_simd_codegen.c
M clang/test/OpenMP/nvptx_target_firstprivate_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
M clang/test/OpenMP/nvptx_target_requires_unified_shared_memory.cpp
M clang/test/OpenMP/openmp_offload_registration.cpp
A clang/test/OpenMP/parallel_masked_taskloop_codegen.c
A clang/test/OpenMP/parallel_masked_taskloop_simd_codegen.c
M clang/test/OpenMP/target_codegen.cpp
M clang/test/OpenMP/target_codegen_registration.cpp
M clang/test/OpenMP/target_depend_codegen.cpp
M clang/test/OpenMP/target_indirect_codegen.cpp
M clang/test/OpenMP/target_map_names.cpp
M clang/test/OpenMP/target_map_names_attr.cpp
M clang/test/OpenMP/target_map_nest_defalut_mapper_codegen.cpp
M clang/test/OpenMP/target_parallel_ast_print.cpp
M clang/test/OpenMP/target_parallel_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen_registration.cpp
M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_simd_codegen.cpp
M clang/test/OpenMP/target_simd_codegen_registration.cpp
M clang/test/OpenMP/target_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_ast_print.cpp
M clang/test/OpenMP/target_teams_codegen_registration.cpp
M clang/test/OpenMP/target_teams_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen_registration.cpp
M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
M clang/test/OpenMP/task_ast_print.cpp
A clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp
M clang/test/OpenMP/teams_ast_print.cpp
M clang/test/PCH/irgen-rdar13114142.mm
M clang/test/PCH/late-parsed-instantiations.cpp
M clang/test/PCH/pr4489.c
M clang/test/PCH/va_arg.c
M clang/test/PCH/va_arg.h
M clang/test/Parser/cxx0x-decl.cpp
M clang/test/Parser/cxx1z-decomposition.cpp
A clang/test/Parser/cxx2c-binding-pack.cpp
A clang/test/Parser/cxx2c-oxford-variadic-comma.cpp
M clang/test/Parser/cxx2c-pack-indexing.cpp
A clang/test/Parser/gh110231.cpp
M clang/test/Parser/namespace-attributes.cpp
A clang/test/Parser/objc-coloncolon.m
A clang/test/Parser/objcxx-coloncolon.mm
M clang/test/Parser/promote_types_in_proto.c
M clang/test/ParserOpenACC/parse-clauses.c
M clang/test/ParserOpenACC/parse-clauses.cpp
M clang/test/ParserOpenACC/parse-constructs.c
M clang/test/ParserOpenACC/parse-wait-construct.c
M clang/test/Preprocessor/aarch64-target-features.c
M clang/test/Preprocessor/arm-acle-6.4.c
M clang/test/Preprocessor/arm-target-features.c
A clang/test/Preprocessor/darwin-predefines.c
A clang/test/Preprocessor/deprecate-threads-macro-definition-msvc1939.c
M clang/test/Preprocessor/has_builtin_cpuid.c
M clang/test/Preprocessor/hexagon-predefines.c
M clang/test/Preprocessor/init-aarch64.c
M clang/test/Preprocessor/init-arm.c
M clang/test/Preprocessor/init-csky.c
M clang/test/Preprocessor/init-loongarch.c
M clang/test/Preprocessor/init-mips.c
M clang/test/Preprocessor/init-ppc.c
M clang/test/Preprocessor/init-ppc64.c
M clang/test/Preprocessor/init-s390x.c
M clang/test/Preprocessor/init-v7k-compat.c
M clang/test/Preprocessor/init-ve.c
M clang/test/Preprocessor/init-x86.c
M clang/test/Preprocessor/init.c
M clang/test/Preprocessor/macho-embedded-predefines.c
A clang/test/Preprocessor/macro-reserved-attrs-cxx11.cpp
M clang/test/Preprocessor/macro_fn.c
M clang/test/Preprocessor/predefined-arch-macros.c
M clang/test/Preprocessor/predefined-win-macros.c
M clang/test/Preprocessor/riscv-target-features.c
M clang/test/Preprocessor/stdint.c
M clang/test/Preprocessor/sycl-macro.cpp
M clang/test/Preprocessor/x86_target_features.c
M clang/test/Rewriter/lit.local.cfg
R clang/test/Rewriter/missing-dllimport.c
M clang/test/Rewriter/rewrite-extern-c.mm
A clang/test/Sema/Inputs/lifetime-analysis.h
M clang/test/Sema/MicrosoftCompatibility.c
M clang/test/Sema/MicrosoftCompatibility.cpp
M clang/test/Sema/aarch64-fixed-global-register.c
A clang/test/Sema/aarch64-fp8-cast.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_cvt.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_fdot.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_neon_fp8_fmla.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_sme2_fp8_cvt.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_sme2_fp8_imm.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_sme2_fp8_mla.c
A clang/test/Sema/aarch64-fp8-intrinsics/acle_sme2_fp8_mopa.c
R clang/test/Sema/aarch64-incompat-sm-builtin-calls.c
A clang/test/Sema/aarch64-incompat-sm-builtin-calls.cpp
A clang/test/Sema/aarch64-sme-attrs-openmp-captured-region.c
M clang/test/Sema/aarch64-sme-func-attrs-without-target-feature.cpp
M clang/test/Sema/aarch64-sme-func-attrs.c
A clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_fp8_fdot.c
A clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_fp8_fvdot.c
A clang/test/Sema/aarch64-sve-intrinsics/acle_neon_sve_bridge.cpp
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_aes_bitperm_sha3_sm4.cpp
A clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_fp8.c
M clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp
M clang/test/Sema/aarch64-sve2p1-intrinsics/acle_sve2p1_imm.cpp
M clang/test/Sema/amdgcn-address-spaces.c
A clang/test/Sema/arm-execute-only-tls.c
M clang/test/Sema/arm-mfp8.cpp
M clang/test/Sema/asm.c
M clang/test/Sema/atomic-ops.c
M clang/test/Sema/attr-cpuspecific.c
M clang/test/Sema/attr-nonblocking-constraints.cpp
M clang/test/Sema/attr-target-clones.c
M clang/test/Sema/attr-target-mv.c
A clang/test/Sema/attr-target-version-unsupported.c
M clang/test/Sema/attr-target-version.c
M clang/test/Sema/attr-target.c
A clang/test/Sema/builtin-assume-aligned-downgrade.c
M clang/test/Sema/builtin-assume-aligned.c
M clang/test/Sema/builtin-counted-by-ref.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/constant_builtins_vector.cpp
M clang/test/Sema/diagnose_if.c
M clang/test/Sema/enum.c
M clang/test/Sema/freemain.c
A clang/test/Sema/missing-dllimport.c
M clang/test/Sema/nullptr-prec2x.c
M clang/test/Sema/nullptr.c
M clang/test/Sema/pragma-clang-section.c
M clang/test/Sema/return-type-mismatch.c
A clang/test/Sema/tautological-pointer-comparison.c
M clang/test/Sema/uninit-variables.c
M clang/test/Sema/varargs.c
M clang/test/Sema/warn-infinity-nan-disabled-lnx.cpp
M clang/test/Sema/warn-infinity-nan-disabled-win.cpp
A clang/test/Sema/warn-lifetime-analysis-capture-by.cpp
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/Sema/warn-stringcompare.c
M clang/test/Sema/zvector.c
A clang/test/SemaCUDA/constexpr-virtual-func.cu
M clang/test/SemaCXX/addr-of-overloaded-function.cpp
M clang/test/SemaCXX/alias-template.cpp
A clang/test/SemaCXX/array-type-trait-with-template.cpp
M clang/test/SemaCXX/attr-lifetimebound.cpp
A clang/test/SemaCXX/attr-no-specializations.cpp
M clang/test/SemaCXX/attr-noreturn.cpp
M clang/test/SemaCXX/attr-target-version.cpp
M clang/test/SemaCXX/builtin-assume-aligned.cpp
M clang/test/SemaCXX/calling-conv-compat.cpp
M clang/test/SemaCXX/constant-expression-cxx11.cpp
M clang/test/SemaCXX/constant-expression-cxx14.cpp
M clang/test/SemaCXX/constant-expression-cxx2a.cpp
A clang/test/SemaCXX/constant-expression-p2280r4.cpp
M clang/test/SemaCXX/constexpr-return-non-void-cxx2b.cpp
M clang/test/SemaCXX/constructor.cpp
M clang/test/SemaCXX/conversion-function.cpp
A clang/test/SemaCXX/crash-GH121274.cpp
M clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp
M clang/test/SemaCXX/cxx1z-constexpr-lambdas.cpp
M clang/test/SemaCXX/cxx20-decomposition.cpp
A clang/test/SemaCXX/cxx20-warn-dangling-paren-list-agg-init.cpp
M clang/test/SemaCXX/cxx2a-constexpr-dynalloc.cpp
M clang/test/SemaCXX/cxx2a-destroying-delete.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
M clang/test/SemaCXX/cxx2b-deducing-this.cpp
A clang/test/SemaCXX/cxx2b-warn-shadow.cpp
A clang/test/SemaCXX/cxx2c-binding-pack-nontemplate.cpp
A clang/test/SemaCXX/cxx2c-binding-pack.cpp
M clang/test/SemaCXX/cxx2c-fold-exprs.cpp
M clang/test/SemaCXX/cxx2c-pack-indexing-ext-diags.cpp
M clang/test/SemaCXX/cxx2c-pack-indexing.cpp
M clang/test/SemaCXX/cxx2c-placeholder-vars.cpp
M clang/test/SemaCXX/deprecated.cpp
M clang/test/SemaCXX/destructor.cpp
A clang/test/SemaCXX/diagnose_if-warning-group.cpp
A clang/test/SemaCXX/err-missing-noreturn-1.cpp
A clang/test/SemaCXX/err-missing-noreturn-2.cpp
M clang/test/SemaCXX/ext-int.cpp
M clang/test/SemaCXX/fold_lambda_with_variadics.cpp
M clang/test/SemaCXX/function-redecl.cpp
M clang/test/SemaCXX/integer-overflow.cpp
M clang/test/SemaCXX/lambda-capture-type-deduction.cpp
M clang/test/SemaCXX/literal-type.cpp
M clang/test/SemaCXX/make_integer_seq.cpp
M clang/test/SemaCXX/matrix-type.cpp
A clang/test/SemaCXX/matrix-types-pseudo-destructor.cpp
A clang/test/SemaCXX/member-enum-declarations.cpp
M clang/test/SemaCXX/ms-constexpr-new.cpp
M clang/test/SemaCXX/ms-property.cpp
A clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp
M clang/test/SemaCXX/new-delete.cpp
A clang/test/SemaCXX/noexcept-destroying-delete.cpp
A clang/test/SemaCXX/opaque-enum-declaration-in-class-template.cpp
M clang/test/SemaCXX/paren-list-agg-init.cpp
M clang/test/SemaCXX/ptrauth-type-discriminator.cpp
M clang/test/SemaCXX/reinterpret-cast.cpp
R clang/test/SemaCXX/remove_pointer.mm
M clang/test/SemaCXX/return-noreturn.cpp
M clang/test/SemaCXX/source_location.cpp
M clang/test/SemaCXX/static-cast.cpp
M clang/test/SemaCXX/type-traits.cpp
M clang/test/SemaCXX/uninitialized.cpp
M clang/test/SemaCXX/vector-bool.cpp
A clang/test/SemaCXX/warn-array-comparion.cpp
A clang/test/SemaCXX/warn-base-type-qualifiers.cpp
R clang/test/SemaCXX/warn-inconsistent-missing-destructor-override
A clang/test/SemaCXX/warn-inconsistent-missing-destructor-override.cpp
M clang/test/SemaCXX/warn-memaccess.cpp
M clang/test/SemaCXX/warn-missing-noreturn.cpp
M clang/test/SemaCXX/warn-self-comparisons.cpp
R clang/test/SemaCXX/warn-suggest-destructor-override
A clang/test/SemaCXX/warn-suggest-destructor-override.cpp
R clang/test/SemaCXX/warn-suggest-override
A clang/test/SemaCXX/warn-suggest-override.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
M clang/test/SemaCXX/warn-thread-safety-parsing.cpp
M clang/test/SemaCXX/warn-unreachable.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-array.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-field-attr.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-fixits-add-assign.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-fixits-parm-unsupported.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-function-attr.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-in-container-span-construct.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage.cpp
M clang/test/SemaCXX/warn-unused-private-field.cpp
M clang/test/SemaCXX/warn-unused-result.cpp
A clang/test/SemaHIP/zero-sized-device-array.hip
M clang/test/SemaHLSL/ArrayTemporary.hlsl
A clang/test/SemaHLSL/BuiltIns/D3DCOLORtoUBYTE4-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/GroupMemoryBarrierWithGroupSync-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl
M clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveAllTrue-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveAnyTrue-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveMax-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/WaveActiveSum-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/asdouble-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/asfloat-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/buffer_update_counter-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/distance-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/firstbithigh-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/firstbitlow-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/length-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/lerp-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/mad-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/resource_getpointer-errors.hlsl
A clang/test/SemaHLSL/Language/ArrayOutputArgs-errors.hlsl
M clang/test/SemaHLSL/Semantics/entry_parameter.hlsl
M clang/test/SemaHLSL/Semantics/invalid_entry_parameter.hlsl
M clang/test/SemaHLSL/Semantics/valid_entry_parameter.hlsl
M clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl
R clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatibleErrors.hlsl
M clang/test/SemaObjC/return-noreturn.m
M clang/test/SemaObjC/try-catch.m
M clang/test/SemaObjCXX/noescape.mm
A clang/test/SemaObjCXX/type-traits.mm
M clang/test/SemaOpenACC/combined-construct-async-clause.cpp
A clang/test/SemaOpenACC/combined-construct-attach-ast.cpp
A clang/test/SemaOpenACC/combined-construct-attach-clause.c
A clang/test/SemaOpenACC/combined-construct-attach-clause.cpp
M clang/test/SemaOpenACC/combined-construct-auto_seq_independent-clauses.c
A clang/test/SemaOpenACC/combined-construct-collapse-ast.cpp
A clang/test/SemaOpenACC/combined-construct-collapse-clause.cpp
A clang/test/SemaOpenACC/combined-construct-copy-ast.cpp
A clang/test/SemaOpenACC/combined-construct-copy-clause.c
A clang/test/SemaOpenACC/combined-construct-copy-clause.cpp
A clang/test/SemaOpenACC/combined-construct-copyin-ast.cpp
A clang/test/SemaOpenACC/combined-construct-copyin-clause.c
A clang/test/SemaOpenACC/combined-construct-copyin-clause.cpp
A clang/test/SemaOpenACC/combined-construct-copyout-ast.cpp
A clang/test/SemaOpenACC/combined-construct-copyout-clause.c
A clang/test/SemaOpenACC/combined-construct-copyout-clause.cpp
A clang/test/SemaOpenACC/combined-construct-create-ast.cpp
A clang/test/SemaOpenACC/combined-construct-create-clause.c
A clang/test/SemaOpenACC/combined-construct-create-clause.cpp
M clang/test/SemaOpenACC/combined-construct-default-ast.cpp
M clang/test/SemaOpenACC/combined-construct-default-clause.c
M clang/test/SemaOpenACC/combined-construct-default-clause.cpp
M clang/test/SemaOpenACC/combined-construct-device_type-clause.c
A clang/test/SemaOpenACC/combined-construct-deviceptr-ast.cpp
A clang/test/SemaOpenACC/combined-construct-deviceptr-clause.c
A clang/test/SemaOpenACC/combined-construct-deviceptr-clause.cpp
A clang/test/SemaOpenACC/combined-construct-gang-ast.cpp
A clang/test/SemaOpenACC/combined-construct-gang-clause.cpp
M clang/test/SemaOpenACC/combined-construct-if-clause.c
A clang/test/SemaOpenACC/combined-construct-no_create-ast.cpp
A clang/test/SemaOpenACC/combined-construct-no_create-clause.c
A clang/test/SemaOpenACC/combined-construct-no_create-clause.cpp
A clang/test/SemaOpenACC/combined-construct-num_gangs-ast.cpp
A clang/test/SemaOpenACC/combined-construct-num_gangs-clause.c
A clang/test/SemaOpenACC/combined-construct-num_workers-ast.cpp
A clang/test/SemaOpenACC/combined-construct-num_workers-clause.c
A clang/test/SemaOpenACC/combined-construct-present-ast.cpp
A clang/test/SemaOpenACC/combined-construct-present-clause.c
A clang/test/SemaOpenACC/combined-construct-present-clause.cpp
A clang/test/SemaOpenACC/combined-construct-reduction-ast.cpp
A clang/test/SemaOpenACC/combined-construct-reduction-clause.cpp
M clang/test/SemaOpenACC/combined-construct-self-ast.cpp
A clang/test/SemaOpenACC/combined-construct-tile-ast.cpp
A clang/test/SemaOpenACC/combined-construct-tile-clause.cpp
A clang/test/SemaOpenACC/combined-construct-vector-ast.cpp
A clang/test/SemaOpenACC/combined-construct-vector-clause.cpp
A clang/test/SemaOpenACC/combined-construct-vector_length-ast.cpp
A clang/test/SemaOpenACC/combined-construct-vector_length-clause.c
A clang/test/SemaOpenACC/combined-construct-wait-ast.cpp
A clang/test/SemaOpenACC/combined-construct-wait-clause.c
A clang/test/SemaOpenACC/combined-construct-wait-clause.cpp
A clang/test/SemaOpenACC/combined-construct-worker-ast.cpp
A clang/test/SemaOpenACC/combined-construct-worker-clause.cpp
M clang/test/SemaOpenACC/compute-construct-async-clause.cpp
M clang/test/SemaOpenACC/compute-construct-clause-ast.cpp
M clang/test/SemaOpenACC/compute-construct-default-clause.c
M clang/test/SemaOpenACC/compute-construct-device_type-clause.c
M clang/test/SemaOpenACC/compute-construct-if-clause.c
M clang/test/SemaOpenACC/compute-construct-num_gangs-clause.cpp
M clang/test/SemaOpenACC/compute-construct-num_workers-clause.cpp
M clang/test/SemaOpenACC/compute-construct-private-clause.c
M clang/test/SemaOpenACC/compute-construct-reduction-clause.c
M clang/test/SemaOpenACC/compute-construct-reduction-clause.cpp
M clang/test/SemaOpenACC/compute-construct-varlist-ast.cpp
M clang/test/SemaOpenACC/compute-construct-vector_length-clause.cpp
M clang/test/SemaOpenACC/compute-construct-wait-clause.cpp
A clang/test/SemaOpenACC/data-construct-ast.cpp
A clang/test/SemaOpenACC/data-construct-async-ast.cpp
A clang/test/SemaOpenACC/data-construct-async-clause.c
A clang/test/SemaOpenACC/data-construct-attach-ast.cpp
A clang/test/SemaOpenACC/data-construct-attach-clause.c
A clang/test/SemaOpenACC/data-construct-copy-ast.cpp
A clang/test/SemaOpenACC/data-construct-copy-clause.c
A clang/test/SemaOpenACC/data-construct-copyin-ast.cpp
A clang/test/SemaOpenACC/data-construct-copyin-clause.c
A clang/test/SemaOpenACC/data-construct-copyout-ast.cpp
A clang/test/SemaOpenACC/data-construct-copyout-clause.c
A clang/test/SemaOpenACC/data-construct-create-ast.cpp
A clang/test/SemaOpenACC/data-construct-create-clause.c
A clang/test/SemaOpenACC/data-construct-default-ast.cpp
A clang/test/SemaOpenACC/data-construct-default-clause.c
A clang/test/SemaOpenACC/data-construct-delete-ast.cpp
A clang/test/SemaOpenACC/data-construct-delete-clause.c
A clang/test/SemaOpenACC/data-construct-detach-ast.cpp
A clang/test/SemaOpenACC/data-construct-detach-clause.c
A clang/test/SemaOpenACC/data-construct-device_type-ast.cpp
A clang/test/SemaOpenACC/data-construct-device_type-clause.c
A clang/test/SemaOpenACC/data-construct-deviceptr-ast.cpp
A clang/test/SemaOpenACC/data-construct-deviceptr-clause.c
A clang/test/SemaOpenACC/data-construct-finalize-ast.cpp
A clang/test/SemaOpenACC/data-construct-finalize-clause.c
A clang/test/SemaOpenACC/data-construct-if-ast.cpp
A clang/test/SemaOpenACC/data-construct-if-clause.c
A clang/test/SemaOpenACC/data-construct-if_present-ast.cpp
A clang/test/SemaOpenACC/data-construct-if_present-clause.c
A clang/test/SemaOpenACC/data-construct-no_create-ast.cpp
A clang/test/SemaOpenACC/data-construct-no_create-clause.c
A clang/test/SemaOpenACC/data-construct-present-ast.cpp
A clang/test/SemaOpenACC/data-construct-present-clause.c
A clang/test/SemaOpenACC/data-construct-use_device-ast.cpp
A clang/test/SemaOpenACC/data-construct-use_device-clause.c
A clang/test/SemaOpenACC/data-construct-wait-ast.cpp
A clang/test/SemaOpenACC/data-construct-wait-clause.c
A clang/test/SemaOpenACC/data-construct.cpp
A clang/test/SemaOpenACC/init-construct-ast.cpp
A clang/test/SemaOpenACC/init-construct.cpp
M clang/test/SemaOpenACC/loop-construct-auto_seq_independent-clauses.c
M clang/test/SemaOpenACC/loop-construct-collapse-clause.cpp
M clang/test/SemaOpenACC/loop-construct-device_type-clause.c
M clang/test/SemaOpenACC/loop-construct-gang-clause.cpp
M clang/test/SemaOpenACC/loop-construct-vector-clause.cpp
M clang/test/SemaOpenACC/loop-construct-worker-clause.cpp
A clang/test/SemaOpenACC/set-construct-ast.cpp
A clang/test/SemaOpenACC/set-construct.cpp
A clang/test/SemaOpenACC/shutdown-construct-ast.cpp
A clang/test/SemaOpenACC/shutdown-construct.cpp
M clang/test/SemaOpenACC/unimplemented-construct.c
A clang/test/SemaOpenACC/update-construct-ast.cpp
A clang/test/SemaOpenACC/update-construct.cpp
A clang/test/SemaOpenACC/wait-construct-ast.cpp
A clang/test/SemaOpenACC/wait-construct.cpp
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950-param.cl
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950.cl
M clang/test/SemaOpenCL/builtins-amdgcn-error-wave32.cl
M clang/test/SemaOpenCL/builtins-amdgcn-gfx940-err.cl
A clang/test/SemaOpenCL/builtins-amdgcn-wave32-func-attr.cl
M clang/test/SemaOpenCL/invalid-block.cl
A clang/test/SemaSPIRV/BuiltIns/distance-errors.c
A clang/test/SemaSPIRV/BuiltIns/length-errors.c
A clang/test/SemaSYCL/sycl-kernel-entry-point-attr-appertainment.cpp
M clang/test/SemaSYCL/sycl-kernel-entry-point-attr-grammar.cpp
A clang/test/SemaSYCL/sycl-kernel-entry-point-attr-kernel-name-module.cpp
A clang/test/SemaSYCL/sycl-kernel-entry-point-attr-kernel-name-pch.cpp
A clang/test/SemaSYCL/sycl-kernel-entry-point-attr-kernel-name.cpp
A clang/test/SemaSYCL/sycl-kernel-entry-point-attr-sfinae.cpp
M clang/test/SemaTemplate/address_space-dependent.cpp
M clang/test/SemaTemplate/aggregate-deduction-candidate.cpp
M clang/test/SemaTemplate/concepts-lambda.cpp
M clang/test/SemaTemplate/concepts-out-of-line-def.cpp
M clang/test/SemaTemplate/concepts.cpp
M clang/test/SemaTemplate/cwg2398.cpp
M clang/test/SemaTemplate/deduction-crash.cpp
M clang/test/SemaTemplate/deduction-guide.cpp
M clang/test/SemaTemplate/default-arguments.cpp
M clang/test/SemaTemplate/instantiate-template-template-parm.cpp
M clang/test/SemaTemplate/instantiation-default-2.cpp
M clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp
M clang/test/SemaTemplate/nested-template.cpp
M clang/test/SemaTemplate/pack-deduction.cpp
M clang/test/SemaTemplate/temp_arg_nontype.cpp
M clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp
M clang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp
M clang/test/SemaTemplate/temp_arg_template.cpp
M clang/test/SemaTemplate/temp_arg_template_p0522.cpp
A clang/test/SemaTemplate/template-args-deduction-aggregates.cpp
A clang/test/TableGen/select-enum-errors.td
A clang/test/TableGen/select-enum.td
M clang/test/TableGen/target-builtins-prototype-parser.td
M clang/test/Templight/templight-empty-entries-fix.cpp
M clang/test/Templight/templight-prior-template-arg.cpp
M clang/test/lit.cfg.py
M clang/test/lit.site.cfg.py.in
M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp
M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
A clang/test/utils/update_cc_test_checks/Inputs/c-symbol-mangling.c
A clang/test/utils/update_cc_test_checks/Inputs/c-symbol-mangling.c.expected
A clang/test/utils/update_cc_test_checks/c-symbol-mangling.test
M clang/tools/CMakeLists.txt
R clang/tools/arcmt-test/CMakeLists.txt
R clang/tools/arcmt-test/arcmt-test.cpp
R clang/tools/c-arcmt-test/CMakeLists.txt
R clang/tools/c-arcmt-test/c-arcmt-test.c
M clang/tools/c-index-test/core_main.cpp
M clang/tools/clang-format/ClangFormat.cpp
M clang/tools/clang-format/git-clang-format
M clang/tools/clang-import-test/clang-import-test.cpp
M clang/tools/clang-installapi/ClangInstallAPI.cpp
M clang/tools/clang-installapi/Options.cpp
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
M clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
M clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
M clang/tools/clang-repl/CMakeLists.txt
M clang/tools/clang-repl/ClangRepl.cpp
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-shlib/CMakeLists.txt
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
M clang/tools/diagtool/DiagnosticNames.cpp
M clang/tools/diagtool/ListWarnings.cpp
M clang/tools/diagtool/ShowEnabledWarnings.cpp
M clang/tools/driver/CMakeLists.txt
M clang/tools/driver/cc1_main.cpp
M clang/tools/driver/driver.cpp
M clang/tools/include-mapping/cppreference_parser.py
R clang/tools/libclang/ARCMigrate.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CIndexCXX.cpp
M clang/tools/libclang/CIndexDiagnostic.cpp
M clang/tools/libclang/CMakeLists.txt
M clang/tools/libclang/CXCursor.cpp
M clang/tools/libclang/CXStoredDiagnostic.cpp
M clang/tools/libclang/CXType.cpp
M clang/tools/libclang/Indexing.cpp
M clang/tools/libclang/libclang.map
M clang/tools/scan-build/bin/scan-build
M clang/unittests/AST/ASTContextParentMapTest.cpp
M clang/unittests/AST/ASTImporterTest.cpp
A clang/unittests/AST/ByteCode/BitcastBuffer.cpp
M clang/unittests/AST/ByteCode/CMakeLists.txt
M clang/unittests/AST/ExternalASTSourceTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
M clang/unittests/Analysis/CFGBuildResult.h
M clang/unittests/Analysis/CFGTest.cpp
M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
M clang/unittests/Analysis/FlowSensitive/ASTOpsTest.cpp
M clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
M clang/unittests/Analysis/FlowSensitive/CachedConstAccessorsLatticeTest.cpp
A clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp
M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp
M clang/unittests/Basic/DiagnosticTest.cpp
M clang/unittests/CodeGen/TBAAMetadataTest.cpp
M clang/unittests/CodeGen/TestCompiler.h
M clang/unittests/Driver/DXCModeTest.cpp
M clang/unittests/Driver/ToolChainTest.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/FormatTestJS.cpp
M clang/unittests/Format/FormatTestSelective.cpp
M clang/unittests/Format/FormatTestTableGen.cpp
M clang/unittests/Format/FormatTestVerilog.cpp
M clang/unittests/Format/MacroCallReconstructorTest.cpp
M clang/unittests/Format/MatchFilePathTest.cpp
M clang/unittests/Format/QualifierFixerTest.cpp
M clang/unittests/Format/SortIncludesTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/Frontend/ASTUnitTest.cpp
M clang/unittests/Frontend/CodeGenActionTest.cpp
M clang/unittests/Frontend/CompilerInstanceTest.cpp
M clang/unittests/Frontend/CompilerInvocationTest.cpp
M clang/unittests/Frontend/FrontendActionTest.cpp
M clang/unittests/Frontend/OutputStreamTest.cpp
M clang/unittests/Frontend/PCHPreambleTest.cpp
M clang/unittests/Frontend/ReparseWorkingDirTest.cpp
M clang/unittests/Frontend/UtilsTest.cpp
M clang/unittests/Lex/LexerTest.cpp
M clang/unittests/Sema/CMakeLists.txt
A clang/unittests/Sema/HeuristicResolverTest.cpp
M clang/unittests/Sema/SemaNoloadLookupTest.cpp
M clang/unittests/Serialization/CMakeLists.txt
M clang/unittests/Serialization/ForceCheckFileInputTest.cpp
A clang/unittests/Serialization/LoadSpecLazilyTest.cpp
M clang/unittests/Serialization/ModuleCacheTest.cpp
M clang/unittests/Serialization/NoCommentsTest.cpp
M clang/unittests/Serialization/PreambleInNamedModulesTest.cpp
M clang/unittests/Serialization/VarDeclConstantInitTest.cpp
M clang/unittests/StaticAnalyzer/CMakeLists.txt
A clang/unittests/StaticAnalyzer/ObjcBug-124477.cpp
M clang/unittests/StaticAnalyzer/Z3CrosscheckOracleTest.cpp
M clang/unittests/Support/TimeProfilerTest.cpp
M clang/unittests/Tooling/ASTSelectionTest.cpp
M clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp
M clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp
M clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
M clang/unittests/Tooling/ToolingTest.cpp
M clang/utils/TableGen/ClangASTNodesEmitter.cpp
M clang/utils/TableGen/ClangAttrEmitter.cpp
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
M clang/utils/TableGen/ClangOpcodesEmitter.cpp
M clang/utils/TableGen/MveEmitter.cpp
M clang/utils/TableGen/NeonEmitter.cpp
M clang/utils/TableGen/RISCVVEmitter.cpp
M clang/utils/TableGen/SveEmitter.cpp
M clang/utils/TableGen/TableGen.cpp
M clang/utils/TableGen/TableGenBackends.h
M clang/utils/analyzer/entrypoint.py
M clang/utils/analyzer/exploded-graph-rewriter.py
M clang/utils/perf-training/CMakeLists.txt
M clang/utils/perf-training/bolt.lit.cfg
M clang/utils/perf-training/lit.cfg
M clang/utils/perf-training/llvm-support/build.test
M clang/utils/perf-training/perf-helper.py
M clang/www/OpenProjects.html
M clang/www/analyzer/annotations.html
R clang/www/analyzer/images/example_attribute_nonnull.png
R clang/www/analyzer/images/example_cf_returns_retained.png
R clang/www/analyzer/images/example_custom_assert.png
R clang/www/analyzer/images/example_ns_returns_retained.png
R clang/www/analyzer/images/example_null_pointer.png
R clang/www/analyzer/images/example_use_assert.png
R clang/www/analyzer/images/scan_build_cmd.png
M clang/www/cxx_dr_status.html
M clang/www/cxx_status.html
M clang/www/hacking.html
M clang/www/make_cxx_dr_status
M cmake/Modules/CMakePolicy.cmake
M cmake/Modules/LLVMVersion.cmake
M compiler-rt/CMakeLists.txt
R compiler-rt/CODE_OWNERS.TXT
A compiler-rt/Maintainers.md
M compiler-rt/cmake/Modules/AddCompilerRT.cmake
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/cmake/Modules/CompilerRTAIXUtils.cmake
M compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
M compiler-rt/cmake/base-config-ix.cmake
M compiler-rt/cmake/builtin-config-ix.cmake
M compiler-rt/cmake/caches/hexagon-linux-clangrt.cmake
M compiler-rt/cmake/config-ix.cmake
M compiler-rt/include/profile/InstrProfData.inc
M compiler-rt/include/sanitizer/memprof_interface.h
M compiler-rt/lib/asan/CMakeLists.txt
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_flags.cpp
M compiler-rt/lib/asan/asan_interceptors.cpp
M compiler-rt/lib/asan/asan_interceptors.h
M compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
M compiler-rt/lib/asan/asan_suppressions.cpp
M compiler-rt/lib/asan/asan_suppressions.h
M compiler-rt/lib/asan/tests/CMakeLists.txt
M compiler-rt/lib/asan/tests/asan_test.cpp
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/aarch64/arm_apple_sme_abi.s
A compiler-rt/lib/builtins/aarch64/sme-abi-assert.c
R compiler-rt/lib/builtins/aarch64/sme-abi-init.c
R compiler-rt/lib/builtins/aarch64/sme-abi-vg.c
M compiler-rt/lib/builtins/aarch64/sme-abi.S
M compiler-rt/lib/builtins/aarch64/sme-libc-mem-routines.S
M compiler-rt/lib/builtins/arm/adddf3vfp.S
M compiler-rt/lib/builtins/arm/aeabi_dcmp.S
M compiler-rt/lib/builtins/arm/divdf3vfp.S
M compiler-rt/lib/builtins/arm/eqdf2vfp.S
M compiler-rt/lib/builtins/arm/extendsfdf2vfp.S
M compiler-rt/lib/builtins/arm/fixdfsivfp.S
M compiler-rt/lib/builtins/arm/fixunsdfsivfp.S
M compiler-rt/lib/builtins/arm/floatsidfvfp.S
M compiler-rt/lib/builtins/arm/floatunssidfvfp.S
M compiler-rt/lib/builtins/arm/gedf2vfp.S
M compiler-rt/lib/builtins/arm/gtdf2vfp.S
M compiler-rt/lib/builtins/arm/ledf2vfp.S
M compiler-rt/lib/builtins/arm/ltdf2vfp.S
M compiler-rt/lib/builtins/arm/muldf3vfp.S
M compiler-rt/lib/builtins/arm/nedf2vfp.S
M compiler-rt/lib/builtins/arm/subdf3vfp.S
M compiler-rt/lib/builtins/arm/truncdfsf2vfp.S
M compiler-rt/lib/builtins/arm/unorddf2vfp.S
M compiler-rt/lib/builtins/assembly.h
M compiler-rt/lib/builtins/cpu_model/AArch64CPUFeatures.inc
M compiler-rt/lib/builtins/cpu_model/aarch64.c
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/apple.inc
A compiler-rt/lib/builtins/cpu_model/aarch64/fmv/baremetal.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/mrs.inc
A compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/windows.inc
M compiler-rt/lib/builtins/cpu_model/x86.c
A compiler-rt/lib/builtins/extendhfxf2.c
M compiler-rt/lib/builtins/fp_div_impl.inc
A compiler-rt/lib/builtins/truncxfhf2.c
M compiler-rt/lib/fuzzer/FuzzerFlags.def
M compiler-rt/lib/gwp_asan/tests/harness.h
M compiler-rt/lib/hwasan/CMakeLists.txt
M compiler-rt/lib/hwasan/hwasan_platform_interceptors.h
M compiler-rt/lib/interception/interception.h
M compiler-rt/lib/interception/interception_win.cpp
M compiler-rt/lib/interception/interception_win.h
M compiler-rt/lib/interception/tests/interception_win_test.cpp
M compiler-rt/lib/lsan/lsan_common.cpp
M compiler-rt/lib/lsan/lsan_common_linux.cpp
M compiler-rt/lib/memprof/memprof_allocator.cpp
M compiler-rt/lib/memprof/memprof_flags.cpp
M compiler-rt/lib/memprof/memprof_flags.h
M compiler-rt/lib/memprof/memprof_flags.inc
M compiler-rt/lib/memprof/memprof_interceptors.cpp
M compiler-rt/lib/memprof/memprof_interceptors.h
M compiler-rt/lib/memprof/memprof_interceptors_memintrinsics.h
M compiler-rt/lib/memprof/memprof_interface_internal.h
M compiler-rt/lib/memprof/memprof_rtl.cpp
M compiler-rt/lib/memprof/weak_symbols.txt
M compiler-rt/lib/msan/CMakeLists.txt
M compiler-rt/lib/msan/msan_interceptors.cpp
M compiler-rt/lib/msan/msan_poisoning.cpp
M compiler-rt/lib/nsan/nsan_allocator.cpp
M compiler-rt/lib/nsan/nsan_interceptors.cpp
M compiler-rt/lib/orc/CMakeLists.txt
M compiler-rt/lib/orc/macho_tlv.x86-64.S
A compiler-rt/lib/orc/resolve.cpp
A compiler-rt/lib/orc/sysv_reenter.arm64.S
A compiler-rt/lib/orc/sysv_reenter.x86-64.S
M compiler-rt/lib/orc/tests/unit/CMakeLists.txt
A compiler-rt/lib/orc/tests/unit/common.cpp
M compiler-rt/lib/profile/InstrProfilingMerge.c
M compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
M compiler-rt/lib/rtsan/rtsan.cpp
M compiler-rt/lib/rtsan/rtsan_flags.inc
M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_main.cpp
M compiler-rt/lib/safestack/safestack_platform.h
M compiler-rt/lib/sanitizer_common/sanitizer_allocator_dlsym.h
M compiler-rt/lib/sanitizer_common/sanitizer_common.h
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
M compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h
M compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h
M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
M compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cpp
M compiler-rt/lib/scudo/standalone/CMakeLists.txt
M compiler-rt/lib/scudo/standalone/allocator_config_wrapper.h
M compiler-rt/lib/scudo/standalone/list.h
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/release.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
A compiler-rt/lib/scudo/standalone/type_traits.h
M compiler-rt/lib/tsan/go/buildgo.sh
M compiler-rt/lib/tsan/rtl/CMakeLists.txt
M compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
M compiler-rt/lib/tsan/rtl/tsan_rtl.h
M compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
R compiler-rt/lib/tsan/rtl/tsan_spinlock_defs_mac.h
A compiler-rt/lib/tysan/CMakeLists.txt
A compiler-rt/lib/tysan/lit.cfg
A compiler-rt/lib/tysan/lit.site.cfg.in
A compiler-rt/lib/tysan/tysan.cpp
A compiler-rt/lib/tysan/tysan.h
A compiler-rt/lib/tysan/tysan.syms.extra
A compiler-rt/lib/tysan/tysan_flags.inc
A compiler-rt/lib/tysan/tysan_interceptors.cpp
A compiler-rt/lib/tysan/tysan_platform.h
M compiler-rt/lib/ubsan/CMakeLists.txt
M compiler-rt/lib/ubsan/ubsan_checks.inc
M compiler-rt/lib/ubsan/ubsan_handlers.cpp
M compiler-rt/lib/ubsan/ubsan_handlers.h
M compiler-rt/lib/ubsan/ubsan_interface.inc
M compiler-rt/lib/ubsan/ubsan_value.h
M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
M compiler-rt/lib/xray/CMakeLists.txt
M compiler-rt/lib/xray/weak_symbols.txt
M compiler-rt/lib/xray/xray_flags.cpp
M compiler-rt/lib/xray/xray_flags.h
M compiler-rt/lib/xray/xray_interface.cpp
M compiler-rt/lib/xray/xray_interface_internal.h
A compiler-rt/lib/xray/xray_riscv.cpp
A compiler-rt/lib/xray/xray_s390x.cpp
A compiler-rt/lib/xray/xray_trampoline_riscv32.S
A compiler-rt/lib/xray/xray_trampoline_riscv64.S
A compiler-rt/lib/xray/xray_trampoline_riscv_common.S
A compiler-rt/lib/xray/xray_trampoline_s390x.S
M compiler-rt/lib/xray/xray_tsc.h
M compiler-rt/test/asan/TestCases/Linux/global-overflow-bfd.cpp
M compiler-rt/test/asan/TestCases/Linux/interface_symbols_linux.cpp
M compiler-rt/test/asan/TestCases/Posix/fake_stack_gc.cpp
M compiler-rt/test/asan/TestCases/Posix/unpoison-alternate-stack.cpp
A compiler-rt/test/asan/TestCases/Windows/allocator_may_return_null_limits.cpp
A compiler-rt/test/asan/TestCases/Windows/msvc/strdup_null_input.cpp
A compiler-rt/test/asan/TestCases/suppressions-alloc-dealloc-mismatch.cpp
M compiler-rt/test/asan/TestCases/suppressions-exec-relative-location.cpp
M compiler-rt/test/asan/TestCases/suppressions-function.cpp
M compiler-rt/test/asan/TestCases/suppressions-interceptor.cpp
M compiler-rt/test/asan/TestCases/suppressions-library.cpp
M compiler-rt/test/builtins/Unit/atomic_test.c
M compiler-rt/test/builtins/Unit/divdf3_test.c
M compiler-rt/test/builtins/Unit/divsf3_test.c
M compiler-rt/test/builtins/Unit/divtf3_test.c
A compiler-rt/test/builtins/Unit/extendhfxf2_test.c
M compiler-rt/test/builtins/Unit/fp_test.h
A compiler-rt/test/builtins/Unit/truncxfhf2_test.c
M compiler-rt/test/fuzzer/noasan-strcmp.test
M compiler-rt/test/hwasan/lit.cfg.py
M compiler-rt/test/lit.common.configured.in
M compiler-rt/test/lsan/TestCases/leak_check_before_thread_started.cpp
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.6-beta.1
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/69385e633a76...bd7bc84f24e1
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