[all-commits] [llvm/llvm-project] 08d14e: [SLP] Fix CommonMask will be transformed into an i...
Koakuma via All-commits
all-commits at lists.llvm.org
Mon Feb 10 19:38:15 PST 2025
Branch: refs/heads/users/koachan/spr/main.sparcias-add-ias-flag-handling-for-isa-levels
Home: https://github.com/llvm/llvm-project
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: 6980d9794684908fa1835b87b560d20e5f295a73
https://github.com/llvm/llvm-project/commit/6980d9794684908fa1835b87b560d20e5f295a73
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in annotating ClassHeadName (#125326)
Commit: b2ef23cd58dd0cab60b9c7940ce9459ef01123ef
https://github.com/llvm/llvm-project/commit/b2ef23cd58dd0cab60b9c7940ce9459ef01123ef
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
Log Message:
-----------
[MIParser] Don't use Register to hold Dwarf register numbers. NFC (#125263)
Commit: 58033355399404369cf540c83e59ffaa0ccb0bd3
https://github.com/llvm/llvm-project/commit/58033355399404369cf540c83e59ffaa0ccb0bd3
Author: David Green <david.green at arm.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
Log Message:
-----------
[GlobalISel] Add brackets around || in assert. NFC
Commit: 2eabcb73c2aea04720854d4c999019cab2b18efb
https://github.com/llvm/llvm-project/commit/2eabcb73c2aea04720854d4c999019cab2b18efb
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M llvm/utils/TableGen/DAGISelMatcherGen.cpp
Log Message:
-----------
[TableGen] Use range-based for loop. NFC
Commit: caeefe7b9403a281d5ea3501c3792ba01b3ee7ae
https://github.com/llvm/llvm-project/commit/caeefe7b9403a281d5ea3501c3792ba01b3ee7ae
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-min-max.ll
Log Message:
-----------
[InstCombine] Extend `foldSelectInstWithICmpConst` to handle minmax (#125346)
This patch extends
https://github.com/llvm/llvm-project/commit/f6bb156fb10cd83953a34f75b78835cdf399ee8b
to handle minmax intrinsics.
Motivating case: https://alive2.llvm.org/ce/z/JFKbYn
Addresses a regression caused by
https://github.com/llvm/llvm-project/pull/121958.
It also works for `*.sat`. But no real-world benefit is observed.
Commit: 00bdce1c373a1c5b756f4cf694a952ef702d0294
https://github.com/llvm/llvm-project/commit/00bdce1c373a1c5b756f4cf694a952ef702d0294
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/literals.cpp
Log Message:
-----------
[clang][bytecode] Ignore Namespace{Using,Alias}Decls (#125387)
These were missing here and are used in a few libc++ tests.
Commit: 1af627b592dd15bbe58136f902ced46251fc344d
https://github.com/llvm/llvm-project/commit/1af627b592dd15bbe58136f902ced46251fc344d
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/select-icmp.ll
Log Message:
-----------
[InstSimplify] Add additional checks when substituting pointers (#125385)
Compile-time impact:
https://llvm-compile-time-tracker.com/compare.php?from=d09b521624f263b5f1296f8d4771836b97e600cb&to=e437ba2cb83bb965e13ef00727671896f03ff84f&stat=instructions:u
IR diff looks acceptable.
Closes https://github.com/llvm/llvm-project/issues/115574
Commit: cf893baf02ffe2dc1a65a6bb9334332a83a453ea
https://github.com/llvm/llvm-project/commit/cf893baf02ffe2dc1a65a6bb9334332a83a453ea
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
M clang/lib/AST/ByteCode/Function.cpp
M clang/lib/AST/ByteCode/Function.h
Log Message:
-----------
[clang][bytecode][NFC] Add a FunctionKind enum (#125391)
Some function types are special to us, so add an enum and determinte the
function kind once when creating the function, instead of looking at the
Decl every time we need the information.
Commit: 642e84f0012b6e3a0e4f187bad5ee1775c3d623a
https://github.com/llvm/llvm-project/commit/642e84f0012b6e3a0e4f187bad5ee1775c3d623a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
Log Message:
-----------
[clang][bytecode][NFC] Only get expr when checking for UB (#125397)
The Expr and its Type were unused otherwise.
Commit: 50082773223b9eced296d8223ca4e4a79ecdeb9b
https://github.com/llvm/llvm-project/commit/50082773223b9eced296d8223ca4e4a79ecdeb9b
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
A llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanSLP.cpp
A llvm/lib/Transforms/Vectorize/VPlanSLP.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanValue.h
M llvm/unittests/Transforms/Vectorize/VPlanSlpTest.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Move auxiliary declarations out of VPlan.h (NFC). (#124104)
Nothing in VPlan.h directly depends on VPTransformState, VPCostContext,
VPFRange, VPlanPrinter or VPSlotTracker. Move them out to a separate
header to reduce the size of widely used VPlan.h.
This is a first step towards more cleanly separating declarations in
VPlan.
Besides reducing VPlan.h's size, this also allows including additional
VPlan-related headers in VPlanHelpers.h for use there. An example is
using VPDominatorTree in VPTransformState
(https://github.com/llvm/llvm-project/pull/117138).
PR: https://github.com/llvm/llvm-project/pull/124104
Commit: d00579be39e8a470d7a0ff79ff6deadf9e003781
https://github.com/llvm/llvm-project/commit/d00579be39e8a470d7a0ff79ff6deadf9e003781
Author: Martin Storsjö <martin at martin.st>
Date: 2025-02-02 (Sun, 02 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:
-----------
Revert "[SLP]Reduce number of alternate instruction, where possible"
This reverts commit d5a7a483a65f830a0c7a931781bc90046dc67ff4.
That commit triggers failed asserts, see
https://github.com/llvm/llvm-project/pull/123360 for details.
Commit: d68a4b93d36ca6d67ccc1fa70b34f48fb563cdd7
https://github.com/llvm/llvm-project/commit/d68a4b93d36ca6d67ccc1fa70b34f48fb563cdd7
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
M mlir/test/Dialect/Linalg/vectorization-pad-patterns.mlir
M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
M mlir/test/Dialect/Linalg/vectorization.mlir
Log Message:
-----------
[mlir][linalg] Add support for masked vectorization of `tensor.insert_slice` (1/N) (#122927)
For context, `tensor.insert_slice` is vectorized using a
`vector.transfer_read` + `vector.transfer_write` pair.
An unmasked example is shown below:
```mlir
// BEFORE VECTORIZATION
%res = tensor.insert_slice
%slice into %dest[0, %c2]
[5, 1] [1, 1] : tensor<5x1xi32> into tensor<5x3xi32>
// AFTER VECTORIZATION
%read = vector.transfer_read %source[%c0, %c0], %pad
: tensor<5x1xi32>, vector<8x1xi32>
%res = vector.transfer_write %read, %dest[%c0, %c2]
: vector<8x1xi32>, tensor<5x3xi32>
```
This PR refactors `InsertSliceVectorizePattern` (which is used to
vectorize `tensor.extract_slice`) to enable masked vectorization. ATM,
only `vector.transfer_read` is masked. If `vector.transfer_write` also
requires masking, the vectorizer will bail out. This will be addressed
in a sub-sequent PR.
Summary of changes:
* Added an argument to specify vector sizes (behavior remains
unchanged if vector sizes are not specified).
* Renamed `InsertSliceVectorizePattern` to `vectorizeAsInsertSliceOp`
and integrated into (alongside other hooks for vectorization) in
`linalg::vectorize`.
* Removed `populateInsertSliceVectorizationPatterns`, as
`InsertSliceVectorizePattern` was its only pattern.
* Updated `vectorizeAsInsertSliceOp` to support masking for the
"read" operation.
* Updated `@pad_and_insert_slice_dest` in
"vectorization-pad-patterns.mlir" to reflect the removal of
`populateInsertSliceVectorizationPatterns` from
`ApplyPadVectorizationPatternsOps`.
Commit: 3e5640b22d3978571816b9a0468a4aed27cdd82c
https://github.com/llvm/llvm-project/commit/3e5640b22d3978571816b9a0468a4aed27cdd82c
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
Log Message:
-----------
[mlir][Vector] Update VectorEmulateNarrowType.cpp (1/N) (#123526)
This is PR 1 in a series of N patches aimed at improving
"VectorEmulateNarrowType.cpp". This is mainly minor refactoring, no
major functional changes are made/added.
This PR renames:
* `srcBits`/`dstBits` + `oldElementType`/`newElementType`
to improve consistency in naming within the file. This is illustrated
below:
```cpp
// Extracted from VectorEmulateNarrowType.cpp
// BEFORE (mixing old/new and src/dst):
// Type oldElementType = op.getType().getElementType();
// Type newElementType = convertedType.getElementType();
// int srcBits = oldElementType.getIntOrFloatBitWidth();
// int dstBits = newElementType.getIntOrFloatBitWidth();
// AFTER (consistently using emulated/container):
Type emulatedElemType = op.getType().getElementType();
Type containerElemType = convertedType.getElementType();
int emulatedBits = emulatedElemTy.getIntOrFloatBitWidth();
int containerBits = containerElemTy.getIntOrFloatBitWidth();
```
Also adds some comments and unifies related "rewriter notification"
messages.
**GitHub issue to track this work:**
* https://github.com/llvm/llvm-project/issues/123630
Commit: 359a9131704277bce0f806de31ac887e68a66902
https://github.com/llvm/llvm-project/commit/359a9131704277bce0f806de31ac887e68a66902
Author: Michał Górny <mgorny at gentoo.org>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M offload/plugins-nextgen/common/include/ErrorReporting.h
Log Message:
-----------
[offload] `gnu::format` with variadic template functions is Clang-only (#124406)
Use `gnu::format` attribute only when compiling with Clang, as using it
against variadic template functions is a Clang extension and is not
supported by GCC.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77958
Fixes #119069
Commit: 689ef5fda0ab07dfc452cb16d3646d53e612cb75
https://github.com/llvm/llvm-project/commit/689ef5fda0ab07dfc452cb16d3646d53e612cb75
Author: Michał Górny <mgorny at gentoo.org>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[offload] [test] Use test compiler ID rather than host (#124408)
Use the test compiler ID to verify whether tests can be run rather than
the host compiler. This makes it possible to run tests (with Clang)
while the library itself was built with GCC.
Commit: 2cac0bf8fee896d3204c310a736e5bfe85fbdebd
https://github.com/llvm/llvm-project/commit/2cac0bf8fee896d3204c310a736e5bfe85fbdebd
Author: Vladimir Kozelkov <46866705+vova7878 at users.noreply.github.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/include/llvm-c/Core.h
Log Message:
-----------
Remove unused LLVMLandingPadClauseTy from Core.h (#124472)
enum LLVMLandingPadClauseTy has never been used and exists by mistake.
[This](https://github.com/llvm-mirror/llvm/commit/772fe17a6d07304ae2e6b3052bbb24ebb751f0f3#diff-9e2da57026497163c9f7396a48567626a0b94828a5757436ef20a4e67522525d) commit added a LLVMAddClause function that took it as a parameter.
[Here](https://github.com/llvm-mirror/llvm/commit/10c6d12a9fd4dab411091f64db4db69670b88850#diff-6e588c82c378e251a7d265b08973d4a7312a592756f88023cd317f109083de10) the enum was removed.
And [here](https://github.com/llvm-mirror/llvm/commit/e6e8826870bee3facb04f950f0bd725f8a88623d#diff-9e2da57026497163c9f7396a48567626a0b94828a5757436ef20a4e67522525d) it is added again by mistake, although the LLVMAddClause function no longer accepts it
Commit: 2f98ae5029a1f03793ca2016585c48075a1aa03a
https://github.com/llvm/llvm-project/commit/2f98ae5029a1f03793ca2016585c48075a1aa03a
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/NewGVN.cpp
Log Message:
-----------
[Transforms] Avoid repeated hash lookups (NFC) (#125350)
Commit: 43b7124c5749b3f3276adf1b869e623e163e230e
https://github.com/llvm/llvm-project/commit/43b7124c5749b3f3276adf1b869e623e163e230e
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/include/clang/AST/ExprCXX.h
Log Message:
-----------
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#125379)
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 the non-const variant of
getInitializedFieldInUnion is known to encounter null in
ArrayFillerOrUnionFieldInit. See:
commit 563c7c5539f05e7f8cbb42565c1f24466019f38b
Author: Kazu Hirata <kazu at google.com>
Date: Sat Jan 25 14:05:01 2025 -0800
FWIW, I am not aware of any test case in check-clang that triggers
null here.
Commit: 2767f4bf0d5a70aa990dbfb3341a1bc03effcdbd
https://github.com/llvm/llvm-project/commit/2767f4bf0d5a70aa990dbfb3341a1bc03effcdbd
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/include/clang/Lex/Preprocessor.h
Log Message:
-----------
[Lex] Migrate away from PointerUnion::dyn_cast (NFC) (#125380)
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 State is not guaranteed to be nonnull
elsewhere in this class. See:
commit 563c7c5539f05e7f8cbb42565c1f24466019f38b
Author: Kazu Hirata <kazu at google.com>
Date: Sat Jan 25 14:05:01 2025 -0800
FWIW, I am not aware of any test case in check-clang that triggers
null here.
Commit: 09e7b40bd3d7a1a2d9153912224bcf612954ead5
https://github.com/llvm/llvm-project/commit/09e7b40bd3d7a1a2d9153912224bcf612954ead5
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
[libclang] Migrate away from PointerUnion::dyn_cast (NFC) (#125381)
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 Storage to be nonnull.
Commit: a5e969a82b6ec9e799235897973f83ae4f1e4245
https://github.com/llvm/llvm-project/commit/a5e969a82b6ec9e799235897973f83ae4f1e4245
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/InlineSpiller.cpp
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#125382)
Commit: 52c116218b61c088ac77f26c7b57347a5f54224d
https://github.com/llvm/llvm-project/commit/52c116218b61c088ac77f26c7b57347a5f54224d
Author: Alex Bradbury <asb at igalia.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
Log Message:
-----------
[RISCV][VLOPT] Clear DemandedVLs for each invocation of runOnMachineFunction
I was running into failed assertions of `isCandidate(UserMI)` in
`getMinimumVLForUser`, but only occurring with
`-enable-machine-outliner=never`. I believe this is a red herring, and
it just so happens the memory allocation pattern on my machine exposed
the bug with that flag.
DemandedVLs is never cleared, which means it accumulates more
MachineInstr pointer keys over time, and it's possible that when e.g.
running on function 'b', a MachineInstr pointer points to the same
memory location used for a candidate in 'a'. This causes the assertion
to fail.
Comment left on #124530 with more information.
Commit: 8aebcebd90b79b90eca828762fd3b0637e430e51
https://github.com/llvm/llvm-project/commit/8aebcebd90b79b90eca828762fd3b0637e430e51
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
M llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
Log Message:
-----------
[LVI] Add trunc to i1 handling. (#124480)
Proof: https://alive2.llvm.org/ce/z/yPrRp-
Commit: 070e12930489c58d0fed4daadddea229384401d7
https://github.com/llvm/llvm-project/commit/070e12930489c58d0fed4daadddea229384401d7
Author: David Green <david.green at arm.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-fshl.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-fshr.mir
M llvm/test/CodeGen/AArch64/fsh.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fshl.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fshr.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-fshl-fshr-rv32.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-fshl-fshr-rv64.mir
M llvm/utils/update_mir_test_checks.py
Log Message:
-----------
[AArch64][GlobalISel] Add disjoint handling for add_and_or_is_add. (#123594)
This allows us to easily detect, without known-bits, that the or in a
fshl/fshr is disjoint allowing us to use usra under aarch64.
Commit: da2b415b19d178d6b250bb6468ed4a207860adf7
https://github.com/llvm/llvm-project/commit/da2b415b19d178d6b250bb6468ed4a207860adf7
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[clang] Add tracking source deduction guide for the explicitly-written
deduction guide.
We miss this case in the original f94c481543bdd3b11a668ad78d46593cf974788f commit.
Commit: 115bb87ad0a85d8ab4d907399db130cb1f2c63f2
https://github.com/llvm/llvm-project/commit/115bb87ad0a85d8ab4d907399db130cb1f2c63f2
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M lld/MachO/BPSectionOrderer.cpp
M lld/include/lld/Common/BPSectionOrdererBase.inc
Log Message:
-----------
[lld] BPSectionOrderer: replace Symbol with Defined and optimize getSymbols. NFC
Commit: f6578c3d809b22d08524c3ae017c843f478d67e6
https://github.com/llvm/llvm-project/commit/f6578c3d809b22d08524c3ae017c843f478d67e6
Author: Andrei Safronov <andrei.safronov at espressif.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
M llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.h
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.h
M llvm/lib/Target/Xtensa/Xtensa.td
A llvm/lib/Target/Xtensa/XtensaFeatures.td
M llvm/lib/Target/Xtensa/XtensaInstrInfo.td
M llvm/lib/Target/Xtensa/XtensaOperands.td
M llvm/lib/Target/Xtensa/XtensaRegisterInfo.td
M llvm/lib/Target/Xtensa/XtensaSubtarget.h
A llvm/test/MC/Disassembler/Xtensa/windowed.txt
A llvm/test/MC/Disassembler/Xtensa/windowed_code_density.txt
A llvm/test/MC/Xtensa/windowed.s
A llvm/test/MC/Xtensa/windowed_code_density.s
A llvm/test/MC/Xtensa/windowed_invalid.s
Log Message:
-----------
[Xtensa] Implement Windowed Register Option. (#124656)
This patch implements Xtensa ISA option "Windowed Register Option". It implements subtarget feature, instructions descriptions and support of these instructions in asm parser and disassembler.
This is the second version of the Windowed Register Option implementation ( previous implementation #121118). In this variant "checkRegister" function is placed in XtensaMCTargetDesc.
Commit: 0154dce8d39d2688b09f4e073fe601099a399365
https://github.com/llvm/llvm-project/commit/0154dce8d39d2688b09f4e073fe601099a399365
Author: Pengying Xu <xpy66swsry at gmail.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
A lld/ELF/BPSectionOrderer.cpp
A lld/ELF/BPSectionOrderer.h
M lld/ELF/CMakeLists.txt
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Options.td
M lld/ELF/Writer.cpp
M lld/include/lld/Common/BPSectionOrdererBase.inc
A lld/test/ELF/bp-section-orderer-stress.s
A lld/test/ELF/bp-section-orderer.s
Log Message:
-----------
[ELF] Add BPSectionOrderer options (#120514)
Add new ELF linker options for profile-guided section ordering
optimizations:
- `--irpgo-profile=<file>`: Read IRPGO profile data for use with startup
and compression optimizations
- `--bp-startup-sort={none,function}`: Order sections based on profile
data to improve star tup time
- `--bp-compression-sort={none,function,data,both}`: Order sections
using balanced partitioning to improve compressed size
- `--bp-compression-sort-startup-functions`: Additionally optimize
startup functions for compression
- `--verbose-bp-section-orderer`: Print statistics about balanced
partitioning section ordering
Thanks to the @ellishg, @thevinster, and their team's work.
---------
Co-authored-by: Fangrui Song <i at maskray.me>
Commit: 2c030a11c108b86558e2cad99f8cd1a43cd9b08b
https://github.com/llvm/llvm-project/commit/2c030a11c108b86558e2cad99f8cd1a43cd9b08b
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/utils/gn/secondary/lld/ELF/BUILD.gn
Log Message:
-----------
[gn build] Port 0154dce8d39d
Commit: f1b075df2e8510b6ebed405a857f6941913ddf9c
https://github.com/llvm/llvm-project/commit/f1b075df2e8510b6ebed405a857f6941913ddf9c
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
M flang/include/flang/Runtime/CUDA/allocatable.h
M flang/include/flang/Runtime/CUDA/pointer.h
M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
M flang/runtime/CUDA/allocatable.cpp
M flang/runtime/CUDA/pointer.cpp
M flang/test/Fir/CUDA/cuda-allocate.fir
Log Message:
-----------
[flang][cuda] Pass the pinned variable in allocate calls (#125310)
Commit: edc8c3524793049759af5e3a162b068bb03eb440
https://github.com/llvm/llvm-project/commit/edc8c3524793049759af5e3a162b068bb03eb440
Author: Lee Wei <lee10202013 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
Log Message:
-----------
[ConstraintElimination] Fix comment (#125375)
Remove unused header and fix a comment.
Commit: f17b9dde7a1a752ea31766aad169ea2f51558edb
https://github.com/llvm/llvm-project/commit/f17b9dde7a1a752ea31766aad169ea2f51558edb
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/test/Transforms/CorrelatedValuePropagation/non-null.ll
Log Message:
-----------
[LVI] Handle nonnull attributes at callsite (#125377)
This patch is the followup of
https://github.com/llvm/llvm-project/pull/124908.
Commit: 31db7afacf4dae051fcd0da22e440813663b61f3
https://github.com/llvm/llvm-project/commit/31db7afacf4dae051fcd0da22e440813663b61f3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/utils/TableGen/DAGISelMatcherOpt.cpp
Log Message:
-----------
[TableGen] Split DAGISelMatcherOpt FactorNodes into 2 functions. NFC (#125330)
The loop at the top of FactorNodes creates additional variables to deal
with needing to use a pointer to a unique_ptr instead of a reference.
Encapsulate this to its own function for better scoping.
This also allows us to directly skip this loop when we already know we
have a ScopeMatcher.
Commit: c92f20416e6dbbde9790067b80e75ef1ef5d0fa4
https://github.com/llvm/llvm-project/commit/c92f20416e6dbbde9790067b80e75ef1ef5d0fa4
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M lld/include/lld/Common/BPSectionOrdererBase.inc
Log Message:
-----------
[lld] BPSectionOrderer: stabilize iteration order with MapVector
Commit: 046dd4b28b9c1a75a96cf63465021ffa9fe1a979
https://github.com/llvm/llvm-project/commit/046dd4b28b9c1a75a96cf63465021ffa9fe1a979
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M lld/ELF/BPSectionOrderer.cpp
M lld/MachO/BPSectionOrderer.cpp
M lld/include/lld/Common/BPSectionOrdererBase.inc
Log Message:
-----------
[lld] BPSectionOrderer: stabilize iteration order
Commit: 711fcae67ac4902283c513c5c91fe171595b3916
https://github.com/llvm/llvm-project/commit/711fcae67ac4902283c513c5c91fe171595b3916
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Handle `trunc nuw` in `computeKnownBitsFromICmpCond` (#125414)
This patch extends https://github.com/llvm/llvm-project/pull/82803 to
further infer high bits when `nuw` is set. It will save some and
instructions on induction variables. No real-world benefit is observed
for `trunc nsw`.
Alive2: https://alive2.llvm.org/ce/z/j-YFvt
Commit: 567d28d82293a33205c1d4b36d070cf0cacf6e53
https://github.com/llvm/llvm-project/commit/567d28d82293a33205c1d4b36d070cf0cacf6e53
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-02 (Sun, 02 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
Log Message:
-----------
[ReachingDefAnalysis] Fix LLVM_ENABLE_REVERSE_ITERATION bot after #118097
Commit: fe9a97ca38b4651f4be9bf4518c4f1c50080daf6
https://github.com/llvm/llvm-project/commit/fe9a97ca38b4651f4be9bf4518c4f1c50080daf6
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/include/llvm/CodeGen/RegisterCoalescerPass.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/RegAllocBasic.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/RegisterCoalescer.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/test/CodeGen/AArch64/coalescer-drop-subreg-to-reg-imm-ops.mir
M llvm/test/CodeGen/AMDGPU/blender-coalescer-verifier-error-empty-subrange.mir
M llvm/test/CodeGen/X86/coalesce-dead-lanes.mir
M llvm/test/CodeGen/X86/late-remat-update.mir
Log Message:
-----------
[CodeGen][NewPM] Port RegisterCoalescer to NPM (#124698)
Commit: b693e1cf837a5dca6538c26debd7b25ef8f52db6
https://github.com/llvm/llvm-project/commit/b693e1cf837a5dca6538c26debd7b25ef8f52db6
Author: JaydeepChauhan14 <chauhan.jaydeep.ashwinbhai at intel.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
M llvm/test/CodeGen/X86/llround-conv.ll
M llvm/test/CodeGen/X86/lround-conv-i32.ll
M llvm/test/CodeGen/X86/lround-conv-i64.ll
Log Message:
-----------
[X86][GlobalISel] Enable G_LROUND/G_LLROUND with libcall mapping (#125096)
Commit: 7fb233f549dee0346332562de050ef2ab3654329
https://github.com/llvm/llvm-project/commit/7fb233f549dee0346332562de050ef2ab3654329
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
Log Message:
-----------
[ORC] Fix file comment formatting. NFC.
Commit: a1ff2d18466bc27d3dc9b8bba688454e2a1cf196
https://github.com/llvm/llvm-project/commit/a1ff2d18466bc27d3dc9b8bba688454e2a1cf196
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
Log Message:
-----------
[ORC] Drop 'Info' from MachOCompactUnwindInfoSectionName.
Rename MachOCompactUnwindInfoSectionName to MachOCompactUnwindSectionName.
Background:
There are two related sections used for compact-unwind info processing:
__LD,__compact_unwind -- the input table stored in relocatable object formats,
and __TEXT,__unwind_info -- the compressed table produced by the linker and
consumed by libunwind. To keep the distinction clear we'll use *CompactUnwind*
for names that refer to the __LD,__compact_unwind input tables and *UnwindInfo*
for names that refer to the __TEXT,__unwind_info output tables. Dropping 'Info'
from the variable above clarifies which section it refers to.
Commit: fc897450019bc0585f3592ee3a3d68bad2fdcbbc
https://github.com/llvm/llvm-project/commit/fc897450019bc0585f3592ee3a3d68bad2fdcbbc
Author: Shih-Po Hung <shihpo.hung at sifive.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
Log Message:
-----------
[RISCV][NFC] Clarify getRISCVInstructionCost usage (#121556)
This patch adds a comment to explicitly state that
getRISCVInstructionCost uses vtype associated with widening and
narrowing instructions.
For example, vtype = (SEW):
For vfwcvt.f.f.v, the source is (SEW), the destination is (2 * SEW)
For vfncvt.f.f.w, the source is (2 * SEW), the destination is (SEW).
In these cases, the type passed to `getRISCVInstructionCost` differs
- The source type is used for `vfwcvt.f.f.v`.
- The destination type is used for `vfncvt.f.f.w`.
Commit: c475356603cd33ead378a9db00b7e579c9da366e
https://github.com/llvm/llvm-project/commit/c475356603cd33ead378a9db00b7e579c9da366e
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
Log Message:
-----------
[clang][bytecode][NFC] Only call getSource() when necessary (#125419)
Commit: 951ba3e9fa713b7e906614eeefa1b4cdd9b1e29c
https://github.com/llvm/llvm-project/commit/951ba3e9fa713b7e906614eeefa1b4cdd9b1e29c
Author: Yeaseen <yeaseen.arafat96 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/test/CodeGen/AArch64/aarch64-address-type-promotion-assertion.ll
M llvm/test/CodeGen/AArch64/arm64-2011-03-09-CPSRSpill.ll
M llvm/test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll
M llvm/test/CodeGen/AArch64/arm64-2011-04-21-CPSRBug.ll
M llvm/test/CodeGen/AArch64/arm64-2012-01-11-ComparisonDAGCrash.ll
M llvm/test/CodeGen/AArch64/arm64-2012-07-11-InstrEmitterBug.ll
M llvm/test/CodeGen/AArch64/arm64-2013-01-23-frem-crash.ll
M llvm/test/CodeGen/AArch64/arm64-2013-01-23-sext-crash.ll
M llvm/test/CodeGen/AArch64/arm64-bitfield-extract.ll
M llvm/test/CodeGen/AArch64/arm64-call-tailcalls.ll
M llvm/test/CodeGen/AArch64/arm64-collect-loh.ll
M llvm/test/CodeGen/AArch64/arm64-dead-register-def-bug.ll
M llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
M llvm/test/Transforms/AlignmentFromAssumptions/start-unk.ll
M llvm/test/Transforms/ArgumentPromotion/fp80.ll
M llvm/test/Transforms/ArgumentPromotion/musttail.ll
M llvm/test/Transforms/ArgumentPromotion/variadic.ll
M llvm/test/Transforms/Attributor/nonnull.ll
Log Message:
-----------
[llvm] Remove undef from some `llvm/test/Transforms` tests (#125460)
This PR replaces some instances of `undef` with function argument value
or poison or concrete values in several tests under
`llvm/test/Transforms/` directory.
Commit: f7f3dfce3d33c23c4bea8a7dbb3e1993f1f809bd
https://github.com/llvm/llvm-project/commit/f7f3dfce3d33c23c4bea8a7dbb3e1993f1f809bd
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Program.cpp
Log Message:
-----------
[clang][bytecode] Refactor Program::createGlobalString (#125467)
Remove unnecesary narrow() calls, rename a variable and initialize the
array as a whole instead of each element individually.
Commit: df2de1369571dafb65affc1063ce9f0d261206c7
https://github.com/llvm/llvm-project/commit/df2de1369571dafb65affc1063ce9f0d261206c7
Author: Sam Parker <sam.parker at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISD.def
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
M llvm/test/CodeGen/WebAssembly/int-mac-reduction-loops.ll
Log Message:
-----------
[WebAssembly] Autovec support for dot (#123207)
Enable the use of partial.reduce.add that we can lower to dot or a tree
of (add (extmul_low_u, extmul_high_u)) for the unsigned case. We support
both v8i16 and v16i8 inputs.
Commit: b84f7d17f84030092880857544e13d26a2507c62
https://github.com/llvm/llvm-project/commit/b84f7d17f84030092880857544e13d26a2507c62
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 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:
-----------
Revert "[ELF] Refine isExported/isPreemptible condition"
This reverts commit 994cea3f0a2d0caf4d66321ad5a06ab330144d89.
Try to fix the bolt test failures in pre-merge checks.
Commit: f99e6df1415fa825b8329b381a23cd9c58d6edd4
https://github.com/llvm/llvm-project/commit/f99e6df1415fa825b8329b381a23cd9c58d6edd4
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.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
Log Message:
-----------
[lldb][TypeSystemClang] Pass around enum value as uint64_t (#125244)
The `DWARFASTParserClang` reads enum values as `int64_t`s regardless of
the enumerators signedness. Then we pass it to
`AddEnumerationValueToEnumerationType` and only then do we create an
`APSInt` from it. However, there are other places where we read/pass
around the enum value as unsigned. This patch makes sure we consistently
use the same integer type for the enum value and let `APSInt` take care
of signedness. This shouldn't have any observable effect.
Commit: 5d738b2be051bf800445fb21df6de163af35695f
https://github.com/llvm/llvm-project/commit/5d738b2be051bf800445fb21df6de163af35695f
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/docs/resources/test.rst
Log Message:
-----------
[lldb][Docs] Expand remote testing instructions (#122694)
There's a lot of fiddly bits to get right here, so I've added a more
complete example and explained why you might choose one method over
another.
I thought about adding this to the qemu testing page, as that's what we
(Linaro) use this for mostly, but it applies to any remote system
whether hardware or simulator.
Commit: 9ad4ebd82b604c8baa77af61eee77aad7f018de7
https://github.com/llvm/llvm-project/commit/9ad4ebd82b604c8baa77af61eee77aad7f018de7
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[mlir][OpenMP][NFC] break out priv var init into helper (#125303)
Commit: cc72042a94b80b7b2f8f7c383ad6e157260b817f
https://github.com/llvm/llvm-project/commit/cc72042a94b80b7b2f8f7c383ad6e157260b817f
Author: Jack Frankland <jack.frankland at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 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/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
M mlir/include/mlir/Dialect/Tosa/Utils/QuantUtils.h
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgNamed.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeConv2D.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeDepthwise.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeTransposeConv.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
M mlir/lib/Dialect/Tosa/Utils/QuantUtils.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-named.mlir
M mlir/test/Dialect/Tosa/invalid.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/quant-test.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-conv2d.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-depthwise.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-transpose-conv.mlir
Log Message:
-----------
[mlir][tosa] Make Convolution Zero Points Inputs (#122939)
The TOSA-v1.0 specification moves the "zero point" parameters of the
convolution operators CONV2D, CONV3D, DEPTHWISE_CONV2D, and
TRANSPOSE_CONV2D from attributes to inputs.
Make the zero points of the convolutions in the MLIR TOSA dialect inputs
and update any transformations, materializations and lit tests
appropriately.
Rename the "filter" argument of `tosa.transpose_conv2d` to weight to
align with the TOSA specification.
Remove the quantization_info attribute on the convolution operations.
Co-authored-by: TatWai Chong <tatwai.chong at arm.com>
Commit: 692c9b210728323ac499a402ee6eb901f35856f2
https://github.com/llvm/llvm-project/commit/692c9b210728323ac499a402ee6eb901f35856f2
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/Basic/Attr.td
M clang/lib/AST/DeclBase.cpp
M clang/test/AST/attr-print-emit.cpp
A clang/test/CodeGen/AArch64/sme-attributes-member-function-pointer.cpp
A clang/test/CodeGen/xfail-alloc-align-fn-pointers.cpp
Log Message:
-----------
[clang] Support member function poiners in Decl::getFunctionType() (#125077)
This seems consistent with the documentation, which claims it:
```
/// Looks through the Decl's underlying type to extract a FunctionType
/// when possible. Will return null if the type underlying the Decl does not
/// have a FunctionType.
const FunctionType *getFunctionType(bool BlocksToo = true) const;
```
Note: This patch rewords this doc comment to clarify it includes various
function pointer types.
Without this, attaching attributes (which use `HasFunctionProto`) to
member function pointers errors with:
```
error: '<attr>' only applies to non-K&R-style functions
```
...which does not really make sense, since member functions are not K&C
functions.
With this change the Arm SME TypeAttrs work correctly on member function
pointers.
Note, however, that not all attributes work correctly when applied to
function pointers or member function pointers. For example,
`alloc_align` crashes when applied to a function pointer (on truck):
https://godbolt.org/z/YvMhnhKfx (as it only expects a `FunctionDecl` not
a `ParmVarDecl`). The same crash applies to member function pointers
(for the same reason).
Commit: b6e50ed20931a8887ca6f7df8842a83a6e9751d2
https://github.com/llvm/llvm-project/commit/b6e50ed20931a8887ca6f7df8842a83a6e9751d2
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang/Basic/arm_sme.td
M clang/include/clang/Basic/arm_sve.td
M clang/utils/TableGen/SveEmitter.cpp
Log Message:
-----------
[AArch64] Simplify definitions of SVE/SME intrinsics which set FPMR (#123796)
If an intrinsic has an `fpm_t` parameter, automatically set the flag
`SetsFPMR` and append "_fpm" to the name.
Commit: 6303563b40f9d7896f0d44380f397560143da26b
https://github.com/llvm/llvm-project/commit/6303563b40f9d7896f0d44380f397560143da26b
Author: Momchil Velikov <momchil.velikov at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/AST/MicrosoftMangle.cpp
Log Message:
-----------
Simplify MS mangling of bultin types (NFC) (#125051)
Saves including 4 files, reduces the number of switch cases, less error
prone when adding new types,
at the "cost" of adding a` default:`.
Commit: 50d5d06d383616b88a71512d58b0f5bf365d921b
https://github.com/llvm/llvm-project/commit/50d5d06d383616b88a71512d58b0f5bf365d921b
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LoopVectorize][NFC] Cache the result of getVScaleForTuning (#124732)
We currently call getVScaleForTuning in many places, doing a
lot of work asking the same question with the same answer.
I've refactored the code to cache the value if the max
scalable VF != 0 and pull out the cached value from
LoopVectorizationCostModel.
Commit: 3ab1880f8e954a4dcb39bb262587d55537b9d500
https://github.com/llvm/llvm-project/commit/3ab1880f8e954a4dcb39bb262587d55537b9d500
Author: Tomer Solomon <tomsol2009 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/include/mlir/Conversion/MathToEmitC/MathToEmitC.h
Log Message:
-----------
[MLIR] Remove unnecessary include from MathToEmitC.h to fix build issue (#125466)
This removes the unnecessary inclusion of mlir/Dialect/EmitC/IR/EmitC.h
from MathToEmitC.h, which caused a build failure due to a missing
EmitCEnums.h.inc. The include was not needed, and removing it resolves
the issue without requiring additional dependencies.
Commit: e3fbf19eb4428cac03c0e7301512f11f8947d743
https://github.com/llvm/llvm-project/commit/e3fbf19eb4428cac03c0e7301512f11f8947d743
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP] getSpillCost - fully populate IntrinsicCostAttributes to improve cost analysis. (#124129) (REAPPLIED)
We were only constructing the IntrinsicCostAttributes with the arg type info, and not the args themselves, preventing more detailed cost analysis (constant / uniform args etc.)
Just pass the whole IntrinsicInst to the constructor and let it resolve everything it can.
Noticed while having yet another attempt at #63980
Reapplied cleanup now that #125223 and #124984 have landed.
Commit: 978310f1de712fc9092142f0985a541a537f21ec
https://github.com/llvm/llvm-project/commit/978310f1de712fc9092142f0985a541a537f21ec
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
Log Message:
-----------
[mlir][vector][nfc] Fix typos in "VectorEmulateNarrowType.cpp" (#125415)
Updates `emulatedVectorLoad` that was introduced in #115922.
Specifically, ATM `emulatedVectorLoad` mixes "emulated type" and
"container type". This only became clear after #123526 in which the
concepts of "emulated" and "container" types were introduced.
This is an NFC change and simply updates the variable naming.
Commit: 5c065f01cee5dfca28d703983d0ebefa65128e09
https://github.com/llvm/llvm-project/commit/5c065f01cee5dfca28d703983d0ebefa65128e09
Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h
Log Message:
-----------
[lldb][Windows] Fix build with MSVC compiler broken by (#108072)
This patch fixes LLDB Windows build with MSVC compiler. MSVC deletes
the default constructor due to virtual inheritance rules. Explicitly
define the default constructor in NativeRegisterContextWindows to
ensure constructibility.
Commit: 8f025f2a93ee7249336115cff31ae12367f1d0d5
https://github.com/llvm/llvm-project/commit/8f025f2a93ee7249336115cff31ae12367f1d0d5
Author: Owen Anderson <resistor at mac.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/test/CodeGenCXX/template-param-objects.cpp
Log Message:
-----------
[clang] Do not emit template parameter objects as COMDATs when they have internal linkage. (#125448)
Per the ELF spec, section groups may only contain local symbols if those
symbols are only
referenced from within the section group. [1] In the case of template
parameter objects,
they can be referenced from outside the group when the type of the
object was declared
in an anonymous namespace. In that case, we can't place the object in a
COMDAT. This matches
GCC's linkage behavior on the test input.
[1]:
https://www.sco.com/developers/gabi/latest/ch4.sheader.html#section_groups
Commit: 327d627066e6452b081365b595657d17f2690a3b
https://github.com/llvm/llvm-project/commit/327d627066e6452b081365b595657d17f2690a3b
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
M flang/lib/Optimizer/Transforms/AbstractResult.cpp
M flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp
M mlir/docs/Interfaces.md
M mlir/examples/toy/Ch4/include/toy/Ops.td
M mlir/examples/toy/Ch5/include/toy/Ops.td
M mlir/examples/toy/Ch6/include/toy/Ops.td
M mlir/examples/toy/Ch7/include/toy/Ops.td
M mlir/examples/toy/Ch7/mlir/Dialect.cpp
M mlir/examples/toy/Ch7/mlir/MLIRGen.cpp
M mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
M mlir/include/mlir/Dialect/Func/IR/FuncOps.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVControlFlowOps.td
M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
M mlir/include/mlir/Interfaces/CallInterfaces.h
M mlir/include/mlir/Interfaces/CallInterfaces.td
M mlir/include/mlir/Interfaces/FunctionImplementation.h
M mlir/lib/Dialect/Async/IR/Async.cpp
M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
M mlir/lib/Dialect/Func/IR/FuncOps.cpp
M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
M mlir/lib/Dialect/Shape/IR/Shape.cpp
M mlir/lib/Interfaces/CallInterfaces.cpp
M mlir/lib/Interfaces/FunctionImplementation.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
Log Message:
-----------
[mlir] share argument attributes interface between calls and callables (#123176)
This patch shares core interface methods dealing with argument and
result attributes from CallableOpInterface with the CallOpInterface and
makes them mandatory to gives more consistent guarantees about concrete
operations using these interfaces.
This allows adding argument attributes on call like operations, which is
sometimes required to get proper ABI, like with llvm.call (and llvm.invoke).
The patch adds optional `arg_attrs` and `res_attrs` attributes to operations using
these interfaces that did not have that already.
They can then re-use the common "rich function signature"
printing/parsing helpers if they want (for the LLVM dialect, this is
done in the next patch).
Part of RFC: https://discourse.llvm.org/t/mlir-rfc-adding-argument-and-result-attributes-to-llvm-call/84107
Commit: 6a2ce3432eb4648e954fd4999979d85e770409c5
https://github.com/llvm/llvm-project/commit/6a2ce3432eb4648e954fd4999979d85e770409c5
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/test/Transforms/InstCombine/free-inversion.ll
Log Message:
-----------
[InstCombine] free-inversion.ll - add test coverage for #71390
Commit: f3c4b58f4b0d98c8de29dd235a34e512be71ab3f
https://github.com/llvm/llvm-project/commit/f3c4b58f4b0d98c8de29dd235a34e512be71ab3f
Author: Hans Wennborg <hans at chromium.org>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
R lld/ELF/BPSectionOrderer.cpp
R lld/ELF/BPSectionOrderer.h
M lld/ELF/CMakeLists.txt
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Options.td
M lld/ELF/Writer.cpp
M lld/MachO/BPSectionOrderer.cpp
M lld/include/lld/Common/BPSectionOrdererBase.inc
R lld/test/ELF/bp-section-orderer-stress.s
R lld/test/ELF/bp-section-orderer.s
Log Message:
-----------
Revert "[ELF] Add BPSectionOrderer options (#120514)"
The ELF/bp-section-orderer.s test is failing on some buildbots due to
what seems like non-determinism issues, see comments on the original PR
and #125450
Reverting to green the build.
This reverts commit 0154dce8d39d2688b09f4e073fe601099a399365 and
follow-up commits 046dd4b28b9c1a75a96cf63465021ffa9fe1a979 and
c92f20416e6dbbde9790067b80e75ef1ef5d0fa4.
Commit: 2dc17fd173b4b2266bc76782196c82b7a6046a2a
https://github.com/llvm/llvm-project/commit/2dc17fd173b4b2266bc76782196c82b7a6046a2a
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/HLFIRTools.h
M flang/lib/Optimizer/Builder/HLFIRTools.cpp
M flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp
M flang/test/HLFIR/assign-codegen.fir
M flang/test/HLFIR/maxval-lowering.fir
Log Message:
-----------
[flang] fix isSimplyContiguous and isOptional hlfir::Entity methods (#125215)
Fix isSimplyContiguous:
- It ignored scalars, causing scalar fir.box to not be opened when
possible in `translateToExtendedValue`
Fix isOptional:
It is not reliable when the memory SSA value cannot be linked to a
declare. This is exposed by the `isSimplyContiguous` fix,
This is wrong because declare operation should not always assumed to be
visible (e.g., value may travel through a select, or the optional be
generated by the compiler like genOptionalBox in
lib/Lower/ConvertCall.cpp).
- Turn `isOptional` into a safer `mayBeOptional`
- Update translateToExtendedValue to open scalar fir.box for such values
in a fir.if.
- It turned out some `translateToExtendedValue` usage relied on fir.box
of optional scalars to be left untouched (mainly because they want to
forward those fir.box to the runtime), add an option to allow that.
Commit: cae0d67cbadaecc3ac0123ae68eededb2f9cd0b1
https://github.com/llvm/llvm-project/commit/cae0d67cbadaecc3ac0123ae68eededb2f9cd0b1
Author: David Green <david.green at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/fsh.ll
M llvm/test/CodeGen/AArch64/smul_fix.ll
M llvm/test/CodeGen/AArch64/umul_fix.ll
Log Message:
-----------
[AArch64][SDAG] Detect non-zeroes in truncating buildvectors in fshl lowering (#123597)
A BUILD_VECTOR can implicity shrink the bits of the operands if the
operand types are not legal. For example a v8i16 constant BUILD_VECTOR
might be represented as v8i16 BUILDVECTOR(i32 1, i32 2, ...).
Unfortunately this means that the constants are not accepted by
matchUnaryPredicateImpl, preventing in this case funnel shifts detecting
that all the operands are non-zero. Add a flag to help it match.
Commit: 5fdf16148766e2909d051fd16d730c6e3733c931
https://github.com/llvm/llvm-project/commit/5fdf16148766e2909d051fd16d730c6e3733c931
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/lib/Interfaces/CMakeLists.txt
Log Message:
-----------
[mlir] add missing dependency to libMLIRFunctionInterfaces after #123176 (#125475)
Commit: 76e73ae6af1cecffaf977391e52bb9c410c14ff1
https://github.com/llvm/llvm-project/commit/76e73ae6af1cecffaf977391e52bb9c410c14ff1
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/utils/gn/secondary/lld/ELF/BUILD.gn
Log Message:
-----------
[gn build] Port f3c4b58f4b0d
Commit: 21a8c920fe1f6e9d2ac7e1b3f56b04fcd8bcc94c
https://github.com/llvm/llvm-project/commit/21a8c920fe1f6e9d2ac7e1b3f56b04fcd8bcc94c
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/test/AST/ByteCode/unions.cpp
Log Message:
-----------
[clang][bytecode] Add special handling for union copy assign operators (#125476)
Commit: e82f93890daefeb38fe2a22ee3db87a89948ec57
https://github.com/llvm/llvm-project/commit/e82f93890daefeb38fe2a22ee3db87a89948ec57
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/test/Transforms/LoopInterchange/legality-for-scalar-deps.ll
Log Message:
-----------
[LoopInterchange] Add tests of 'S' deps (NFC) (#125214)
The incorrect handling of scalar dependencies in LoopInterchange was
fixed by #119345. This patch adds tests that are relative to the issues
fixed by #119345.
Commit: 82c6b8f7bbebc32751170267bbb7712f028cf587
https://github.com/llvm/llvm-project/commit/82c6b8f7bbebc32751170267bbb7712f028cf587
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.h
M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/SMEInstrFormats.td
A llvm/test/CodeGen/AArch64/spill-fill-zpr-predicates.mir
M llvm/test/CodeGen/AArch64/ssve-stack-hazard-remarks.ll
M llvm/utils/TableGen/SubtargetEmitter.cpp
Log Message:
-----------
[AArch64][SME] Spill p-regs as z-regs when streaming hazards are possible (#123752)
This patch adds a new option `-aarch64-enable-zpr-predicate-spills`
(which is disabled by default), this option replaces predicate spills
with vector spills in streaming[-compatible] functions.
For example:
```
str p8, [sp, #7, mul vl] // 2-byte Folded Spill
// ...
ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload
```
Becomes:
```
mov z0.b, p8/z, #1
str z0, [sp] // 16-byte Folded Spill
// ...
ldr z0, [sp] // 16-byte Folded Reload
ptrue p4.b
cmpne p8.b, p4/z, z0.b, #0
```
This is done to avoid streaming memory hazards between FPR/vector and
predicate spills, which currently occupy the same stack area even when
the `-aarch64-stack-hazard-size` flag is set.
This is implemented with two new pseudos SPILL_PPR_TO_ZPR_SLOT_PSEUDO
and FILL_PPR_FROM_ZPR_SLOT_PSEUDO. The expansion of these pseudos
handles scavenging the required registers (z0 in the above example) and,
in the worst case spilling a register to an emergency stack slot in the
expansion. The condition flags are also preserved around the `cmpne` in
case they are live at the expansion point.
Commit: d5684b8402d2175e80a2792db58e9a8e960a8544
https://github.com/llvm/llvm-project/commit/d5684b8402d2175e80a2792db58e9a8e960a8544
Author: Devon Loehr <DKLoehr at users.noreply.github.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
A clang/test/SemaCXX/unique_object_duplication.cpp
A clang/test/SemaCXX/unique_object_duplication.h
Log Message:
-----------
Warn when unique objects might be duplicated in shared libraries (#117622)
When a hidden object is built into multiple shared libraries, each
instance of the library will get its own copy. If
the object was supposed to be globally unique (e.g. a global variable or
static data member), this can cause very subtle bugs.
An object might be incorrectly duplicated if it:
- Is defined in a header (so it might appear in multiple TUs), and
- Has external linkage (otherwise it's supposed to be duplicated), and
- Has hidden visibility (or else the dynamic linker will handle it)
The duplication is only a problem semantically if one of the following
is true:
1. The object is mutable (the copies won't be in sync), or
2. Its initialization has side effects (it may now run more than once),
or
3. The value of its address is used (different copies have different
addresses).
To detect this, we add a new -Wunique-object-duplication warning. It
warns on cases (1) and (2) above. To be conservative, we only warn in
case (2) if we are certain the initializer has side effects, and we
don't warn on `new` because the only side effect is some extra memory
usage.
We don't currently warn on case (3) because doing so is prone to false
positives: there are many reasons for taking the address which aren't
inherently problematic (e.g. passing to a function that expects a
pointer). We only run into problems if the code inspects the value of
the address.
The check is currently disabled for windows, which uses its own analogue
of visibility (declimport/declexport). The check is also disabled inside
templates, since it can give false positives if a template is never
instantiated.
### Resolving the warning
The warning can be fixed in several ways:
- If the object in question doesn't need to be mutable, it should be
made const. Note that the variable must be completely immutable, e.g.
we'll warn on `const int* p` because the pointer itself is mutable. To
silence the warning, it should instead be `const int* const p`.
- If the object must be mutable, it (or the enclosing function, in the
case of static local variables) should be made visible using
`__attribute((visibility("default")))`
- If the object is supposed to be duplicated, it should be be given
internal linkage.
### Testing
I've tested the warning by running it on clang itself, as well as on
chromium. Compiling clang resulted in [10 warnings across 6
files](https://github.com/user-attachments/files/17908069/clang-warnings.txt),
while Chromium resulted in [160 warnings across 85
files](https://github.com/user-attachments/files/17908072/chromium-warnings.txt),
mostly in third-party code. Almost all warnings were due to mutable
variables.
I evaluated the warnings by manual inspection. I believe all the
resulting warnings are true positives, i.e. they represent
potentially-problematic code where duplication might cause a problem.
For the clang warnings, I also validated them by either adding `const`
or visibility annotations as appropriate.
### Limitations
I am aware of four main limitations with the current warning:
1. We do not warn when the address of a duplicated object is taken,
since doing so is prone to false positives. I'm hopeful that we can
create a refined version in the future, however.
2. We only warn for side-effectful initialization if we are certain side
effects exist. Warning on potential side effects produced a huge number
of false positives; I don't expect there's much that can be done about
this in modern C++ code bases, since proving a lack of side effects is
difficult.
3. Windows uses a different system (declexport/import) instead of
visibility. From manual testing, it seems to behave analogously to the
visibility system for the purposes of this warning, but to keep things
simple the warning is disabled on windows for now.
4. We don't warn on code inside templates. This is unfortuate, since it
masks many real issues, e.g. a templated variable which is implicitly
instantiated the same way in multiple TUs should be globally unique, but
may accidentally be duplicated. Unfortunately, we found some potential
false positives during testing that caused us to disable the warning for
now.
Commit: d03b5de71c258bd3c835d8a747e91edacea3af0b
https://github.com/llvm/llvm-project/commit/d03b5de71c258bd3c835d8a747e91edacea3af0b
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
Log Message:
-----------
[flang] Fixed Windows build.
`llvm::enumerate(llvm::reverse(ValueRange))` added in #124683 does not work
on Windows: https://lab.llvm.org/buildbot/#/builders/124/builds/322
Commit: cdeeb390a9ea21540fc44ba10dede66fbc0b2fc8
https://github.com/llvm/llvm-project/commit/cdeeb390a9ea21540fc44ba10dede66fbc0b2fc8
Author: Hans Wennborg <hans at chromium.org>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
R clang/test/SemaCXX/unique_object_duplication.cpp
R clang/test/SemaCXX/unique_object_duplication.h
Log Message:
-----------
Revert "Warn when unique objects might be duplicated in shared libraries (#117622)"
There are some buildbot breakages, see the PR. Reverting for now.
This reverts commit d5684b8402d2175e80a2792db58e9a8e960a8544.
Commit: 0c70a26f46e4efd5a29eb281ff99d2cf7f04c6f6
https://github.com/llvm/llvm-project/commit/0c70a26f46e4efd5a29eb281ff99d2cf7f04c6f6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/root-node-reordered-reused.ll
Log Message:
-----------
[SLP]Clear root node reordering only if the root node is not re-used in graph
The reordering of the root node can be safely cleared only if the root
node is not reused, otherwise the graph might be broken
Fixes #125357
Commit: 9216419843bcd2bf5b68053b5311c683073e55e1
https://github.com/llvm/llvm-project/commit/9216419843bcd2bf5b68053b5311c683073e55e1
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/test/CodeGen/X86/cmp-xor.ll
Log Message:
-----------
[X86] Add basic xor+cmp test coverage for #6146
Commit: d906da5ead2764579395e5006c517f2ec9afd46f
https://github.com/llvm/llvm-project/commit/d906da5ead2764579395e5006c517f2ec9afd46f
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/test/lib/Pass/CMakeLists.txt
Log Message:
-----------
[mlir] Fix build race condition in Pass Manager tests
That Linaro has been seeing on our dylib bot:
https://lab.llvm.org/staging/#/builders/171/builds/79
In file included from /home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/mlir/test/lib/Pass/TestPassManager.cpp:10:
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/mlir/test/lib/Pass/../Dialect/Test/TestOps.h:148:10: fatal error: 'TestOps.h.inc' file not found
148 | #include "TestOps.h.inc"
| ^~~~~~~~~~~~~~~
Reported in https://github.com/llvm/llvm-project/issues/124335 and
https://github.com/llvm/llvm-project/issues/124485.
I think this was caused by https://github.com/llvm/llvm-project/pull/123910,
and so I've followed what https://github.com/llvm/llvm-project/pull/125004 did,
which seems to be a follow up to that. Same kind of error.
I was not able to reproduce the failure locally, but dylib and
normal builds are ok with this change so I will push it and monitor
the bot's results for a few days.
Commit: 90e0dd15ff070b5b4b1bb068cdade7f5b5e6ccec
https://github.com/llvm/llvm-project/commit/90e0dd15ff070b5b4b1bb068cdade7f5b5e6ccec
Author: Hans Wennborg <hans at chromium.org>
Date: 2025-02-03 (Mon, 03 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:
-----------
Revert "[Analyzer][CFG] Correctly handle rebuilt default arg and default init expression (#117437)"
This caused assertion failures:
clang/lib/Analysis/CFG.cpp:822:
void (anonymous namespace)::CFGBuilder::appendStmt(CFGBlock *, const Stmt *):
Assertion `!isa<Expr>(S) || cast<Expr>(S)->IgnoreParens() == S' failed.
See comment on the PR.
This reverts commit 44aa618ef67d302f5ab77cc591fb3434fe967a2e.
Commit: cb2598dda1aae5096a77bc8a9f6679ca1b350e5e
https://github.com/llvm/llvm-project/commit/cb2598dda1aae5096a77bc8a9f6679ca1b350e5e
Author: Brad Smith <brad at comstyle.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/runtime/CMakeLists.txt
Log Message:
-----------
[flang][runtime] Make sure to link libexecinfo if it exists (#125344)
Fixes building the backtrace support on FreeBSD/NetBSD/OpenBSD/DragonFly and musl
libc with libexecinfo.
Commit: 99a9133a68b77cb978dd4b0cdbcd67e4edf7bd92
https://github.com/llvm/llvm-project/commit/99a9133a68b77cb978dd4b0cdbcd67e4edf7bd92
Author: erichkeane <ekeane at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang-c/Index.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenACC.h
M clang/include/clang/AST/TextNodeDumper.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/OpenACCKinds.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/StmtOpenACC.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Sema/CMakeLists.txt
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaOpenACC.cpp
A clang/lib/Sema/SemaOpenACCAtomic.cpp
M clang/lib/Sema/SemaOpenACCClause.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/AST/ast-print-openacc-atomic-construct.cpp
M clang/test/ParserOpenACC/parse-constructs.c
A clang/test/SemaOpenACC/atomic-construct-ast.cpp
A clang/test/SemaOpenACC/atomic-construct.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
Log Message:
-----------
[OpenACC] Implement Sema/AST for 'atomic' construct
The atomic construct is a particularly complicated one. The directive
itself is pretty simple, it has 5 options for the 'atomic-clause'.
However, the associated statement is fairly complicated.
'read' accepts:
v = x;
'write' accepts:
x = expr;
'update' (or no clause) accepts:
x++;
x--;
++x;
--x;
x binop= expr;
x = x binop expr;
x = expr binop x;
'capture' accepts either a compound statement, or:
v = x++;
v = x--;
v = ++x;
v = --x;
v = x binop= expr;
v = x = x binop expr;
v = x = expr binop x;
IF 'capture' has a compound statement, it accepts:
{v = x; x binop= expr; }
{x binop= expr; v = x; }
{v = x; x = x binop expr; }
{v = x; x = expr binop x; }
{x = x binop expr ;v = x; }
{x = expr binop x; v = x; }
{v = x; x = expr; }
{v = x; x++; }
{v = x; ++x; }
{x++; v = x; }
{++x; v = x; }
{v = x; x--; }
{v = x; --x; }
{x--; v = x; }
{--x; v = x; }
While these are all quite complicated, there is a significant amount
of similarity between the 'capture' and 'update' lists, so this patch
reuses a lot of the same functions.
This patch implements the entirety of 'atomic', creating a new Sema file
for the sema for it, as it is fairly sizable.
Commit: 557c8bf4ac9bd42c63654203158c32bd56f46dd4
https://github.com/llvm/llvm-project/commit/557c8bf4ac9bd42c63654203158c32bd56f46dd4
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Sema/BUILD.gn
Log Message:
-----------
[gn build] Port 99a9133a68b7
Commit: 0e49c74f3633ef4b8d993a179b580345352c4fc2
https://github.com/llvm/llvm-project/commit/0e49c74f3633ef4b8d993a179b580345352c4fc2
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
Log Message:
-----------
PeepholeOpt: Make copy ID methods static
Commit: fe8b323f598393d5a7cf468865c4f60d39cb0718
https://github.com/llvm/llvm-project/commit/fe8b323f598393d5a7cf468865c4f60d39cb0718
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/lib/Parser/parse-tree.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/openmp-modifiers.cpp
M flang/test/Parser/OpenMP/metadirective.f90
A flang/test/Semantics/OpenMP/metadirective-common.f90
A flang/test/Semantics/OpenMP/metadirective-construct.f90
A flang/test/Semantics/OpenMP/metadirective-device.f90
A flang/test/Semantics/OpenMP/metadirective-implementation.f90
A flang/test/Semantics/OpenMP/metadirective-user.f90
Log Message:
-----------
[flang][OpenMP] Semantic checks for context selectors (#123243)
This implements checks of the validity of context set selectors and
trait selectors, plus the types of trait properties. Clause properties
are also validated, but not name or extension properties.
---------
Co-authored-by: Tom Eccles <tom.eccles at arm.com>
Commit: db43dd7f4fb60641911ffd6364c33e1f83c44b7f
https://github.com/llvm/llvm-project/commit/db43dd7f4fb60641911ffd6364c33e1f83c44b7f
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
Log Message:
-----------
LAA: simplify LoopAccessInfoManager::clear (NFC) (#125488)
DenseMap::erase() doesn't invalidate the iterator.
Commit: 498f108cc859e2dda7720f5bc121952594c97cc3
https://github.com/llvm/llvm-project/commit/498f108cc859e2dda7720f5bc121952594c97cc3
Author: Koakuma <koachan at protonmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/Sparc/SparcInstrAliases.td
M llvm/test/MC/Sparc/sparcv9-synthetic-instructions.s
Log Message:
-----------
[SPARC][IAS] Add `setuw` alias for `set`
Reviewers: s-barannikov, brad0, rorth
Reviewed By: s-barannikov
Pull Request: https://github.com/llvm/llvm-project/pull/125149
Commit: 119e9d5a93d1c49e7895771ae5da8999ee0b4a7a
https://github.com/llvm/llvm-project/commit/119e9d5a93d1c49e7895771ae5da8999ee0b4a7a
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
Log Message:
-----------
[flang][OpenMP] Fix build break after fe8b323f59
Replace structured bindings with references where they are captured in
a lambda.
Commit: 0f11f2077c45de87eea6fd388c9079619f236f0c
https://github.com/llvm/llvm-project/commit/0f11f2077c45de87eea6fd388c9079619f236f0c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/vector-mul.ll
Log Message:
-----------
[X86] Add test coverage for #47422
Commit: b7c8271601461e02fb567d6cd175fe20e123d78a
https://github.com/llvm/llvm-project/commit/b7c8271601461e02fb567d6cd175fe20e123d78a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AMDGPU/add_i1.ll
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/sub_i1.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/add.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/mul.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/sub.ll
M llvm/test/CodeGen/Mips/llvm-ir/add.ll
M llvm/test/CodeGen/Mips/llvm-ir/mul.ll
M llvm/test/CodeGen/Mips/llvm-ir/sub.ll
M llvm/test/CodeGen/NVPTX/boolean-patterns.ll
M llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
M llvm/test/CodeGen/X86/bitcast-vector-bool.ll
M llvm/test/CodeGen/X86/combine-add.ll
M llvm/test/CodeGen/X86/fast-isel-select.ll
M llvm/test/CodeGen/X86/gpr-to-mask.ll
M llvm/test/CodeGen/X86/setcc-combine.ll
M llvm/test/CodeGen/X86/sse-regcall.ll
M llvm/test/CodeGen/X86/sse-regcall4.ll
M llvm/test/CodeGen/X86/subcarry.ll
Log Message:
-----------
[DAG] getNode - convert scalar i1 arithmetic calls to bitwise instructions (#125486)
We already do this for vector vXi1 types - this patch removes the vector constraint to handle it for all bool types.
Commit: 84ba55d18b4e0761d089534139024a7753a55012
https://github.com/llvm/llvm-project/commit/84ba55d18b4e0761d089534139024a7753a55012
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[NFC][SimplifyCFG] Refactor `passingValueIsAlwaysUndefined` to work on `Use` (#125519)
Address comment
https://github.com/llvm/llvm-project/pull/125383#discussion_r1938436526
Commit: 707e2b83a5d7f5d1a363f992197e3afad6369d6e
https://github.com/llvm/llvm-project/commit/707e2b83a5d7f5d1a363f992197e3afad6369d6e
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/test/AST/ByteCode/unions.cpp
Log Message:
-----------
[clang][bytecode] Handle union move assignment operators as well (#125516)
Commit: 3dc1ef1650c8389a6f195a474781cf2281208bed
https://github.com/llvm/llvm-project/commit/3dc1ef1650c8389a6f195a474781cf2281208bed
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[ValueTracking] Add additional tests for computeKnownBits on GEPs (NFC)
These demonstrate miscompiles in the existing code.
Commit: 3a2b552e4445c93e1db6728c4c4f0ae86301fb08
https://github.com/llvm/llvm-project/commit/3a2b552e4445c93e1db6728c4c4f0ae86301fb08
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
A llvm/test/CodeGen/ARM/twoaddress-asserts-liveints-undef-use.mir
Log Message:
-----------
TwoAddressInstruction: Fix assert on undef operand with -early-live-intervals (#125518)
Commit: e4980c68c1eea7bf6a673d277461a5695fcb6ea9
https://github.com/llvm/llvm-project/commit/e4980c68c1eea7bf6a673d277461a5695fcb6ea9
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/fpclass-check-idioms.ll
Log Message:
-----------
[InstCombine] Handle isSubnormalOrZero idiom (#125501)
Alive2: https://alive2.llvm.org/ce/z/9nYE3J
Commit: ab77db03ce28e86a61010e51ea13796ea09efc46
https://github.com/llvm/llvm-project/commit/ab77db03ce28e86a61010e51ea13796ea09efc46
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/include/flang/Lower/Support/Utils.h
M flang/lib/Lower/CMakeLists.txt
M flang/lib/Lower/IterationSpace.cpp
A flang/lib/Lower/Support/Utils.cpp
Log Message:
-----------
[flang][Lower] Move getHashValue and isEqual implementations to Utils… (#125513)
….cpp
This is intended to reduce the memory usage while compiling flang
sources.
There were over 7500 instantiations of function templates defined in the
Utils.h file. Most of them were not referenced anywhere outside, except
for specialized implementations of getHashValue and isEqual in
IterationSpace.cpp. These function were also moved to Utils.cpp.
Commit: 30f3752e54fa7cd595a434a985efbe9a7abe9b65
https://github.com/llvm/llvm-project/commit/30f3752e54fa7cd595a434a985efbe9a7abe9b65
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/mul-simplification.ll
Log Message:
-----------
[VPlan] Only use SCEV for live-ins in tryToWiden. (#125436)
Replacing a recipe with a live-in may not be correct in all cases,
e.g. when replacing recipes involving header-phi recipes, like
reductions.
For now, only use SCEV to simplify live-ins.
More powerful input simplification can be built in top of
https://github.com/llvm/llvm-project/pull/124432 in the future.
Fixes https://github.com/llvm/llvm-project/issues/119173.
Fixes https://github.com/llvm/llvm-project/issues/125374.
PR: https://github.com/llvm/llvm-project/pull/125436
Commit: 22d9726593ef3e1f137a4f88d284747d20ec6cd9
https://github.com/llvm/llvm-project/commit/22d9726593ef3e1f137a4f88d284747d20ec6cd9
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/lib/Lower/ConvertVariable.cpp
A flang/test/Lower/entry-statement-init.f90
Log Message:
-----------
[flang] do not finalize or initialize unused entry dummy (#125482)
Dummy arguments from other entry statement that are not live in the current entry have no backing storage, user code referring to them is not allowed to be reached. The compiler was generating initialization/destruction code for them when INTENT(OUT), causing undefined behaviors.
Commit: 67696a1adcd538050674420cab4385730e002524
https://github.com/llvm/llvm-project/commit/67696a1adcd538050674420cab4385730e002524
Author: Jakub Kuderski <jakub at nod-labs.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/include/llvm/ADT/StringSwitch.h
M llvm/unittests/ADT/StringSwitchTest.cpp
Log Message:
-----------
[ADT] Reduce copies and recursion in StringSwitch (#125362)
Optimize the `.Cases` and `.CasesLower` functions to avoid needlessly
recursing on each case and copying the associated values. We can instead
take `Value` by reference and short-circuit by using the `||` operator.
Note that while the implementation uses variadic templates, we cannot
simplify the public functions in the same way. This is because the
current API forces the arguments to be converted to `StringLiterals` and
places the `Value` parameter at the very end. Even if we did some tricks
like split the parameter pack to separate out the `Value`, I do not see
how we could force conversion to `StringLiteral`.
Commit: c7c7eabc7fc42433ed6a0a93ea14f279ad8d37af
https://github.com/llvm/llvm-project/commit/c7c7eabc7fc42433ed6a0a93ea14f279ad8d37af
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A libcxx/test/benchmarks/algorithms/reverse.bench.cpp
Log Message:
-----------
[libc++] Add a benchmark for std::reverse (#125262)
Commit: 6dfe20dbbd65e2945350ed9a93eb383131c49511
https://github.com/llvm/llvm-project/commit/6dfe20dbbd65e2945350ed9a93eb383131c49511
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Parser/openmp-parsers.cpp
A flang/test/Lower/OpenMP/Todo/metadirective-exec.f90
A flang/test/Lower/OpenMP/Todo/metadirective-spec.f90
M flang/test/Parser/OpenMP/metadirective-v50.f90
M flang/test/Parser/OpenMP/metadirective.f90
Log Message:
-----------
[flang][OpenMP] Parse METADIRECTIVE in specification part (#123397)
Add METADIRECTIVE to the OpenMP declarative constructs as well. Emit a
TODO error for both declarative and executable cases.
Commit: fe694b18dc518b86eae9aab85ff03abc54e1662f
https://github.com/llvm/llvm-project/commit/fe694b18dc518b86eae9aab85ff03abc54e1662f
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A libclc/clc/include/clc/integer/clc_mad_sat.h
M libclc/clc/include/clc/integer/definitions.h
M libclc/clc/lib/clspv/SOURCES
M libclc/clc/lib/generic/SOURCES
A libclc/clc/lib/generic/integer/clc_mad_sat.cl
M libclc/clc/lib/spirv/SOURCES
M libclc/generic/lib/integer/mad_sat.cl
Log Message:
-----------
[libclc] Move mad_sat to CLC; optimize for vector types (#125517)
This commit moves the mad_sat builtin to the CLC library.
It also optimizes it for vector types by avoiding scalarization. To help
do this it transforms the previous control-flow code into vector select
code. This has also been done for the scalar versions for simplicity.
Commit: 9fbd5fbcc60aca3f9b093727e91da73798591c4a
https://github.com/llvm/llvm-project/commit/9fbd5fbcc60aca3f9b093727e91da73798591c4a
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
M llvm/lib/Transforms/Coroutines/SpillUtils.cpp
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.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/MemoryTaggingSupport.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[IR][NFC] Switch to use `LifetimeIntrinsic` (#125528)
Commit: db60244519023a2b083caa3ed3a27a6b59eb03d8
https://github.com/llvm/llvm-project/commit/db60244519023a2b083caa3ed3a27a6b59eb03d8
Author: Artem Belevich <tra at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/AST/ASTContext.cpp
M clang/test/PCH/cuda-kernel-call.cu
Log Message:
-----------
[PCH, CUDA] Take CUDA attributes into account (#125127)
During deserialization of CUDA AST we must consider CUDA target
attributes to distinguish overloads from redeclarations.
Fixes #106394
Commit: bac62ee5b473e70981a6bd9759ec316315fca07d
https://github.com/llvm/llvm-project/commit/bac62ee5b473e70981a6bd9759ec316315fca07d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/CMakeLists.txt
M llvm/lib/CMakeLists.txt
M llvm/unittests/CMakeLists.txt
Log Message:
-----------
[llvm] Add CMake flag to compile out the telemetry framework (#124850)
Add a CMake flag (LLVM_BUILD_TELEMETRY) to disable building the
telemetry framework. The flag being enabled does *not* mean that
telemetry is being collected, it merely means we're building the generic
telemetry framework. Hence the flag is enabled by default.
Motivated by this Discourse thread:
https://discourse.llvm.org/t/how-to-disable-building-llvm-clang-telemetry/84305
Commit: 2f6e3df08a8b7cd29273980e47310cf09c6fdbd8
https://github.com/llvm/llvm-project/commit/2f6e3df08a8b7cd29273980e47310cf09c6fdbd8
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lld/MachO/BPSectionOrderer.cpp
M lld/include/lld/Common/BPSectionOrdererBase.inc
M llvm/lib/Support/BalancedPartitioning.cpp
Log Message:
-----------
BPSectionOrderer: stabilize iteration order and node order
Exposed by the test added in the reverted #120514
* Fix libstdc++/libc++ differences due to nth_element. https://github.com/llvm/llvm-project/pull/125450#issuecomment-2631404178
* Fix LLVM_ENABLE_REVERSE_ITERATION=1 differences
* Fix potential issue in `currentSize += D::getSize(*sections[*sectionIdxs.begin()])` where DenseSet was used, though not covered by a test
Commit: 2b4b4c03899ab10df82528a05520dba3971f39e5
https://github.com/llvm/llvm-project/commit/2b4b4c03899ab10df82528a05520dba3971f39e5
Author: Charitha Saumya <136391709+charithaintc at users.noreply.github.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
Log Message:
-----------
[mlir][XeGPU] Add MemoryEffectsOpInterface for XeGPU memory related ops. (#125314)
`MemoryEffectsOpInterface` is needed for cleaning up the remaining
(dead) operations after XeGPU distribution into SIMT.
Commit: 39879e4f4022d2845de14810532f633e553fa650
https://github.com/llvm/llvm-project/commit/39879e4f4022d2845de14810532f633e553fa650
Author: Brian Foley <bpfoley at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaInit.cpp
A clang/test/CXX/class/class.init/p1.cpp
M clang/test/CXX/dcl.decl/dcl.init/p14-0x.cpp
M clang/test/SemaCUDA/inherited-ctor.cu
Log Message:
-----------
[Sema] Note member decl when initializer list default constructs member (#121854)
Recently I had a scenario where I had:
1. A class C with many members m_1...m_n of the same type T
2. T's default constructor was deleted
3. I accidentally omitted an explicitly constructed member in the
initializer list C() : m_1(foo), m_2(bar), ... { }
Clang told me that T's default constructor was deleted, and told me that
the call to T() was in C() (which it implicitly was), but didn't tell me
which member was being default constructed.
It was difficult to fix this problem because I had no easy way to list
all the members of type T in C and C's superclasses which would have let
me find which member was missing,
clang/test/CXX/class/class.init/p1.cpp is a simplified version of this
problem (a2 is missing from the initializer list of B)
Commit: e8100c399b379cddb757423791a5e4bb933f80be
https://github.com/llvm/llvm-project/commit/e8100c399b379cddb757423791a5e4bb933f80be
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/examples/FeatureList/FeatureList.cpp
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
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Parser/OpenMP/declare-mapper-unparse.f90
A flang/test/Parser/OpenMP/metadirective-dirspec.f90
Log Message:
-----------
[flang][OpenMP] Handle directive arguments in OmpDirectiveSpecifier (#124278)
Implement parsing and symbol resolution for directives that take
arguments. There are a few, and most of them take objects. Special
handling is needed for two that take more specialized arguments: DECLARE
MAPPER and DECLARE REDUCTION.
This only affects directives in METADIRECTIVE's WHEN and OTHERWISE
clauses. Parsing and semantic checks of other cases is unaffected.
Commit: fc3ec135d34cd02ccaf5f7d987f308791fdb6815
https://github.com/llvm/llvm-project/commit/fc3ec135d34cd02ccaf5f7d987f308791fdb6815
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp
Log Message:
-----------
[RISCV][GISel] Remove unused function leftover from a removed SDNodeXForm. NFC
Fixes #125551
Commit: a9e249f64e800fbb20a3b26c0cfb68c1a1aee5e1
https://github.com/llvm/llvm-project/commit/a9e249f64e800fbb20a3b26c0cfb68c1a1aee5e1
Author: Michael Park <mcypark at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/Serialization/ASTReader.cpp
A clang/test/Modules/pr121245.cpp
Log Message:
-----------
[C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of `finishPendingActions`. (#121245)
The call to `hasBody` inside `finishPendingActions` that bumps the `PendingIncompleteDeclChains`
size from `0` to `1`, and also sets the `LazyVal->LastGeneration` to `6` which matches
the `LazyVal->ExternalSource->getGeneration()` value of `6`. Later, the iterations over `redecls()`
(which calls `getNextRedeclaration`) is expected to trigger the reload, but it **does not** since
the generation numbers match.
The proposed solution is to perform the marking of incomplete decl chains at the end of `finishPendingActions`.
This way, **all** of the incomplete decls are marked incomplete as a post-condition of `finishPendingActions`.
It's also safe to delay this operation since any operation being done within `finishPendingActions` has
`NumCurrentElementsDeserializing == 1`, which means that any calls to `CompleteDeclChain` would simply
add to the `PendingIncompleteDeclChains` without doing anything anyway.
Commit: a3321ea5d60f10ee1abe03fa95b08095ced61c76
https://github.com/llvm/llvm-project/commit/a3321ea5d60f10ee1abe03fa95b08095ced61c76
Author: Jacob Lalonde <jalalonde at fb.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/bindings/interface/SBProcessDocstrings.i
Log Message:
-----------
[LLDB][Documentation] Add a doc string to sbprocess to show MemoryRegions is iterable (#125557)
My colleague, @lukejriddle made the SBMemoryRegionList object iterable
in #117358. This isn't documented anywhere and so I added a blurb about
it to SBProcess.
Commit: 16c6c48506d1901b80d8cbcb0df8149f9a4a0ee7
https://github.com/llvm/llvm-project/commit/16c6c48506d1901b80d8cbcb0df8149f9a4a0ee7
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/test/Analysis/ScalarEvolution/exit-count-samesign.ll
A llvm/test/Transforms/IndVarSimplify/iv-zext-samesign-datalayout.ll
Log Message:
-----------
IndVarSimplify: add samesign test from a regression (#125539)
While attempting to teach ScalarEvolution about samesign in another
effort, a complicated testcase with nested loops, and zero-extends of
the induction-variable regresses, but only when the target datalayout is
present. The regression was originally reported on IndVarSimplify, but
an improvement of symbolic BTC was also observed on SCEV. Check in the
test into both IndVarSimplify and SCEV, to ease investigation and
further development.
Commit: a29ed04fe61b9d0d040865c0a762f461f95fbed7
https://github.com/llvm/llvm-project/commit/a29ed04fe61b9d0d040865c0a762f461f95fbed7
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Log Message:
-----------
IndVarSimplify: strip redundant getDataLayout (NFC) (#125546)
DataLayout is already available as a member variable.
Commit: e269c2b5fa592498984cc381914bc65da377b08d
https://github.com/llvm/llvm-project/commit/e269c2b5fa592498984cc381914bc65da377b08d
Author: Zequan Wu <zequanwu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/TestDataFormatterLibcxxDeque.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/span/TestDataFormatterLibcxxSpan.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py
Log Message:
-----------
[lldb] Show value for libcxx and libstdcxx summary and remove pointer value in libcxx container summary (#125294)
This has two changes:
1. Set show value for libcxx and libstdcxx summary provider. This will
print the pointer value for both pointer type and reference type.
2. Remove pointer value printing in libcxx container summary.
Discussion:
https://discourse.llvm.org/t/lldb-hides-raw-pointer-value-for-libcxx-and-libstdcxx-pointer-types-in-summary-string/84226
Commit: c3b7894fb82cabfd36005e9de018625d81ad89e1
https://github.com/llvm/llvm-project/commit/c3b7894fb82cabfd36005e9de018625d81ad89e1
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/fshl.ll
Log Message:
-----------
[X86] Add test case for #124871. NFC
This shows missed opportunity to fold (fshl ld1, ld0, c) -> (ld0[ofs])
if the load chain results are used.
Commit: 788bbd2ef6a291cc1e38c6d35c3924bf2382e75a
https://github.com/llvm/llvm-project/commit/788bbd2ef6a291cc1e38c6d35c3924bf2382e75a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/X86/fshl.ll
Log Message:
-----------
[DAGCombiner] Improve chain handling in fold (fshl ld1, ld0, c) -> (ld0[ofs]) combine. (#124871)
Happened to notice some odd things related to chains in this code.
The code calls hasOneUse on LoadSDNode* which will check users
of the data and the chain. I think this was trying to check that
the data had one use so one of the loads would definitely be
removed by the transform. Load chains don't always have users so
our testing may not have noticed that the chains being used would
block the transform.
The code makes all users of ld1's chain use the new load's chain, but
we don't know that ld1 becomes dead. This can cause incorrect dependencies if
ld1's chain is used and it isn't deleted. I think the better thing to do
is use makeEquivalentMemoryOrdering to make all users of ld0 and ld1
depend on the new load and the original loads. If the olds loads become
dead, their chain will be cleaned up later.
I'm having trouble getting a test for any ordering issue with the current code.
areNonVolatileConsecutiveLoads requires the two loads to have the same
input chain. Given that, I don't know how to use one of the load chain
results without also using the other. If they are both used we don't
do the transform because SDNode::hasOneUse will return false for both.
Commit: 070c3386618f1edffefe6519dc2741bba7938ae9
https://github.com/llvm/llvm-project/commit/070c3386618f1edffefe6519dc2741bba7938ae9
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang/Basic/OpenACCKinds.h
Log Message:
-----------
Fix "not all control paths return a value" warning; NFC
Commit: dfc28736d445196ae97c323c086936e07a7c5b49
https://github.com/llvm/llvm-project/commit/dfc28736d445196ae97c323c086936e07a7c5b49
Author: Devon Loehr <DKLoehr at users.noreply.github.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
A clang/test/SemaCXX/unique_object_duplication.cpp
A clang/test/SemaCXX/unique_object_duplication.h
Log Message:
-----------
Warn when unique objects might be duplicated in shared libraries (#125526)
This is attempt 2 to merge this, the first one is #117622. This properly
disables the tests when building for playstation, since the warning is
disabled there.
When a hidden object is built into multiple shared libraries, each
instance of the library will get its own copy. If
the object was supposed to be globally unique (e.g. a global variable or
static data member), this can cause very subtle bugs.
An object might be incorrectly duplicated if it:
Is defined in a header (so it might appear in multiple TUs), and
Has external linkage (otherwise it's supposed to be duplicated), and
Has hidden visibility (or else the dynamic linker will handle it)
The duplication is only a problem semantically if one of the following
is true:
The object is mutable (the copies won't be in sync), or
Its initialization has side effects (it may now run more than once), or
The value of its address is used (different copies have different
addresses).
To detect this, we add a new -Wunique-object-duplication warning. It
warns on cases (1) and (2) above. To be conservative, we only warn in
case (2) if we are certain the initializer has side effects, and we
don't warn on new because the only side effect is some extra memory
usage.
We don't currently warn on case (3) because doing so is prone to false
positives: there are many reasons for taking the address which aren't
inherently problematic (e.g. passing to a function that expects a
pointer). We only run into problems if the code inspects the value of
the address.
The check is currently disabled for windows, which uses its own analogue
of visibility (declimport/declexport). The check is also disabled inside
templates, since it can give false positives if a template is never
instantiated.
Resolving the warning
The warning can be fixed in several ways:
If the object in question doesn't need to be mutable, it should be made
const. Note that the variable must be completely immutable, e.g. we'll
warn on const int* p because the pointer itself is mutable. To silence
the warning, it should instead be const int* const p.
If the object must be mutable, it (or the enclosing function, in the
case of static local variables) should be made visible using
__attribute((visibility("default")))
If the object is supposed to be duplicated, it should be be given
internal linkage.
Testing
I've tested the warning by running it on clang itself, as well as on
chromium. Compiling clang resulted in [10 warnings across 6
files](https://github.com/user-attachments/files/17908069/clang-warnings.txt),
while Chromium resulted in [160 warnings across 85
files](https://github.com/user-attachments/files/17908072/chromium-warnings.txt),
mostly in third-party code. Almost all warnings were due to mutable
variables.
I evaluated the warnings by manual inspection. I believe all the
resulting warnings are true positives, i.e. they represent
potentially-problematic code where duplication might cause a problem.
For the clang warnings, I also validated them by either adding const or
visibility annotations as appropriate.
Limitations
I am aware of four main limitations with the current warning:
We do not warn when the address of a duplicated object is taken, since
doing so is prone to false positives. I'm hopeful that we can create a
refined version in the future, however.
We only warn for side-effectful initialization if we are certain side
effects exist. Warning on potential side effects produced a huge number
of false positives; I don't expect there's much that can be done about
this in modern C++ code bases, since proving a lack of side effects is
difficult.
Windows uses a different system (declexport/import) instead of
visibility. From manual testing, it seems to behave analogously to the
visibility system for the purposes of this warning, but to keep things
simple the warning is disabled on windows for now.
We don't warn on code inside templates. This is unfortuate, since it
masks many real issues, e.g. a templated variable which is implicitly
instantiated the same way in multiple TUs should be globally unique, but
may accidentally be duplicated. Unfortunately, we found some potential
false positives during testing that caused us to disable the warning for
now.
Commit: cd4e36027f49d50119c60a039a938005f0f5d2b3
https://github.com/llvm/llvm-project/commit/cd4e36027f49d50119c60a039a938005f0f5d2b3
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/CodeGen/ItaniumCXXABI.cpp
Log Message:
-----------
[CodeGen] Migrate away from PointerUnion::dyn_cast (NFC) (#125456)
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: 90dd964328ea9d1e22a5fa1bc9cf737efdfa7feb
https://github.com/llvm/llvm-project/commit/90dd964328ea9d1e22a5fa1bc9cf737efdfa7feb
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/lib/Sema/SemaDeclObjC.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#125457)
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 typeDecl to be nonnull. Note that
getObjCInterfaceType starts out dereferencing Decl.
Commit: 8686e677fffabab4c104e16559aaa9c7b0a6b679
https://github.com/llvm/llvm-project/commit/8686e677fffabab4c104e16559aaa9c7b0a6b679
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lld/MachO/Relocations.cpp
Log Message:
-----------
[lld] Migrate away from PointerUnion::dyn_cast (NFC) (#125458)
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 referent to be nonnull.
Commit: 546d03cf8bde18e7713ec3f0c5bf307129ecf692
https://github.com/llvm/llvm-project/commit/546d03cf8bde18e7713ec3f0c5bf307129ecf692
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
Log Message:
-----------
[Hexagon] Avoid repeated hash lookups (NFC) (#125459)
Commit: 36fb886f5a0c0af40095696ea7589309d3dd30d5
https://github.com/llvm/llvm-project/commit/36fb886f5a0c0af40095696ea7589309d3dd30d5
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
Log Message:
-----------
[Analysis] Avoid repeated hash lookups (NFC) (#125462)
Commit: 22bc029e2be51951e2be749bf89a1087beb265b1
https://github.com/llvm/llvm-project/commit/22bc029e2be51951e2be749bf89a1087beb265b1
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/LiveIntervals.h
Log Message:
-----------
[CodeGen] Avoid repeated hash lookups (NFC) (#125463)
Commit: 09d945d6e4e5e845fa84d30572fac9e816faccc1
https://github.com/llvm/llvm-project/commit/09d945d6e4e5e845fa84d30572fac9e816faccc1
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
Log Message:
-----------
[ProfileData] Avoid repeated hash lookups (NFC) (#125464)
Commit: d194c6b9a7fdda7a61abcd6bfe39ab465bf0cc87
https://github.com/llvm/llvm-project/commit/d194c6b9a7fdda7a61abcd6bfe39ab465bf0cc87
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M .github/workflows/release-tasks.yml
Log Message:
-----------
workflows/release-tasks: Re-use release-binaries-all workflow (#125378)
This way we don't need to duplicate the list of supported targets in the
release-tasks workflow.
Commit: d156b8583cb674983c2244cdb79447770383ef8d
https://github.com/llvm/llvm-project/commit/d156b8583cb674983c2244cdb79447770383ef8d
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/test/CodeGen/RISCV/ipra.ll
Log Message:
-----------
[RISCV] Precommit test for #124932
Signed-off-by: Mikhail R. Gadelha <mikhail at igalia.com>
Commit: 2deba08e09b9412c9f4e5888237e28173dee085b
https://github.com/llvm/llvm-project/commit/2deba08e09b9412c9f4e5888237e28173dee085b
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
workflows/premerge: Cancel in progress jobs when a PR is merged (#125329)
Commit: a9b3e1182d5786cdc61a0dc2ae1607a97df3e668
https://github.com/llvm/llvm-project/commit/a9b3e1182d5786cdc61a0dc2ae1607a97df3e668
Author: David Green <david.green at arm.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
R llvm/test/Analysis/CostModel/AArch64/arith-fp-sve.ll
R llvm/test/Analysis/CostModel/AArch64/getIntrinsicInstrCost-vector-reverse.ll
A llvm/test/Analysis/CostModel/AArch64/sve-arith-fp.ll
A llvm/test/Analysis/CostModel/AArch64/vector-reverse.ll
Log Message:
-----------
[AArch64] Move arith-fp-sve.ll to sve-arith-fp.ll. NFC
Commit: 89001d1de8ecf03c8820594ea03345b99560272a
https://github.com/llvm/llvm-project/commit/89001d1de8ecf03c8820594ea03345b99560272a
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M .github/workflows/build-ci-container.yml
Log Message:
-----------
workflows/build-ci-container: Add an arm64 container (#120828)
This also changes the container version numbers in the tag from unix
timestamps to the abbreviated commit hash for the workflow. This ensures
that the amd64 and arm64 containers have the same tag.
For amd64 we now generate 4 tags:
* ghcr.io/llvm/ci-ubuntu-22.04:latest
* ghcr.io/llvm/ci-ubuntu-22.04:$GITHUB_SHA
* ghcr.io/llvm/amd64/ci-ubuntu-22.04:latest
* ghcr.io/llvm/amd64/ci-ubuntu-22.04:$GITHUB_SHA
For arm64 we generate 2 tags:
* ghcr.io/tstellar/arm64v8/ci-ubuntu-22.04:latest
* ghcr.io/tstellar/arm64v8/ci-ubuntu-22.04:$GITHUB_SHA
Commit: 622ee03e262469aecbad9d7f2b4b968576e005f0
https://github.com/llvm/llvm-project/commit/622ee03e262469aecbad9d7f2b4b968576e005f0
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang/CIR/LowerToLLVM.h
A clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
A clang/test/CIR/Lowering/global-var-simple.cpp
M clang/test/CIR/Lowering/hello.c
Log Message:
-----------
[CIR] Initial implementation of CIR-to-LLVM IR lowering pass (#125260)
This change introduces lowering from CIR to LLVM IR of global integer
and floating-point variables, using defaults for attributes that aren't yet
implemented.
Commit: 90a51a443a2fc900e514279fa6ea8882c48b10fa
https://github.com/llvm/llvm-project/commit/90a51a443a2fc900e514279fa6ea8882c48b10fa
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadList.h
M lldb/source/Plugins/Process/Utility/ThreadMemory.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Target/ThreadList.cpp
Log Message:
-----------
[lldb] Implement bidirectional access for backing<->backed thread relationship (#125300)
This enables finding the backed thread from the backing thread without
going through the thread list, and it will be useful for subsequent
commits.
Commit: 7c5100d36d8027dd205d6ec410a63c3930a1d9c1
https://github.com/llvm/llvm-project/commit/7c5100d36d8027dd205d6ec410a63c3930a1d9c1
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/pr125306.ll
Log Message:
-----------
[RISCV] Check isFixedLengthVector before calling getVectorNumElements in getSingleShuffleSrc. (#125455)
I have been unsuccessful at further reducing the test. The
failure requires a shuffle with 2 scalable->fixed extracts with
the same source. 0 is the only valid index for a scalable->fixed
extract so the 2 sources must be the same extract. Shuffles with
the same source are aggressively canonicalized to a unary shuffle.
So it requires the extracts to become identical through other
optimizations without the shuffle being canonicalized before it is
lowered.
Fixes #125306.
Commit: ee92122b53c7af26bb766e89e1d30ceb2fd5bb93
https://github.com/llvm/llvm-project/commit/ee92122b53c7af26bb766e89e1d30ceb2fd5bb93
Author: Reid Kleckner <rnk at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Headers/prfchwintrin.h
M clang/lib/Headers/xmmintrin.h
Log Message:
-----------
[Win/X86] Make _m_prefetch[w] builtins to avoid winnt.h conflicts (#115099)
This is similar in spirit to previous changes to make _mm_mfence
builtins to avoid conflicts with winnt.h and other MSVC ecosystem
headers that pre-declare compiler intrinsics as extern "C" symbols.
Also update the feature flag for _mm_prefetch to sse, which is more accurate than mmx.
This should fix issue #87515.
Commit: 5dccfd9283cd784758aa3d16fcb6e31f135c080f
https://github.com/llvm/llvm-project/commit/5dccfd9283cd784758aa3d16fcb6e31f135c080f
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
Log Message:
-----------
[clang] Unbreak build
>From #115099
Commit: 36d6b63f85a0d2cb149fa060cf308be3b5ea9f14
https://github.com/llvm/llvm-project/commit/36d6b63f85a0d2cb149fa060cf308be3b5ea9f14
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M libc/utils/gpu/server/CMakeLists.txt
Log Message:
-----------
[libc][NFC] Silence C99 extension warnings on clang for RPC
Summary:
This only shows up during the build of the server, silence it.
Commit: a284a6ed17e90dfff4776e0c40a980831098cd6f
https://github.com/llvm/llvm-project/commit/a284a6ed17e90dfff4776e0c40a980831098cd6f
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/src/PluginManager.cpp
Log Message:
-----------
[OpenMP] Guard OpenMP specific entry handling
Commit: f8fa93193b664c33c9227073b2bd123842e05ffc
https://github.com/llvm/llvm-project/commit/f8fa93193b664c33c9227073b2bd123842e05ffc
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Add VPBuilder::insert, use to insert created vector pointer (NFC).
Split off from https://github.com/llvm/llvm-project/pull/124432 as
suggested. Adds VPBuilder::insert, inspired by IRBuilderBase.
Commit: c26bb4f095120ff4741b6530b6b3c0ac5a7dacad
https://github.com/llvm/llvm-project/commit/c26bb4f095120ff4741b6530b6b3c0ac5a7dacad
Author: Ben Jackson <puremourning at users.noreply.github.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/source/Breakpoint/WatchpointList.cpp
M lldb/test/API/commands/watchpoints/watchpoint_events/TestWatchpointEvents.py
Log Message:
-----------
[lldb] correct event when removing all watchpoints (#125312)
LLDB: correct event when removing all watchpoints
Previously we incorrectly checked for a "breakpoint changed" event
listener removing all watchpoints (e.g. via
SBTarget::DeleteAllWatchpoints()), although we would emit a "watchpoint
changed" event if there were a listener for 'breakpoint changed'.
This meant that we might not emit a "watchpoint changed" event if there
was a listener for this event.
Correct it to check for the "watchpoint changed" event.
---
Updated regression tests which were also incorrectly peeking for the
wrong event type. The 'remove' action actually triggers 2 events which
the test didn't allow, so I updated it to allow specifically what was
requested.
The test fails (expectedly) at the line following "DeleteAllWatchpoints"
prior to this patch, and passes after.
Commit: 1abe7e8debc44d9a7e460c2be0b85b7cf137585b
https://github.com/llvm/llvm-project/commit/1abe7e8debc44d9a7e460c2be0b85b7cf137585b
Author: Ikhlas Ajbar <iajbar at quicinc.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
[Hexagon][Docs] document the change in the default target (#125584)
Commit: 79e804b478aafdb9f543c66c1cc9cca6908d6b8f
https://github.com/llvm/llvm-project/commit/79e804b478aafdb9f543c66c1cc9cca6908d6b8f
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/source/Breakpoint/BreakpointSite.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
A lldb/unittests/OperatingSystem/CMakeLists.txt
A lldb/unittests/OperatingSystem/OperatingSystemPlugin.h
A lldb/unittests/OperatingSystem/TestThreadSpecificBreakpoints.cpp
Log Message:
-----------
[lldb] Improve isolation between Process plugins and OS plugins (#125302)
Generally speaking, process plugins (e.g. ProcessGDBRemote) should not
be aware of OS plugin threads. However, ProcessGDBRemote attempts to
check for the existence of OS threads when calculating stop info. When
OS threads are present, it sets the stop info directly on the OS plugin
thread and leaves the ThreadGDBRemote without a StopInfo.
This is problematic for a few reasons:
1. No other process plugins do this, as they shouldn't. They should set
the stop info for their own process threads, and let the abstractions
built on top propagate StopInfos.
2. This conflicts with the expectations of ThreadMemory, which checks
for the backing threads's info, and then attempts to propagate it (in
the future, it should probably ask the plugin itself too...). We see
this happening in the code below. The `if` condition will not trigger,
because `backing_stop_info_sp` will be null (remember, ProcessGDB remote
is ignoring its own threads), and then this method returns false.
```
bool ThreadMemory::CalculateStopInfo() {
...
lldb::StopInfoSP backing_stop_info_sp(
m_backing_thread_sp->GetPrivateStopInfo());
if (backing_stop_info_sp &&
backing_stop_info_sp->IsValidForOperatingSystemThread(*this)) {
backing_stop_info_sp->SetThread(shared_from_this());
```
```
Thread::GetPrivateStopInfo
...
if (!CalculateStopInfo())
SetStopInfo(StopInfoSP());
```
To solve this, we change ProcessGDB remote so that it does the
principled thing: it now only sets the stop info of its own threads.
This change by itself breaks the tests TestPythonOSPlugin.py and
TestOSPluginStepping.py and probably explains why ProcessGDB had
originally "violated" this isolation of layers.
To make this work, BreakpointSites must be aware of BackingThreads when
answering the question: "Is this breakpoint valid for this thread?".
Why? Breakpoints are created on top of the OS threads (that's what the
user sees), but breakpoints are hit by process threads. In the presence
of OS threads, a TID-specific breakpoint is valid for a process thread
if it is backing an OS thread with that TID.
Commit: 7e1437ba4abd40a0d1955f59d09719537a05f9e0
https://github.com/llvm/llvm-project/commit/7e1437ba4abd40a0d1955f59d09719537a05f9e0
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M flang/lib/Semantics/assignment.cpp
A flang/test/Semantics/cuf18.cuf
Log Message:
-----------
[flang][cuda] Detect illegal data transfer in semantic (#125591)
When the LHS is a device variable and the RHS has implicit transfer,
this is considered as an illegal transfer according to
https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#implicit-data-transfer-in-expressions.
Detect this is semantic .
Commit: 13ded6829bf7ca793795c50d47dd2b95482e5cfa
https://github.com/llvm/llvm-project/commit/13ded6829bf7ca793795c50d47dd2b95482e5cfa
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/CMakeLists.txt
Log Message:
-----------
[CMake] Fix typo in docstring: telemtry -> telemetry (NFC)
Thanks Nikita for spotting it.
Commit: ea9e174b9593ade60537cc4b3f463da6684d3974
https://github.com/llvm/llvm-project/commit/ea9e174b9593ade60537cc4b3f463da6684d3974
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/bitreverse.ll
Log Message:
-----------
[msan][NFCI] Add test for llvm.bitreverse (#125592)
The heuristic handler for llvm.reverse is incorrect because it doesn't
reverse the shadow.
Forked from llvm/test/CodeGen/X86/bitreverse.ll
Commit: 8e6fa15bc3e8a41553ffdc7fbd3d00285a250962
https://github.com/llvm/llvm-project/commit/8e6fa15bc3e8a41553ffdc7fbd3d00285a250962
Author: Adrian Vogelsgesang <avogelsgesang at salesforce.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
M lldb/test/API/tools/lldb-dap/breakpoint/Makefile
A lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_breakpointLocations.py
M lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py
M lldb/tools/lldb-dap/DAP.h
M lldb/tools/lldb-dap/lldb-dap.cpp
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb-dap] Support column breakpoints (#125347)
This commit adds support for column breakpoints to lldb-dap
To do so, support for the `breakpointLocations` request was
added. To find all available breakpoint positions, we iterate over
the line table.
The `setBreakpoints` request already forwarded the column correctly to
`SBTarget::BreakpointCreateByLocation`. However, `SourceBreakpointMap`
did not keep track of multiple breakpoints in the same line. To do so,
the `SourceBreakpointMap` is now indexed by line+column instead of by
line only.
This was previously submitted as #113787, but got reverted due to
failures on ARM and macOS. This second attempt has less strict test
case expectations. Also, I added a release note.
Commit: f8287f6c373fcf993643dd6f0e30dde304c1be73
https://github.com/llvm/llvm-project/commit/f8287f6c373fcf993643dd6f0e30dde304c1be73
Author: Zentrik <llvm.zentrik at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
Log Message:
-----------
Fix build if ITTAPI_SOURCE_DIR is specified (#106924)
de92615d68f allows specifying the source directory of ittapi. This
change allows configuring the source directory of ittapi here as well.
Commit: 2a84e1e65ad7f84c2dbcf37241a7d1805a523e0d
https://github.com/llvm/llvm-project/commit/2a84e1e65ad7f84c2dbcf37241a7d1805a523e0d
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/vector-reduce-fadd.ll
A llvm/test/Instrumentation/MemorySanitizer/vector-reduce-fmul.ll
Log Message:
-----------
[msan][NFCI] Add tests for vector reduce fadd/fmul (#125597)
Currently handled incorrectly by visitInstruction:
- llvm.vector.reduce.fadd
- llvm.vector.reduce.fmul
Forked from llvm/test/CodeGen/X86/vector-reduce-f{add,mul}.ll
Commit: 93fcef3048b453161d462ed7defd480fb448c228
https://github.com/llvm/llvm-project/commit/93fcef3048b453161d462ed7defd480fb448c228
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
M mlir/lib/Dialect/SparseTensor/Pipelines/SparseTensorPipelines.cpp
M mlir/test/Integration/Dialect/Vector/CPU/shuffle16x16.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-to-loops.mlir
M mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVVectorUnrolling.cpp
M mlir/test/lib/Dialect/LLVM/TestLowerToLLVM.cpp
Log Message:
-----------
[mlir][Vector] Add UB conversions to different tests and pipelines (#125145)
This PR adds the UB to LLVM/SPIR-V conversion pass to some pipelines and
tests. This is in preparation to introducing the generation of
`ub.poison` in Vector dialect transformations (first one in https://github.com/llvm/llvm-project/pull/125613).
It should effectively be NFC at this point.
Commit: f10979f607fca84c4048bffc57022384baf985c2
https://github.com/llvm/llvm-project/commit/f10979f607fca84c4048bffc57022384baf985c2
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/bitreverse.ll
Log Message:
-----------
[msan] Handle llvm.bitreverse by applying intrinsic to shadow (#125606)
llvm.bitreverse was incorrectly handled by the heuristic handler,
because it did not reverse the bits of the shadow.
This updates the instrumentation to use the handler from
https://github.com/llvm/llvm-project/pull/114490 and updates the test
from https://github.com/llvm/llvm-project/pull/125592
Commit: c5f99e1bd406540d6b763adf485662e88ba32d2c
https://github.com/llvm/llvm-project/commit/c5f99e1bd406540d6b763adf485662e88ba32d2c
Author: vporpo <vporpodas at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
A llvm/test/Transforms/SandboxVectorizer/special_opcodes.ll
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
Log Message:
-----------
[SandboxVec][Legality] Fix legality of SelectInst (#125005)
SelectInsts need special treatment because they are not always
straightforward to vectorize. This patch disables vectorization unless
they are trivially vectorizable.
Commit: 9fddaf6b14102963f12dbb9730f101fc52e662c1
https://github.com/llvm/llvm-project/commit/9fddaf6b14102963f12dbb9730f101fc52e662c1
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Pipelines/CMakeLists.txt
Log Message:
-----------
[mlir] Fix build after 93fcef3048b453161d462ed7defd480fb448c228
Commit: d810c741ad7a5f5bee8fe833b9ee4023446dd39c
https://github.com/llvm/llvm-project/commit/d810c741ad7a5f5bee8fe833b9ee4023446dd39c
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M mlir/test/lib/Dialect/LLVM/CMakeLists.txt
Log Message:
-----------
[mlir] More fixes for 9fddaf6b14102963f12dbb9730f101fc52e662c1
Commit: 635ab515d5ef2469a525952999dce3236d25b2b5
https://github.com/llvm/llvm-project/commit/635ab515d5ef2469a525952999dce3236d25b2b5
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
A llvm/test/Transforms/VectorCombine/RISCV/vector-interleave2-splat-e64.ll
A llvm/test/Transforms/VectorCombine/RISCV/vector-interleave2-splat.ll
Log Message:
-----------
[VectorCombine] Fold vector.interleave2 with two constant splats (#125144)
If we're interleaving 2 constant splats, for instance `<vscale x 8 x
i32> <splat of 666>` and `<vscale x 8 x i32> <splat of 777>`, we can
create a larger splat `<vscale x 8 x i64> <splat of ((777 << 32) |
666)>` first before casting it back into `<vscale x 16 x i32>`.
Commit: ce7bca76917e6b72615f0f7f90a6e35e681b0d16
https://github.com/llvm/llvm-project/commit/ce7bca76917e6b72615f0f7f90a6e35e681b0d16
Author: Jacob Lalonde <jalalonde at fb.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M lldb/source/Target/Process.cpp
M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
Log Message:
-----------
[LLDB][Save Core Options] Custom ranges should follow the same safety checks as everyone else (#125323)
I encountered a `qMemoryRegionInfo not supported` error when capturing a
Minidump. This was surprising, and I started looking around I found
@jasonmolenda's fix in #115963 and then realized I was not validated
anything from the custom ranges.
Commit: fbe470c1b215e3f953a41db6b91d20ce0bcf5c4e
https://github.com/llvm/llvm-project/commit/fbe470c1b215e3f953a41db6b91d20ce0bcf5c4e
Author: Brad Smith <brad at comstyle.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M third-party/benchmark/src/sysinfo.cc
Log Message:
-----------
[benchmark] Get number of CPUs with sysconf() on Linux (#125603)
(cherry picked from commit c24774dc4f4402c3ad150363321cc972ed2669e7)
Commit: 749372ba242354d783b20937d22868f4e6e83955
https://github.com/llvm/llvm-project/commit/749372ba242354d783b20937d22868f4e6e83955
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/utils/TableGen/Common/CodeGenTarget.cpp
Log Message:
-----------
[NFC][TableGen] Code cleanup in CodeGenTarget.cpp (#125569)
- Use StringRef::str() instead of std::string(StringRef).
- Use const pointers for `Candidates` in getSuperRegForSubReg().
- Make `AsmParserCat` and `AsmWriterCat` static.
- Use enumerate() in `ComputeInstrsByEnum` to assign inst enums.
- Use range-based for loops.
Commit: 077e0c134a31cc16c432ce685458b1de80bfbf84
https://github.com/llvm/llvm-project/commit/077e0c134a31cc16c432ce685458b1de80bfbf84
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
A llvm/test/CodeGen/AMDGPU/truncate-lshr-cast-build-vector-combine.ll
Log Message:
-----------
AMDGPU: Generalize truncate of shift of cast build_vector combine (#125617)
Previously we only handled cases that looked like the high element
extract of a 64-bit shift. Generalize this to handle any multiple
indexing. I was hoping this would help avoid some regressions,
but it did not. It does however reduce the number of steps the DAG
takes to process these cases.
NFC-ish, I have yet to find an example where this changes the
final output.
Commit: e649b382229973b212a96d8a24bd49eb002f2c0c
https://github.com/llvm/llvm-project/commit/e649b382229973b212a96d8a24bd49eb002f2c0c
Author: Luke Lau <luke at igalia.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vreductions-fp-vp.ll
Log Message:
-----------
[RISCV] Add tests for widening FP VP reductions. NFC
We're missing patterns for matching vfwred{u,o}sum.vs, both with VP
and non-VP fpexts.
Commit: b46211bbf683b30b88e41a684633fc63436e5edf
https://github.com/llvm/llvm-project/commit/b46211bbf683b30b88e41a684633fc63436e5edf
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
A llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
Log Message:
-----------
[ORC] Add minimal-throw-catch.ll regression test for lli -jit-mode=orc.
We already had a -jit-mode=orc-lazy regression test for this, but it should
work equally well in non-lazy mode.
Commit: 1ec794dec7306578ac80e678fa6d0b0d14866b9e
https://github.com/llvm/llvm-project/commit/1ec794dec7306578ac80e678fa6d0b0d14866b9e
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
Log Message:
-----------
[AMDGPU] Avoid repeated hash lookups (NFC) (#125632)
Commit: c0f7ebe715dbe706224389a3022e6a3880fef0a1
https://github.com/llvm/llvm-project/commit/c0f7ebe715dbe706224389a3022e6a3880fef0a1
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
Log Message:
-----------
[ORC] Actually use -jit-kind=orc for the new minimal-throw-catch.ll test.
b46211bbf68, which introduced a new copy of the minimal-throw-catch.ll test,
failed to update the run line.
Commit: 6f32d5e3af41e2753cc22373c4d6030770a8f994
https://github.com/llvm/llvm-project/commit/6f32d5e3af41e2753cc22373c4d6030770a8f994
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-03 (Mon, 03 Feb 2025)
Changed paths:
M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
Log Message:
-----------
[DWARF] Avoid repeated hash lookups (NFC) (#125633)
Commit: b9fa35fc076131c3fff73d146782a6f07650fddf
https://github.com/llvm/llvm-project/commit/b9fa35fc076131c3fff73d146782a6f07650fddf
Author: Mel Chen <mel.chen at sifive.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-call-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-cast-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics-reduction.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-select-intrinsics.ll
Log Message:
-----------
[LV][EVL] Pre-commit test cases for preventing to transform plans with scalar VF. NFC (#125499)
Pre-commit for #125497.
Commit: b95a6c750c9e45237071328a9d7fec64a33cb56b
https://github.com/llvm/llvm-project/commit/b95a6c750c9e45237071328a9d7fec64a33cb56b
Author: Fabian Ritter <fabian.ritter at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/test/CodeGen/AMDGPU/lower-mem-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/memmove-var-size.ll
Log Message:
-----------
[AMDGPU] Remove special cases in TTI::getMemcpyLoop(Residual)LoweringType (#125507)
These special cases limit the width of memory operations we use for
lowering memcpy/memmove when the pointer arguments are 2-aligned or in
the LDS/GDS.
I found that performance in microbenchmarks on gfx90a, gfx1030, and
gfx1100 is better without this limitation.
Commit: e78074ef52e5dfd9cb7c402839113136ded23152
https://github.com/llvm/llvm-project/commit/e78074ef52e5dfd9cb7c402839113136ded23152
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[bazel] Port for 93fcef3
Commit: 87c2b7c3e8362e9b250ed5ae972630a85ee6e0ab
https://github.com/llvm/llvm-project/commit/87c2b7c3e8362e9b250ed5ae972630a85ee6e0ab
Author: lonely eagle <2020382038 at qq.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
M mlir/test/Dialect/Affine/ops.mlir
M mlir/test/Dialect/GPU/transform-gpu.mlir
Log Message:
-----------
[mlir][gpu]add AffineScope Trait to gpu.launch. (#121058)
add AffineScope Trait to gpu.launch.
Commit: 5ed5ada39887bac758a65ffc50b86899d5da4829
https://github.com/llvm/llvm-project/commit/5ed5ada39887bac758a65ffc50b86899d5da4829
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[bazel] Port for 93fcef3, part 2
Commit: 841c9b7594171e0575305557efe2130b54a245f0
https://github.com/llvm/llvm-project/commit/841c9b7594171e0575305557efe2130b54a245f0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] Use explicit X86::CondCode argument in EmitTest/EmitCmp/isX86CCSigned calls. NFC. (#125493)
Helps identify the enum code during debugging.
Commit: eaf34eed0b48fab6614a7aa93291bb16feb5c6a3
https://github.com/llvm/llvm-project/commit/eaf34eed0b48fab6614a7aa93291bb16feb5c6a3
Author: Alexander Belyaev <pifon at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
Fix BAZEL build after 93fcef3048b453161d462ed7defd480fb448c228
Commit: cde3c68ba8acc46891e06a764347182c6c8f163d
https://github.com/llvm/llvm-project/commit/cde3c68ba8acc46891e06a764347182c6c8f163d
Author: Ben Shi <2283975856 at qq.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
Log Message:
-----------
[clang][analyzer][NFC] Fix a typo in comments (#125622)
Commit: 6c560ef33e6fc6e9617edc81e04157437d94067a
https://github.com/llvm/llvm-project/commit/6c560ef33e6fc6e9617edc81e04157437d94067a
Author: David Stuttard <david.stuttard at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp
M llvm/test/CodeGen/AMDGPU/amdpal-cs.ll
M llvm/test/CodeGen/AMDGPU/amdpal-es.ll
M llvm/test/CodeGen/AMDGPU/amdpal-gs.ll
M llvm/test/CodeGen/AMDGPU/amdpal-hs.ll
M llvm/test/CodeGen/AMDGPU/amdpal-ls.ll
M llvm/test/CodeGen/AMDGPU/amdpal-psenable.ll
M llvm/test/CodeGen/AMDGPU/amdpal-vs.ll
M llvm/test/CodeGen/AMDGPU/amdpal.ll
M llvm/test/CodeGen/AMDGPU/elf-notes.ll
M llvm/test/CodeGen/AMDGPU/pal-metadata-3.0.ll
M llvm/test/CodeGen/AMDGPU/wave_dispatch_regs.ll
Log Message:
-----------
[AMDGPU] Add .entry_point back into PAL metadata (#125505)
Commit: 88814969ddbbd7f8ebae7fbd94ab0643a68db2d5
https://github.com/llvm/llvm-project/commit/88814969ddbbd7f8ebae7fbd94ab0643a68db2d5
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
Log Message:
-----------
MachineUniformityAnalysis: Pass is incorrectly initialized as CFGOnly (#125511)
Set CFGOnly in MachineUniformityAnalysisPass to false.
If there were new registers created, uniformity analysis needs to be
updated. Previously, with CFGOnly set to true, pass would be skipped
if CFG was preserved.
Commit: dcb7a695004c49aaef02c3171343864870009961
https://github.com/llvm/llvm-project/commit/dcb7a695004c49aaef02c3171343864870009961
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[bazel] Remove a duplicated dep
Commit: c06d0ff806b72b1cfbca6306a2bc4f5f2922b01b
https://github.com/llvm/llvm-project/commit/c06d0ff806b72b1cfbca6306a2bc4f5f2922b01b
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libc/src/__support/integer_to_string.h
M libc/test/src/__support/integer_to_string_test.cpp
Log Message:
-----------
[libc] Optimize BigInt→decimal in IntegerToString (#123580)
When IntegerToString converts a BigInt into decimal, it determines each
digit by computing `n % 10` and then resets n to `n / 10`, until the
number becomes zero. The div and mod operations are done using
`BigInt::divide_unsigned`, which uses the simplest possible bit-by-bit
iteration, which is a slow algorithm in general, but especially so if
the divisor 10 must first be promoted to a BigInt the same size as the
dividend. The effect is to make each division take quadratic time, so
that the overall decimal conversion is cubic – and the division is
quadratic in the number of _bits_, so the constant of proportionality is
also large.
In this patch I've provided custom code to extract decimal digits much
faster, based on knowing that the divisor is always 10, and processing a
word at a time. So each digit extraction is linear-time with a much
smaller constant of proportionality.
Full comments are in the code. The general strategy is to do the
reduction mod 10 first to determine the output digit; then subtract it
off, so that what's left is guaranteed to be an exact multiple of 10;
and finally divide by 10 using modular-arithmetic techniques rather than
reciprocal-approximation-based ordinary integer division.
I didn't find any existing tests of IntegerToString on a BigInt, so I've
added one.
Commit: b53da77c505a2d35452e161c844712afbc11f6a7
https://github.com/llvm/llvm-project/commit/b53da77c505a2d35452e161c844712afbc11f6a7
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libc/config/config.json
M libc/docs/configure.rst
M libc/src/__support/CPP/algorithm.h
M libc/src/__support/FPUtil/dyadic_float.h
M libc/src/__support/big_int.h
M libc/src/__support/sign.h
M libc/src/stdio/printf_core/CMakeLists.txt
M libc/src/stdio/printf_core/converter_atlas.h
A libc/src/stdio/printf_core/float_dec_converter_limited.h
M libc/test/src/stdio/CMakeLists.txt
M libc/test/src/stdio/sprintf_test.cpp
M libc/test/src/stdlib/CMakeLists.txt
Log Message:
-----------
[libc] Alternative algorithm for decimal FP printf (#123643)
The existing options for bin→dec float conversion are all based on the
Ryū algorithm, which generates 9 output digits at a time using a table
lookup. For users who can't afford the space cost of the table, the
table-lookup subroutine is replaced with one that computes the needed
table entry on demand, but the algorithm is otherwise unmodified.
The performance problem with computing table entries on demand is that
now you need to calculate a power of 10 for each 9 digits you output.
But if you're calculating a custom power of 10 anyway, it's easier to
just compute one, and multiply the _whole_ mantissa by it.
This patch adds a header file alongside `float_dec_converter.h`, which
replaces the whole Ryū system instead of just the table-lookup routine,
implementing this alternative simpler algorithm. The result is accurate
enough to satisfy (minimally) the accuracy demands of IEEE 754-2019 even
in 128-bit long double. The new float128 test cases demonstrate this by
testing the cases closest to the 39-digit rounding boundary.
In my tests of generating 39 output digits (the maximum number supported
by this algorithm) this code is also both faster and smaller than the
USE_DYADIC_FLOAT version of the existing Ryū code.
Commit: 91cb8f5d3202870602c6bef807bc4c7ae8a32790
https://github.com/llvm/llvm-project/commit/91cb8f5d3202870602c6bef807bc4c7ae8a32790
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/test/CodeGen/target-data.c
M llvm/docs/NVPTXUsage.rst
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/include/llvm/Support/NVPTXAddrSpace.h
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
A llvm/test/CodeGen/NVPTX/tcgen05-alloc.ll
Log Message:
-----------
[NVPTX] Add tcgen05 alloc/dealloc intrinsics (#124961)
This patch adds intrinsics for the tcgen05 alloc/dealloc
family of PTX instructions. This patch also adds an
addrspace 6 for tensor memory which is used by
these intrinsics.
lit tests are added and verified with a ptxas-12.8 executable.
Documentation for these additions is also added in NVPTXUsage.rst.
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: 4be35fd9085b9bb0330c8adb95b47842baa3aaa9
https://github.com/llvm/llvm-project/commit/4be35fd9085b9bb0330c8adb95b47842baa3aaa9
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/cmp-xor.ll
M llvm/test/CodeGen/X86/pr32284.ll
Log Message:
-----------
[X86] EmitCmp - use existing XOR node to check for equality (#125506)
Normally, we use the result of the SUB flag for scalar comparison as its more compatible with CMP, but if we're testing for equality and already have a XOR we can reuse that instead.
Fixes #6146
Commit: 5afb31dbd6f7aa745dd826128f6f224dc49031c0
https://github.com/llvm/llvm-project/commit/5afb31dbd6f7aa745dd826128f6f224dc49031c0
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libc/src/stdio/printf_core/float_dec_converter_limited.h
Log Message:
-----------
[libc][float_dec_converter_limited] Add missing LIBC_INLINE (#125655)
This caused a build failure in check-libc introduced by commit
b53da77c505a2d3.
Commit: cdca04913ad2403f41fa5649c587e6bf96d54e33
https://github.com/llvm/llvm-project/commit/cdca04913ad2403f41fa5649c587e6bf96d54e33
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
A llvm/test/CodeGen/AMDGPU/bitcast_vector_bigint.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-contents-legalization.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
Log Message:
-----------
DAG: Avoid introducing stack usage in vector->int bitcast int op promotion
(#125636)
Avoids stack usage in the v5i32 to i160 case for AMDGPU, which appears
in fat pointer lowering.
Commit: eb6ca1242c1035fac6a8f1edfe7925b4994d4ecf
https://github.com/llvm/llvm-project/commit/eb6ca1242c1035fac6a8f1edfe7925b4994d4ecf
Author: Owen Pan <owenpiano at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/Format/QualifierAlignmentFixer.cpp
M clang/unittests/Format/QualifierFixerTest.cpp
Log Message:
-----------
[clang-format] Hanlde qualified type name for `QualifierAlignment` (#125327)
Fixes #125178.
Commit: de5d5888043ae022756ecdda31b550343a4dfeff
https://github.com/llvm/llvm-project/commit/de5d5888043ae022756ecdda31b550343a4dfeff
Author: David Sherwood <david.sherwood at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AArch64/cttz_elts.ll
Log Message:
-----------
[AArch64] Tweak the costs of experimental_cttz_elts intrinsic (#125093)
The experimental_cttz_elts intrinsic currently returns a cost
of 1 for all types, however we know that it currently requires
2 SVE instructions when lowering this - brkb and cntp. Both of
these instructions have a throughput that is half of a basic
vector instruction such as a vector add. This patch bumps the
cost of this intrinsic up to 4 to reflect two instructions of
lower throughput.
Commit: 2f2ac3de69dde902c9fe84bdd7faeee320498130
https://github.com/llvm/llvm-project/commit/2f2ac3de69dde902c9fe84bdd7faeee320498130
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/test/CodeGen/AMDGPU/bitcast_vector_bigint.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-contents-legalization.ll
M llvm/test/CodeGen/AMDGPU/ctpop16.ll
M llvm/test/CodeGen/AMDGPU/kernel-args.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
M llvm/test/CodeGen/AMDGPU/load-global-i16.ll
M llvm/test/CodeGen/AMDGPU/load-global-i8.ll
M llvm/test/CodeGen/AMDGPU/min.ll
M llvm/test/CodeGen/AMDGPU/shl.ll
M llvm/test/CodeGen/AMDGPU/sra.ll
Log Message:
-----------
DAG: Avoid stack usage in bitcast operand promotion to legal vector (#125637)
Fix introducing stack usage if a bitcast source operand is an illegal
integer type cast to a legal vector type. This should cover more
situations, but this is the first one I noticed.
Commit: 4313345f2eeeb1e2ea7127a056ec4e1aaaa7fefb
https://github.com/llvm/llvm-project/commit/4313345f2eeeb1e2ea7127a056ec4e1aaaa7fefb
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
A llvm/include/llvm/CodeGen/MachineCopyPropagation.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/test/CodeGen/AArch64/avoid-zero-copy.mir
M llvm/test/CodeGen/AMDGPU/dead_copy.mir
M llvm/test/CodeGen/AMDGPU/remove-incompatible-s-time.ll
M llvm/test/CodeGen/AMDGPU/remove-incompatible-wave32-feature.ll
M llvm/test/CodeGen/ARM/machine-copyprop.mir
Log Message:
-----------
[CodeGen][NewPM] Port MachineCopyPropagation to NPM (#125202)
Commit: 83ff9d4a34b1e579dd809759d13b70b8837f0cde
https://github.com/llvm/llvm-project/commit/83ff9d4a34b1e579dd809759d13b70b8837f0cde
Author: Hans Wennborg <hans at chromium.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Headers/prfchwintrin.h
M clang/lib/Headers/xmmintrin.h
Log Message:
-----------
Revert "[Win/X86] Make _m_prefetch[w] builtins to avoid winnt.h conflicts (#115099)"
This broke the build, see buildbot comments on the PR.
This reverts commit ee92122b53c7af26bb766e89e1d30ceb2fd5bb93 and
follow-up 5dccfd9283cd784758aa3d16fcb6e31f135c080f.
Commit: e63d543e661ed3b9743d9411b074669cd25aec01
https://github.com/llvm/llvm-project/commit/e63d543e661ed3b9743d9411b074669cd25aec01
Author: Matthias Springer <me at m-sp.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/lib/Transforms/Utils/DialectConversion.cpp
Log Message:
-----------
[mlir][Transforms] Dialect conversion: Fix `-debug` crash (#125660)
Fix a crash in `ConversionPatternRewriter::replaceUsesOfBlockArgument`
when running with `-debug`. The block that owns the block argument can
be a detached block. In that case, do not attempt to print the name of
the owner op.
Commit: 4b720f88a3f9edc8edaa20acedcb93689bff6cf4
https://github.com/llvm/llvm-project/commit/4b720f88a3f9edc8edaa20acedcb93689bff6cf4
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/docs/HowToReleaseLLVM.rst
Log Message:
-----------
[llvm][Docs] Clarify release ABI/API compatibility rules (#123049)
If the current release branch is version X, the phrase "the previous
major release." sounds to me as if it is referring to releases of X-1.
Not to the last release from the current release branch, which is what I
think it intends.
(if it meant X-1, then we could never change the ABI)
Commit: 8fdd982668833a38dcbd693a9450891ff35264a3
https://github.com/llvm/llvm-project/commit/8fdd982668833a38dcbd693a9450891ff35264a3
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
Log Message:
-----------
[NewPM] MachineCopyPropagation: Remove dead ID (#125665)
Fix for #125202 (4313345f2eeeb1e2ea7127a056ec4e1aaaa7fefb)
Commit: c55a7659b38946350315ac4a18d9805deb1f0a54
https://github.com/llvm/llvm-project/commit/c55a7659b38946350315ac4a18d9805deb1f0a54
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
DAG: Move scalarizeExtractedVectorLoad to TargetLowering (#122670)
SimplifyDemandedVectorElts should be able to use this on loads
Commit: d9af03ba80475df5edcab7e4d63004f6115aab3a
https://github.com/llvm/llvm-project/commit/d9af03ba80475df5edcab7e4d63004f6115aab3a
Author: Jack Styles <jack.styles at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/test/Preprocessor/arm-target-features.c
M llvm/lib/TargetParser/ARMTargetParser.cpp
A llvm/test/MC/ARM/cortex-r52-nofp.s
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[ARM] Ensure FPU Selection can select mode correctly (#124935)
Previously, when selecting a Single Precision FPU, LLVM would ensure all
elements of the Candidate FPU matched the InputFPU that was given.
However, for cases such as Cortex-R52, there are FPU options where not
all fields match exactly, for example NEON Support or Restrictions on
the Registers available.
This change ensures that LLVM can select the FPU correctly, removing the
requirement for Neon Support and Restrictions for the Candidate FPU to
be the same as the InputFPU.
Commit: 9a9b70aa87632408298ea02c28a605c02a383c3a
https://github.com/llvm/llvm-project/commit/9a9b70aa87632408298ea02c28a605c02a383c3a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/Transforms/PhaseOrdering/X86/addsub-inseltpoison.ll
M llvm/test/Transforms/PhaseOrdering/X86/addsub.ll
Log Message:
-----------
[PhaseOrdering][X86] Add test coverage for #58139
Commit: 64927af52a3bedf2b20d6cdd98bb47d9bba630f9
https://github.com/llvm/llvm-project/commit/64927af52a3bedf2b20d6cdd98bb47d9bba630f9
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/Transforms/PhaseOrdering/X86/addsub-inseltpoison.ll
M llvm/test/Transforms/PhaseOrdering/X86/addsub.ll
Log Message:
-----------
[PhaseOrdering][X86] Add better SSE/AVX test coverage for add-sub tests
Commit: 227b32f6a1329c449f1222a42471190eededa433
https://github.com/llvm/llvm-project/commit/227b32f6a1329c449f1222a42471190eededa433
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaAttr.cpp
M clang/test/CodeGenCXX/attr-annotate2.cpp
M clang/test/SemaCXX/attr-annotate.cpp
Log Message:
-----------
[clang] Remove an incorrect assertion in ConstantFoldAttrs (#105789)
Evaluating the attribute expression can be successful without resulting
in a value. Namely, when the expression is of type void.
Fixes https://github.com/llvm/llvm-project/issues/119125
Commit: 8201cf311aea3888387f92f1b2ad48fcbce765eb
https://github.com/llvm/llvm-project/commit/8201cf311aea3888387f92f1b2ad48fcbce765eb
Author: Sergey Kachkov <109674256+skachkov-sc at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/test/Analysis/CostModel/RISCV/gep.ll
A llvm/test/Analysis/CostModel/RISCV/rvv-expandload-compressstore.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
Log Message:
-----------
[TTI][CostModel] Add cost modeling for expandload and compressstore intrinsics (#122882)
This patch adds methods for cost estimation for
llvm.masked.expandload/llvm.masked.compressstore intrinsics in TTI. If
backend doesn't support custom lowering of these intrinsics it will be
processed by ScalarizeMaskedMemIntrin so we estimate its cost via
getCommonMaskedMemoryOpCost as gather/scatter operation; for RISC-V
backend, this patch implements custom hook to calculate the cost based
on current lowering scheme.
Commit: d7aa6e379e612be4f5de3fc7bae53a5d19498049
https://github.com/llvm/llvm-project/commit/d7aa6e379e612be4f5de3fc7bae53a5d19498049
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Log Message:
-----------
[AMDGPU] Simplify Waitcnt constructor. NFC. (#125672)
These fields are already initialized in their declarations.
Commit: daefb1b0121498ea48a0ed6514f11fb66872bafc
https://github.com/llvm/llvm-project/commit/daefb1b0121498ea48a0ed6514f11fb66872bafc
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M openmp/runtime/src/include/omp.h.var
Log Message:
-----------
[OpenMP] Make `omp.h` work when compiled with `-ffreestanding` (#125618)
Summary:
Freestanding builds have `stddef.h` and `stdint.h` but not `stdlib.h`.
We don't actually use any `stdlib.h` definitions in the OpenMP headers,
and some definitions from this header are usable without the OpenMP
runtime (allocators) so we should be able to do this. This ignores the
include if possible, removing the implicit include would possibly break
some applications so it stays here.
Commit: 8149cbfecdaf0ac8e5a9f38a87f30c89ddc001a4
https://github.com/llvm/llvm-project/commit/8149cbfecdaf0ac8e5a9f38a87f30c89ddc001a4
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVCallingConv.td
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
M llvm/test/CodeGen/RISCV/ipra.ll
Log Message:
-----------
[RISCV] Implement getIPRACSRegs hook (#125586)
Fixes #124932.
This patch implements the getIPRACSRegs hook for RISC-V, similar to its introduction for x86 in commit 14b567d. This hook is necessary for correct code generation when Interprocedural Register Allocation (IPRA) is enabled, ensuring that the return address register (ra / x1) is correctly saved and restored when needed.
Unlike the x86 implementation, this patch only saves ra and does not yet include the frame pointer (fp). Further investigation is required to determine whether fp should also be preserved in all cases.
The test case is representative of a miscompile observed in the GCC torture suite (20090113-3.c), though similar failures occur in SPEC’s xz benchmark.
Commit: 69f202bf366a9c4c667d8c117d02ccff15705216
https://github.com/llvm/llvm-project/commit/69f202bf366a9c4c667d8c117d02ccff15705216
Author: macurtis-amd <macurtis at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/X86/X86ExpandPseudo.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86FrameLowering.h
A llvm/test/CodeGen/X86/merge-huge-sp-updates.ll
Log Message:
-----------
[llvm][X86] Fix merging of large sp updates (#125007)
In cases where `emitSPUpdate` produced multiple adds:
```
call foo
add 0x7FFFFFFF <--chunk size
add ...
```
`mergeSPUpdates` would incorrectly adjust the offset of the first add
producing an invalid immediate value.
This change teaches `mergeSPUpdates` to look for a subsequent add if
updating the current one would exceed the chunk size.
@phoebewang @mconst
Commit: 7ece824b6fa943bf20162d8d653d6e5cd0722a6e
https://github.com/llvm/llvm-project/commit/7ece824b6fa943bf20162d8d653d6e5cd0722a6e
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
Log Message:
-----------
[flang][debug] Improve check for global variable detection. (#118326)
When a global variable is used in the OpenMP target region, it is passed
as an argument to the function that implements target region. But the
`DeclareOp` for this incarnation still have the original name of the
variable. As some of our checks to decide if a variable is global or nor
are based on the name, this can result in a local variable being treated
as global. This PR hardens the check a bit. We now also check that
memory ref is actually an `AddrOfOp` before looking at the name.
Commit: 6fc66d322b00bdabc27fe8e14b27ab9bd53ba770
https://github.com/llvm/llvm-project/commit/6fc66d322b00bdabc27fe8e14b27ab9bd53ba770
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/sections.f90
Log Message:
-----------
[flang][OpenMP] Fix sections lastprivate for common blocks (#125504)
Common block handling was missing in sections' lastprivate lowering.
Fixes #121719
Commit: 3bd11b502c1846afa5e1257c94b7a70566e34686
https://github.com/llvm/llvm-project/commit/3bd11b502c1846afa5e1257c94b7a70566e34686
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[ValueTracking] Fix bit width handling in computeKnownBits() for GEPs (#125532)
For GEPs, we have three bit widths involved: The pointer bit width, the
index bit width, and the bit width of the GEP operands.
The correct behavior here is:
* We need to sextOrTrunc the GEP operand to the index width *before*
multiplying by the scale.
* If the index width and pointer width differ, GEP only ever modifies
the low bits. Adds should not overflow into the high bits.
I'm testing this via unit tests because it's a bit tricky to test in IR
with InstCombine canonicalization getting in the way.
Commit: 2b3ddec7df199df6ba54053b1c8eaa8876252cf3
https://github.com/llvm/llvm-project/commit/2b3ddec7df199df6ba54053b1c8eaa8876252cf3
Author: Abhina Sree <Abhina.Sreeskantharajan at ibm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/MDGenerator.cpp
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-include-fixer/FuzzySymbolIndex.cpp
M clang-tools-extra/clang-include-fixer/YamlSymbolIndex.cpp
M clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp
M clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp
Log Message:
-----------
[SystemZ][z/OS] Open text files in text mode (#125570)
This patch continues the work that was started here
https://reviews.llvm.org/D99426 to correctly open text files in text
mode.
Commit: 358a48b29332bc8015cb28fa14f8df2882bc68cd
https://github.com/llvm/llvm-project/commit/358a48b29332bc8015cb28fa14f8df2882bc68cd
Author: Alexander Peskov <apeskov at nvidia.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/Support/NVPTXAddrSpace.h
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
A llvm/test/DebugInfo/NVPTX/debug-addr-space.ll
Log Message:
-----------
[NVPTX] Fix DWARF address space for globals (#122715)
Fix an issue with defining actual DWARF address space for module scope
globals. Previously it was always `ADDR_global_space`.
Also, this patch introduces CUDA-specific DWARF codes for address space
specification in correspondence with:
https://docs.nvidia.com/cuda/ptx-writers-guide-to-interoperability/index.html#cuda-specific-dwarf-definitions
Previously hardcoded constant values are replaced with enum values.
Commit: 882f4794829c221ee562c8a12c5254750195b1fe
https://github.com/llvm/llvm-project/commit/882f4794829c221ee562c8a12c5254750195b1fe
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-broadcast-arith.ll
Log Message:
-----------
[X86] avx512-broadcast-arith.ll - regenerate VPTERNLOG comments
Commit: 7b22ca5d8860c871031c436cd39f87683a470326
https://github.com/llvm/llvm-project/commit/7b22ca5d8860c871031c436cd39f87683a470326
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-calling-conv.ll
Log Message:
-----------
[X86] avx512-calling-conv.ll - regenerate VPTERNLOG comments
Commit: f7b431283449856ae814f29025297493fd819f9f
https://github.com/llvm/llvm-project/commit/f7b431283449856ae814f29025297493fd819f9f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-cmp.ll
Log Message:
-----------
[X86] avx512-cmp.ll - regenerate VPTERNLOG comments
Commit: deb1ed534d3873f8e3537518a691750b1714edea
https://github.com/llvm/llvm-project/commit/deb1ed534d3873f8e3537518a691750b1714edea
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-extract-subvector-load-store.ll
Log Message:
-----------
[X86] avx512-extract-subvector-load-store.ll - regenerate VPTERNLOG comments
Commit: 186d44181975ff621b33cc91fa8f812caa936c89
https://github.com/llvm/llvm-project/commit/186d44181975ff621b33cc91fa8f812caa936c89
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-ext.ll
Log Message:
-----------
[X86] avx512-ext.ll - regenerate VPTERNLOG comments
Commit: ca02f63edf71c517b7661a444481a3e820145fdb
https://github.com/llvm/llvm-project/commit/ca02f63edf71c517b7661a444481a3e820145fdb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-select.ll
Log Message:
-----------
[X86] avx512-select.ll - regenerate VPTERNLOG comments
Commit: ffeea84e5e2f1c5ff113e0312da023a227ede571
https://github.com/llvm/llvm-project/commit/ffeea84e5e2f1c5ff113e0312da023a227ede571
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-logic.ll
Log Message:
-----------
[X86] avx512-logic.ll - regenerate VPTERNLOG comments
Commit: 46b1543dc04970719caab0d4f9f65699fea6adbc
https://github.com/llvm/llvm-project/commit/46b1543dc04970719caab0d4f9f65699fea6adbc
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/avx512-load-store.ll
Log Message:
-----------
[X86] avx512-load-store.ll - regenerate VMOVSD/VMOVSS comments
Commit: 25f29ee377b1b83b276308c1947de774ee01a4fe
https://github.com/llvm/llvm-project/commit/25f29ee377b1b83b276308c1947de774ee01a4fe
Author: Kareem Ergawy <kareem.ergawy at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
A flang/test/Lower/OpenMP/lastprivate-simd.f90
Log Message:
-----------
[flang][OpenMP] Update all `lastprivate` symbols, not just in clauses (#125628)
Fixes a bug in updating `lastprivate` variables. Previously, we only
iterated over the symbols collected from `lastprivate` clauses. This
meants that for pre-determined symbols, we did not implement the update
correctly (e.g. for loop iteration variables of `simd` constructs).
Commit: e73a64bbd1733347a2c30e8fb93079b4aa41187a
https://github.com/llvm/llvm-project/commit/e73a64bbd1733347a2c30e8fb93079b4aa41187a
Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/docs/Extensions.md
Log Message:
-----------
[flang][NFC] Document Arm exception raising behavior (#125579)
Commit: 93b90a532d0ca5a95c226e3d0b37444ef692d3da
https://github.com/llvm/llvm-project/commit/93b90a532d0ca5a95c226e3d0b37444ef692d3da
Author: Michael Maitland <michaeltmaitland at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
M llvm/test/CodeGen/RISCV/rda-stack.mir
Log Message:
-----------
[ReachingDefAnalysis] Fix management of MBBFrameObjsReachingDefs (#124943)
MBBFrameObjsReachingDefs was not being built correctly since we were not
inserting into a reference of Frame2InstrIdx. If there was multiple
stack slot defs in the same basic block, then the bug would occur. This
PR fixes this problem while simplifying the insertion logic.
Additionally, when lookup into MBBFrameObjsReachingDefs was occurring,
there was a chance that there was no entry in the map, in the case that
there was no reaching def. This was causing us to return a default
value, which may or may not have been correct. This patch returns the
correct value now.
Commit: f4c2e5df6f330fc5f31853aaa8287842cc377be0
https://github.com/llvm/llvm-project/commit/f4c2e5df6f330fc5f31853aaa8287842cc377be0
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/revectorized_rdx_crash.ll
Log Message:
-----------
[SLP][X86] revectorized_rdx_crash.ll - regenerate to reduce diff in #118293
Commit: f4958723b2c1aac32739bfff447a73c2cd3e2c06
https://github.com/llvm/llvm-project/commit/f4958723b2c1aac32739bfff447a73c2cd3e2c06
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/test/AST/ast-dump-templates.cpp
M clang/test/AST/gen_ast_dump_json_test.py
M clang/test/SemaTemplate/cwg2398.cpp
Log Message:
-----------
[clang] fix P3310 overload resolution flag propagation (#125372)
Commit: fe7e280820c8f4a46f49357097d7f6897bd31d41
https://github.com/llvm/llvm-project/commit/fe7e280820c8f4a46f49357097d7f6897bd31d41
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC]Move functions definitions, NFC
Move functions to use them later in the following patches
Commit: d5488f157c74332646d2b6e9d16c88e61d5a789e
https://github.com/llvm/llvm-project/commit/d5488f157c74332646d2b6e9d16c88e61d5a789e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
Log Message:
-----------
[AArch64] Combine separate vector and scalar tablegen SDNode record for AArch64ISD::REV16. NFC (#125614)
Relax the SDTypeProfile for AArch64ISD::REV32/REV64 to remove the
requirement that the type be vector.
It's not a good idea to have two different SDNode records with different
SDTypeProfiles. SDTypeProfiles are used to remove some unneeded checks
from the GenDAGISel.inc. Having different SDTypeProfiles can cause
checks to be removed that can create ambiguous matches, but that did not
happen in this case.
With this change the AArchGenDAGISel.inc is identical. The only change
is AArch64GenGlobalISel.inc which now includes scalar patterns for
G_REV16 due to them now being picks up by an SDNodeEquiv. GISel does not
yet use G_REV16 for scalars so this is not a functional change.
Commit: f7aad60cd1a538fb1eb5ab861f8c29ddba5283a4
https://github.com/llvm/llvm-project/commit/f7aad60cd1a538fb1eb5ab861f8c29ddba5283a4
Author: Piotr Fusik <p.fusik at samsung.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
M llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwsll-vp.ll
Log Message:
-----------
[RISCV] Fold vector shift of sext/zext to widening multiply (#121563)
(shl (sext X), C) -> (vwmulsu X, 1u << C)
(shl (zext X), C) -> (vwmulu X, 1u << C)
Commit: 389d1359f330c55098d75f00efe03749943d98e7
https://github.com/llvm/llvm-project/commit/389d1359f330c55098d75f00efe03749943d98e7
Author: Jerry-Ge <jerry.ge at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
Log Message:
-----------
[TOSA] fix TileOp description (#125707)
Simple textual fix to match TOSA v1.0 specification:
https://www.mlplatform.org/tosa/tosa_spec.html#_tile
Signed-off-by: Arteen Abrishami <arteen.abrishami at arm.com>
Co-authored-by: Arteen Abrishami <arteen.abrishami at arm.com>
Commit: bd30838422bc31c90ae6e7119c433159d351ff05
https://github.com/llvm/llvm-project/commit/bd30838422bc31c90ae6e7119c433159d351ff05
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/include/flang/Lower/DirectivesCommon.h
M flang/include/flang/Optimizer/Builder/DirectivesCommon.h
M flang/lib/Lower/OpenACC.cpp
M flang/test/Lower/OpenACC/acc-bounds.f90
A flang/test/Lower/OpenACC/acc-data-operands-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-data-operands.f90
A flang/test/Lower/OpenACC/acc-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-data.f90
A flang/test/Lower/OpenACC/acc-declare-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-declare.f90
A flang/test/Lower/OpenACC/acc-enter-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-enter-data.f90
A flang/test/Lower/OpenACC/acc-exit-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-exit-data.f90
A flang/test/Lower/OpenACC/acc-host-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-host-data.f90
M flang/test/Lower/OpenACC/acc-kernels-loop.f90
M flang/test/Lower/OpenACC/acc-kernels.f90
M flang/test/Lower/OpenACC/acc-loop.f90
M flang/test/Lower/OpenACC/acc-parallel-loop.f90
M flang/test/Lower/OpenACC/acc-parallel.f90
A flang/test/Lower/OpenACC/acc-private-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-private.f90
A flang/test/Lower/OpenACC/acc-reduction-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-reduction.f90
M flang/test/Lower/OpenACC/acc-serial-loop.f90
M flang/test/Lower/OpenACC/acc-serial.f90
M flang/test/Lower/OpenACC/acc-update.f90
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
Log Message:
-----------
[flang][acc] Improve acc lowering around fir.box and arrays (#125600)
The current implementation of OpenACC lowering includes explicit
expansion of following cases:
- Creation of `acc.bounds` operations for all arrays, including those
whose dimensions are captured in the type (eg `!fir.array<100xf32>`)
- Expansion of box types by only putting the box's address in the data
clause. The address was extracted with a `fir.box_addr` operation and
the bounds were filled with `fir.box_dims` operation.
However, with the creation of the new type interface `MappableType`, the
idea is that specific type-based semantics can now be used. This also
really simplifies representation in the IR. Consider the following
example:
```
subroutine sub(arr)
real :: arr(:)
!$acc enter data copyin(arr)
end subroutine
```
Before the current PR, the relevant acc dialect IR looked like:
```
func.func @_QPsub(%arg0: !fir.box<!fir.array<?xf32>> {fir.bindc_name =
"arr"}) {
...
%1:2 = hlfir.declare %arg0 dummy_scope %0 {uniq_name = "_QFsubEarr"} :
(!fir.box<!fir.array<?xf32>>, !fir.dscope) ->
(!fir.box<!fir.array<?xf32>>, !fir.box<!fir.array<?xf32>>)
%c1 = arith.constant 1 : index
%c0 = arith.constant 0 : index
%2:3 = fir.box_dims %1#0, %c0 : (!fir.box<!fir.array<?xf32>>, index)
-> (index, index, index)
%c0_0 = arith.constant 0 : index
%3 = arith.subi %2#1, %c1 : index
%4 = acc.bounds lowerbound(%c0_0 : index) upperbound(%3 : index)
extent(%2#1 : index) stride(%2#2 : index) startIdx(%c1 : index)
{strideInBytes = true}
%5 = fir.box_addr %1#0 : (!fir.box<!fir.array<?xf32>>) ->
!fir.ref<!fir.array<?xf32>>
%6 = acc.copyin varPtr(%5 : !fir.ref<!fir.array<?xf32>>) bounds(%4) ->
!fir.ref<!fir.array<?xf32>> {name = "arr", structured = false}
acc.enter_data dataOperands(%6 : !fir.ref<!fir.array<?xf32>>)
```
After the current change, it looks like:
```
func.func @_QPsub(%arg0: !fir.box<!fir.array<?xf32>> {fir.bindc_name =
"arr"}) {
...
%1:2 = hlfir.declare %arg0 dummy_scope %0 {uniq_name = "_QFsubEarr"} :
(!fir.box<!fir.array<?xf32>>, !fir.dscope) ->
(!fir.box<!fir.array<?xf32>>, !fir.box<!fir.array<?xf32>>)
%2 = acc.copyin var(%1#0 : !fir.box<!fir.array<?xf32>>) ->
!fir.box<!fir.array<?xf32>> {name = "arr", structured = false}
acc.enter_data dataOperands(%2 : !fir.box<!fir.array<?xf32>>)
```
Restoring the old behavior can be done with following command line
options:
`--openacc-unwrap-fir-box=true --openacc-generate-default-bounds=true`
Commit: d8148244e9be9d4c7b12abbdbf275d80d5ba57a5
https://github.com/llvm/llvm-project/commit/d8148244e9be9d4c7b12abbdbf275d80d5ba57a5
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libcxx/include/__string/constexpr_c_functions.h
Log Message:
-----------
[libc++] Decrease instantiation cost of __constexpr_memmove (#125109)
Using `if constexpr` in `__constexpr_memmove` makes the instantiation
three times faster for the same type, since it avoids a bunch of class
instantiations and SFINAE for constexpr support that's never actually
used. Given that `__constexpr_memmove` is used quite a bit through
`std::copy` and is instantiated multiple times when just including
`<__string/char_traits.h>` this can provide a nice compile time speedup
for a very simple change.
Commit: 6515fdf73de724d21b6c807ad75f2139c1d7af32
https://github.com/llvm/llvm-project/commit/6515fdf73de724d21b6c807ad75f2139c1d7af32
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/minimummaximum.ll
M llvm/test/CodeGen/AMDGPU/minmax.ll
Log Message:
-----------
[AMDGPU][True16][CodeGen] true16 codegen for FPMinMax pat (#125107)
true16 codegen for FPMinMax Pattern
Commit: 5eff19f48b6493d52eeab74d9a81867d49f61bbb
https://github.com/llvm/llvm-project/commit/5eff19f48b6493d52eeab74d9a81867d49f61bbb
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
A llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcmp.s16.gfx11plus-fake16.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcmp.s16.gfx11plus.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcmp.s16.mir
Log Message:
-----------
[AMDGPU][True16][Codegen] true16 codegen for FPtoI1 (#125120)
True16 codegen for FPtoi1.
It seems tablegen figured out the pattern even without this pat in
place, and the fptoui/fptosi.ll already got the right transformation.
Aditionally updated the mir file and split it to pre-gfx11 and
post-gfx11.
Commit: bae97e1976e44066dfad5d84fb921165e6588e2d
https://github.com/llvm/llvm-project/commit/bae97e1976e44066dfad5d84fb921165e6588e2d
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/test/AST/ast-dump-templates.cpp
M clang/test/AST/gen_ast_dump_json_test.py
M clang/test/SemaTemplate/cwg2398.cpp
Log Message:
-----------
Revert "[clang] fix P3310 overload resolution flag propagation" (#125710)
Reverts llvm/llvm-project#125372 due to lldb builds failing:
https://lab.llvm.org/buildbot/#/builders/59/builds/12223
We need to decide how to update LLDB's code.
Commit: 5ca136d0e723029e6bef894961701b6ca1b6cd29
https://github.com/llvm/llvm-project/commit/5ca136d0e723029e6bef894961701b6ca1b6cd29
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
Log Message:
-----------
[SLP][NFC]Replace undefs with just poison in the test
Commit: 25daf7bb3934e80b395b3ced53e812d314cb1c86
https://github.com/llvm/llvm-project/commit/25daf7bb3934e80b395b3ced53e812d314cb1c86
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/SMEInstrFormats.td
M llvm/lib/Target/AArch64/SMEPeepholeOpt.cpp
A llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll
A llvm/test/CodeGen/AArch64/luti-with-sme2.ll
A llvm/test/CodeGen/AArch64/perm-tb-with-sme2.ll
M llvm/test/CodeGen/AArch64/sme2-fp8-intrinsics-cvt.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-add.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-fp-dots.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-insert-mova.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-qcvt.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-qrshr.ll
Log Message:
-----------
[AArch64][SME] Extend FORM_TRANSPOSED pseudos to all multi-vector intrinsics (#124258)
All patterns for multi-vector intrinsics should try to use the FORM_TRANSPOSED
pseudos so that they can benefit from register allocation hints when SME is available.
This patch removes the post-isel hook for the pseudo and instead extends the
SMEPeepholeOpt pass to replace a REG_SEQENCE with the pseudo if the
expected pattern of StridedOrContiguous copies is found. With this change,
the tablegen patterns for the intrinsics can remain unchanged.
One test has been added for each multiclass this affects.
Commit: a27f3b2bb137001735949549354aff89dbf227f4
https://github.com/llvm/llvm-project/commit/a27f3b2bb137001735949549354aff89dbf227f4
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libcxx/src/experimental/time_zone.cpp
M libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
Log Message:
-----------
[libc++][TZDB] Fixes %z escaping. (#125399)
The previous tested TZDB did not contain %z for the rule letters. The
usage of %z in TZDB 2024b revealed a bug in the implementation. The
patch fixes it and has been locally tested with TZDB 2024b.
Fixes #108957
Commit: b7f0edbc0bd35c8ab4442802ebefba4f7739f72b
https://github.com/llvm/llvm-project/commit/b7f0edbc0bd35c8ab4442802ebefba4f7739f72b
Author: Prabhuk <prabhukr at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/Driver/ToolChains/UEFI.h
M clang/unittests/Driver/ToolChainTest.cpp
Log Message:
-----------
[clang] UEFI targets must use CodeView. (#124660)
Commit: 84fbed86ffcb97c24f9294a204c60da5444b8646
https://github.com/llvm/llvm-project/commit/84fbed86ffcb97c24f9294a204c60da5444b8646
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/scudo_unit_test.h
M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
Log Message:
-----------
[scudo] Refactor the secondary test (#125595)
Remove all redundant code and create a couple of structs to handle
automatic init and destruction. This replaces the test fixtures in
prepartion for passing in multiple configs for some of these tests. This
is necessary because not all of the gtest features are supported here,
and there is no easy way to create a test fixture with a template.
Commit: 906eeeda833b30fb7fdc3b7586de34b65d575b45
https://github.com/llvm/llvm-project/commit/906eeeda833b30fb7fdc3b7586de34b65d575b45
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M lldb/include/lldb/API/SBCommandReturnObject.h
M lldb/include/lldb/Interpreter/CommandReturnObject.h
M lldb/source/API/SBCommandReturnObject.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
A lldb/test/API/python_api/commandreturnobject/TestSBCommandReturnObject.py
Log Message:
-----------
[lldb] Store the command in the CommandReturnObject (#125132)
As suggested in #125006. Depending on which PR lands first, I'll update
`TestCommandInterepterPrintCallback.py` to check that the
`CommandReturnObject` passed to the callback has the correct command.
Commit: 21560fe6b9c73133fd86723071877c55106df010
https://github.com/llvm/llvm-project/commit/21560fe6b9c73133fd86723071877c55106df010
Author: Robert Imschweiler <50044286+ro-i at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/promote-dependency-on-invariant-result.ll
Log Message:
-----------
GlobalISel: Fix defined register of invariant.start (#125664)
In contrast to SelectionDAG, GlobalISel created a new virtual register
for the return value of invariant.start, leaving subsequent users of the
invariant.start value with an undefined reference.
A minimal example:
```
%tmp = alloca i32, align 4, addrspace(5)
%tmpI = call ptr @llvm.invariant.start.p5(i64 4, ptr addrspace(5) %tmp) #3
call void @llvm.invariant.end.p5(ptr %tmpI, i64 4, ptr addrspace(5) %tmp) #3
store i32 %i, ptr %tmpI, align 4
```
Although the return value of invariant.start might not be intended for
any use beyond invariant.end (the fuzzer might not have created a
sensible situation here), an implicit definition of the corresponding
virtual register avoids a segfault in the target instruction selector
later.
This LLVM defect was identified via the AMD Fuzzing project.
Commit: 97f6e533865c66ea08840be78154099180293094
https://github.com/llvm/llvm-project/commit/97f6e533865c66ea08840be78154099180293094
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M lldb/bindings/python/python-swigsafecast.swig
M lldb/bindings/python/python-typemaps.swig
M lldb/bindings/python/python-wrapper.swig
M lldb/include/lldb/API/SBCommandInterpreter.h
M lldb/include/lldb/API/SBDefines.h
M lldb/include/lldb/Interpreter/CommandInterpreter.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/source/API/SBCommandInterpreter.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
A lldb/test/API/python_api/interpreter_callback/Makefile
A lldb/test/API/python_api/interpreter_callback/TestCommandInterepterPrintCallback.py
A lldb/test/API/python_api/interpreter_callback/main.c
Log Message:
-----------
[lldb] Support CommandInterpreter print callbacks (#125006)
Xcode uses a pseudoterminal for the debugger console.
- The upside of this apporach is that it means that it can rely on
LLDB's IOHandlers for multiline and script input.
- The downside of this approach is that the command output is printed to
the PTY and you don't get a SBCommandReturnObject. Adrian added support
for inline diagnostics (#110901) and we'd like to access those from the
IDE.
This patch adds support for registering a callback in the command
interpreter that gives access to the `(SB)CommandReturnObject` right
before it will be printed. The callback implementation can choose
whether it likes to handle printing the result or defer to lldb. If the
callback indicated it handled the result, the command interpreter will
skip printing the result.
We considered a few other alternatives to solve this problem:
- The most obvious one is using `HandleCommand`, which returns a
`SBCommandReturnObject`. The problem with this approach is the multiline
input mentioned above. We would need a way to tell the IDE that it
should expect multiline input, which isn't known until LLDB starts
handling the command.
- To address the multiline issue,we considered exposing (some of the)
IOHandler machinery through the SB API. To solve this particular issue,
that would require reimplementing a ton of logic that already exists
today in the CommandInterpeter. Furthermore that seems like overkill
compared to the proposed solution.
rdar://141254310
Commit: 63c59dda436fef7ceb4e3a21a95d306435e42720
https://github.com/llvm/llvm-project/commit/63c59dda436fef7ceb4e3a21a95d306435e42720
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/Sema/SemaTemplateInstantiate.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#125630)
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 *Found to be nonnull. Note that if *Found were
null, cast<VarDecl>(TransformedDecl) would trigger an assertion error.
Commit: 1fba1860984f4757d04922df63d5cc3d3dcf07be
https://github.com/llvm/llvm-project/commit/1fba1860984f4757d04922df63d5cc3d3dcf07be
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
[libclang] Migrate away from PointerUnion::dyn_cast (NFC) (#125631)
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 Storage to be nonnull. Note that if Storage were
null, dereferencing Ovl would trigger a segfault.
Commit: 7fb8285976a2928021b384f79c3598f84e28de7a
https://github.com/llvm/llvm-project/commit/7fb8285976a2928021b384f79c3598f84e28de7a
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCRegisterInfo.h
Log Message:
-----------
[PowerPC] Avoid repeated hash lookups (NFC) (#125634)
Commit: a207f6072796e90c19e8110ba2317a96129cf3c2
https://github.com/llvm/llvm-project/commit/a207f6072796e90c19e8110ba2317a96129cf3c2
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/utils/TableGen/Common/CodeGenTarget.cpp
Log Message:
-----------
[TableGen] Avoid repeated hash lookups (NFC) (#125635)
Commit: 0c7bd879d28a37e215c0cf02b383e224bc9f2ebf
https://github.com/llvm/llvm-project/commit/0c7bd879d28a37e215c0cf02b383e224bc9f2ebf
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/IPO/IROutliner.cpp
Log Message:
-----------
[IPO] Avoid repeated hash lookups (NFC) (#125639)
The two "if" conditions are mutually exclusive, so we can put them in
any order. Reversing the order allows us to remove
Blocks.contains(IncomingBlock) in one of the "if" conditions.
Commit: 6ab034b828d3a66acca61e28ac41f2e8b300e355
https://github.com/llvm/llvm-project/commit/6ab034b828d3a66acca61e28ac41f2e8b300e355
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
A lld/ELF/BPSectionOrderer.cpp
A lld/ELF/BPSectionOrderer.h
M lld/ELF/CMakeLists.txt
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Options.td
M lld/ELF/Writer.cpp
M lld/include/lld/Common/BPSectionOrdererBase.inc
A lld/test/ELF/bp-section-orderer-stress.s
A lld/test/ELF/bp-section-orderer.s
Log Message:
-----------
[ELF] Add BPSectionOrderer options (#125559)
Reland #120514 after 2f6e3df08a8b7cd29273980e47310cf09c6fdbd8 fixed
iteration order issue and libstdc++/libc++ differences.
---
Both options instruct the linker to optimize section layout with the
following goals:
* `--bp-compression-sort=[data|function|both]`: Improve Lempel-Ziv
compression by grouping similar sections together, resulting in a
smaller compressed app size.
* `--bp-startup-sort=function --irpgo-profile=<file>`: Utilize a
temporal profile file to reduce page faults during program startup.
The linker determines the section order by considering three groups:
* Function sections ordered according to the temporal profile
(`--irpgo-profile=`), prioritizing early-accessed and frequently
accessed functions.
* Function sections. Sections containing similar functions are placed
together, maximizing compression opportunities.
* Data sections. Similar data sections are placed together.
Within each group, the sections are ordered using the Balanced
Partitioning algorithm.
The linker constructs a bipartite graph with two sets of vertices:
sections and utility vertices.
* For profile-guided function sections:
+ The number of utility vertices is determined by the symbol order
within the profile file.
+ If `--bp-compression-sort-startup-functions` is specified, extra
utility vertices are allocated to prioritize nearby function similarity.
* For sections ordered for compression: Utility vertices are determined
by analyzing k-mers of the section content and relocations.
The call graph profile is disabled during this optimization.
When `--symbol-ordering-file=` is specified, sections described in that
file are placed earlier.
Co-authored-by: Pengying Xu <xpy66swsry at gmail.com>
Commit: ada8adfc2dd0ceaccb0c88565fe343864c5096ce
https://github.com/llvm/llvm-project/commit/ada8adfc2dd0ceaccb0c88565fe343864c5096ce
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/utils/gn/secondary/lld/ELF/BUILD.gn
Log Message:
-----------
[gn build] Port 6ab034b828d3
Commit: f6342237822bbaf31ef0cc7621de406e4f17a2ec
https://github.com/llvm/llvm-project/commit/f6342237822bbaf31ef0cc7621de406e4f17a2ec
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/DebugInfo/NVPTX/debug-addr-space.ll
Log Message:
-----------
[test] Fix NVPTX/debug-addr-space.ll
Commit: e8a486ea97895a18e1bba75431d37d9758886084
https://github.com/llvm/llvm-project/commit/e8a486ea97895a18e1bba75431d37d9758886084
Author: Pranav Kant <prka at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/LangOptions.h
M clang/lib/CodeGen/Targets/X86.cpp
A clang/test/CodeGen/X86/avx-cxx-record.cpp
Log Message:
-----------
[clang] Return larger CXX records in memory (#120670)
We incorrectly return CXX records in AVX registers when they should be
returned in memory. This is violation of x86-64 psABI.
Detailed discussion is here:
https://groups.google.com/g/x86-64-abi/c/BjOOyihHuqg/m/KurXdUcWAgAJ
Commit: 03ad7edbb652f17382d71e345492534202c437c9
https://github.com/llvm/llvm-project/commit/03ad7edbb652f17382d71e345492534202c437c9
Author: AidinT <at.aidin at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/docs/Tutorials/Toy/Ch-4.md
Log Message:
-----------
[mlir][doc][tutorials] Remove docs and code discrepancies (#125422)
Toy tutorial [chapter 4](https://mlir.llvm.org/docs/Tutorials/Toy/Ch-4/)
contains many discrepancies between snippets and code in `example`
directory.
This is a fix for the documentation.
Commit: f308af757d72412d0d1429f43d93dedcc87c49f0
https://github.com/llvm/llvm-project/commit/f308af757d72412d0d1429f43d93dedcc87c49f0
Author: Paweł Bylica <pawel at ethereum.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/docs/LibFuzzer.rst
Log Message:
-----------
[libfuzzer][docs] Update and clarify Output section (#125075)
In the documentation page for the libfuzzer update the example snippets
of outputs. They are now slightly different than what is documented.
Improve the documentation of the output section `L:`. It now shows two
numbers.
Closes https://github.com/llvm/llvm-project/issues/42571.
Commit: cd269fee05a0f78fb53b65f701b4e06e9ddab424
https://github.com/llvm/llvm-project/commit/cd269fee05a0f78fb53b65f701b4e06e9ddab424
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Basic/Builtins.h
R clang/include/clang/Basic/BuiltinsLoongArch.def
M clang/include/clang/Basic/BuiltinsPPC.def
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/module.modulemap
M clang/lib/Basic/Builtins.cpp
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/ARC.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/ARM.h
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/BPF.cpp
M clang/lib/Basic/Targets/BPF.h
M clang/lib/Basic/Targets/CSKY.cpp
M clang/lib/Basic/Targets/CSKY.h
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/Lanai.h
M clang/lib/Basic/Targets/LoongArch.cpp
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/M68k.cpp
M clang/lib/Basic/Targets/M68k.h
M clang/lib/Basic/Targets/MSP430.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/PNaCl.h
M clang/lib/Basic/Targets/PPC.cpp
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/Sparc.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/VE.cpp
M clang/lib/Basic/Targets/VE.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
M clang/lib/Basic/Targets/XCore.cpp
M clang/lib/Basic/Targets/XCore.h
M clang/lib/Basic/Targets/Xtensa.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
Log Message:
-----------
[StrTable] Switch Clang builtins to use string tables
This both reapplies #118734, the initial attempt at this, and updates it
significantly.
First, it uses the newly added `StringTable` abstraction for string
tables, and simplifies the construction to build the string table and
info arrays separately. This should reduce any `constexpr` compile time
memory or CPU cost of the original PR while significantly improving the
APIs throughout.
It also restructures the builtins to support sharding across several
independent tables. This accomplishes two improvements from the
original PR:
1) It improves the APIs used significantly.
2) When builtins are defined from different sources (like SVE vs MVE in
AArch64), this allows each of them to build their own string table
independently rather than having to merge the string tables and info
structures.
3) It allows each shard to factor out a common prefix, often cutting the
size of the strings needed for the builtins by a factor two.
The second point is important both to allow different mechanisms of
construction (for example a `.def` file and a tablegen'ed `.inc` file,
or different tablegen'ed `.inc files), it also simply reduces the sizes
of these tables which is valuable given how large they are in some
cases. The third builds on that size reduction.
Initially, we use this new sharding rather than merging tables in
AArch64, LoongArch, RISCV, and X86. Mostly this helps ensure the system
works, as without further changes these still push scaling limits.
Subsequent commits will more deeply leverage the new structure,
including using the prefix capabilities which cannot be easily factored
out here and requires deep changes to the targets.
Commit: 1cb979f001b24c661b7d7adf50d7c9cf8adc593a
https://github.com/llvm/llvm-project/commit/1cb979f001b24c661b7d7adf50d7c9cf8adc593a
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
R clang/include/clang/Basic/BuiltinsRISCVVector.def
M clang/include/clang/Basic/TargetBuiltins.h
M clang/lib/Basic/Targets/RISCV.cpp
M clang/utils/TableGen/RISCVVEmitter.cpp
Log Message:
-----------
[StrTable] Switch RISCV to leverage sharded, prefixed builtins w/ TableGen
This lets the TableGen-ed code be much cleaner, directly building an
efficient string table without duplicates and without the repeated
prefix.
Commit: 64ea3f5a4720105d166b034d5a34d92475579e64
https://github.com/llvm/llvm-project/commit/64ea3f5a4720105d166b034d5a34d92475579e64
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsARM.def
R clang/include/clang/Basic/BuiltinsNEON.def
M clang/include/clang/Basic/TargetBuiltins.h
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/utils/TableGen/MveEmitter.cpp
M clang/utils/TableGen/NeonEmitter.cpp
M clang/utils/TableGen/SveEmitter.cpp
Log Message:
-----------
[StrTable] Switch AArch64 and ARM to use directly TableGen-ed builtin tables
This leverages the sharded structure of the builtins to make it easy to
directly tablegen most of the AArch64 and ARM builtins while still using
X-macros for a few edge cases. It also extracts common prefixes as part
of that.
This makes the string tables for these targets dramatically smaller.
This is especially important as the SVE builtins represent (by far) the
largest string table and largest builtin table across all the targets in
Clang.
Commit: 212ecb9d5caaa7cc721edd981f36384ddfccfa5d
https://github.com/llvm/llvm-project/commit/212ecb9d5caaa7cc721edd981f36384ddfccfa5d
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/AST/Expr.h
M clang/include/clang/Basic/Builtins.h
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/TargetBuiltins.h
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/Basic/Builtins.cpp
M clang/lib/Basic/Targets/BPF.cpp
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/SPIR.cpp
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/TableGen/target-builtins-prototype-parser.td
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
Log Message:
-----------
[StrTable] Teach main builtin TableGen to use direct enums, strings, and info
This moves the main builtins and several targets to use nice generated
string tables and info structures rather than X-macros. Even without
obvious prefixes factored out, the resulting tables are significantly
smaller and much cheaper to compile with out all the X-macro overhead.
This leaves the X-macros in place for atomic builtins which have a wide
range of uses that don't seem reasonable to fold into TableGen.
As future work, these should move to their own file (whether as X-macros
or just generated patterns) so the AST headers don't have to include all
the data for other builtins.
Commit: 2ff42bdac3b9a131ce1c652d08edded4eac9d3f7
https://github.com/llvm/llvm-project/commit/2ff42bdac3b9a131ce1c652d08edded4eac9d3f7
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsBase.td
M clang/include/clang/Basic/BuiltinsX86Base.td
M clang/lib/Basic/Targets/X86.cpp
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
Log Message:
-----------
[StrTable] Add prefixes for x86 builtins.
This requires adding support to the general builtins emission for
producing prefixed builtin infos separately from un-prefixed which is
a bit crufty. But we don't currently have any good way of having a more
refined model than a single hard-coded prefix string per TableGen
emission. Something more powerful and/or elegant is possible, but this
is a fairly minimal first step that at least allows factoring out the
builtin prefix for something like X86.
Commit: 51d0ad7de0ad4636ae39783469cf555a1392b4ea
https://github.com/llvm/llvm-project/commit/51d0ad7de0ad4636ae39783469cf555a1392b4ea
Author: Chandler Carruth <chandlerc at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsHexagon.td
M clang/lib/Basic/Targets/Hexagon.cpp
Log Message:
-----------
[StrTable] Add factored prefix for Hexagon
This target's builtins have an especially long prefix and so we get over
2x reduction in string table size required with this change.
Commit: 6f35a9e7c54d5a3b2ea107b07ece7b376463a0f0
https://github.com/llvm/llvm-project/commit/6f35a9e7c54d5a3b2ea107b07ece7b376463a0f0
Author: Corbin Robeck <corbin.robeck at amd.com>
Date: 2025-02-04 (Tue, 04 Feb 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 Scale Convert Packed FP8 <-> F32 Support for GFX950 (#125564)
Add Rocdl support for the following GFX950 instructions:
CVT_SCALE_PK_FP8_F32
CVT_SCALE_PK_BF8_F32
CVT_SCALE_SR_FP8_F32
CVT_SCALE_SR_BF8_F32
CVT_SCALE_PK_F32_FP8
CVT_SCALE_PK_F32_BF8
CVT_SCALE_F32_FP8
CVT_SCALE_F32_BF8
Commit: 3513886c96d685fb3d40b50c3dffceac63fd9c3a
https://github.com/llvm/llvm-project/commit/3513886c96d685fb3d40b50c3dffceac63fd9c3a
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vaddv.ll
Log Message:
-----------
[msan] Generalize handleVectorReduceIntrinsic to support Arm NEON add reduction to scalar (#125288)
This generalizes handleVectorReduceIntrinsic to allow intrinsics where
the return type is not the same as the fields. This patch then applies
the generalized handleVectorReduceIntrinsic to support the following Arm
NEON add reduction to scalar intrinsics: llvm.aarch64.neon.{faddv,
saddv, uaddv}.
Updates the tests from https://github.com/llvm/llvm-project/pull/125271
Commit: 3e436a8d18844c4e5bbac9c765573d61b2d29449
https://github.com/llvm/llvm-project/commit/3e436a8d18844c4e5bbac9c765573d61b2d29449
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/vector-reduce-fadd.ll
M llvm/test/Instrumentation/MemorySanitizer/vector-reduce-fmul.ll
Log Message:
-----------
[msan] Handle Intrinsic::vector_reduce_f{add,mul} (#125615)
This adds handleVectorReduceWithStarterIntrinsic() (similar to
handleVectorReduceIntrinsic but for intrinsics with an additional
starting parameter) and uses it to handle
Intrinsic::vector_reduce_f{add,mul}.
Updates the tests from https://github.com/llvm/llvm-project/pull/125597
Commit: 560e372555545542353a4b3a3d6bae82af2382f2
https://github.com/llvm/llvm-project/commit/560e372555545542353a4b3a3d6bae82af2382f2
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/Frontend/CompilerInvocation.cpp
Log Message:
-----------
[Frontend] Fix the build
This patch fixes:
clang/lib/Frontend/CompilerInvocation.cpp:3854:16: error:
enumeration value 'Ver20' not handled in switch [-Werror,-Wswitch]
Commit: 53d6e59b594639417cdbfcfa2d18cea64acb4009
https://github.com/llvm/llvm-project/commit/53d6e59b594639417cdbfcfa2d18cea64acb4009
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M lldb/test/API/python_api/interpreter_callback/TestCommandInterepterPrintCallback.py
Log Message:
-----------
[lldb] Check the command string in TestCommandInterepterPrintCallback
Now that we store the command in the CommandReturnObject (#125132) we
can check the command in the print callback.
Commit: 2eb44aa0a94a8d4230c1c9a0c306af16bfc92925
https://github.com/llvm/llvm-project/commit/2eb44aa0a94a8d4230c1c9a0c306af16bfc92925
Author: Bill Wendling <morbo at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/attr-counted-by.c
Log Message:
-----------
[Clang][counted-by] Bail out of visitor for LValueToRValue cast (#125571)
An LValueToRValue cast shouldn't be ignored, so bail out of the visitor
if we encounter one.
Commit: 005b23bb3bf0b943db3a6d12b01b2c01789341b8
https://github.com/llvm/llvm-project/commit/005b23bb3bf0b943db3a6d12b01b2c01789341b8
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/InterleavedAccessPass.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
A llvm/test/CodeGen/RISCV/rvv/vp-vector-interleaved-access.ll
Log Message:
-----------
[IA][RISCV] Support VP loads/stores in InterleavedAccessPass (#120490)
Teach InterleavedAccessPass to recognize the following patterns:
- vp.store an interleaved scalable vector
- Deinterleaving a scalable vector loaded from vp.load
Upon recognizing these patterns, IA will collect the interleaved /
deinterleaved operands and delegate them over to their respective
newly-added TLI hooks.
For RISC-V, these patterns are lowered into segmented loads/stores
Right now we only recognized power-of-two (de)interleave cases, in which
(de)interleave4/8 are synthesized from a tree of (de)interleave2.
---------
Co-authored-by: Nikolay Panchenko <nicholas.panchenko at gmail.com>
Commit: d13940ee263ff50b7a71e21424913cc0266bf9d4
https://github.com/llvm/llvm-project/commit/d13940ee263ff50b7a71e21424913cc0266bf9d4
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
Log Message:
-----------
[mlir][Vector] Teach how to materialize UB constant to Vector (#125596)
This PR adds support for UB constant materialization (i.e., generating
`ub::PoisonOp` to `VectorDialect::materializeConstant`. This was the
reason why the vector folders generating poison didn't work.
Commit: c8ca486573adc1affcedee02c6eedc49db3e9245
https://github.com/llvm/llvm-project/commit/c8ca486573adc1affcedee02c6eedc49db3e9245
Author: Soren Lassen <sorenlassen at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/include/mlir/IR/OpImplementation.h
M mlir/lib/AsmParser/AsmParserImpl.h
M mlir/lib/AsmParser/Parser.cpp
M mlir/lib/AsmParser/Parser.h
M mlir/lib/IR/AsmPrinter.cpp
M mlir/test/Bytecode/resources.mlir
M mlir/test/IR/dense-resource-elements-attr.mlir
M mlir/test/IR/pretty-resources-print.mlir
Log Message:
-----------
[MLIR] print/parse resource handle key quoted and escaped (#119746)
resource keys have the problem that you can’t parse them from mlir
assembly if they have special or non-printable characters, but nothing
prevents you from specifying such a key when you create e.g. a
DenseResourceElementsAttr, and it works fine in other ways, including
bytecode emission and parsing
this PR solves the parsing by quoting and escaping keys with special or
non-printable characters in mlir assembly, in the same way as symbols,
e.g.:
```
module attributes {
fst = dense_resource<resource_fst> : tensor<2xf16>,
snd = dense_resource<"resource\09snd"> : tensor<2xf16>
} {}
{-#
dialect_resources: {
builtin: {
resource_fst: "0x0200000001000200",
"resource\09snd": "0x0200000008000900"
}
}
#-}
```
by not quoting keys without special or non-printable characters, the
change is effectively backwards compatible
the change is tested by:
1. adding a test with a dense resource handle key with special
characters to `dense-resource-elements-attr.mlir`
2. adding special and unprintable characters to some resource keys in
the existing lit tests `pretty-resources-print.mlir` and
`mlir/test/Bytecode/resources.mlir`
Commit: bbc90f899a464048eb6fef2626fcaae66eecee06
https://github.com/llvm/llvm-project/commit/bbc90f899a464048eb6fef2626fcaae66eecee06
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/lib/Semantics/assignment.cpp
M flang/lib/Semantics/assignment.h
M flang/test/Semantics/cuf18.cuf
Log Message:
-----------
[flang][cuda] Relax semanctic check in cuf kernel and openacc compute constructs (#125750)
Previous patch was too restrictive and didn't take into account cuf
kernels and openacc compute constructs as being device context.
Commit: 837bf325528440ab0a73b31f810a39d6f8bec53e
https://github.com/llvm/llvm-project/commit/837bf325528440ab0a73b31f810a39d6f8bec53e
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[ValueTracking] Remove unused `V ^ Mask == C` from `computeKnownBitsFromCmp`. NFCI. (#125666)
I believe it is unused since we always convert it into `V == Mask ^ C`.
Code coverage:
https://dtcxzyw.github.io/llvm-opt-benchmark/coverage/data/zyw/opt-ci/actions-runner/_work/llvm-opt-benchmark/llvm-opt-benchmark/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp.html#L706
Commit: 3c2807624d2006fa8aacf9c6441c9a3034a52b44
https://github.com/llvm/llvm-project/commit/3c2807624d2006fa8aacf9c6441c9a3034a52b44
Author: Tom Tromey <tom at tromey.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
M llvm/test/DebugInfo/Generic/discriminated-union.ll
Log Message:
-----------
Allow 128-bit discriminants in DWARF variants (#125578)
If a variant part has a 128-bit discriminator, then
DwarfUnit::constructTypeDIE will assert. This patch fixes the problem
by allowing any size of integer to be used here. This is largely
accomplished by moving part of DwarfUnit::addConstantValue to a new
method.
Fixes #119655
Commit: fad6375428807fad466a176688e8f450ec4cab44
https://github.com/llvm/llvm-project/commit/fad6375428807fad466a176688e8f450ec4cab44
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/xor-icmps.ll
Log Message:
-----------
[InstCombine] Fold xor of bittests into bittest of xor'd value (#125676)
Motivating case:
https://github.com/llvm/llvm-project/blob/64927af52a3bedf2b20d6cdd98bb47d9bba630f9/llvm/lib/Analysis/ValueTracking.cpp#L8600-L8602
It is translated into `xor (X & 2) != 0, (Y & 2) != 0`.
Alive2: https://alive2.llvm.org/ce/z/dJehZ8
Commit: 704389591117e8e7e044cf2319be901e138266bb
https://github.com/llvm/llvm-project/commit/704389591117e8e7e044cf2319be901e138266bb
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
Log Message:
-----------
[VPlan] Remove dead VPBB argument from tryTo[Create]Widen[Recipe] (NFC)
The functions now use VPBuilder to insert recipes and the VPBB argument
is unused. Clean it up.
Commit: 1e7624ca4f3c9df14242b532eeb9497c67bc4074
https://github.com/llvm/llvm-project/commit/1e7624ca4f3c9df14242b532eeb9497c67bc4074
Author: Roland McGrath <mcgrathr at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libc/test/src/compiler/stack_chk_guard_test.cpp
Log Message:
-----------
[libc] Make LlvmLibcStackChkFail.Smash test compatible with asan, hwasan (#125763)
Previously this test was entirely disabled under asan, but not
hwasan. Instead of disabling the test, make the test compatible
with both asan and hwasan by disabling sanitizers only on the
subroutine that does the stack-smashing.
Commit: 692db7403b4ad10311b7e8c85a0fc7de5bc32017
https://github.com/llvm/llvm-project/commit/692db7403b4ad10311b7e8c85a0fc7de5bc32017
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/test/Transforms/InstSimplify/assume-non-zero.ll
M llvm/test/Transforms/InstSimplify/compare.ll
M llvm/test/Transforms/InstSimplify/shr-nop.ll
Log Message:
-----------
[ValueTracking] Precommit test for #118406
Commit: c798a5c4d5c3c8cb21e6001f505d8f44217c2244
https://github.com/llvm/llvm-project/commit/c798a5c4d5c3c8cb21e6001f505d8f44217c2244
Author: Sam Clegg <sbc at chromium.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/BinaryFormat/Wasm.h
M llvm/lib/Object/WasmObjectFile.cpp
A llvm/test/Object/Wasm/data-offsets.yaml
M llvm/test/ObjectYAML/wasm/global_section.yaml
A llvm/test/ObjectYAML/wasm/invalidate_data_offset.yaml
Log Message:
-----------
[Object][WebAssembly] Fix data segment offsets higher than 2^31 (#125739)
Fixes: #58555
Commit: 9ccf03861550d3bfceb828f1d1ae2210cf1eda5a
https://github.com/llvm/llvm-project/commit/9ccf03861550d3bfceb828f1d1ae2210cf1eda5a
Author: Akshay Deodhar <adeodhar at nvidia.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
A llvm/test/CodeGen/NVPTX/fence-cluster.ll
A llvm/test/CodeGen/NVPTX/fence-nocluster.ll
R llvm/test/CodeGen/NVPTX/fence-sm-90.ll
R llvm/test/CodeGen/NVPTX/fence.ll
A llvm/test/CodeGen/NVPTX/fence.py
M llvm/test/CodeGen/NVPTX/lit.local.cfg
Log Message:
-----------
[NVPTX] Support for fence.acquire and fence.release (#124865)
Adds codegen support for fence.acquire and fence.release, a script and
generated tests for all possible legal fences, and cleans up some
tablegen rules.
Commit: 806e35175bc66f002cc600ab23abe221c905ef98
https://github.com/llvm/llvm-project/commit/806e35175bc66f002cc600ab23abe221c905ef98
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M .github/workflows/build-ci-container.yml
Log Message:
-----------
workflows/build-ci-container: Fix container push (#125610)
After the changes in 89001d1de8ecf03c8820594ea03345b99560272a, the
container pushes failed, because it was attempting to push the same
container twice. This fixes the sed expression used to push the :latest
alias for each container.
Commit: c9fccbd90cadfad53d68a199cd11c7afc2d01378
https://github.com/llvm/llvm-project/commit/c9fccbd90cadfad53d68a199cd11c7afc2d01378
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-fminv.ll
Log Message:
-----------
[msan][NFCI] Add tests for Arm NEON floating-point min/max (vector) (#125729)
Currently handled (suboptimally) by handleUnknownInstruction:
- llvm.aarch64.neon.fmaxv (Floating-point Maximum (vector))
- llvm.aarch64.neon.fminv
- llvm.aarch64.neon.fmaxnmv (Floating-point Maximum Number across
Vector)
- llvm.aarch64.neon.fminnmv
(not to be mistaken with llvm.aarch64.neon.f{max,min}, which are
correctly handled by `maybeHandleSimpleNomemIntrinsic`)
Forked from llvm/test/CodeGen/AArch64/arm64-fminv.ll
Commit: 0572580dd040a81dc69b798e202550d51d17204a
https://github.com/llvm/llvm-project/commit/0572580dd040a81dc69b798e202550d51d17204a
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M .github/workflows/release-binaries.yml
Log Message:
-----------
workflows/release-binaries: Enable PGO (#124442)
Co-authored-by: Carlo Cabrera <github at carlo.cab>
Commit: 32be90db269a6dbb876b99f6ef3df6563f66315a
https://github.com/llvm/llvm-project/commit/32be90db269a6dbb876b99f6ef3df6563f66315a
Author: goldsteinn <35538541+goldsteinn at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/tools/clang-format/clang-format.el
Log Message:
-----------
[emacs][clang-format] Add elisp API for clang-format on git diffs (#112792)
New proposed function `clang-format-vc-diff`.
It is the same as calling `clang-format-region` on all diffs between
the content of a buffer-file and the content of the file at git
revision HEAD. This is essentially the same thing as:
`git-clang-format -f {filename}`
If the current buffer is saved.
The motivation is many project (LLVM included) both have code that is
non-compliant with there clang-format style and disallow unrelated
format diffs in PRs. This means users can't just run
`clang-format-buffer` on the buffer they are working on, and need to
manually go through all the regions by hand to get them
formatted. This is both an error prone and annoying workflow.
Commit: 724fde34a5e9ae36c687a6bfbd3a50af805a62d6
https://github.com/llvm/llvm-project/commit/724fde34a5e9ae36c687a6bfbd3a50af805a62d6
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vaddlv.ll
Log Message:
-----------
[msan][NFCI] Add tests for sum long across vector (#125761)
Currently handled (suboptimally) by handleUnknownInstruction:
- llvm.aarch64.neon.saddlv
- llvm.aarch64.neon.uaddlv
Forked from llvm/test/CodeGen/AArch64/arm64-vaddlv.ll
Commit: 8cc7f747cc61eddaec4cfdb9e981c15616a1e6bf
https://github.com/llvm/llvm-project/commit/8cc7f747cc61eddaec4cfdb9e981c15616a1e6bf
Author: Renaud Kauffmann <rkauffmann at nvidia.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M flang/test/Lower/CUDA/cuda-intrinsic.cuf
Log Message:
-----------
[flang][cuda][NFC] Adding missing tests (#125755)
I thought I had added tests together with
https://github.com/llvm/llvm-project/pull/125276
But there are still in my sandbox. These are the tests that were meant
for this PR.
Commit: 13432e07f65a0e0c2eaf8a0c2fc81aa7bd3ddd23
https://github.com/llvm/llvm-project/commit/13432e07f65a0e0c2eaf8a0c2fc81aa7bd3ddd23
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
Log Message:
-----------
[RISCV][TTI] Implement instruction cost for vp.splice. (#124221)
This patch implement the instruction cost for vp.splice intrinsic.
To support type-based query for LV, adding a constant index when quering
`getShuffleCost()`. We get the same cost no matter what
`index` is because it only change the cost from `vslide.vx` to
`vslide.vi` and
the cost of `vslide.vx` is same as `vslide.vi` in current
RISCV implementation.
Commit: 88e7b8b81c061113399637f936937ffaf5a9bc08
https://github.com/llvm/llvm-project/commit/88e7b8b81c061113399637f936937ffaf5a9bc08
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/div.ll
M llvm/test/Transforms/SLPVectorizer/X86/buildvector-with-reuses.ll
M llvm/test/Transforms/SLPVectorizer/X86/crash_clear_undefs.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduction-transpose.ll
M llvm/test/Transforms/SLPVectorizer/reduction-gather-non-scheduled-extracts.ll
M llvm/test/Transforms/SLPVectorizer/scalarazied-result.ll
Log Message:
-----------
[SLP]Use TTI::getScalarizationOverhead where possible
Better to use TTI::getScalarizationOverhead instead of
TTI::getVectorInstrCost to correctly calculate the costs of
buildvectors/extracts.
Reviewers: RKSimon
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/125725
Commit: b84ac58dce65ea94994c24f40a14208c47f8119f
https://github.com/llvm/llvm-project/commit/b84ac58dce65ea94994c24f40a14208c47f8119f
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
Log Message:
-----------
[ORC] Rename MachOCompactUnwindSectionName to MachOUnwindInfoSectionName.
a1ff2d18466 should have disambiguated MachOCompactUnwindInfoSectionName to
MachOUnwindInfoSectionName, given how it's used in MachOPlatform and its
value.
A MachOCompactUnwindSectionName variable with an appropriate value will be
added in an upcoming patch to re-enable compact-unwind support in JITLink.
Commit: 52b5e3638a39e977bebb491312a6f7c53314efec
https://github.com/llvm/llvm-project/commit/52b5e3638a39e977bebb491312a6f7c53314efec
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Log Message:
-----------
[ORC] Fix eh-frame record target finding in MachOPlatform.
Unwind-info records only have one keep-alive edge to their target function, but
eh-frame records may have multiple edges (to the CIE, function, personality, and
lsda). We need to identify the target-function edge differently for each section
type.
Commit: e8d437f827144061d051ecf199d4075bef317285
https://github.com/llvm/llvm-project/commit/e8d437f827144061d051ecf199d4075bef317285
Author: Ben Jackson <puremourning at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M lldb/source/API/SBTarget.cpp
A lldb/test/API/python_api/watchpoint/TestWatchpointRead.py
M lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
Log Message:
-----------
[lldb] WatchAddress ignores modify option (#124847)
The WatchAddress API includes a flag to indicate if watchpoint should be
for read, modify or both. This API uses 2 booleans, but the 'modify'
flag was ignored and WatchAddress unconditionally watched write
(actually modify).
We now only watch for modify when the modify flag is true.
---
The included test fails prior to this patch and succeeds after. That is
previously specifying `False` for `modify` would still stop on _write_,
but after the patch correctly only stops on _read_
Commit: 66ce716676c49d93d8a6c2ed557f182befaa4ded
https://github.com/llvm/llvm-project/commit/66ce716676c49d93d8a6c2ed557f182befaa4ded
Author: Roland McGrath <mcgrathr at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M libc/test/src/compiler/stack_chk_guard_test.cpp
Log Message:
-----------
Revert "[libc] Make LlvmLibcStackChkFail.Smash test compatible with asan, hwasan" (#125785)
Reverts llvm/llvm-project#125763
This causes failures in asan. More thought is needed.
Commit: 7dca2c628c12c8e32c36ded864f93628d40ad13d
https://github.com/llvm/llvm-project/commit/7dca2c628c12c8e32c36ded864f93628d40ad13d
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
M llvm/test/Transforms/SLPVectorizer/NVPTX/vectorizable-intrinsic.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls.ll
M llvm/test/Transforms/SLPVectorizer/X86/call.ll
M llvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
M llvm/test/Transforms/SLPVectorizer/X86/intrinsic.ll
M llvm/test/Transforms/SLPVectorizer/X86/intrinsic_with_scalar_param.ll
M llvm/test/Transforms/SLPVectorizer/X86/powi-regression.ll
M llvm/test/Transforms/SLPVectorizer/X86/powi.ll
M llvm/test/Transforms/SLPVectorizer/X86/sin-sqrt.ll
Log Message:
-----------
[SLP]Gather scalarized calls
If the calls won't be vectorized, but will be scalarized after
vectorization, they should be build as buildvector nodes, not vector
nodes. Vectorization of such calls leads to incorrect cost estimation,
does not allow to calculate correctly spills costs.
Reviewers: lukel97, preames
Reviewed By: preames
Pull Request: https://github.com/llvm/llvm-project/pull/125070
Commit: 4055be55b8814b31256ca3c8840bc73bbe5e3d0f
https://github.com/llvm/llvm-project/commit/4055be55b8814b31256ca3c8840bc73bbe5e3d0f
Author: Pranav Kant <prka at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/test/CodeGen/X86/avx-cxx-record.cpp
Log Message:
-----------
Fix broken clang codegen test (avx-cxx-record.cpp) (#125787)
Fixes e8a486ea97895a18e1bba75431d37d9758886084
Commit: 48415777ea6a0367800b3b37493263ff613f57f6
https://github.com/llvm/llvm-project/commit/48415777ea6a0367800b3b37493263ff613f57f6
Author: Sam Clegg <sbc at chromium.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/BinaryFormat/Wasm.h
M llvm/lib/Object/WasmObjectFile.cpp
R llvm/test/Object/Wasm/data-offsets.yaml
M llvm/test/ObjectYAML/wasm/global_section.yaml
R llvm/test/ObjectYAML/wasm/invalidate_data_offset.yaml
Log Message:
-----------
Revert "[Object][WebAssembly] Fix data segment offsets higher than 2^31 (#125739)" (#125786)
This reverts commit c798a5c4d5c3c8cb21e6001f505d8f44217c2244.
This broke bunch of test the emscripten side. Reverting while we
investigate.
Commit: c67148d8460c7c106c9137b3d4dfdf989de82a4a
https://github.com/llvm/llvm-project/commit/c67148d8460c7c106c9137b3d4dfdf989de82a4a
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/LinkGraphLinkingLayer.cpp
M llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
Log Message:
-----------
[ORC] Add note to call endSession to assertion messages.
The most likely cause of these assertions is a failure to call endSession. The
new message should clients spot the issue more easily.
Commit: 7a52b93837123488cd86151f82655979e1397453
https://github.com/llvm/llvm-project/commit/7a52b93837123488cd86151f82655979e1397453
Author: Steven Wu <stevenwu at apple.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h
M clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
A clang/test/ClangScanDeps/tu-buffer.c
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-scan-deps/Opts.td
Log Message:
-----------
[DependencyScanning] Add ability to scan TU with a buffer input (#125111)
Update Dependency scanner so it can scan the dependency of a TU with
a provided buffer rather than relying on the on disk file system to
provide the input file.
Commit: 65683b081fd049750e57d95a311575a3ba324344
https://github.com/llvm/llvm-project/commit/65683b081fd049750e57d95a311575a3ba324344
Author: Elvis Wang <elvis.wang at sifive.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
Log Message:
-----------
[RISCV][TTI] Fix test fails for #124221 NFC. (#125792)
Commit: 4c3169d24c9ed5851799af509b295f8723ffd627
https://github.com/llvm/llvm-project/commit/4c3169d24c9ed5851799af509b295f8723ffd627
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/EmulateWideInt.cpp
M mlir/test/Dialect/Arith/emulate-wide-int-unsupported.mlir
Log Message:
-----------
[mlir][arith] EmulateWideInt only support `vector.print` (#124510)
This PR fixes a bug where dynamically legal operations were added for
all vector operations, but only `vector.print` was supported, leading to
a crash. Fixes #73381.
Commit: 5f247e76dfa69d487b82d58c05ef7a68bcc602c9
https://github.com/llvm/llvm-project/commit/5f247e76dfa69d487b82d58c05ef7a68bcc602c9
Author: Mingming Liu <mingmingl at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/StaticDataSplitter.cpp
Log Message:
-----------
[NFC]Refactor static data splitter (#125758)
This is a split of https://github.com/llvm/llvm-project/pull/125756
Commit: 642288247d0eb59069797f15cdd0f51b41d558c6
https://github.com/llvm/llvm-project/commit/642288247d0eb59069797f15cdd0f51b41d558c6
Author: Eugene Epshteyn <59377284+eugeneepshteyn at users.noreply.github.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Common/Fortran-features.h
M flang/lib/Common/Fortran-features.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/implicit17.f90
Log Message:
-----------
[flang] Add support for -fimplicit-none-ext option (#125248)
When -fimplicit-none-ext is passed, flang behaves as if "implicit
none(external)" was specified for all relevant constructs in Fortran
source file.
Note: implicit17.f90 was based on implicit07.f90 with `implicit
none(external)` removed and `-fimplicit-none-ext` added.
Commit: c6eef00a096e6f3176b8fce84ce4cef6c6e2af5f
https://github.com/llvm/llvm-project/commit/c6eef00a096e6f3176b8fce84ce4cef6c6e2af5f
Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/canonicalize.mlir
Log Message:
-----------
[mlir][Vector] Add `vector.shuffle` fold for poison inputs (#125608)
https://github.com/llvm/llvm-project/pull/124863 added folding support
for poison indices to `vector.shuffle`. This PR adds support for folding
`vector.shuffle` ops with one or two poison input vectors.
Commit: 375df714db8bfd3755e69af36d5ab7ae51988f0a
https://github.com/llvm/llvm-project/commit/375df714db8bfd3755e69af36d5ab7ae51988f0a
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/lib/Target/Cpp/TranslateToCpp.cpp
M mlir/test/Target/Cpp/expressions.mlir
Log Message:
-----------
[emitc] Fix precedence when emit emit.expression (#124087)
Fixes https://github.com/llvm/llvm-project/issues/124086.
Commit: 19a41358ff859f8d4d71659ea2715f84b682502c
https://github.com/llvm/llvm-project/commit/19a41358ff859f8d4d71659ea2715f84b682502c
Author: Luke Lau <luke at igalia.com>
Date: 2025-02-05 (Wed, 05 Feb 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-instrs.ll
Log Message:
-----------
[RISCV][VLOPT] Add support for Single-Width Floating-Point Fused Multiply-Add Instructions (#125652)
These instructions have EEW=SEW for all operands.
Commit: 9de581b206eceac331aa26e13b62a9a35bfd406f
https://github.com/llvm/llvm-project/commit/9de581b206eceac331aa26e13b62a9a35bfd406f
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Log Message:
-----------
[ORC] Moch MachOPlatform unwind-info fixes.
Some eh-frame records are CIEs, which don't point to functions. We need to skip
these records. This patch reuses EHFrameCFIBlockInspector to identify function
targets, rather than a custom loop. Any performance impact will be minimal, and
essentially irrelevant once compact-unwind support re-lands (since at that
point we'll discard most eh-frame records).
For unwind-info sections: don't assume one block per record: the unwind-info
section packs all records into a single block.
Commit: e433fc3ce3155860e5f07c8bbc790b117a45e33f
https://github.com/llvm/llvm-project/commit/e433fc3ce3155860e5f07c8bbc790b117a45e33f
Author: Shubham Sandeep Rastogi <srastogi22 at apple.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/include/llvm/Passes/DroppedVariableStats.h
Log Message:
-----------
[NFC] Add error checking for InlinedAts.
The DroppedVariableStats::calculateDroppedStatsAndPrint should check if
it's InlinedAts stack contains the the function name that is being
accessed to make sure that a pass did not create a new function
declaration which may then lead to a crash. For example, in hot-cold
splitting, the Module before the pass will not contain the newly created
cold function and can cause a crash when trying to access the InlinedAts
stack with the function name of the newly created cold function.
Commit: fc4210fb6c5a42b3838091a97a00ed1fba042ef0
https://github.com/llvm/llvm-project/commit/fc4210fb6c5a42b3838091a97a00ed1fba042ef0
Author: Konstantin Zhuravlyov <kzhuravl_dev at outlook.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
AMDGPU/Docs: Fix target properties for gfx9-4-generic (#125593)
gfx9-4-generic has architected flat scratch, not absolute
Commit: 6b3cbf2a0f9bbec20b55b966c876b2f461593713
https://github.com/llvm/llvm-project/commit/6b3cbf2a0f9bbec20b55b966c876b2f461593713
Author: Philip Reames <preames at rivosinc.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-reverse.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
Log Message:
-----------
[RISCV] Decompose locally repeating shuffles (without exact VLEN) (#125735)
High LMUL shuffles are expensive on typical SIMD implementations.
Without exact vector length knowledge, we struggle to map elements
within the vector to the register within the vector register group.
However, there are some patterns where we can perform a vector length
agnostic (VLA) shuffle by leveraging knowledge of the pattern performed
even without the ability to map individual elements to registers. An
existing in tree example is vector reverse.
This patch introduces another such case. Specifically, if we have a
shuffle where the a local rearrangement of elements is happening within
a 128b (really zvlNb) chunk, and we're applying the same pattern to each
chunk, we can decompose a high LMUL shuffle into a linear number of m1
shuffles. We take advantage of the fact the tail of the operation is
undefined, and repeat the pattern for all elements in the source
register group - not just the ones the fixed vector type covers.
This is an optimization for typical SIMD vrgather designs, but could be
a pessimation on hardware for which vrgather's execution cost is not
independent of the runtime VL.
Commit: 54acda2e0ebdf240deeef4d51fc3240c5548dbb7
https://github.com/llvm/llvm-project/commit/54acda2e0ebdf240deeef4d51fc3240c5548dbb7
Author: Qiongsi Wu <qiongsiwu at gmail.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h
M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
A clang/test/ClangScanDeps/modules-context-hash-cwd.c
M clang/test/ClangScanDeps/working-dir.m
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
Log Message:
-----------
[clang module] Current Working Directory Pruning (#124786)
When computing the context hash, `clang` always includes the compiler's
working directory. This can lead to situations when the only difference
between two compilations is the working directory, different module
variants are generated. These variants are redundant. This PR implements
an optimization that ignores the working directory when computing the
context hash when safe.
Specifically, `clang` checks if it is safe to ignore the working
directory in `isSafeToIgnoreCWD`. The check involves going through
compile command options to see if any paths specified are relative. The
definition of relative path used here is that the input path is not
empty, and `llvm::sys::path::is_absolute` is false. If all the paths
examined are not relative, `clang` considers it safe to ignore the
current working directory and does not consider the working directory
when computing the context hash.
Commit: 048f533244d537a1451ab2d2979faa762252d37d
https://github.com/llvm/llvm-project/commit/048f533244d537a1451ab2d2979faa762252d37d
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/lib/Target/Hexagon/BitTracker.h
Log Message:
-----------
[Hexagon] Fix -Wuninitialized warning (#125565)
`gcc (GCC) 14.2.1 20240910` reports the warning below on the baseline,
this change fixes the warning.
In file included from
/home/user/CLionProjects/llvm-project/llvm/lib/Target/Hexagon/BitTracker.cpp:55:
/home/user/CLionProjects/llvm-project/llvm/lib/Target/Hexagon/BitTracker.h:
In constructor ‘llvm::BitTracker::UseQueueType::UseQueueType()’:
/home/user/CLionProjects/llvm-project/llvm/lib/Target/Hexagon/BitTracker.h:75:27:
warning: member ‘llvm::BitTracker::UseQueueType::Dist’ is used
uninitialized [-Wuninitialized]
75 | UseQueueType() : Uses(Dist) {}
| ^~~~
Fixes #125545
Commit: 05a09e6e559e8253d49cc61052711f0c200129bf
https://github.com/llvm/llvm-project/commit/05a09e6e559e8253d49cc61052711f0c200129bf
Author: Uday Bondhugula <uday at polymagelabs.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Analysis/Utils.h
M mlir/lib/Dialect/Affine/Analysis/Utils.cpp
M mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp
M mlir/test/Dialect/Affine/loop-fusion-3.mlir
M mlir/test/Dialect/Affine/loop-fusion-inner.mlir
M mlir/test/Dialect/Affine/loop-fusion.mlir
Log Message:
-----------
[MLIR][Affine] Extend/generalize MDG to properly add edges between non-affine ops (#125451)
Drop arbitrary checks and hacks from affine fusion MDG construction and
handle all ops using memory read/write effects. This has been a long
pending change and it now makes affine fusion more powerful in the
presence of non-affine ops and does not limit fusion in parts of the
block where it is feasible simply because of non-affine ops elsewhere or
intervening non-affine users.
Populate memref read and write ops in non-affine region holding ops and
non-affine ops at the top level of the Block properly; add the
appropriate edges to MDG. Use memory read-write effects and drop
assumptions and special handling of ops due to historic reasons.
Update MDG to drop unnecessary "unhandled region" hack. This hack is no
longer needed with the update to fully and properly construct the MDG.
MDG edges now capture dependences between nodes completely. Drop
non-affine users check. With the MDG generalization to properly include
edges
between non-affine nodes/operations, the non-affine users on path check
in fusion is no longer needed. Add more test cases to exercise MDG
generalization.
Drop unnecessary failure when encountering side-effect-free affine.if
ops.
Improve documentation on MDG.
Commit: 0815b0e7ce4da6486a94e4634823667c54d9168c
https://github.com/llvm/llvm-project/commit/0815b0e7ce4da6486a94e4634823667c54d9168c
Author: Luke Lau <luke at igalia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/test/CodeGen/RISCV/rvv/fmaximum-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fminimum-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
M llvm/test/CodeGen/RISCV/rvv/setcc-fp.ll
M llvm/test/CodeGen/RISCV/rvv/vfadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfdiv-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmax-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmin-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmul-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfsub-sdnode.ll
Log Message:
-----------
[RISCV] Don't custom lower direct fp_extends where possible (#125644)
This avoids lowering scalable fp_extends that don't need multiple
extends (i.e. f16->f32, f32->f64) to _vl nodes, but converts them back
during DAG preprocessing so we don't need to add any more patterns.
Keeping the nodes in their generic SDNode form matches more splat
patterns
Commit: 12fff8db4bec295951257c83b7135d9046c84c09
https://github.com/llvm/llvm-project/commit/12fff8db4bec295951257c83b7135d9046c84c09
Author: Paul Carabas <paul-ioan.carabas at intel.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
M mlir/test/Target/LLVMIR/Import/intrinsic.ll
M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
Log Message:
-----------
[mlir][LLVMIR] Add support for tan intrinsic op (#125748)
This patch adds support for Tan trig. function intrinsic in LLVM dialect
& adds missing import/export tests for Sin
Commit: 3ac1cb6d3028b9f95a61c2612a13306532ddca14
https://github.com/llvm/llvm-project/commit/3ac1cb6d3028b9f95a61c2612a13306532ddca14
Author: Thurston Dang <thurston at google.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/scmp.ll
A llvm/test/Instrumentation/MemorySanitizer/ucmp.ll
Log Message:
-----------
[msan][NFCI] Add llvm.[us]cmp (starship operator) tests (#125790)
llvm.[us]cmp is correctly handled heuristically when each parameter is
the same as the return type e.g.,
call i8 @llvm.ucmp.i8.i8(i8 %x, i8 %y)
but handled incorrectly by visitInstruction when the return type is
different e.g.,
call i8 @llvm.ucmp.i8.i62(i62 %x, i62 %y)
call <4 x i8> @llvm.ucmp.v4i8.v4i32(<4 x i32> %x, <4 x i32> %y)
Forked from llvm/test/CodeGen/X86/[us]cmp.ll
Commit: 51b0517a5e44ab3864551035f0df52ab33e2f74c
https://github.com/llvm/llvm-project/commit/51b0517a5e44ab3864551035f0df52ab33e2f74c
Author: Luke Lau <luke at igalia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/test/CodeGen/RISCV/rvv/vreductions-fp-vp.ll
Log Message:
-----------
[RISCV] Don't check extop VL in vfwred{u,o}sum patterns (#125799)
Because riscv_fpextend_vl doesn't have a passthru operand the tail
elements are undef, so we can treat them as if they were active.
Relaxing this allows us to match widening reductions where the fpextend
isn't a VP intrinsic.
This same reasoning is already used for riscv_fpextend_vl in
RISCVInstrInfoVSDPatterns.td
Commit: 20637e7fa7649b181333e2b07b0afd1aab37128e
https://github.com/llvm/llvm-project/commit/20637e7fa7649b181333e2b07b0afd1aab37128e
Author: Luke Lau <luke at igalia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
Log Message:
-----------
[RISCV] Sink splatted fpext operands (#125800)
We sink splatted operands in codegenprepare to help match .vx/.vf
patterns. This extends it to also splat any fpext so that we can match
widening vfwadd.vf/vfwadd.wf patterns too.
Some instructions don't have .wf forms so there's no benefit to sinking
the fpext. For simplicity this sinks them anyway and lets
earlymachine-licm hoist them back out.
Commit: 79762a10e454f7d966e131ab9109c4444fe976e6
https://github.com/llvm/llvm-project/commit/79762a10e454f7d966e131ab9109c4444fe976e6
Author: Alex Bradbury <asb at igalia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/test/Transforms/LoopIdiom/memset-pattern-tbaa.ll
M llvm/test/Transforms/LoopIdiom/struct_pattern.ll
M llvm/test/Transforms/LoopIdiom/unroll-custom-dl.ll
M llvm/test/Transforms/LoopIdiom/unroll.ll
Log Message:
-----------
[test][LoopIidiom][NFC] Add --check-globals to several tests
This reduces the diff for upcoming changes. In some cases there were
already CHECK lines for the globals, but re-running update_test_check.py
deletes them without --check-globals being added. For
memset-pattern-tbaa.ll, the globals weren't checked but should have
been.
Commit: 31bd82cdcc37df0ce19c6cf771d89a2afb80fa89
https://github.com/llvm/llvm-project/commit/31bd82cdcc37df0ce19c6cf771d89a2afb80fa89
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M llvm/utils/TableGen/DAGISelMatcherOpt.cpp
Log Message:
-----------
[TableGen] Don't try to move CheckOpcode before CheckType/CheckChildType in ContractNodes. NFC
It appears that CheckOpcode is already emitted before CheckType so
this hasn't been doing anything on any in tree targets.
Commit: d5a2638ae98746d9382231a0f04b11a5415b5e8e
https://github.com/llvm/llvm-project/commit/d5a2638ae98746d9382231a0f04b11a5415b5e8e
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp
Log Message:
-----------
[webkit.UncountedLambdaCapturesChecker] Fix a bug that the checker didn't take the object pointer into account. (#125662)
When a callee is a method call (e.g. calling a lambda), we need to skip
the object pointer to match the parameter list with the call arguments.
This manifests as a bug that the checker erroneously generate a warning
for a lambda capture (L1) which is passed to a no-escape argument of
another lambda (L2).
Commit: b85e71b9f2a961fd54777b5aef43b75d8a836214
https://github.com/llvm/llvm-project/commit/b85e71b9f2a961fd54777b5aef43b75d8a836214
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/CodeGen/CGStmt.cpp
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/lib/IR/IntrinsicInst.cpp
Log Message:
-----------
[llvm] Create() functions for ConvergenceControlInst (#125627)
Commit: a47c35a699ae29e63cfdffd3679639125219d175
https://github.com/llvm/llvm-project/commit/a47c35a699ae29e63cfdffd3679639125219d175
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MachineScheduler.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/CodeGen/TargetPassConfig.h
M llvm/include/llvm/Target/TargetMachine.h
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/WindowScheduler.cpp
M llvm/lib/Target/AArch64/AArch64MacroFusion.h
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.h
M llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
M llvm/lib/Target/AMDGPU/R600TargetMachine.cpp
M llvm/lib/Target/AMDGPU/R600TargetMachine.h
M llvm/lib/Target/ARM/ARMLatencyMutations.h
M llvm/lib/Target/ARM/ARMMacroFusion.h
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.h
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
M llvm/lib/Target/Hexagon/HexagonTargetMachine.h
M llvm/lib/Target/PowerPC/PPCMacroFusion.h
M llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
M llvm/lib/Target/PowerPC/PPCTargetMachine.h
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.h
M llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
M llvm/lib/Target/SystemZ/SystemZTargetMachine.h
M llvm/lib/Target/X86/X86MacroFusion.h
M llvm/lib/Target/X86/X86TargetMachine.cpp
M llvm/lib/Target/X86/X86TargetMachine.h
Log Message:
-----------
[CodeGen] Move MISched target hooks into TargetMachine (#125700)
The createSIMachineScheduler & createPostMachineScheduler
target hooks are currently placed in the PassConfig interface.
Moving it out to TargetMachine so that both legacy and
the new pass manager can effectively use them.
Commit: c5a9a72b3cd118a23193d01bf9393fbf1d4b90ae
https://github.com/llvm/llvm-project/commit/c5a9a72b3cd118a23193d01bf9393fbf1d4b90ae
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/AST/ASTContext.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
A clang/test/Modules/pr125521.cppm
Log Message:
-----------
[C++20] [Modules] Don't diagnose duplicated friend declarations between modules incorrectly
Close https://github.com/llvm/llvm-project/issues/125521
We shouldn't use the ownership information for friend declarations to do
anything.
Commit: 1d22318b81b24817d2887adc6c3e586fdcf3a100
https://github.com/llvm/llvm-project/commit/1d22318b81b24817d2887adc6c3e586fdcf3a100
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/lib/CodeGen/MachineVerifier.cpp
Log Message:
-----------
[MachineVerifier][NewPM] Add method to run MF through verifier. (#125701)
Commit: 68e7df395ee076f0c56c27aaf67152361dc00c75
https://github.com/llvm/llvm-project/commit/68e7df395ee076f0c56c27aaf67152361dc00c75
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/MachineScheduler.cpp
Log Message:
-----------
[CodeGen][MachineScheduler] Remove the unimplemented print method. (#125702)
Commit: 1d8c8d5dd0b73ee4285ab03e5ffa9bcc62a4a4d1
https://github.com/llvm/llvm-project/commit/1d8c8d5dd0b73ee4285ab03e5ffa9bcc62a4a4d1
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
A llvm/test/CodeGen/RISCV/memmove.ll
Log Message:
-----------
[RISCV] Add test coverage for memmove (#120232)
Commit: 5aa4979c47255770cac7b557f3e4a980d0131d69
https://github.com/llvm/llvm-project/commit/5aa4979c47255770cac7b557f3e4a980d0131d69
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MachineScheduler.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/RegAllocBasic.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/test/CodeGen/AArch64/a55-fuse-address.mir
M llvm/test/CodeGen/AArch64/ampere1-sched-add.mir
M llvm/test/CodeGen/AArch64/cluster-frame-index.mir
M llvm/test/CodeGen/AArch64/dump-reserved-cycles.mir
M llvm/test/CodeGen/AArch64/dump-schedule-trace.mir
M llvm/test/CodeGen/AArch64/force-enable-intervals.mir
M llvm/test/CodeGen/AArch64/machine-scheduler.mir
M llvm/test/CodeGen/AArch64/macro-fusion-addsub-2reg-const1.mir
M llvm/test/CodeGen/AArch64/macro-fusion-last.mir
M llvm/test/CodeGen/AArch64/misched-branch-targets.mir
M llvm/test/CodeGen/AArch64/misched-bundle.mir
M llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir
M llvm/test/CodeGen/AArch64/misched-detail-resource-booking-02.mir
M llvm/test/CodeGen/AArch64/misched-fusion-arith-logic.mir
M llvm/test/CodeGen/AArch64/misched-fusion-cmp.mir
M llvm/test/CodeGen/AArch64/misched-fusion-crypto-eor.mir
M llvm/test/CodeGen/AArch64/misched-move-imm.mir
M llvm/test/CodeGen/AArch64/misched-predicate-virtreg.mir
M llvm/test/CodeGen/AArch64/misched-sort-resource-in-trace.mir
M llvm/test/CodeGen/AArch64/sched-postidxalias.mir
M llvm/test/CodeGen/AArch64/sched-print-cycle.mir
M llvm/test/CodeGen/AArch64/scheduledag-constreg.mir
M llvm/test/CodeGen/AArch64/sve-aliasing.mir
M llvm/test/CodeGen/AMDGPU/at-least-one-def-value-assert.mir
M llvm/test/CodeGen/AMDGPU/cluster-flat-loads.mir
M llvm/test/CodeGen/AMDGPU/dbg-value-ends-sched-region.mir
M llvm/test/CodeGen/AMDGPU/debug-value-scheduler-crash.mir
M llvm/test/CodeGen/AMDGPU/debug-value-scheduler-liveins.mir
M llvm/test/CodeGen/AMDGPU/debug-value-scheduler.mir
M llvm/test/CodeGen/AMDGPU/flat-load-clustering.mir
M llvm/test/CodeGen/AMDGPU/high-RP-reschedule.mir
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-debug.mir
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
M llvm/test/CodeGen/AMDGPU/macro-fusion-cluster-vcc-uses.mir
M llvm/test/CodeGen/AMDGPU/sched-assert-dead-def-subreg-use-other-subreg.mir
M llvm/test/CodeGen/AMDGPU/sched-assert-onlydbg-value-empty-region.mir
M llvm/test/CodeGen/AMDGPU/sched-barrier-hang-weak-dep.mir
M llvm/test/CodeGen/AMDGPU/sched-crash-dbg-value.mir
M llvm/test/CodeGen/AMDGPU/sched-handleMoveUp-subreg-def-across-subreg-def.mir
M llvm/test/CodeGen/AMDGPU/schedule-barrier-fpmode.mir
M llvm/test/CodeGen/AMDGPU/schedule-barrier.mir
M llvm/test/CodeGen/AMDGPU/sreg-xnull-regclass-bitwidth.mir
M llvm/test/CodeGen/ARM/cortex-m7-wideops.mir
M llvm/test/CodeGen/ARM/misched-branch-targets.mir
M llvm/test/CodeGen/PowerPC/topdepthreduce-postra.mir
M llvm/test/CodeGen/RISCV/misched-postra-direction.mir
Log Message:
-----------
CodeGen][NewPM] Port MachineScheduler to NPM. (#125703)
Commit: 53672671bdba1b8ee09b2819b71872b7319b5190
https://github.com/llvm/llvm-project/commit/53672671bdba1b8ee09b2819b71872b7319b5190
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/abd.ll
Log Message:
-----------
[RISCV] Enable RVV ABD tests with i64 elements (#124246)
The comment says it will crash but the crash has been fixed.
Commit: 8d037b9256298ceaccbfcc1a2ed42a81ba4ee073
https://github.com/llvm/llvm-project/commit/8d037b9256298ceaccbfcc1a2ed42a81ba4ee073
Author: Mel Chen <mel.chen at sifive.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-call-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-cast-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics-reduction.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-select-intrinsics.ll
Log Message:
-----------
[LV][EVL] Skip tryAddExplicitVectorLength for plans with scalar VF. (#125497)
The plans with scalar VF should not be transformed the plans folded by
EVL.
TODO: Move the scalar VF checking into `LoopVectorizationCostModel
::foldTailWithEVL()`.
Commit: e90f9b4027c8781785e8ee1a0342b16963f56b11
https://github.com/llvm/llvm-project/commit/e90f9b4027c8781785e8ee1a0342b16963f56b11
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Disasm.cpp
Log Message:
-----------
[clang][bytecode] Print desriptor PrimType in dump() (#125726)
Commit: 16c721f2d1bf5ebbde1b3df103761b45f266a5ec
https://github.com/llvm/llvm-project/commit/16c721f2d1bf5ebbde1b3df103761b45f266a5ec
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Function.h
M clang/lib/AST/ByteCode/InterpFrame.cpp
M clang/test/AST/ByteCode/cxx20.cpp
Log Message:
-----------
[clang][bytecode] Destroy local variables in reverse order (#125727)
See the attached test case.
Commit: 44f638f88e1dc867bcd973b87bac1eda800b3b7c
https://github.com/llvm/llvm-project/commit/44f638f88e1dc867bcd973b87bac1eda800b3b7c
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
A llvm/include/llvm/CodeGen/PostRASchedulerList.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/PostRASchedulerList.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/test/CodeGen/AMDGPU/bundle-latency.mir
M llvm/test/CodeGen/AMDGPU/cluster-flat-loads-postra.mir
M llvm/test/CodeGen/AMDGPU/hazard-kill.mir
M llvm/test/CodeGen/AMDGPU/misched-killflags.mir
M llvm/test/CodeGen/AMDGPU/movrels-bug.mir
M llvm/test/CodeGen/AMDGPU/post-ra-sched-kill-bundle-use-inst.mir
M llvm/test/CodeGen/ARM/vldmia-sched.mir
M llvm/test/CodeGen/Hexagon/bank-conflict-load.mir
M llvm/test/CodeGen/Hexagon/bank-conflict.mir
M llvm/test/CodeGen/X86/post-ra-sched-with-debug.mir
M llvm/test/CodeGen/X86/pr27681.mir
Log Message:
-----------
CodeGen][NewPM] Port PostRAScheduler to NPM. (#125798)
Commit: 409fa785d99b3e9f8210b72641d58947e6687fb1
https://github.com/llvm/llvm-project/commit/409fa785d99b3e9f8210b72641d58947e6687fb1
Author: Albert Huang <Albert.huang at armchina.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/ARM/ARMProcessors.td
M llvm/test/CodeGen/Thumb2/avoidmuls.mir
Log Message:
-----------
[ARM] Add "avoidmuls" to STAR-MC1 also (#123706)
PR #112540 as the reference.
Commit: 646d352ab0d0a9cfafa3f2c9c415b5773834ad5b
https://github.com/llvm/llvm-project/commit/646d352ab0d0a9cfafa3f2c9c415b5773834ad5b
Author: Amit Kumar Pandey <137622562+ampandey-1995 at users.noreply.github.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
A clang/test/Driver/amdgpu-openmp-sanitize-options.c
Log Message:
-----------
[OpenMP][ASan] Enable ASan Instrumentation for AMDGPUOpenMPToolChain. (#124754)
Enable device code ASan instrumentation for openmp offload applications
using option '-fsanitize=address'.
Commit: 0074a462f1e62ed1df4ac13107043305ba7b8781
https://github.com/llvm/llvm-project/commit/0074a462f1e62ed1df4ac13107043305ba7b8781
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
A llvm/test/Transforms/LoopInterchange/no-dependence-info.ll
M llvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
M llvm/test/Transforms/LoopInterchange/pr43326.ll
M llvm/test/Transforms/LoopInterchange/pr48212.ll
M llvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
Log Message:
-----------
[LoopInterchange] Hoist isComputableLoopNest() in the control flow (#124247)
The profiling of the LLVM Test-suite reveals that a significant portion,
specifically 14,090 out of 139,323, loop nests were identified as
non-viable candidates for transformation, leading to the transform
exiting from isComputableLoopNest() without any action.
More importantly, dependence information was computed for these loop
nests before reaching the function isComputableLoopNest(), which does
not require DI and relies solely on scalar evolution (SE).
To enhance compile-time efficiency, this patch moves the call to
isComputableLoopNest() earlier in the control-flow, thereby avoiding
unnecessary dependence calculations.
The impact of this change is evident on the compile-time-tracker, with
the overall geometric mean improvement recorded at 0.11%, while the
lencode benchmark gets a more substantial benefit of 0.44%.
This improvement can be tracked in the isc-ln-exp-2 branch under my
repo.
Commit: ad38c4c625765c0319433b8c87852fbe40a1f7fd
https://github.com/llvm/llvm-project/commit/ad38c4c625765c0319433b8c87852fbe40a1f7fd
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
Log Message:
-----------
[lldb] Document lldb `x` packet deprecation. (#125682)
Commit: 84b0c128a751acfbf5b439edc724ba27d1da653e
https://github.com/llvm/llvm-project/commit/84b0c128a751acfbf5b439edc724ba27d1da653e
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/include/clang/Basic/TargetInfo.h
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/ARM.h
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/ARM.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/test/Driver/aarch64-ptrauth.c
A clang/test/Frontend/aarch64-ignore-branch-protection-attribute.c
Log Message:
-----------
[PAC] Do not support some values of branch-protection with ptrauth-returns (#125280)
This patch does two things.
1. Previously, when checking driver arguments, we emitted an error for
unsupported values of `-mbranch-protection` when using pauthtest ABI.
The reason for that was ptrauth-returns being enabled as part of
pauthtest. This patch changes the check against pauthtest to a check
against ptrauth-returns.
2. Similarly, check against values of the following function attribute
which are unsupported with ptrauth-returns:
`__attribute__((target("branch-protection=XXX`. Note that existing
`validateBranchProtection` function is used, and current behavior is to
ignore the unsupported attribute value, so no error is emitted.
Commit: eae6d6d18bd4d9e7dfe5fc1206d23d8ef663c8c7
https://github.com/llvm/llvm-project/commit/eae6d6d18bd4d9e7dfe5fc1206d23d8ef663c8c7
Author: Lang Hames <lhames at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/test/Interpreter/simple-exception.cpp
M compiler-rt/lib/orc/macho_platform.cpp
A 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/MachOObjectFormat.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h
A llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h
M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
A llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.cpp
A 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/EHFrameRegistrationPlugin.cpp
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
A llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp
A llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp
M llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
M llvm/test/lit.cfg.py
Log Message:
-----------
Re-reapply "[ORC] Enable JIT support for the compact-unwind..." with fixes.
Re-enables compact-unwind support in JITLink, which was reverted in b04847b427d
due to buildbot failures.
The underlying cause for the failures on the buildbots was the lack of
compact-unwind registration support on older Darwin OSes. Since the
CompactUnwindManager pass now removes eh-frames by default we were left with
unwind-info that could not be registered. On x86-64, where eh-frame info is
produced by default the solution is to fall back to using eh-frames. On arm64
we simply can't support exceptions on older OSes.
This patch updates the EHFrameRegistrationPlugin to remove the compact-unwind
section (__LD,__compact_unwind) when installed, forcing use of eh-frames when
the EHFrameRegistrationPlugin is used. In LLJIT, the EHFrameRegistrationPlugin
continues to be used for all non-Darwin platform, and will be added on Darwin
platforms when the a CompactUnwindRegistrationPlugin instance can't be created
(e.g. due to missing support for compact-unwind info registration).
The lit.cfg.py script is updated to check whether the host OSes default unwind
info supports JIT registration, allowing tests to be disabled for older Darwin
OSes on arm64.
Commit: ee76bdac192ce86c5d13e4c712e0327aaefda45f
https://github.com/llvm/llvm-project/commit/ee76bdac192ce86c5d13e4c712e0327aaefda45f
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M flang/lib/Optimizer/Analysis/CMakeLists.txt
Log Message:
-----------
[flang] Move FIRSupport dependency to correct place (#125697)
This library is provided by flang, not MLIR, so it should not be part of
MLIR_LIBS.
Fixes an issue introduced in https://github.com/llvm/llvm-project/pull/120966.
Commit: 922ab6650d7a01d2d44a10161529a3d576324037
https://github.com/llvm/llvm-project/commit/922ab6650d7a01d2d44a10161529a3d576324037
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/bit_ceil.ll
Log Message:
-----------
[InstCombine] Drop nowrap flags in `foldBitCeil` (#125817)
For convenience this patch drops nsw for `sub`. It also allows this fold
with `ctlz_zero_undef`.
Alive2: https://alive2.llvm.org/ce/z/VmvqSt
Commit: 4fdd28b7912880e5723c7c728df7a18ad82f31b6
https://github.com/llvm/llvm-project/commit/4fdd28b7912880e5723c7c728df7a18ad82f31b6
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/scalarize-ctlz.ll
Log Message:
-----------
[SLP][X86] Add test coverage for #124993
Commit: 8bba8a50f8227b02f3efccd9cf2b2689cf191448
https://github.com/llvm/llvm-project/commit/8bba8a50f8227b02f3efccd9cf2b2689cf191448
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
Log Message:
-----------
[NFC][ValueTracking] Hoist the matching of RHS constant (#125818)
Commit: ad152f4bcfe465b57562fa003b93f44e1a3b2287
https://github.com/llvm/llvm-project/commit/ad152f4bcfe465b57562fa003b93f44e1a3b2287
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/test/lib/IR/CMakeLists.txt
Log Message:
-----------
[mlir] Fix MLIRTestDialect dependency in MLIRTestIR (#125705)
This is a test library which is not part of libMLIR, so it should use
normal LINK_LIBS instead of mlir_target_link_libraries.
This fixes an issue introduced in #123910 and follows up on the fix in
#125004, which added the library to DEPENDS, which is not sufficient.
Commit: 1cf909208e509aedbd63edb5af0b96f85d5ae28b
https://github.com/llvm/llvm-project/commit/1cf909208e509aedbd63edb5af0b96f85d5ae28b
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/RegisterPressure.cpp
Log Message:
-----------
[MISched] Small debug improvements (#125072)
Changes:
1. Fix inconsistencies in register pressure set printing. "Max Pressure"
printing is inconsistent with "Bottom Pressure" and "Top Pressure".
For the former, register class begins on the same line vs newline for
latter. Also for the former, the first register class is on the same
line, but subsequent register classes are newline separated. That's
removed so all are on the same line.
Before:
Max Pressure: FPR8=1
GPR32=14
Top Pressure:
GPR32=2
Bottom Pressure:
FPR8=7
GPR32=17
After:
Max Pressure: FPR8=1 GPR32=14
Top Pressure: GPR32=2
Bottom Pressure: FPR8=7 GPR32=17
2. After scheduling an instruction, don't print pressure diff if there
isn't one. Also s/UpdateRegP/UpdateRegPressure. E.g.,
Before:
UpdateRegP: SU(3) %0:gpr64common = ADDXrr %58:gpr64common, gpr64
to
UpdateRegP: SU(4) %393:gpr64sp = ADDXri %58:gpr64common, 390, 12
to GPR32 -1
After:
UpdateRegPressure: SU(4) %393:gpr64sp = ADDXri %58:gpr64common, 12
to GPR32 -1
3. Don't print excess pressure sets if there are none.
Commit: 439de724fe40d1052bc9d2b0ee1d19768cfea285
https://github.com/llvm/llvm-project/commit/439de724fe40d1052bc9d2b0ee1d19768cfea285
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
Log Message:
-----------
[TableGen][Docs] Fix productionlists for SimpleValue (#123751)
Previously the grammar tokens SimpleValue2 through SimpleValue9 were
unreferenced. This ties them together so that the grammar makes more
sense.
Commit: 8cb3d7b41869ab517624d8966aac200c84145daf
https://github.com/llvm/llvm-project/commit/8cb3d7b41869ab517624d8966aac200c84145daf
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M lld/COFF/Writer.cpp
A lld/test/COFF/locally-imported-arm64x.s
Log Message:
-----------
[LLD][COFF] Emit locally imported EC symbols for ARM64X (#125527)
Commit: 6c84d64ffc91a820d71c328102552e5791677a82
https://github.com/llvm/llvm-project/commit/6c84d64ffc91a820d71c328102552e5791677a82
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/IR/Instructions.cpp
Log Message:
-----------
[IR][NFC] Remove obsolete comments in `BinaryOperator::swapOperands` (#125819)
Closes https://github.com/llvm/llvm-project/issues/125438
Commit: 76d1cb22c1b9460c0abfba943d7cc202dc30fca3
https://github.com/llvm/llvm-project/commit/76d1cb22c1b9460c0abfba943d7cc202dc30fca3
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
A libclc/clc/include/clc/integer/clc_rotate.h
M libclc/clc/lib/clspv/SOURCES
M libclc/clc/lib/generic/SOURCES
A libclc/clc/lib/generic/integer/clc_rotate.cl
A libclc/clc/lib/generic/integer/clc_rotate.inc
M libclc/clc/lib/spirv/SOURCES
M libclc/generic/lib/integer/rotate.cl
R libclc/generic/lib/integer/rotate.inc
Log Message:
-----------
[libclc] Move rotate to CLC library; optimize (#125713)
This commit moves the rotate builtin to the CLC library.
It also optimizes rotate(x, n) to generate the @llvm.fshl(x, x, n)
intrinsic, for both scalar and vector types. The previous implementation
was too cautious in its handling of the shift amount; the OpenCL rules
state that the shift amount is always treated as an unsigned value
modulo the bitwidth.
Commit: 4287c72404fbd291c01ddff88bfc045ab5c622b8
https://github.com/llvm/llvm-project/commit/4287c72404fbd291c01ddff88bfc045ab5c622b8
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMDialect.h
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
A mlir/test/Target/LLVMIR/nvvm/tcgen05-alloc.mlir
Log Message:
-----------
[MLIR][NVVM] Add tcgen05 alloc/dealloc Ops (#125674)
PR #124961 adds intrinsics for the tcgen05
alloc/dealloc PTX instructions. This patch
adds NVVM Ops for the same.
Tests are added to verify the lowering to
the corresponding intrinsics in tcgen05-alloc.mlir file.
PTX ISA link:
https://docs.nvidia.com/cuda/parallel-thread-execution/#tcgen05-memory-alloc-manage-instructions
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: f9af5c145f40480d46874b643ca2b1237e9fbb2a
https://github.com/llvm/llvm-project/commit/f9af5c145f40480d46874b643ca2b1237e9fbb2a
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M flang/tools/bbc/CMakeLists.txt
Log Message:
-----------
[flang][cmake] Fix bcc dependencies (#125822)
The Fortran libraries are not part of MLIR, so they should use
target_link_libraries() rather than mlir_target_link_libraries().
This fixes an issue introduced in
https://github.com/llvm/llvm-project/pull/120966.
Commit: b275309a4c0cc42def7c59a6d6876c16703a6efe
https://github.com/llvm/llvm-project/commit/b275309a4c0cc42def7c59a6d6876c16703a6efe
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
Log Message:
-----------
[TableGen][Docs] Fix productionlists for assert and dump (#123739)
These were referring to nonexistent grammar tokens instead of `Value`.
Commit: e596387ebed063d1eaeb1b801ed875b932a3d173
https://github.com/llvm/llvm-project/commit/e596387ebed063d1eaeb1b801ed875b932a3d173
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M lld/COFF/Driver.cpp
M lld/test/COFF/arm64x-export.test
Log Message:
-----------
[LLD][COFF] Use EC symbol table for output DEF file on ARM64X (#125531)
For consistency with input def handling.
Commit: f0b8ff12519270adcfef93410abff76ab073476a
https://github.com/llvm/llvm-project/commit/f0b8ff12519270adcfef93410abff76ab073476a
Author: Jack Frankland <jack.frankland at arm.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgNamed.cpp
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/TosaDecomposeConv2D.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaDecomposeTransposeConv.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-named.mlir
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
M mlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir
M mlir/test/Dialect/Tosa/canonicalize.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-conv2d.mlir
M mlir/test/Dialect/Tosa/tosa-decompose-transpose-conv.mlir
Log Message:
-----------
[mlir][tosa] Remove Quantization Attribute (#125479)
Removed the TOSA quantization attribute used in various MLIR TOSA
dialect operations in favour of using builtin attributes.
Update any lit tests, conversions and transformations appropriately.
Signed-off-by: Tai Ly <tai.ly at arm.com>
Co-authored-by: Tai Ly <tai.ly at arm.com>
Commit: baf27862ddb23c3854cb6782a3f1675da4722a50
https://github.com/llvm/llvm-project/commit/baf27862ddb23c3854cb6782a3f1675da4722a50
Author: Guray Ozen <guray.ozen at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialect.h
M mlir/lib/Dialect/GPU/TransformOps/Utils.cpp
Log Message:
-----------
[MLIR][NVGPU] Move max threads/blocks size to dialect (NFC) (#124454)
This PR moves maximum number of threads in a block and block in a grid
to nvgpu dialect to avoid replicated code.
The limits are defined here:
https://docs.nvidia.com/cuda/cuda-c-programming-guide/#features-and-technical-specifications-technical-specifications-per-compute-capability
Commit: ee25a85ccc34cabb5b7cd667b6f0c3a21eae1d72
https://github.com/llvm/llvm-project/commit/ee25a85ccc34cabb5b7cd667b6f0c3a21eae1d72
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Descriptor.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/cxx20.cpp
Log Message:
-----------
[clang][bytecode] Handle CXXPseudoDestructorExprs (#125835)
Make lifetime management more explicit. We're only using this for
CXXPseudoDestructorExprs for now but we need this to handle
std::construct_at/placement-new after destructor calls later anyway.
Commit: a61ca99de219ff358e613822706a7a40941a8229
https://github.com/llvm/llvm-project/commit/a61ca99de219ff358e613822706a7a40941a8229
Author: Zichen Lu <mikaovo2000 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/lib/Target/LLVM/CMakeLists.txt
M mlir/lib/Target/LLVM/NVVM/Target.cpp
Log Message:
-----------
[mlir] fix overflow warning when generating embedded libdevice (#125801)
When building mlir with `-DMLIR_NVVM_EMBED_LIBDEVICE=ON`, there will be
a warning
```
build/tools/mlir/lib/Target/LLVM/libdevice_embedded.c:1: warning: overflow in conversion from ‘int’ to ‘char’ changes value from ‘143’ to ‘-113’ [-Woverflow]
```
which is followed by a large number of characters in stdout.
Fix this to avoid stdout outputting a large number of characters (3e5).
Commit: e3abe940d8fc356bf46a6b71da44df0f4652df1c
https://github.com/llvm/llvm-project/commit/e3abe940d8fc356bf46a6b71da44df0f4652df1c
Author: Yuta Mukai <mukai.yuta at fujitsu.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/test/CodeGen/Hexagon/swp-carried-dep1.mir
M llvm/test/CodeGen/Hexagon/swp-carried-dep2.mir
M llvm/test/CodeGen/Hexagon/swp-carried-dep3.mir
A llvm/test/CodeGen/Hexagon/swp-carried-dep4.mir
A llvm/test/CodeGen/Hexagon/swp-carried-dep5.mir
M llvm/test/CodeGen/Hexagon/swp-epilog-phi8.ll
Log Message:
-----------
[MachinePipeliner] Improve loop carried dependence analysis (#94185)
The previous implementation had false positive/negative cases in the
analysis of the loop carried dependency.
A missed dependency case is caused by incorrect analysis of address
increments. This is fixed by strict analysis of recursive definitions.
See added test swp-carried-dep4.mir.
Excessive dependency detection is fixed by improving the formula
for determining the overlap of address ranges to be accessed. See added test
swp-carried-dep5.mir.
Commit: 23b6a05ec9c2220844748487612761d1e09166b7
https://github.com/llvm/llvm-project/commit/23b6a05ec9c2220844748487612761d1e09166b7
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-exact-vlen.ll
Log Message:
-----------
[CG][RISCV]Fix shuffling of odd number of input vectors
If the input contains odd number of shuffled vectors, the 2 last
shuffles are shuffled with the same first vector. Need to correctly
process such situation: when the first vector is requested for the first
time - extract it from the source vector, when it is requested the
second time - reuse previous result. The second vector should be
extracted in both cases.
Fixes #125269
Reviewers: topperc, preames
Reviewed By: preames
Pull Request: https://github.com/llvm/llvm-project/pull/125693
Commit: 7945a33a103bbb756ae284237bb7dc577cfa1be4
https://github.com/llvm/llvm-project/commit/7945a33a103bbb756ae284237bb7dc577cfa1be4
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port for baf27862ddb23c3854cb6782a3f1675da4722a50
Commit: f77f777f35c4d60573c75701eda8ddbaee070c21
https://github.com/llvm/llvm-project/commit/f77f777f35c4d60573c75701eda8ddbaee070c21
Author: Akshat Oke <Akshat.Oke at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
A llvm/include/llvm/CodeGen/RenameIndependentSubregs.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/test/CodeGen/AMDGPU/coalescing-with-subregs-in-loop-bug.mir
M llvm/test/CodeGen/AMDGPU/rename-independent-subregs-mac-operands.mir
Log Message:
-----------
[CodeGen][NewPM] Port RenameIndependentSubregs to NPM (#125192)
Commit: e78be316394509a665796a325603fe773346fbba
https://github.com/llvm/llvm-project/commit/e78be316394509a665796a325603fe773346fbba
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/RISCV/arith-fp.ll
M llvm/test/Transforms/LoopVectorize/RISCV/bf16.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/revec-getGatherCost.ll
Log Message:
-----------
[RISCV] Added cost model for fmuladd (#125683)
This patch updates the cost model for fmuladd on vector types to scale with LMUL. This was found when analyzing a hot loop in 519.lbm_r that was unprofitably vectorized, but doesn't directly impact that case and is split off so it doesn't get forgotten.
Unlike other FP arithmetic ops, it's not scaled by 2 because the scalar cost isn't scaled by 2.
Commit: b83c960badecc2806df6c08341fa97d7887cd5c1
https://github.com/llvm/llvm-project/commit/b83c960badecc2806df6c08341fa97d7887cd5c1
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
A llvm/lib/Target/AMDGPU/SIWholeQuadMode.h
M llvm/test/CodeGen/AMDGPU/licm-wwm.mir
M llvm/test/CodeGen/AMDGPU/si-init-whole-wave.mir
M llvm/test/CodeGen/AMDGPU/wqm-terminators.mir
M llvm/test/CodeGen/AMDGPU/wqm.mir
Log Message:
-----------
[CodeGen][NewPM] Port SIWholeQuadMode to NPM. (#125833)
Commit: 814db6c53faeb1dc66361b67cf30a5e42036c1bb
https://github.com/llvm/llvm-project/commit/814db6c53faeb1dc66361b67cf30a5e42036c1bb
Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/GCNPreRALongBranchReg.cpp
A llvm/lib/Target/AMDGPU/GCNPreRALongBranchReg.h
Log Message:
-----------
[CodeGen][NewPM] Port GCNPreRALongBranchReg to NPM. (#125844)
Commit: 5df62bdc9be9c258c5ac45c8093b71e23777fa0e
https://github.com/llvm/llvm-project/commit/5df62bdc9be9c258c5ac45c8093b71e23777fa0e
Author: Andrea Faulds <andrea.faulds at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
M mlir/test/Conversion/VectorToSPIRV/vector-to-spirv.mlir
Log Message:
-----------
[mlir][spirv] Support poison index when converting vector.insert/extract (#125560)
This modifies the conversion patterns so that, in the case where the
index is known statically to be poison, the insertion/extraction is
replaced by an arbitrary junk constant value, and in the dynamic case,
the index is sanitized at runtime. This avoids triggering a UB in both
cases. The dynamic case is definitely a pessimisation of the generated
code, but the use of dynamic indexes is expected to be very rare and
already slow on real-world GPU compilers ingesting SPIR-V, so the impact
should be negligible.
Resolves #124162.
Commit: c7995a6905f2320f280013454676f992a8c6f89f
https://github.com/llvm/llvm-project/commit/c7995a6905f2320f280013454676f992a8c6f89f
Author: Sam Tebbs <samuel.tebbs at arm.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
Log Message:
-----------
[AArch64] Disallow vscale x 1 partial reductions (#125252)
We don't want to allow partial reductions resulting in a vscale x 1 type
as we can't lower it in the backend.
Commit: bcfd9f81e1bc9954d616ffbb8625099916bebd5b
https://github.com/llvm/llvm-project/commit/bcfd9f81e1bc9954d616ffbb8625099916bebd5b
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M libcxx/include/__locale_dir/support/windows.h
Log Message:
-----------
[libc++] Fix stray usage of _LIBCPP_HAS_NO_WIDE_CHARACTERS on Windows
Commit: 7d669b7c25e15034a85cc4888465084e7f05f251
https://github.com/llvm/llvm-project/commit/7d669b7c25e15034a85cc4888465084e7f05f251
Author: nerix <nero.9 at hotmail.de>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/CommentLexer.cpp
M clang/test/AST/ast-dump-comment.cpp
M clang/unittests/AST/CommentLexer.cpp
M clang/unittests/AST/CommentParser.cpp
Log Message:
-----------
[Clang][Comments] Allow HTML tags across multiple lines (#120843)
HTML starting tags that span multiple lines were previously not allowed
(or rather, only the starting line was lexed as HTML). Doxygen allows
those tags.
This PR allows the starting tags to span multiple lines. They can't span
multiple (C-)Comments, though (it's likely a user-error). Multiple BCPL
comments are fine as those are single lines (shown below).
Example:
```c
/// <a
/// href="foo"
/// >Aaa</a>b
int Test;
```
Fixes #28321.
Commit: 8c3666526794e011046fd3a837b623265afa471b
https://github.com/llvm/llvm-project/commit/8c3666526794e011046fd3a837b623265afa471b
Author: Ritanya-B-Bharadwaj <ritanya.b.bharadwaj at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/begin_declare_variant_messages.c
M clang/test/OpenMP/declare_variant_ast_print.c
M clang/test/OpenMP/declare_variant_bind_to_decl.cpp
M clang/test/OpenMP/declare_variant_messages.c
M clang/test/OpenMP/declare_variant_messages.cpp
M clang/test/OpenMP/metadirective_messages.cpp
M clang/test/OpenMP/nvptx_declare_variant_name_mangling.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPContext.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
M llvm/unittests/Frontend/OpenMPContextTest.cpp
Log Message:
-----------
[OpenMP]Initial parsing/sema support for target_device selector set (#118471)
This patch adds initial support for target_device selector set - Section
9.2 (Spec 6.0)
Commit: ccb08b9dab7d829f8d9703d8b46b98e2d6717d0e
https://github.com/llvm/llvm-project/commit/ccb08b9dab7d829f8d9703d8b46b98e2d6717d0e
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M libcxx/include/__vector/vector.h
Log Message:
-----------
[libc++] Also provide an alignment assumption for vector in C++03 mode (#124839)
There's no reason not to, and it's easy enough to do using enable_if. As
a drive-by change, also add a missing _LIBCPP_NO_CFI attribute on
__add_alignment_assumption.
Commit: cd754af55f5b7f6f5371852843bc3613866232c2
https://github.com/llvm/llvm-project/commit/cd754af55f5b7f6f5371852843bc3613866232c2
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/Attr.td
M clang/test/SemaCXX/attr-no-sanitize.cpp
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
[Clang] Permit both `gnu` and `clang` prefixes on some attributes (#125796)
Summary:
Some attributes have gnu extensions that share names with clang
attributes. If these imply the same thing, we can specially declare this
to be an alternate but equivalent spelling. This patch enables this for
`no_sanitize` and provides the infrastructure for more to be added if
needed.
Discussions welcome on whether or not we want to bind ourselves to GNU
behavior, since theoretically it's possible for GNU to silently change
the semantics away from our implementation, but I'm not an expert.
Fixes: https://github.com/llvm/llvm-project/issues/125760
Commit: 455cedc805e7a42c6cfbe26a4ddd9e623cca6066
https://github.com/llvm/llvm-project/commit/455cedc805e7a42c6cfbe26a4ddd9e623cca6066
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/test/Driver/Xarch.c
A clang/test/Driver/offload-Xarch.c
Log Message:
-----------
[Clang] Make `-Xarch_` handling generic for all toolchains (#125421)
Summary:
Currently, `-Xarch_` is handled specially between different toolchains,
(i.e. Mach-O).
This patch unifies the handling so that it can be used generically.
The main benefit here is that we now have a more generic version of
`-Xopenmp-target=`, which should probably just be deprecated.
Additionally, it allows us to specially pass arguments to different
architectures for offloading.
This patch is done in preparation for making selecting offloading
toolchains more generic, this will be helpful while people are moving
toward compile jobs that include multiple toolchains (SPIR-V, AMDGCN,
NVPTX).
Commit: bb7ab2557c485e004e619570cca7e2204b98a71b
https://github.com/llvm/llvm-project/commit/bb7ab2557c485e004e619570cca7e2204b98a71b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M offload/DeviceRTL/CMakeLists.txt
M offload/DeviceRTL/include/Allocator.h
M offload/DeviceRTL/include/DeviceTypes.h
M offload/DeviceRTL/include/DeviceUtils.h
M offload/DeviceRTL/include/Mapping.h
M offload/DeviceRTL/include/State.h
M offload/DeviceRTL/include/Synchronization.h
M offload/DeviceRTL/include/Workshare.h
M offload/DeviceRTL/src/Allocator.cpp
M offload/DeviceRTL/src/Configuration.cpp
M offload/DeviceRTL/src/Debug.cpp
M offload/DeviceRTL/src/DeviceUtils.cpp
M offload/DeviceRTL/src/Kernel.cpp
M offload/DeviceRTL/src/LibC.cpp
M offload/DeviceRTL/src/Mapping.cpp
M offload/DeviceRTL/src/Misc.cpp
M offload/DeviceRTL/src/Parallelism.cpp
M offload/DeviceRTL/src/Profiling.cpp
M offload/DeviceRTL/src/Reduction.cpp
M offload/DeviceRTL/src/State.cpp
M offload/DeviceRTL/src/Synchronization.cpp
M offload/DeviceRTL/src/Tasking.cpp
M offload/DeviceRTL/src/Workshare.cpp
Log Message:
-----------
[OpenMP] Port the OpenMP device runtime to direct C++ compilation (#123673)
Summary:
This removes the use of OpenMP offloading to build the device runtime.
The main benefit here is that we no longer need to rely on offloading
semantics to build a device only runtime. Things like variants are now
no longer needed and can just be simple if-defs. In the future, I will
remove most of the special handling here and fold it into calls to the
`<gpuintrin.h>` functions instead. Additionally I will rework the
compilation to make this a separate runtime.
The current plan is to have this, but make including OpenMP and
offloading either automatically add it, or print a warning if it's
missing. This will allow us to use a normal CMake workflow and delete
all the weird 'lets pull the clang binary out of the build' business.
```
-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=offload
-DLLVM_RUNTIME_TARGETS=amdgcn-amd-amdhsa
```
After that, linking the OpenMP device runtime will be `-Xoffload-linker
-lomp`. I.e. no more fat binary business.
Only look at the most recent commit since this includes the two
dependencies
(fix to AMDGPUEmitPrintfBinding and the PointerToMember bug).
Commit: f49a2163e12ead8250de24cba13bb9ff8cfca357
https://github.com/llvm/llvm-project/commit/f49a2163e12ead8250de24cba13bb9ff8cfca357
Author: Joseph Huber <huberjn at outlook.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
Log Message:
-----------
[OpenMP] Fix multiply defined macro warning
Commit: 56a49884ad158fde292d007a2139a77353b4faf7
https://github.com/llvm/llvm-project/commit/56a49884ad158fde292d007a2139a77353b4faf7
Author: Amit Kumar Pandey <137622562+ampandey-1995 at users.noreply.github.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/test/Driver/amdgpu-openmp-sanitize-options.c
Log Message:
-----------
[NFC] Fix Lit test 'amdgpu-openmp-sanitize-options.c'. (#125857)
Using 'compiler-rt' in 'LLVM_ENABLE_PROJECTS' causes the clang runtime
libraries to be build and installed with arch suffix names i.e
```'*-<arch>.a'``` and ```'*-<arch>.so'```.
Commit: 290a0d8752dada6cd8f36258ce1e558ce27f0e7f
https://github.com/llvm/llvm-project/commit/290a0d8752dada6cd8f36258ce1e558ce27f0e7f
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 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 eae6d6d18bd4
Commit: ccd92ec4c6ceb09e75ed40c96c1da7d03b9c45d5
https://github.com/llvm/llvm-project/commit/ccd92ec4c6ceb09e75ed40c96c1da7d03b9c45d5
Author: Anchu Rajendran S <asudhaku at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
M flang/lib/Lower/OpenMP/ReductionProcessor.h
R flang/test/Lower/OpenMP/Todo/reduction-inscan.f90
R flang/test/Lower/OpenMP/Todo/reduction-modifiers.f90
M flang/test/Lower/OpenMP/Todo/reduction-task.f90
A flang/test/Lower/OpenMP/scan.f90
M mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
Log Message:
-----------
[flang][openmp] Changes for invoking scan Op (#123254)
Commit: e151b1d1f678d82cf743a5e268bcc692e0f2b1ee
https://github.com/llvm/llvm-project/commit/e151b1d1f678d82cf743a5e268bcc692e0f2b1ee
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Log Message:
-----------
[MLIR][OpenMP] Use correct DebugLoc in target construct callbacks. (#125856)
This is same as PR #125106 which somehow is stuck in a "Processing
Update" loop for many hours now. I am going to close that one and push
this one instead.
While working on https://github.com/llvm/llvm-project/issues/125088, I
noticed a problem with the TargetBodyGenCallbackTy and
TargetGenArgAccessorsCallbackTy. The OMPIRBuilder and MLIR side Both
maintain their own IRBuilder and when control goes from one to other, we
have to take care to not use a stale debug location. The code currently
rely on restoreIP to set the insertion point and the debug location. But
if the passes InsertPointTy has an empty block, then the debug location
will not be updated (see SetInsertPoint). This can cause invalid debug
location to be attached to instruction and the verifier will complain.
Similarly when we exit the callback, the debug location of the Builder
is not set to what it was before the callback. This again can cause
verification failures.
This PR resets the debug location at the start and also uses an
InsertPointGuard to restore the debug location at exit.
Both of these problems would have been caught by the unit tests but they
were not setting the debug location of the builder before calling the
createTarget so the problem was hidden. I have updated the tests
accordingly.
Commit: 08bda1cc6b0d2f1d31a89a76b5c154a11086c420
https://github.com/llvm/llvm-project/commit/08bda1cc6b0d2f1d31a89a76b5c154a11086c420
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/test/AST/ast-dump-templates.cpp
M clang/test/AST/gen_ast_dump_json_test.py
M clang/test/SemaTemplate/cwg2398.cpp
M lldb/source/Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp
Log Message:
-----------
Reland: [clang] fix P3310 overload resolution flag propagation (#125791)
Class templates might be only instantiated when they are required to be
complete, but checking the template args against the primary template is
immediate.
This result is cached so that later when the class is instantiated,
checking against the primary template is not repeated.
The 'MatchedPackOnParmToNonPackOnArg' flag is also produced upon
checking against the primary template, so it needs to be cached in the
specialziation as well.
This fixes a bug which has not been in any release, so there are no
release notes.
Fixes #125290
Commit: c517edbd0cce53c8e1e0b9c7301be7eb678dae4b
https://github.com/llvm/llvm-project/commit/c517edbd0cce53c8e1e0b9c7301be7eb678dae4b
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M clang/lib/Sema/SemaTemplateInstantiate.cpp
Log Message:
-----------
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#125811)
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 Specialized to be nonnull. Note that if Specialized
were
null, dereferencing Tmpl would trigger a segfault.
Commit: fe0c37f0026dfd84aaeae01d4a2dec74e20a4e72
https://github.com/llvm/llvm-project/commit/fe0c37f0026dfd84aaeae01d4a2dec74e20a4e72
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/ADT/GenericCycleImpl.h
Log Message:
-----------
[ADT] Avoid repeated hash lookups (NFC) (#125812)
Commit: 34c7d8994d9b482059a03c4ea7d7e747953cf466
https://github.com/llvm/llvm-project/commit/34c7d8994d9b482059a03c4ea7d7e747953cf466
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/include/llvm/Analysis/VectorUtils.h
Log Message:
-----------
[Analysis] Avoid repeated hash lookups (NFC) (#125813)
Commit: dd099e9cc24ad60e988ccec1eaee3299a0c7c277
https://github.com/llvm/llvm-project/commit/dd099e9cc24ad60e988ccec1eaee3299a0c7c277
Author: Guray Ozen <guray.ozen at gmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
Log Message:
-----------
[MLIR][NVVM] Fix links in OP definition (#125865)
Commit: 7c2c7a4381d0926a8de150590a72cd373f220537
https://github.com/llvm/llvm-project/commit/7c2c7a4381d0926a8de150590a72cd373f220537
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
Log Message:
-----------
[AsmPrinter] Avoid repeated hash lookups (NFC) (#125814)
Commit: e9dd4a84090420c43d6be677dcb23a58c05f5571
https://github.com/llvm/llvm-project/commit/e9dd4a84090420c43d6be677dcb23a58c05f5571
Author: Kazu Hirata <kazu at google.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
Log Message:
-----------
[Hexagon] Avoid repeated map lookups (NFC) (#125815)
Commit: acebaa01623b9ca77e1f41a4e23b8656b612a21e
https://github.com/llvm/llvm-project/commit/acebaa01623b9ca77e1f41a4e23b8656b612a21e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/test/CodeGen/X86/fp-round.ll
Log Message:
-----------
[X86] fp-round.ll - regenerate VPTERNLOG comments
Commit: 7b5e90b8ec17380537f5213859b287dae494d20c
https://github.com/llvm/llvm-project/commit/7b5e90b8ec17380537f5213859b287dae494d20c
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOPCInstructions.td
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_t16_promote.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_t16_promote.s
Log Message:
-----------
[AMDGPU][True16][MC] Generate op_sel operands for VOPC instructions (#125561)
Generate op_sel operands for VOPC instructions
---------
Co-authored-by: Ivan Kosarev <ivan.kosarev at amd.com>
Commit: a0d3d690a23a3aa54cd576dc8f4ea1b22c20d189
https://github.com/llvm/llvm-project/commit/a0d3d690a23a3aa54cd576dc8f4ea1b22c20d189
Author: Koakuma <koachan at protonmail.com>
Date: 2025-02-05 (Wed, 05 Feb 2025)
Changed paths:
M llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
M llvm/lib/Target/Sparc/SparcInstrAliases.td
M llvm/test/MC/Sparc/sparcv9-synthetic-instructions.s
Log Message:
-----------
[SPARC][IAS] Add support for `setsw` pseudoinstruction
Implement `setsw` pseudoinstruction for setting a 32-bit signed imm.
Reviewers: brad0, s-barannikov, rorth
Reviewed By: s-barannikov
Pull Request: https://github.com/llvm/llvm-project/pull/125150
Commit: 986bba67187571732e16eb119da7b563d9ac7cc2
https://github.com/llvm/llvm-project/commit/986bba67187571732e16eb119da7b563d9ac7cc2
Author: Koakuma <koachan at protonmail.com>
Date: 2025-02-11 (Tue, 11 Feb 2025)
Changed paths:
M .github/new-prs-labeler.yml
M .github/workflows/build-ci-container.yml
R .github/workflows/clang-tests.yml
A .github/workflows/commit-access-greeter.yml
R .github/workflows/libclc-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
R .github/workflows/lld-tests.yml
R .github/workflows/lldb-tests.yml
M .github/workflows/llvm-tests.yml
M .github/workflows/premerge.yaml
M .github/workflows/release-binaries.yml
M .github/workflows/release-tasks.yml
M bolt/lib/Core/BinaryFunction.cpp
M bolt/test/AArch64/pad-before-funcs.s
A bolt/test/AArch64/remove-nops.s
M bolt/test/X86/dynamic-relocs-on-entry.s
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/MDGenerator.cpp
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-include-fixer/FuzzySymbolIndex.cpp
M clang-tools-extra/clang-include-fixer/YamlSymbolIndex.cpp
M clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp
M clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.h
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-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/assert-side-effect.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-functions.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/include-cleaner/lib/WalkAST.cpp
M clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unsafe-functions-custom-regex.cpp
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/ClangFormatStyleOptions.rst
M clang/docs/HIPSupport.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
A clang/docs/TypeSanitizer.rst
M clang/docs/UsersManual.rst
M clang/docs/analyzer/user-docs/Annotations.rst
M clang/docs/index.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/AST/Decl.h
M clang/include/clang/AST/DeclBase.h
M clang/include/clang/AST/DeclCXX.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/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/StmtOpenACC.h
M clang/include/clang/AST/TextNodeDumper.h
M clang/include/clang/Basic/AArch64SVEACLETypes.def
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/Builtins.h
M clang/include/clang/Basic/Builtins.td
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
R clang/include/clang/Basic/BuiltinsLoongArch.def
R clang/include/clang/Basic/BuiltinsNEON.def
R clang/include/clang/Basic/BuiltinsNVPTX.def
A clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/include/clang/Basic/BuiltinsPPC.def
R clang/include/clang/Basic/BuiltinsRISCVVector.def
M clang/include/clang/Basic/BuiltinsX86Base.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/Diagnostic.h
M clang/include/clang/Basic/DiagnosticCategories.h
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticIDs.h
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
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/OpenACCKinds.h
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/Version.inc.in
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/arm_sme.td
M clang/include/clang/Basic/arm_sve.td
A clang/include/clang/CIR/FrontendAction/.clang-tidy
M clang/include/clang/CIR/FrontendAction/CIRGenAction.h
A clang/include/clang/CIR/LowerToLLVM.h
A clang/include/clang/CIR/MissingFeatures.h
R clang/include/clang/CIRFrontendAction/.clang-tidy
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/ExtractAPI/ExtractAPIVisitor.h
M clang/include/clang/Format/Format.h
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/DeclSpec.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaOpenACC.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
M clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h
M clang/include/module.modulemap
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/ASTContext.cpp
M clang/lib/AST/ASTImporter.cpp
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/Descriptor.cpp
M clang/lib/AST/ByteCode/Descriptor.h
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/Function.cpp
M clang/lib/AST/ByteCode/Function.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/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/CommentLexer.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclBase.cpp
M clang/lib/AST/DeclCXX.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/ExprConstant.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/ParentMapContext.cpp
M clang/lib/AST/StmtOpenACC.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TemplateName.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
M clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
M clang/lib/Basic/Builtins.cpp
M clang/lib/Basic/Diagnostic.cpp
M clang/lib/Basic/DiagnosticIDs.cpp
M clang/lib/Basic/Sanitizers.cpp
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/ARC.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/ARM.h
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/BPF.cpp
M clang/lib/Basic/Targets/BPF.h
M clang/lib/Basic/Targets/CSKY.cpp
M clang/lib/Basic/Targets/CSKY.h
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/Lanai.h
M clang/lib/Basic/Targets/LoongArch.cpp
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/M68k.cpp
M clang/lib/Basic/Targets/M68k.h
M clang/lib/Basic/Targets/MSP430.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/PNaCl.h
M clang/lib/Basic/Targets/PPC.cpp
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/Sparc.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/VE.cpp
M clang/lib/Basic/Targets/VE.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
M clang/lib/Basic/Targets/XCore.cpp
M clang/lib/Basic/Targets/XCore.h
M clang/lib/Basic/Targets/Xtensa.h
M clang/lib/CIR/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/Lowering/CMakeLists.txt
A clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
A clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGCleanup.cpp
M clang/lib/CodeGen/CGCleanup.h
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
M clang/lib/CodeGen/CGObjCGNU.cpp
M clang/lib/CodeGen/CGOpenCLRuntime.cpp
M clang/lib/CodeGen/CGStmt.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/CodeGenTBAA.cpp
M clang/lib/CodeGen/EHScopeStack.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/ARM.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Driver.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/X86.cpp
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/Flang.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/ROCm.h
M clang/lib/Driver/ToolChains/UEFI.h
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/QualifierAlignmentFixer.cpp
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Frontend/LogDiagnosticPrinter.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/amxtf32transposeintrin.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/nvptxintrin.h
M clang/lib/Index/USRGeneration.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseOpenACC.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/CMakeLists.txt
M clang/lib/Sema/HeuristicResolver.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaAttr.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaCodeComplete.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/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaOpenACC.cpp
A clang/lib/Sema/SemaOpenACCAtomic.cpp
M clang/lib/Sema/SemaOpenACCClause.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaStmt.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/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
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/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
M clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
M clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.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/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/cxx2a.cpp
M clang/test/AST/ByteCode/literals.cpp
A clang/test/AST/ByteCode/neon.c
M clang/test/AST/ByteCode/unions.cpp
A clang/test/AST/ast-dump-binding-pack.cpp
M clang/test/AST/ast-dump-comment.cpp
M clang/test/AST/ast-dump-templates.cpp
A clang/test/AST/ast-print-openacc-atomic-construct.cpp
M clang/test/AST/attr-print-emit.cpp
M clang/test/AST/gen_ast_dump_json_test.py
M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.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/anonymous-decls.cpp
A clang/test/Analysis/bugfix-124477.m
A clang/test/Analysis/ctu-test-import-failure.cpp
M clang/test/Analysis/null-deref-path-notes.cpp
A clang/test/CIR/Lowering/global-var-simple.cpp
A clang/test/CIR/Lowering/hello.c
M clang/test/CMakeLists.txt
A clang/test/CXX/class/class.init/p1.cpp
M clang/test/CXX/dcl.decl/dcl.init/p14-0x.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
A clang/test/ClangScanDeps/modules-context-hash-cwd.c
M clang/test/ClangScanDeps/strip-input-args.m
A clang/test/ClangScanDeps/tu-buffer.c
M clang/test/ClangScanDeps/working-dir.m
M clang/test/CodeCompletion/member-access.cpp
M clang/test/CodeGen/AArch64/args.cpp
A clang/test/CodeGen/AArch64/fp8-intrinsics/acle_neon_fp8_reinterpret.c
M clang/test/CodeGen/AArch64/pure-scalable-args.c
A clang/test/CodeGen/AArch64/sme-attributes-member-function-pointer.cpp
M clang/test/CodeGen/AArch64/sme-intrinsics/aarch64-sme-attrs.cpp
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
A clang/test/CodeGen/X86/avx-cxx-record.cpp
M clang/test/CodeGen/allow-ubsan-check-inline.c
M clang/test/CodeGen/allow-ubsan-check.c
M clang/test/CodeGen/arm-cmse-attr.c
A clang/test/CodeGen/arm-empty-args.cpp
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/blocks-windows.c
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGen/builtins-nvptx.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
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/nofpclass.c
A clang/test/CodeGen/pointer-overflow.c
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGen/struct-copy.c
M clang/test/CodeGen/target-data.c
M clang/test/CodeGen/tbaa-pointers.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
A clang/test/CodeGen/xfail-alloc-align-fn-pointers.cpp
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCUDA/offloading-entries.cu
A clang/test/CodeGenCXX/aarch64-ms-mangle-mfp8.cpp
M clang/test/CodeGenCXX/attr-annotate2.cpp
M clang/test/CodeGenCXX/bitfield-ir.cpp
A clang/test/CodeGenCXX/cxx2c-decomposition.cpp
A clang/test/CodeGenCXX/debug-info-ms-novtable.cpp
A clang/test/CodeGenCXX/gh119046.cpp
M clang/test/CodeGenCXX/inline-then-fold-variadics.cpp
M clang/test/CodeGenCXX/noescape.cpp
M clang/test/CodeGenCXX/template-param-objects.cpp
M clang/test/CodeGenCXX/wasm-args-returns.cpp
A clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl
M clang/test/CodeGenHLSL/builtins/dot-builtin.hlsl
M clang/test/CodeGenHLSL/implicit-norecurse-attrib.hlsl
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/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/atomic-builtins-default-to-device-scope.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-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/Driver/Xarch.c
M clang/test/Driver/aarch64-ptrauth.c
A clang/test/Driver/amdgpu-openmp-sanitize-options.c
M clang/test/Driver/amdgpu-openmp-system-arch-fail.c
M clang/test/Driver/amdgpu-openmp-toolchain.c
M clang/test/Driver/clang_wrapv_opts.c
A clang/test/Driver/extend-variable-liveness.c
R clang/test/Driver/frelaxed-template-template-args.cpp
A clang/test/Driver/hexagon-cpu-default.c
M clang/test/Driver/hip-sanitize-options.hip
M clang/test/Driver/linker-wrapper-image.c
R clang/test/Driver/objc-sdk-migration-options.m
A clang/test/Driver/offload-Xarch.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
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Driver/rocm-device-libs.cl
M clang/test/Driver/tls-dialect.c
M clang/test/Driver/uefi-constructed-args.c
M clang/test/Driver/unsupported-target-arch.c
M clang/test/Driver/x86-target-features.c
M clang/test/ExtractAPI/anonymous_record_no_typedef.c
A clang/test/Frontend/aarch64-ignore-branch-protection-attribute.c
A clang/test/Frontend/custom-diag-werror-interaction.c
M clang/test/Interpreter/simple-exception.cpp
M clang/test/Lexer/cxx-features.cpp
M clang/test/Misc/warning-flags.c
M clang/test/Modules/cxx-templates.cpp
A clang/test/Modules/pr121245.cpp
A clang/test/Modules/pr125521.cppm
M clang/test/OpenMP/barrier_codegen.cpp
M clang/test/OpenMP/begin_declare_variant_messages.c
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_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/declare_variant_ast_print.c
M clang/test/OpenMP/declare_variant_bind_to_decl.cpp
M clang/test/OpenMP/declare_variant_messages.c
M clang/test/OpenMP/declare_variant_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
M clang/test/OpenMP/metadirective_messages.cpp
M clang/test/OpenMP/nvptx_declare_variant_name_mangling.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 clang/test/PCH/cuda-kernel-call.cu
A clang/test/Parser/cxx2c-binding-pack.cpp
M clang/test/ParserOpenACC/parse-constructs.c
M clang/test/Preprocessor/arm-target-features.c
M clang/test/Preprocessor/init-aarch64.c
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/Sema/MicrosoftCompatibility.c
M clang/test/Sema/MicrosoftCompatibility.cpp
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
A clang/test/Sema/arm-execute-only-tls.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/diagnose_if.c
A clang/test/Sema/missing-dllimport.c
M clang/test/Sema/tautological-pointer-comparison.c
M clang/test/SemaCUDA/inherited-ctor.cu
M clang/test/SemaCXX/attr-annotate.cpp
M clang/test/SemaCXX/attr-no-sanitize.cpp
M clang/test/SemaCXX/constant-expression-cxx11.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
M clang/test/SemaCXX/cxx2b-consteval-propagate.cpp
A clang/test/SemaCXX/cxx2c-binding-pack-nontemplate.cpp
A clang/test/SemaCXX/cxx2c-binding-pack.cpp
A clang/test/SemaCXX/diagnose_if-warning-group.cpp
R clang/test/SemaCXX/remove_pointer.mm
M clang/test/SemaCXX/uninitialized.cpp
A clang/test/SemaCXX/unique_object_duplication.cpp
A clang/test/SemaCXX/unique_object_duplication.h
M clang/test/SemaCXX/warn-unused-private-field.cpp
A clang/test/SemaHLSL/BuiltIns/WaveActiveMax-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/mad-errors.hlsl
M clang/test/SemaObjCXX/noescape.mm
A clang/test/SemaObjCXX/type-traits.mm
A clang/test/SemaOpenACC/atomic-construct-ast.cpp
A clang/test/SemaOpenACC/atomic-construct.cpp
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
M clang/test/TableGen/target-builtins-prototype-parser.td
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
M clang/tools/clang-format/clang-format.el
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-scan-deps/Opts.td
M clang/tools/diagtool/ListWarnings.cpp
M clang/tools/diagtool/ShowEnabledWarnings.cpp
R clang/tools/libclang/ARCMigrate.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CMakeLists.txt
M clang/tools/libclang/CXCursor.cpp
M clang/tools/libclang/CXStoredDiagnostic.cpp
M clang/tools/libclang/libclang.map
M clang/unittests/AST/ASTImporterTest.cpp
M clang/unittests/AST/CommentLexer.cpp
M clang/unittests/AST/CommentParser.cpp
M clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp
M clang/unittests/Basic/DiagnosticTest.cpp
M clang/unittests/CodeGen/TBAAMetadataTest.cpp
M clang/unittests/Driver/ToolChainTest.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/QualifierFixerTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/Sema/HeuristicResolverTest.cpp
M clang/unittests/StaticAnalyzer/CMakeLists.txt
A clang/unittests/StaticAnalyzer/ObjcBug-124477.cpp
M clang/utils/TableGen/ClangAttrEmitter.cpp
M clang/utils/TableGen/ClangBuiltinsEmitter.cpp
M clang/utils/TableGen/ClangDiagnosticsEmitter.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/analyzer/entrypoint.py
M clang/www/cxx_status.html
M cmake/Modules/LLVMVersion.cmake
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_suppressions.cpp
M compiler-rt/lib/asan/asan_suppressions.h
M compiler-rt/lib/orc/macho_platform.cpp
M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/scudo/standalone/tests/scudo_unit_test.h
M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
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
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
A compiler-rt/test/orc/TestCases/Darwin/Generic/exceptions.cpp
M flang/CMakeLists.txt
M flang/docs/Extensions.md
M flang/docs/FlangDriver.md
M flang/docs/Intrinsics.md
M flang/examples/FeatureList/FeatureList.cpp
M flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
M flang/include/flang/Common/Fortran-features.h
M flang/include/flang/Lower/DirectivesCommon.h
M flang/include/flang/Lower/Support/Utils.h
M flang/include/flang/Optimizer/Builder/DirectivesCommon.h
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/Builder/HLFIRTools.h
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
M flang/include/flang/Optimizer/Builder/Runtime/Main.h
M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/include/flang/Optimizer/HLFIR/Passes.td
M flang/include/flang/Optimizer/Support/DataLayout.h
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Runtime/CUDA/allocatable.h
A flang/include/flang/Runtime/CUDA/init.h
M flang/include/flang/Runtime/CUDA/pointer.h
M flang/include/flang/Runtime/extensions.h
M flang/include/flang/Semantics/expression.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/lib/Common/Fortran-features.cpp
M flang/lib/Evaluate/intrinsics-library.cpp
M flang/lib/Evaluate/intrinsics.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/TextDiagnosticPrinter.cpp
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/CMakeLists.txt
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/IterationSpace.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/Clauses.h
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
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
A flang/lib/Lower/Support/Utils.cpp
M flang/lib/Optimizer/Analysis/CMakeLists.txt
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Builder/HLFIRTools.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
M flang/lib/Optimizer/Builder/Runtime/Main.cpp
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/CodeGen/CodeGenOpenMP.cpp
M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
M flang/lib/Optimizer/HLFIR/Transforms/ConvertToFIR.cpp
M flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIRIntrinsics.cpp
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
M flang/lib/Optimizer/OpenMP/MapsForPrivatizedSymbols.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/lib/Optimizer/Support/DataLayout.cpp
M flang/lib/Optimizer/Transforms/AbstractResult.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/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp
M flang/lib/Parser/Fortran-parsers.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/parse-tree.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/assignment.cpp
M flang/lib/Semantics/assignment.h
M flang/lib/Semantics/canonicalize-directives.cpp
M flang/lib/Semantics/check-io.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/openmp-modifiers.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/resolve-names-utils.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/tools.cpp
M flang/module/cudadevice.f90
M flang/runtime/CMakeLists.txt
M flang/runtime/CUDA/CMakeLists.txt
M flang/runtime/CUDA/allocatable.cpp
A flang/runtime/CUDA/init.cpp
M flang/runtime/CUDA/pointer.cpp
M flang/runtime/environment.cpp
M flang/runtime/environment.h
M flang/runtime/exceptions.cpp
M flang/runtime/extensions.cpp
M flang/runtime/io-api.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
A flang/test/Evaluate/bug124618.f90
M flang/test/Evaluate/rewrite-out_of_range.F90
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
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-openmp.fir
M flang/test/Fir/boxproc.fir
M flang/test/Fir/commute.fir
M flang/test/Fir/convert-to-llvm.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/HLFIR/assign-codegen.fir
A flang/test/HLFIR/elemental-with-empty-check-codegen.fir
M flang/test/HLFIR/get_length_codegen.fir
A flang/test/HLFIR/getextent-codegen.fir
M flang/test/HLFIR/maxval-lowering.fir
M flang/test/HLFIR/opt-variable-assign-omp.fir
A flang/test/HLFIR/simplify-hlfir-intrinsics-reshape.fir
R flang/test/HLFIR/unroll-loops.fir
M flang/test/Integration/OpenMP/copyprivate.f90
M flang/test/Integration/OpenMP/map-types-and-sizes.f90
M flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
M flang/test/Integration/OpenMP/private-global.f90
A flang/test/Integration/debug-common-block-1.f90
M flang/test/Integration/debug-local-var-2.f90
M flang/test/Integration/unroll-loops.f90
A flang/test/Integration/unroll.f90
M flang/test/Lower/CUDA/cuda-device-proc.cuf
A flang/test/Lower/CUDA/cuda-init.cuf
M flang/test/Lower/CUDA/cuda-intrinsic.cuf
M flang/test/Lower/HLFIR/convert-variable.f90
A flang/test/Lower/HLFIR/unroll-loops.fir
M flang/test/Lower/Intrinsics/abs.f90
M flang/test/Lower/Intrinsics/aint.f90
M flang/test/Lower/Intrinsics/anint.f90
A flang/test/Lower/Intrinsics/chdir.f90
M flang/test/Lower/Intrinsics/dot_product.f90
M flang/test/Lower/Intrinsics/exponent.f90
M flang/test/Lower/Intrinsics/fma_real16.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
A flang/test/Lower/Intrinsics/ierrno.f90
M flang/test/Lower/Intrinsics/isnan.f90
M flang/test/Lower/Intrinsics/mod.f90
M flang/test/Lower/Intrinsics/modulo.f90
M flang/test/Lower/Intrinsics/nearest.f90
M flang/test/Lower/Intrinsics/norm2.f90
M flang/test/Lower/Intrinsics/powi_real16.f90
M flang/test/Lower/Intrinsics/random_number_real16.f90
M flang/test/Lower/Intrinsics/reduce.f90
M flang/test/Lower/Intrinsics/rrspacing.f90
M flang/test/Lower/Intrinsics/scale.f90
M flang/test/Lower/Intrinsics/set_exponent.f90
M flang/test/Lower/Intrinsics/sign.f90
M flang/test/Lower/Intrinsics/spacing.f90
M flang/test/Lower/OpenACC/acc-bounds.f90
A flang/test/Lower/OpenACC/acc-data-operands-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-data-operands.f90
A flang/test/Lower/OpenACC/acc-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-data.f90
A flang/test/Lower/OpenACC/acc-declare-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-declare.f90
A flang/test/Lower/OpenACC/acc-enter-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-enter-data.f90
A flang/test/Lower/OpenACC/acc-exit-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-exit-data.f90
A flang/test/Lower/OpenACC/acc-host-data-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-host-data.f90
M flang/test/Lower/OpenACC/acc-kernels-loop.f90
M flang/test/Lower/OpenACC/acc-kernels.f90
M flang/test/Lower/OpenACC/acc-loop.f90
M flang/test/Lower/OpenACC/acc-parallel-loop.f90
M flang/test/Lower/OpenACC/acc-parallel.f90
A flang/test/Lower/OpenACC/acc-private-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-private.f90
A flang/test/Lower/OpenACC/acc-reduction-unwrap-defaultbounds.f90
M flang/test/Lower/OpenACC/acc-reduction.f90
M flang/test/Lower/OpenACC/acc-serial-loop.f90
M flang/test/Lower/OpenACC/acc-serial.f90
M flang/test/Lower/OpenACC/acc-update.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
A flang/test/Lower/OpenMP/Todo/metadirective-exec.f90
A flang/test/Lower/OpenMP/Todo/metadirective-spec.f90
R flang/test/Lower/OpenMP/Todo/reduction-inscan.f90
R flang/test/Lower/OpenMP/Todo/reduction-modifiers.f90
M flang/test/Lower/OpenMP/Todo/reduction-task.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
A flang/test/Lower/OpenMP/lastprivate-simd.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
A flang/test/Lower/OpenMP/scan.f90
M flang/test/Lower/OpenMP/sections.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/Lower/assignment.f90
M flang/test/Lower/basic-function.f90
A flang/test/Lower/entry-statement-init.f90
M flang/test/Lower/math-lowering/abs.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
A flang/test/Lower/unroll.f90
M flang/test/Parser/OpenMP/declare-mapper-unparse.f90
A flang/test/Parser/OpenMP/metadirective-dirspec.f90
A flang/test/Parser/OpenMP/metadirective-v50.f90
A flang/test/Parser/OpenMP/metadirective.f90
M flang/test/Parser/compiler-directives.f90
A flang/test/Semantics/OpenMP/cray-pointer-usage.f90
A flang/test/Semantics/OpenMP/metadirective-common.f90
A flang/test/Semantics/OpenMP/metadirective-construct.f90
A flang/test/Semantics/OpenMP/metadirective-device.f90
A flang/test/Semantics/OpenMP/metadirective-implementation.f90
A flang/test/Semantics/OpenMP/metadirective-user.f90
A flang/test/Semantics/bug124487.f90
A flang/test/Semantics/bug124621.f90
A flang/test/Semantics/bug124716.f90
A flang/test/Semantics/bug124731.f90
A flang/test/Semantics/bug12477.f90
A flang/test/Semantics/bug124976.f90
A flang/test/Semantics/cuf18.cuf
A flang/test/Semantics/implicit17.f90
M flang/test/Semantics/kinds01.f90
M flang/test/Semantics/kinds02.f90
M flang/test/Semantics/kinds04_q10.f90
M flang/test/Semantics/loop-directives.f90
M flang/test/Semantics/resolve110.f90
M flang/test/Semantics/resolve41.f90
M flang/test/Semantics/self-use.f90
M flang/test/Transforms/constant-argument-globalisation.fir
A flang/test/Transforms/debug-common-block.fir
M flang/test/Transforms/debug-module-1.fir
M flang/test/Transforms/debug-module-2.fir
M flang/test/Transforms/generic-loop-rewriting.mlir
M flang/test/Transforms/omp-maps-for-privatized-symbols.fir
M flang/test/lib/OpenACC/TestOpenACCInterfaces.cpp
M flang/tools/bbc/CMakeLists.txt
M libc/CMakeLists.txt
A libc/cmake/modules/LLVMLibCCheckMPC.cmake
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/docs/configure.rst
M libc/docs/gpu/rpc.rst
M libc/include/llvm-libc-macros/limits-macros.h
M libc/include/llvm-libc-macros/unistd-macros.h
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/spawn.yaml
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/resource.yaml
M libc/include/sys/time.h.def
M libc/include/sys/time.yaml
M libc/include/wchar.h.def
M libc/src/__support/CMakeLists.txt
M libc/src/__support/CPP/algorithm.h
M libc/src/__support/CPP/span.h
M libc/src/__support/CPP/type_traits.h
M libc/src/__support/FPUtil/dyadic_float.h
M libc/src/__support/FPUtil/except_value_utils.h
M libc/src/__support/big_int.h
A libc/src/__support/complex_basic_ops.h
M libc/src/__support/complex_type.h
M libc/src/__support/integer_to_string.h
M libc/src/__support/sign.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/src/stdio/printf_core/CMakeLists.txt
M libc/src/stdio/printf_core/converter_atlas.h
A libc/src/stdio/printf_core/float_dec_converter_limited.h
M libc/test/UnitTest/FPMatcher.h
M libc/test/src/CMakeLists.txt
M libc/test/src/__support/integer_to_string_test.cpp
M libc/test/src/complex/CMakeLists.txt
M libc/test/src/complex/cprojf_test.cpp
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
M libc/test/src/setjmp/CMakeLists.txt
M libc/test/src/setjmp/setjmp_test.cpp
M libc/test/src/stdio/CMakeLists.txt
M libc/test/src/stdio/sprintf_test.cpp
M libc/test/src/stdlib/CMakeLists.txt
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
M libc/utils/gpu/server/CMakeLists.txt
M libclc/CMakeLists.txt
R libclc/amdgcn-mesa3d
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_add_sat.h
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_mad_sat.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_rotate.h
A libclc/clc/include/clc/integer/clc_sub_sat.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
A libclc/clc/include/clc/math/clc_copysign.h
M libclc/clc/include/clc/math/clc_mad.h
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
R libclc/clc/include/clc/math/ternary_decl.inc
M libclc/clc/include/clc/relational/relational.h
A libclc/clc/include/clc/shared/binary_def.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
R libclc/clc/lib/clspv64
M libclc/clc/lib/generic/SOURCES
A libclc/clc/lib/generic/integer/clc_add_sat.cl
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_mad_sat.cl
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_rotate.cl
A libclc/clc/lib/generic/integer/clc_rotate.inc
A libclc/clc/lib/generic/integer/clc_sub_sat.cl
A libclc/clc/lib/generic/integer/clc_upsample.cl
A libclc/clc/lib/generic/math/clc_copysign.cl
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
M libclc/clc/lib/spirv/SOURCES
R libclc/clc/lib/spirv64/SOURCES
M libclc/clspv/lib/math/fma.cl
M libclc/clspv/lib/subnormal_config.cl
R libclc/clspv64
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/config.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/include/math/clc_ldexp.h
M libclc/generic/lib/SOURCES
M libclc/generic/lib/integer/add_sat.cl
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/mad_sat.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/rotate.cl
R libclc/generic/lib/integer/rotate.inc
M libclc/generic/lib/integer/sub_sat.cl
M libclc/generic/lib/integer/upsample.cl
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/copysign.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
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
M libcxx/docs/ReleaseNotes.rst
A libcxx/docs/ReleaseNotes/21.rst
M libcxx/docs/Status/Cxx17Papers.csv
M libcxx/include/__algorithm/copy.h
M libcxx/include/__algorithm/copy_backward.h
M libcxx/include/__bit_reference
M libcxx/include/__config
M libcxx/include/__configuration/abi.h
M libcxx/include/__configuration/compiler.h
M libcxx/include/__cxx03/__memory/uninitialized_algorithms.h
M libcxx/include/__hash_table
M libcxx/include/__locale_dir/support/windows.h
M libcxx/include/__new/allocate.h
M libcxx/include/__string/constexpr_c_functions.h
M libcxx/include/__tree
M libcxx/include/__type_traits/promote.h
M libcxx/include/__vector/vector.h
M libcxx/include/__vector/vector_bool.h
M libcxx/include/bitset
M libcxx/include/deque
M libcxx/include/forward_list
M libcxx/include/fstream
M libcxx/include/list
M libcxx/include/locale
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/experimental/time_zone.cpp
M libcxx/src/include/overridable_function.h
M libcxx/src/iostream.cpp
M libcxx/src/locale.cpp
M libcxx/src/memory_resource.cpp
M libcxx/src/new.cpp
M libcxx/src/system_error.cpp
M libcxx/test/benchmarks/GenerateInput.h
R libcxx/test/benchmarks/Utilities.h
M libcxx/test/benchmarks/algorithms/algorithms.partition_point.bench.cpp
A libcxx/test/benchmarks/algorithms/copy.bench.cpp
A libcxx/test/benchmarks/algorithms/copy_backward.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
A libcxx/test/benchmarks/algorithms/reverse.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
M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
M libcxx/test/libcxx/clang_tidy.gen.py
M libcxx/test/libcxx/fuzzing/random.pass.cpp
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/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.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_backward.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_backward.pass.cpp
M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_n.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
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
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/depr/depr.c.headers/math_h.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/input.output/file.streams/fstreams/ifstream.members/offset_range.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/cmath.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
M libcxxabi/src/cxa_exception_storage.cpp
M libcxxabi/src/stdlib_new_delete.cpp
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
A lld/ELF/BPSectionOrderer.cpp
A lld/ELF/BPSectionOrderer.h
M lld/ELF/CMakeLists.txt
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/InputFiles.cpp
M lld/ELF/Options.td
M lld/ELF/ScriptLexer.cpp
M lld/ELF/ScriptLexer.h
M lld/ELF/ScriptParser.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
M lld/MachO/BPSectionOrderer.cpp
M lld/MachO/Relocations.cpp
M lld/docs/ReleaseNotes.rst
M lld/include/lld/Common/BPSectionOrdererBase.inc
A lld/test/COFF/arm64x-delayimport.test
M lld/test/COFF/arm64x-export.test
A lld/test/COFF/locally-imported-arm64x.s
A lld/test/ELF/bp-section-orderer-stress.s
A lld/test/ELF/bp-section-orderer.s
M lld/test/ELF/gc-sections.s
M lld/test/ELF/hexagon-plt.s
M lld/test/ELF/hexagon-shared.s
M lld/test/ELF/icf-safe.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
M lld/test/ELF/riscv-gp.s
M lld/test/ELF/weak-undef-lib.s
A lld/test/wasm/shared-lazy.s
M lld/wasm/SymbolTable.cpp
M lldb/bindings/interface/SBProcessDocstrings.i
M lldb/bindings/python/python-swigsafecast.swig
M lldb/bindings/python/python-typemaps.swig
M lldb/bindings/python/python-wrapper.swig
M lldb/docs/resources/build.rst
M lldb/docs/resources/lldbgdbremote.md
M lldb/docs/resources/test.rst
M lldb/docs/use/aarch64-linux.md
M lldb/docs/use/variable.rst
M lldb/include/lldb/API/LLDB.h
M lldb/include/lldb/API/SBCommandInterpreter.h
M lldb/include/lldb/API/SBCommandReturnObject.h
M lldb/include/lldb/API/SBDefines.h
M lldb/include/lldb/API/SBProgress.h
M lldb/include/lldb/Core/Value.h
M lldb/include/lldb/Expression/ExpressionVariable.h
M lldb/include/lldb/Interpreter/CommandInterpreter.h
M lldb/include/lldb/Interpreter/CommandReturnObject.h
M lldb/include/lldb/Interpreter/Options.h
M lldb/include/lldb/Target/Thread.h
M lldb/include/lldb/Target/ThreadList.h
M lldb/include/lldb/Utility/StreamTee.h
M lldb/include/lldb/ValueObject/ValueObjectConstResultImpl.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
M lldb/source/API/SBCommandInterpreter.cpp
M lldb/source/API/SBCommandReturnObject.cpp
M lldb/source/API/SBProgress.cpp
M lldb/source/API/SBTarget.cpp
M lldb/source/Breakpoint/BreakpointSite.cpp
M lldb/source/Breakpoint/WatchpointList.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Expression/Materializer.cpp
M lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
M lldb/source/Interpreter/CommandAlias.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Interpreter/CommandObject.cpp
M lldb/source/Interpreter/CommandReturnObject.cpp
M lldb/source/Interpreter/Options.cpp
M lldb/source/Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
M lldb/source/Plugins/Process/Utility/ThreadMemory.h
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 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/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
M lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h
M lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.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/source/Target/Process.cpp
M lldb/source/Target/ThreadList.cpp
M lldb/test/API/commands/watchpoints/watchpoint_events/TestWatchpointEvents.py
M lldb/test/API/functionalities/abbreviation/TestAbbreviations.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/TestDataFormatterLibcxxDeque.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/span/TestDataFormatterLibcxxSpan.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py
A lldb/test/API/functionalities/gdb_remote_client/TestReadMemory.py
M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
M lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
A lldb/test/API/linux/aarch64/gcs/corefile
A lldb/test/API/python_api/commandreturnobject/TestSBCommandReturnObject.py
A lldb/test/API/python_api/interpreter_callback/Makefile
A lldb/test/API/python_api/interpreter_callback/TestCommandInterepterPrintCallback.py
A lldb/test/API/python_api/interpreter_callback/main.c
A lldb/test/API/python_api/watchpoint/TestWatchpointRead.py
M lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
M lldb/test/API/tools/lldb-dap/breakpoint/Makefile
A lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_breakpointLocations.py
M lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py
M lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-function.s
A lldb/test/Shell/SymbolFile/DWARF/x86/explicit-member-function-quals.cpp
A lldb/tools/lldb-dap/.vscodeignore
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
M lldb/tools/lldb-dap/package.json
A lldb/unittests/OperatingSystem/CMakeLists.txt
A lldb/unittests/OperatingSystem/OperatingSystemPlugin.h
A lldb/unittests/OperatingSystem/TestThreadSpecificBreakpoints.cpp
M lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp
M lldb/utils/lldb-dotest/lldb-dotest.in
M llvm/CMakeLists.txt
M llvm/Maintainers.md
M llvm/cmake/config-ix.cmake
M llvm/cmake/modules/AddLLVM.cmake
M llvm/cmake/modules/HandleLLVMOptions.cmake
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/HowToReleaseLLVM.rst
A llvm/docs/KernelInfo.rst
M llvm/docs/LangRef.rst
M llvm/docs/LibFuzzer.rst
M llvm/docs/NVPTXUsage.rst
M llvm/docs/Passes.rst
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/docs/RemoveDIsDebugInfo.md
M llvm/docs/SPIRVUsage.rst
M llvm/docs/TableGen/ProgRef.rst
M llvm/docs/Vectorizers.rst
M llvm/docs/tutorial/MyFirstLanguageFrontend/LangImpl09.rst
M llvm/docs/vplan-early-exit.dot
M llvm/docs/vplan-early-exit.png
M llvm/examples/IRTransforms/SimplifyCFG.cpp
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/ADT/GenericCycleImpl.h
M llvm/include/llvm/ADT/StringSwitch.h
M llvm/include/llvm/ADT/StringTable.h
A llvm/include/llvm/Analysis/KernelInfo.h
M llvm/include/llvm/Analysis/MemoryProfileInfo.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/include/llvm/Analysis/VectorUtils.h
M llvm/include/llvm/AsmParser/LLToken.h
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/CommandFlags.h
M llvm/include/llvm/CodeGen/LiveIntervals.h
A llvm/include/llvm/CodeGen/MachineCopyPropagation.h
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/include/llvm/CodeGen/MachineScheduler.h
A llvm/include/llvm/CodeGen/PostRASchedulerList.h
M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
M llvm/include/llvm/CodeGen/Register.h
A llvm/include/llvm/CodeGen/RegisterCoalescerPass.h
M llvm/include/llvm/CodeGen/RegisterPressure.h
A llvm/include/llvm/CodeGen/RenameIndependentSubregs.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
M llvm/include/llvm/CodeGen/TargetPassConfig.h
M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MachOObjectFormat.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
A llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h
A llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h
M llvm/include/llvm/Frontend/Offloading/Utility.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPContext.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/AutoUpgrade.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/include/llvm/IR/Use.h
M llvm/include/llvm/IR/Value.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/include/llvm/Object/SymbolicFile.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/DroppedVariableStats.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/include/llvm/Passes/PassBuilder.h
M llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/Support/AArch64BuildAttributes.h
M llvm/include/llvm/Support/GlobPattern.h
M llvm/include/llvm/Support/ModRef.h
M llvm/include/llvm/Support/NVPTXAddrSpace.h
M llvm/include/llvm/TableGen/Record.h
M llvm/include/llvm/TableGen/StringToOffsetTable.h
M llvm/include/llvm/Target/TargetLoweringObjectFile.h
M llvm/include/llvm/Target/TargetMachine.h
M llvm/include/llvm/Target/TargetOptions.h
M llvm/include/llvm/TargetParser/Triple.h
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
M llvm/include/llvm/Transforms/Utils/VNCoercion.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.h
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/lib/Analysis/CMakeLists.txt
M llvm/lib/Analysis/CaptureTracking.cpp
M llvm/lib/Analysis/CmpInstAnalysis.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
A llvm/lib/Analysis/KernelInfo.cpp
M llvm/lib/Analysis/LazyValueInfo.cpp
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/MemoryProfileInfo.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/ValueTracking.cpp
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/CMakeLists.txt
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
M llvm/lib/CodeGen/CFIFixup.cpp
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/CodeGen/CommandFlags.cpp
M llvm/lib/CodeGen/DetectDeadLanes.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/InitUndef.cpp
M llvm/lib/CodeGen/InlineSpiller.cpp
M llvm/lib/CodeGen/InterleavedAccessPass.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/CodeGen/MachinePassManager.cpp
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/lib/CodeGen/PostRASchedulerList.cpp
M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
M llvm/lib/CodeGen/RegAllocBasic.cpp
M llvm/lib/CodeGen/RegAllocFast.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/RegisterCoalescer.h
M llvm/lib/CodeGen/RegisterPressure.cpp
M llvm/lib/CodeGen/RegisterScavenging.cpp
M llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/StackColoring.cpp
M llvm/lib/CodeGen/StackSlotColoring.cpp
M llvm/lib/CodeGen/StaticDataSplitter.cpp
M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/CodeGen/TargetRegisterInfo.cpp
M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
M llvm/lib/CodeGen/WinEHPrepare.cpp
M llvm/lib/CodeGen/WindowScheduler.cpp
M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
M llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
A llvm/lib/ExecutionEngine/JITLink/CompactUnwindSupport.cpp
A 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/JITLink/aarch64.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/EHFrameRegistrationPlugin.cpp
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
M llvm/lib/ExecutionEngine/Orc/LinkGraphLinkingLayer.cpp
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/MachOObjectFormat.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
A llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp
A llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp
M llvm/lib/Frontend/Offloading/OffloadWrapper.cpp
M llvm/lib/Frontend/Offloading/Utility.cpp
M llvm/lib/Frontend/OpenMP/OMPContext.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/Attributes.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/DataLayout.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/Intrinsics.cpp
M llvm/lib/IR/Value.cpp
M llvm/lib/Linker/IRMover.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCContext.cpp
M llvm/lib/MC/MCParser/COFFAsmParser.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/lib/MC/TargetRegistry.cpp
M llvm/lib/MCA/InstrBuilder.cpp
M llvm/lib/Object/ELFObjectFile.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/SandboxIR/Context.cpp
M llvm/lib/SandboxIR/Region.cpp
M llvm/lib/Support/AArch64BuildAttributes.cpp
A llvm/lib/Support/ARMBuildAttributes.cpp
R llvm/lib/Support/ARMBuildAttrs.cpp
M llvm/lib/Support/BalancedPartitioning.cpp
M llvm/lib/Support/CMakeLists.txt
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Unix/Signals.inc
M llvm/lib/Support/Unix/Threading.inc
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64MacroFusion.h
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.h
M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.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
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
M llvm/lib/Target/AArch64/SMEInstrFormats.td
M llvm/lib/Target/AArch64/SMEPeepholeOpt.cpp
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h
M llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
A llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.cpp
A llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/lib/Target/AMDGPU/GCNPreRALongBranchReg.cpp
A llvm/lib/Target/AMDGPU/GCNPreRALongBranchReg.h
M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
M llvm/lib/Target/AMDGPU/R600TargetMachine.cpp
M llvm/lib/Target/AMDGPU/R600TargetMachine.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIModeRegister.cpp
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
A llvm/lib/Target/AMDGPU/SIWholeQuadMode.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/lib/Target/AMDGPU/VOPCInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
M llvm/lib/Target/ARM/ARMLatencyMutations.h
M llvm/lib/Target/ARM/ARMMacroFusion.h
M llvm/lib/Target/ARM/ARMProcessors.td
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.h
M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
M llvm/lib/Target/BPF/BPFMIPeephole.cpp
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILDataScalarization.cpp
M llvm/lib/Target/DirectX/DXILFlattenArrays.cpp
M llvm/lib/Target/DirectX/DXILPrepare.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/Hexagon/BitTracker.h
M llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
M llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
M llvm/lib/Target/Hexagon/HexagonTargetMachine.h
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
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/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.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/NVPTX/NVPTXUtilities.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.h
M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
M llvm/lib/Target/PowerPC/PPCMacroFusion.h
M llvm/lib/Target/PowerPC/PPCRegisterInfo.h
M llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
M llvm/lib/Target/PowerPC/PPCTargetMachine.h
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
M llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCV.h
M llvm/lib/Target/RISCV/RISCV.td
M llvm/lib/Target/RISCV/RISCVCallingConv.td
M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
A llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
M llvm/lib/Target/RISCV/RISCVProcessors.td
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
A llvm/lib/Target/RISCV/RISCVSchedSiFiveP500.td
M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/RISCV/RISCVSystemOperands.td
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.h
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp
M llvm/lib/Target/SPIRV/SPIRVAPI.cpp
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.h
M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
M llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
M llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
M llvm/lib/Target/SPIRV/SPIRVSubtarget.h
M llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
M llvm/lib/Target/Sparc/SparcInstrAliases.td
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
M llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
M llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
M llvm/lib/Target/SystemZ/SystemZTargetMachine.h
M llvm/lib/Target/TargetLoweringObjectFile.cpp
M llvm/lib/Target/TargetMachine.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISD.def
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
M llvm/lib/Target/X86/X86ExpandPseudo.cpp
M llvm/lib/Target/X86/X86FastPreTileConfig.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86FrameLowering.h
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrCompiler.td
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86MCInstLower.cpp
M llvm/lib/Target/X86/X86MacroFusion.h
M llvm/lib/Target/X86/X86Subtarget.h
M llvm/lib/Target/X86/X86TargetMachine.cpp
M llvm/lib/Target/X86/X86TargetMachine.h
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
M llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.h
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.h
M llvm/lib/Target/Xtensa/Xtensa.td
A llvm/lib/Target/Xtensa/XtensaFeatures.td
M llvm/lib/Target/Xtensa/XtensaInstrInfo.td
M llvm/lib/Target/Xtensa/XtensaOperands.td
M llvm/lib/Target/Xtensa/XtensaRegisterInfo.td
M llvm/lib/Target/Xtensa/XtensaSubtarget.h
M llvm/lib/TargetParser/ARMTargetParser.cpp
M llvm/lib/TargetParser/Host.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/IPO/IROutliner.cpp
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
M llvm/lib/Transforms/Instrumentation/MemProfiler.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/lib/Transforms/Scalar/NewGVN.cpp
M llvm/lib/Transforms/Utils/BuildLibCalls.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/MemoryTaggingSupport.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Utils/VNCoercion.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
A llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanSLP.cpp
A llvm/lib/Transforms/Vectorize/VPlanSLP.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanValue.h
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
R llvm/test/Analysis/CostModel/AArch64/arith-fp-sve.ll
M llvm/test/Analysis/CostModel/AArch64/cttz_elts.ll
R llvm/test/Analysis/CostModel/AArch64/getIntrinsicInstrCost-vector-reverse.ll
A llvm/test/Analysis/CostModel/AArch64/sve-arith-fp.ll
A llvm/test/Analysis/CostModel/AArch64/vector-reverse.ll
M llvm/test/Analysis/CostModel/RISCV/arith-fp.ll
M llvm/test/Analysis/CostModel/RISCV/gep.ll
A llvm/test/Analysis/CostModel/RISCV/rvv-expandload-compressstore.ll
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
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
M llvm/test/Analysis/CostModel/X86/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/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
A llvm/test/Analysis/DependenceAnalysis/FlipFlopBaseAddress.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
A llvm/test/Analysis/DependenceAnalysis/PR31848.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
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
M llvm/test/Analysis/LoopAccessAnalysis/invariant-dependence-before.ll
A llvm/test/Analysis/ScalarEvolution/exit-count-samesign.ll
M llvm/test/Analysis/ScalarEvolution/pr123550.ll
M llvm/test/Analysis/StackSafetyAnalysis/lifetime.ll
M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
M llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
M llvm/test/Analysis/ValueTracking/phi-known-bits.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/GlobalISel/arm64-irtranslator.ll
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-fshl.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-fshr.mir
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/a55-fuse-address.mir
M llvm/test/CodeGen/AArch64/aarch64-address-type-promotion-assertion.ll
M llvm/test/CodeGen/AArch64/aarch64-addv.ll
A llvm/test/CodeGen/AArch64/aarch64-mixed-ptr-sizes.ll
M llvm/test/CodeGen/AArch64/ampere1-sched-add.mir
M llvm/test/CodeGen/AArch64/arm64-2011-03-09-CPSRSpill.ll
M llvm/test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll
M llvm/test/CodeGen/AArch64/arm64-2011-04-21-CPSRBug.ll
M llvm/test/CodeGen/AArch64/arm64-2012-01-11-ComparisonDAGCrash.ll
M llvm/test/CodeGen/AArch64/arm64-2012-07-11-InstrEmitterBug.ll
M llvm/test/CodeGen/AArch64/arm64-2013-01-23-frem-crash.ll
M llvm/test/CodeGen/AArch64/arm64-2013-01-23-sext-crash.ll
M llvm/test/CodeGen/AArch64/arm64-bitfield-extract.ll
M llvm/test/CodeGen/AArch64/arm64-call-tailcalls.ll
M llvm/test/CodeGen/AArch64/arm64-collect-loh.ll
M llvm/test/CodeGen/AArch64/arm64-dead-register-def-bug.ll
M llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
A llvm/test/CodeGen/AArch64/arm64-prefetch-addrmode.ll
M llvm/test/CodeGen/AArch64/avoid-zero-copy.mir
M llvm/test/CodeGen/AArch64/cluster-frame-index.mir
M llvm/test/CodeGen/AArch64/coalescer-drop-subreg-to-reg-imm-ops.mir
M llvm/test/CodeGen/AArch64/const-shift-of-constmasked.ll
M llvm/test/CodeGen/AArch64/dump-reserved-cycles.mir
M llvm/test/CodeGen/AArch64/dump-schedule-trace.mir
M llvm/test/CodeGen/AArch64/extract-bits.ll
M llvm/test/CodeGen/AArch64/force-enable-intervals.mir
A llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll
M llvm/test/CodeGen/AArch64/fpenv.ll
M llvm/test/CodeGen/AArch64/fsh.ll
A llvm/test/CodeGen/AArch64/luti-with-sme2.ll
M llvm/test/CodeGen/AArch64/machine-scheduler.mir
M llvm/test/CodeGen/AArch64/macro-fusion-addsub-2reg-const1.mir
M llvm/test/CodeGen/AArch64/macro-fusion-last.mir
M llvm/test/CodeGen/AArch64/misched-branch-targets.mir
M llvm/test/CodeGen/AArch64/misched-bundle.mir
M llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir
M llvm/test/CodeGen/AArch64/misched-detail-resource-booking-02.mir
M llvm/test/CodeGen/AArch64/misched-fusion-arith-logic.mir
M llvm/test/CodeGen/AArch64/misched-fusion-cmp-bcc.ll
M llvm/test/CodeGen/AArch64/misched-fusion-cmp.mir
M llvm/test/CodeGen/AArch64/misched-fusion-crypto-eor.mir
M llvm/test/CodeGen/AArch64/misched-move-imm.mir
M llvm/test/CodeGen/AArch64/misched-predicate-virtreg.mir
M llvm/test/CodeGen/AArch64/misched-sort-resource-in-trace.mir
M llvm/test/CodeGen/AArch64/neon-dotreduce.ll
A llvm/test/CodeGen/AArch64/pauthlr-prologue-duplication.mir
A llvm/test/CodeGen/AArch64/perm-tb-with-sme2.ll
M llvm/test/CodeGen/AArch64/sched-postidxalias.mir
M llvm/test/CodeGen/AArch64/sched-print-cycle.mir
M llvm/test/CodeGen/AArch64/scheduledag-constreg.mir
M llvm/test/CodeGen/AArch64/sme2-fp8-intrinsics-cvt.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-add.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-fp-dots.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-insert-mova.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-qcvt.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-qrshr.ll
M llvm/test/CodeGen/AArch64/sme2-intrinsics-vdot.ll
A llvm/test/CodeGen/AArch64/sme2-multivec-regalloc.mir
M llvm/test/CodeGen/AArch64/smul_fix.ll
A llvm/test/CodeGen/AArch64/spill-fill-zpr-predicates.mir
M llvm/test/CodeGen/AArch64/ssve-stack-hazard-remarks.ll
M llvm/test/CodeGen/AArch64/sve-aliasing.mir
M llvm/test/CodeGen/AArch64/sve2-vscale-sinking.ll
M llvm/test/CodeGen/AArch64/umul_fix.ll
M llvm/test/CodeGen/AArch64/vecreduce-add.ll
M llvm/test/CodeGen/AArch64/win-import-call-optimization-nocalls.ll
M llvm/test/CodeGen/AArch64/win-import-call-optimization.ll
M llvm/test/CodeGen/AArch64/xbfiz.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
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/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
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
A llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcmp.s16.gfx11plus-fake16.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcmp.s16.gfx11plus.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fcmp.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fshl.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fshr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/promote-dependency-on-invariant-result.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdivrem.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/add_i1.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.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/amdpal-cs.ll
M llvm/test/CodeGen/AMDGPU/amdpal-es.ll
M llvm/test/CodeGen/AMDGPU/amdpal-gs.ll
M llvm/test/CodeGen/AMDGPU/amdpal-hs.ll
M llvm/test/CodeGen/AMDGPU/amdpal-ls.ll
M llvm/test/CodeGen/AMDGPU/amdpal-psenable.ll
M llvm/test/CodeGen/AMDGPU/amdpal-vs.ll
M llvm/test/CodeGen/AMDGPU/amdpal.ll
M llvm/test/CodeGen/AMDGPU/at-least-one-def-value-assert.mir
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_local_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/attributor-flatscratchinit.ll
A llvm/test/CodeGen/AMDGPU/bitcast_vector_bigint.ll
M llvm/test/CodeGen/AMDGPU/blender-coalescer-verifier-error-empty-subrange.mir
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/buffer-fat-pointers-contents-legalization.ll
M llvm/test/CodeGen/AMDGPU/bundle-latency.mir
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/cluster-flat-loads-postra.mir
M llvm/test/CodeGen/AMDGPU/cluster-flat-loads.mir
M llvm/test/CodeGen/AMDGPU/coalescing-with-subregs-in-loop-bug.mir
A llvm/test/CodeGen/AMDGPU/copy-to-reg-frameindex.ll
M llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
M llvm/test/CodeGen/AMDGPU/ctpop16.ll
M llvm/test/CodeGen/AMDGPU/dbg-value-ends-sched-region.mir
M llvm/test/CodeGen/AMDGPU/dead_copy.mir
M llvm/test/CodeGen/AMDGPU/debug-value-scheduler-crash.mir
M llvm/test/CodeGen/AMDGPU/debug-value-scheduler-liveins.mir
M llvm/test/CodeGen/AMDGPU/debug-value-scheduler.mir
M llvm/test/CodeGen/AMDGPU/div-rem-by-constant-64.ll
M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
M llvm/test/CodeGen/AMDGPU/elf-notes.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-load-clustering.mir
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/fp-classify.ll
M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.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/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/hazard-kill.mir
M llvm/test/CodeGen/AMDGPU/high-RP-reschedule.mir
M llvm/test/CodeGen/AMDGPU/icmp.i16.ll
M llvm/test/CodeGen/AMDGPU/idot2.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/indirect-call-known-callees.ll
M llvm/test/CodeGen/AMDGPU/inline-attr.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/kernel-args.ll
M llvm/test/CodeGen/AMDGPU/licm-wwm.mir
M llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.cond.sub.ll
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.fi.b32.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.mfma.gfx950.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-i32.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
M llvm/test/CodeGen/AMDGPU/load-global-i16.ll
M llvm/test/CodeGen/AMDGPU/load-global-i32.ll
M llvm/test/CodeGen/AMDGPU/load-global-i8.ll
A llvm/test/CodeGen/AMDGPU/load-store-cnt.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-lds-struct-aa-memcpy.ll
M llvm/test/CodeGen/AMDGPU/lower-mem-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-hsa.ll
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-debug.mir
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
M llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
M llvm/test/CodeGen/AMDGPU/macro-fusion-cluster-vcc-uses.mir
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/memmove-var-size.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/min.ll
M llvm/test/CodeGen/AMDGPU/minimummaximum.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.ll
M llvm/test/CodeGen/AMDGPU/minmax.ll
M llvm/test/CodeGen/AMDGPU/misched-killflags.mir
M llvm/test/CodeGen/AMDGPU/mmra.ll
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/move-to-valu-atomicrmw-system.ll
M llvm/test/CodeGen/AMDGPU/movrels-bug.mir
M llvm/test/CodeGen/AMDGPU/mul.ll
M llvm/test/CodeGen/AMDGPU/nested-calls.ll
M llvm/test/CodeGen/AMDGPU/nested-loop-conditions.ll
M llvm/test/CodeGen/AMDGPU/offset-split-flat.ll
M llvm/test/CodeGen/AMDGPU/offset-split-global.ll
M llvm/test/CodeGen/AMDGPU/pal-metadata-3.0.ll
M llvm/test/CodeGen/AMDGPU/perfhint.ll
M llvm/test/CodeGen/AMDGPU/post-ra-sched-kill-bundle-use-inst.mir
M llvm/test/CodeGen/AMDGPU/preserve-hi16.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-invariant-markers.ll
R llvm/test/CodeGen/AMDGPU/promote-alloca-invariant-marks.ll
M llvm/test/CodeGen/AMDGPU/pseudo-scalar-transcendental.ll
M llvm/test/CodeGen/AMDGPU/rem_i128.ll
M llvm/test/CodeGen/AMDGPU/remove-incompatible-s-time.ll
M llvm/test/CodeGen/AMDGPU/remove-incompatible-wave32-feature.ll
M llvm/test/CodeGen/AMDGPU/rename-independent-subregs-mac-operands.mir
M llvm/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
M llvm/test/CodeGen/AMDGPU/s-barrier.ll
M llvm/test/CodeGen/AMDGPU/s-getpc-b64-remat.ll
M llvm/test/CodeGen/AMDGPU/sched-assert-dead-def-subreg-use-other-subreg.mir
M llvm/test/CodeGen/AMDGPU/sched-assert-onlydbg-value-empty-region.mir
M llvm/test/CodeGen/AMDGPU/sched-barrier-hang-weak-dep.mir
M llvm/test/CodeGen/AMDGPU/sched-crash-dbg-value.mir
M llvm/test/CodeGen/AMDGPU/sched-handleMoveUp-subreg-def-across-subreg-def.mir
M llvm/test/CodeGen/AMDGPU/schedule-barrier-fpmode.mir
M llvm/test/CodeGen/AMDGPU/schedule-barrier.mir
M llvm/test/CodeGen/AMDGPU/sdiv.ll
M llvm/test/CodeGen/AMDGPU/select-flags-to-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/set-inactive-wwm-overwrite.ll
A llvm/test/CodeGen/AMDGPU/set_kill_i1_for_floation_point_comparison.ll
M llvm/test/CodeGen/AMDGPU/shl.ll
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
M llvm/test/CodeGen/AMDGPU/si-init-whole-wave.mir
M llvm/test/CodeGen/AMDGPU/sibling-call.ll
M llvm/test/CodeGen/AMDGPU/skip-if-dead.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/sreg-xnull-regclass-bitwidth.mir
M llvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll
M llvm/test/CodeGen/AMDGPU/strict_fptrunc.ll
M llvm/test/CodeGen/AMDGPU/sub.ll
M llvm/test/CodeGen/AMDGPU/sub_i1.ll
M llvm/test/CodeGen/AMDGPU/swdev373493.ll
M llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.ll
A llvm/test/CodeGen/AMDGPU/truncate-lshr-cast-build-vector-combine.ll
M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
M llvm/test/CodeGen/AMDGPU/udiv.ll
M llvm/test/CodeGen/AMDGPU/v_cndmask.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
M llvm/test/CodeGen/AMDGPU/vgpr-liverange.ll
M llvm/test/CodeGen/AMDGPU/vni8-live-reg-opt.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/wave_dispatch_regs.ll
M llvm/test/CodeGen/AMDGPU/wqm-terminators.mir
M llvm/test/CodeGen/AMDGPU/wqm.mir
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/cortex-m7-wideops.mir
M llvm/test/CodeGen/ARM/machine-copyprop.mir
M llvm/test/CodeGen/ARM/misched-branch-targets.mir
A llvm/test/CodeGen/ARM/twoaddress-asserts-liveints-undef-use.mir
M llvm/test/CodeGen/ARM/vector-DAGCombine.ll
M llvm/test/CodeGen/ARM/vldmia-sched.mir
M llvm/test/CodeGen/BPF/loop-exit-cond.ll
A llvm/test/CodeGen/BPF/may_goto_1.ll
A llvm/test/CodeGen/BPF/may_goto_2.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
A llvm/test/CodeGen/DirectX/WaveActiveMax.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/Hexagon/bank-conflict-load.mir
M llvm/test/CodeGen/Hexagon/bank-conflict.mir
M llvm/test/CodeGen/Hexagon/swp-carried-dep1.mir
M llvm/test/CodeGen/Hexagon/swp-carried-dep2.mir
M llvm/test/CodeGen/Hexagon/swp-carried-dep3.mir
A llvm/test/CodeGen/Hexagon/swp-carried-dep4.mir
A llvm/test/CodeGen/Hexagon/swp-carried-dep5.mir
M llvm/test/CodeGen/Hexagon/swp-epilog-phi8.ll
M llvm/test/CodeGen/LoongArch/annotate-tablejump.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/add.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/mul.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/sub.ll
M llvm/test/CodeGen/LoongArch/jr-without-ra.ll
M llvm/test/CodeGen/LoongArch/jump-table.ll
M llvm/test/CodeGen/M68k/PR57660.ll
A llvm/test/CodeGen/M68k/register-spills.ll
M llvm/test/CodeGen/MIR/X86/fake-use-tailcall.mir
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/llvm-ir/add.ll
M llvm/test/CodeGen/Mips/llvm-ir/mul.ll
M llvm/test/CodeGen/Mips/llvm-ir/sub.ll
M llvm/test/CodeGen/Mips/pseudo-jump-fill.ll
M llvm/test/CodeGen/NVPTX/boolean-patterns.ll
M llvm/test/CodeGen/NVPTX/cp-async-bulk.ll
A llvm/test/CodeGen/NVPTX/fence-cluster.ll
A llvm/test/CodeGen/NVPTX/fence-nocluster.ll
R llvm/test/CodeGen/NVPTX/fence-sm-90.ll
R llvm/test/CodeGen/NVPTX/fence.ll
A llvm/test/CodeGen/NVPTX/fence.py
M llvm/test/CodeGen/NVPTX/griddepcontrol.ll
M llvm/test/CodeGen/NVPTX/kernel-param-align.ll
M llvm/test/CodeGen/NVPTX/lit.local.cfg
M llvm/test/CodeGen/NVPTX/lower-args-gridconstant.ll
M llvm/test/CodeGen/NVPTX/lower-args.ll
M llvm/test/CodeGen/NVPTX/lower-byval-args.ll
A llvm/test/CodeGen/NVPTX/tcgen05-alloc.ll
A llvm/test/CodeGen/NVPTX/upgrade-nvvm-annotations.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-creq.ll
M llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll
M llvm/test/CodeGen/PowerPC/pcrel-jump-table.ll
M llvm/test/CodeGen/PowerPC/topdepthreduce-postra.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-fshl-fshr-rv32.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-fshl-fshr-rv64.mir
M llvm/test/CodeGen/RISCV/attributes.ll
A llvm/test/CodeGen/RISCV/debug-line.ll
A llvm/test/CodeGen/RISCV/ipra.ll
M llvm/test/CodeGen/RISCV/jumptable-swguarded.ll
M llvm/test/CodeGen/RISCV/jumptable.ll
M llvm/test/CodeGen/RISCV/kcfi-mir.ll
M llvm/test/CodeGen/RISCV/live-sp.mir
A llvm/test/CodeGen/RISCV/memmove.ll
M llvm/test/CodeGen/RISCV/misched-postra-direction.mir
M llvm/test/CodeGen/RISCV/opt-w-instrs.mir
A llvm/test/CodeGen/RISCV/rda-stack.mir
M llvm/test/CodeGen/RISCV/rvv/abd.ll
M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir
M llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-exact-vlen.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-reverse.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
M llvm/test/CodeGen/RISCV/rvv/fmaximum-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fminimum-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/mask-reg-alloc.mir
M llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/pr125306.ll
M llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
M llvm/test/CodeGen/RISCV/rvv/setcc-fp.ll
M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
M llvm/test/CodeGen/RISCV/rvv/vfadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfdiv-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmax-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmin-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmul-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfsub-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vl-opt-instrs.ll
M llvm/test/CodeGen/RISCV/rvv/vl-opt-op-info.mir
M llvm/test/CodeGen/RISCV/rvv/vl-opt.ll
M llvm/test/CodeGen/RISCV/rvv/vl-opt.mir
M llvm/test/CodeGen/RISCV/rvv/vlopt-same-vl.ll
M llvm/test/CodeGen/RISCV/rvv/vmadd-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vp-vaaddu.ll
A llvm/test/CodeGen/RISCV/rvv/vp-vector-interleaved-access.ll
M llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vreductions-fp-vp.ll
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.mir
M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vwsll-vp.ll
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
M llvm/test/CodeGen/RISCV/shrinkwrap-jump-table.ll
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
A llvm/test/CodeGen/RISCV/zdinx-memoperand.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveMax.ll
M llvm/test/CodeGen/SystemZ/branch-05.ll
M llvm/test/CodeGen/SystemZ/branch-11.ll
A llvm/test/CodeGen/SystemZ/cond-move-10.mir
A llvm/test/CodeGen/SystemZ/copy-phys-reg-fp64-to-gr64.mir
A llvm/test/CodeGen/SystemZ/copy-phys-reg-gr64-to-fp64.mir
A llvm/test/CodeGen/SystemZ/rda-stack-copy.mir
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/avoidmuls.mir
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/CodeGen/VE/Scalar/br_jt.ll
A llvm/test/CodeGen/WebAssembly/int-mac-reduction-loops.ll
M llvm/test/CodeGen/X86/apx/push2-pop2-cfi-seh.ll
M llvm/test/CodeGen/X86/avx512-broadcast-arith.ll
M llvm/test/CodeGen/X86/avx512-calling-conv.ll
M llvm/test/CodeGen/X86/avx512-cmp.ll
M llvm/test/CodeGen/X86/avx512-ext.ll
M llvm/test/CodeGen/X86/avx512-extract-subvector-load-store.ll
M llvm/test/CodeGen/X86/avx512-intel-ocl.ll
M llvm/test/CodeGen/X86/avx512-load-store.ll
M llvm/test/CodeGen/X86/avx512-logic.ll
M llvm/test/CodeGen/X86/avx512-regcall-Mask.ll
M llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
M llvm/test/CodeGen/X86/avx512-select.ll
M llvm/test/CodeGen/X86/bitcast-vector-bool.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
A llvm/test/CodeGen/X86/cmp-xor.ll
M llvm/test/CodeGen/X86/coalesce-dead-lanes.mir
M llvm/test/CodeGen/X86/codegen-prepare-addrmode-sext.ll
M llvm/test/CodeGen/X86/combine-add.ll
M llvm/test/CodeGen/X86/conditional-tailcall-pgso.ll
M llvm/test/CodeGen/X86/conditional-tailcall.ll
A llvm/test/CodeGen/X86/fake-use-remove-loads.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/CodeGen/X86/fast-isel-select.ll
M llvm/test/CodeGen/X86/fp-round.ll
M llvm/test/CodeGen/X86/fshl.ll
M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
M llvm/test/CodeGen/X86/gfni-shifts.ll
M llvm/test/CodeGen/X86/gpr-to-mask.ll
M llvm/test/CodeGen/X86/jump-table-partition.ll
M llvm/test/CodeGen/X86/late-remat-update.mir
M llvm/test/CodeGen/X86/ldexp.ll
M llvm/test/CodeGen/X86/llround-conv.ll
M llvm/test/CodeGen/X86/localescape.ll
M llvm/test/CodeGen/X86/lround-conv-i32.ll
M llvm/test/CodeGen/X86/lround-conv-i64.ll
A llvm/test/CodeGen/X86/merge-huge-sp-updates.ll
M llvm/test/CodeGen/X86/mixed-ptr-sizes.ll
M llvm/test/CodeGen/X86/musttail-varargs.ll
M llvm/test/CodeGen/X86/no-plt-libcalls.ll
M llvm/test/CodeGen/X86/no-sse-win64.ll
M llvm/test/CodeGen/X86/post-ra-sched-with-debug.mir
A llvm/test/CodeGen/X86/pr124255.ll
M llvm/test/CodeGen/X86/pr27681.mir
M llvm/test/CodeGen/X86/pr32284.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/setcc-combine.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/subcarry.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/vector-idiv-sdiv-512.ll
M llvm/test/CodeGen/X86/vector-mul.ll
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/AArch64/fake-use-global-isel.ll
M llvm/test/DebugInfo/COFF/trailing-inlined-function.s
M llvm/test/DebugInfo/Generic/discriminated-union.ll
M llvm/test/DebugInfo/MIR/X86/instr-ref-join-def-vphi.mir
A llvm/test/DebugInfo/NVPTX/debug-addr-space.ll
M llvm/test/DebugInfo/NVPTX/debug-info.ll
M llvm/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
M llvm/test/DebugInfo/X86/DW_AT_object_pointer.ll
M llvm/test/DebugInfo/X86/dwarf-public-names.ll
M llvm/test/DebugInfo/X86/fake-use.ll
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
A llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ptrauth_dependencies.s
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_pdata_no_strip.s
M llvm/test/ExecutionEngine/JITLink/x86-64/COFF_pdata_strip.s
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
A llvm/test/ExecutionEngine/Orc/minimal-throw-catch.ll
M llvm/test/ExecutionEngine/OrcLazy/minimal-throw-catch.ll
R llvm/test/ExecutionEngine/fma3-jit.ll
R llvm/test/ExecutionEngine/frem.ll
M llvm/test/ExecutionEngine/lit.local.cfg
R llvm/test/ExecutionEngine/mov64zext32.ll
R llvm/test/ExecutionEngine/test-interp-target-ext-type.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-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-logical.ll
R llvm/test/ExecutionEngine/test-interp-vec-select.ll
R llvm/test/ExecutionEngine/test-interp-vec-setcond-fp.ll
R llvm/test/ExecutionEngine/test-interp-vec-setcond-int.ll
R llvm/test/ExecutionEngine/test-interp-vec-shift.ll
R llvm/test/ExecutionEngine/test-interp-vec-shuffle.ll
M llvm/test/Feature/OperandBundles/function-attrs.ll
M llvm/test/Instrumentation/BoundsChecking/runtimes.ll
M llvm/test/Instrumentation/HWAddressSanitizer/mem-attr.ll
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-fminv.ll
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vaddlv.ll
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vaddv.ll
A llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vmovn.ll
A llvm/test/Instrumentation/MemorySanitizer/AArch64/qshrn.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx-intrinsics-x86.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx2-intrinsics-x86.ll
A llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics-upgrade.ll
A llvm/test/Instrumentation/MemorySanitizer/X86/avx512-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/mmx-intrinsics.ll
A llvm/test/Instrumentation/MemorySanitizer/bitreverse.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
M llvm/test/Instrumentation/MemorySanitizer/msan_basic.ll
A llvm/test/Instrumentation/MemorySanitizer/scmp.ll
A llvm/test/Instrumentation/MemorySanitizer/ucmp.ll
A llvm/test/Instrumentation/MemorySanitizer/vector-reduce-fadd.ll
A llvm/test/Instrumentation/MemorySanitizer/vector-reduce-fmul.ll
M llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll
M llvm/test/LTO/X86/mix-opaque-typed.ll
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/gfx11_asm_vop3_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopcx_t16_promote.s
M llvm/test/MC/AMDGPU/gfx11_unsupported.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/AMDGPU/gfx12_asm_vop3c.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopcx_t16_promote.s
M llvm/test/MC/AMDGPU/gfx950-unsupported.s
M llvm/test/MC/AMDGPU/gfx950_asm_read_tr.s
A llvm/test/MC/ARM/cortex-r52-nofp.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/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
M llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_ds_read_tr.txt
A llvm/test/MC/Disassembler/Xtensa/windowed.txt
A llvm/test/MC/Disassembler/Xtensa/windowed_code_density.txt
A llvm/test/MC/RISCV/xmips-invalid.s
A llvm/test/MC/RISCV/xmips-valid.s
M llvm/test/MC/RISCV/xqciac-invalid.s
M llvm/test/MC/RISCV/xqciac-valid.s
M llvm/test/MC/Sparc/sparc-synthetic-instructions.s
M llvm/test/MC/Sparc/sparcv9-synthetic-instructions.s
A llvm/test/MC/Xtensa/windowed.s
A llvm/test/MC/Xtensa/windowed_code_density.s
A llvm/test/MC/Xtensa/windowed_invalid.s
A llvm/test/MachineVerifier/AMDGPU/test_g_incompatible_range.mir
M llvm/test/Other/cgscc-devirt-iteration.ll
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/optimize-inrange-gep.ll
M llvm/test/Other/pass-pipeline-parsing.ll
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/test/ThinLTO/X86/funcattrs-prop-unknown.ll
A llvm/test/ThinLTO/X86/memprof_imported_internal.ll
A llvm/test/ThinLTO/X86/memprof_imported_internal2.ll
M llvm/test/Transforms/AggressiveInstCombine/memchr.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/AlignmentFromAssumptions/start-unk.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/fp80.ll
M llvm/test/Transforms/ArgumentPromotion/musttail.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
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.5
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/249bf21d2d31...986bba671875
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