LLVM/project 75ca835utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[bazel] Fix build after #169086 (#169725)

Just required wiring up some additional AMDGPU table generated files.
DeltaFile
+6-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+6-01 files

LLVM/project 109050cruntimes CMakeLists.txt, runtimes/cmake/Modules HandleFortran.cmake

Integrate HandleFortran again
DeltaFile
+89-1runtimes/CMakeLists.txt
+0-88runtimes/cmake/Modules/HandleFortran.cmake
+89-892 files

LLVM/project a33fd44clang/lib/Driver/ToolChains Linux.cpp, compiler-rt/cmake/Modules AllSupportedArchDefs.cmake

Revert "[tysan] Type Sanitizer support for SystemZ" (#169726)

Reverts llvm/llvm-project#162396
DeltaFile
+0-6compiler-rt/lib/tysan/tysan_platform.h
+1-1compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
+1-1clang/lib/Driver/ToolChains/Linux.cpp
+2-83 files

LLVM/project d2379efllvm/include/llvm/IR Constants.h, llvm/lib/AsmParser LLParser.cpp

Add deactivation symbol operand to ConstantPtrAuth.

Deactivation symbol operands are supported in the code generator by
building on the previously added support for IRELATIVE relocations.

Reviewers: ojhunt, fmayer, ahmedbougacha, nikic, efriedma-quic

Reviewed By: fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/133537
DeltaFile
+51-11llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+21-8llvm/lib/AsmParser/LLParser.cpp
+20-1llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+14-4llvm/lib/IR/Constants.cpp
+17-0llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
+9-4llvm/include/llvm/IR/Constants.h
+132-2818 files not shown
+218-4824 files

LLVM/project 6227eb9llvm/include/llvm/CodeGen MachineInstr.h, llvm/lib/CodeGen MachineInstr.cpp

Add IR and codegen support for deactivation symbols.

Deactivation symbols are a mechanism for allowing object files to disable
specific instructions in other object files at link time. The initial use
case is for pointer field protection.

For more information, see the RFC:
https://discourse.llvm.org/t/rfc-deactivation-symbols/85556

Reviewers: ojhunt, nikic, fmayer, arsenm, ahmedbougacha

Reviewed By: fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/133536
DeltaFile
+73-0llvm/test/CodeGen/AArch64/deactivation-symbols.ll
+52-17llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+31-12llvm/lib/CodeGen/MachineInstr.cpp
+31-9llvm/include/llvm/CodeGen/MachineInstr.h
+23-10llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+28-0llvm/test/Transforms/InstCombine/ptrauth-intrinsics.ll
+238-4834 files not shown
+441-6740 files

LLVM/project c378bb1llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp, llvm/test/CodeGen/AArch64 ptrauth-irelative.ll ptrauth-type-info-vptr-discr.ll

CodeGen: Optionally emit PAuth relocations as IRELATIVE relocations.

This supports the following use cases:
- ConstantPtrAuth expressions that are unrepresentable using standard PAuth
  relocations such as expressions involving an integer operand or
  deactivation symbols.
- libc implementations that do not support PAuth relocations.

For more information see the RFC:
https://discourse.llvm.org/t/rfc-structure-protection-a-family-of-uaf-mitigation-techniques/85555

Reviewers: MaskRay, fmayer, smithp35, kovdan01

Reviewed By: fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/133533
DeltaFile
+203-15llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+78-0llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
+1-1llvm/test/CodeGen/AArch64/ptrauth-type-info-vptr-discr.ll
+282-163 files

LLVM/project 3a25a4aclang/docs ClangFormatStyleOptions.rst, clang/include/clang/Format Format.h

[clang-format] Add xxxMaxDigitsNoSeparator (#164286)

This basically adds a Leave option for a specific range of literals.
DeltaFile
+68-12clang/include/clang/Format/Format.h
+61-9clang/docs/ClangFormatStyleOptions.rst
+26-9clang/lib/Format/IntegerLiteralSeparatorFixer.cpp
+30-0clang/unittests/Format/ConfigParseTest.cpp
+22-5clang/unittests/Format/IntegerLiteralSeparatorTest.cpp
+13-8clang/lib/Format/Format.cpp
+220-431 files not shown
+223-437 files

LLVM/project 8706d82libcxx/include initializer_list, libcxx/include/__compare is_eq.h

[libc++] Applied `[[nodiscard]]` to Language Support (partially) (#169611)

https://wg21.link/#support

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant

The following was implemented in this patch:

- [x] `<compare>`
- [x] `<corotine>`
- [x] `<initializer_list>`
- [x] Integer comparisons

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>
Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+91-0libcxx/test/libcxx/language.support/nodiscard.verify.cpp
+22-6libcxx/test/libcxx/diagnostics/utility.nodiscard.verify.cpp
+9-9libcxx/include/__coroutine/coroutine_handle.h
+7-7libcxx/include/__utility/cmp.h
+9-3libcxx/include/initializer_list
+6-6libcxx/include/__compare/is_eq.h
+144-311 files not shown
+150-357 files

LLVM/project bbb8f7alibcxx/include/__flat_map flat_map.h utils.h, libcxx/test/libcxx/diagnostics flat_map.nodiscard.verify.cpp

[libc++][flat_map] Applied `[[nodiscard]]` (#169453)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
DeltaFile
+55-46libcxx/include/__flat_map/flat_map.h
+96-4libcxx/test/libcxx/diagnostics/flat_map.nodiscard.verify.cpp
+1-1libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/index_transparent.pass.cpp
+1-0libcxx/include/__flat_map/utils.h
+153-514 files

LLVM/project cec837ellvm/test/CodeGen/X86 addcarry.ll

[X86] addcarry.ll - add test coverage for #169691 (#169716)

DeltaFile
+38-0llvm/test/CodeGen/X86/addcarry.ll
+38-01 files

LLVM/project f8eca64llvm/test/Transforms/LoopVectorize first-order-recurrence-tail-folding.ll use-scalar-epilogue-if-tp-fails.ll, llvm/test/Transforms/LoopVectorize/RISCV uniform-load-store.ll divrem.ll

Reapply "[LV] Use ExtractLane(LastActiveLane, V) live outs when tail-folding. (#149042)"

This reverts commit a6edeedbfa308876d6f2b1648729d52970bb07e6.

The following fixes have landed, addressing issues causing the original
revert:
* https://github.com/llvm/llvm-project/pull/169298
* https://github.com/llvm/llvm-project/pull/167897
* https://github.com/llvm/llvm-project/pull/168949

Original message:
Building on top of https://github.com/llvm/llvm-project/pull/148817,
introduce a new abstract LastActiveLane opcode that gets lowered to
Not(Mask) → FirstActiveLane(NotMask) → Sub(result, 1).

When folding the tail, update all extracts for uses outside the loop the
extract the value of the last actice lane.

See also https://github.com/llvm/llvm-project/issues/148603

    [2 lines not shown]
DeltaFile
+757-111llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
+179-44llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
+141-66llvm/test/Transforms/LoopVectorize/optsize.ll
+57-69llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
+39-62llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
+42-44llvm/test/Transforms/LoopVectorize/RISCV/first-order-recurrence-scalable-vf1.ll
+1,215-39617 files not shown
+1,720-61423 files

LLVM/project cabcb5aclang/lib/CIR/CodeGen CIRGenFunction.cpp

[CIR][NFC] Fix build problem inside an assert (#169715)

A recent change introduced a failure in debug builds due to an incorrect
level of indirection inside an assert. This fixes that.
DeltaFile
+1-1clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+1-11 files

LLVM/project 9af00e6mlir/include/mlir/Dialect/AMDGPU/IR AMDGPU.td AMDGPUDialect.h, mlir/lib/Dialect/AMDGPU/IR AMDGPUDialect.cpp

[mlir][amdgpu] Add make_dma_base operation (#169086)

DeltaFile
+56-0mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
+12-0mlir/test/Dialect/AMDGPU/ops.mlir
+7-0mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
+4-0mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h
+79-04 files

LLVM/project d58ebe3llvm/test/Transforms/LoopVectorize first-order-recurrence-tail-folding.ll use-scalar-epilogue-if-tp-fails.ll, llvm/test/Transforms/LoopVectorize/RISCV uniform-load-store.ll divrem.ll

Revert "Reapply "[LV] Use ExtractLane(LastActiveLane, V) live outs when tail-folding. (#149042)""

This reverts commit 72e51d389f66d9cc6b55fd74b56fbbd087672a43.

Missed some test updates.
DeltaFile
+111-757llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
+44-179llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
+66-141llvm/test/Transforms/LoopVectorize/optsize.ll
+69-57llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
+62-39llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
+40-46llvm/test/Transforms/LoopVectorize/pr43166-fold-tail-by-masking.ll
+392-1,21917 files not shown
+614-1,72023 files

LLVM/project 52cf5b3flang/lib/Frontend CompilerInvocation.cpp

Post-merge fixes
DeltaFile
+1-1flang/lib/Frontend/CompilerInvocation.cpp
+1-11 files

LLVM/project a4d4277lldb/bindings/interface SBTargetExtensions.i, lldb/examples/python/templates scripted_process.py

[lldb] [scripting bridge] 167388 chore: add api to return arch name for target (#168273)

This pr fixes #167388 .

## Description

This pr adds new method `GetArchName` to `SBTarget` so that no need to
parse triple to get arch name in client code.

## Testing

### All from `TestTargetAPI.py`

run test with

```
./build/bin/lldb-dotest -v -p TestTargetAPI.py
```
<details>

    [31 lines not shown]
DeltaFile
+18-0lldb/test/API/python_api/target/TestTargetAPI.py
+13-0lldb/source/API/SBTarget.cpp
+1-3lldb/examples/python/templates/scripted_process.py
+2-0lldb/include/lldb/API/SBTarget.h
+1-0lldb/bindings/interface/SBTargetExtensions.i
+35-35 files

LLVM/project 684f64clldb/packages/Python/lldbsuite/test/builders darwin.py

[lldb] [test-suite] fix typo in variable in darwin builder (#169254)

While taking a look at the code of lldb test-suite packages, I have
noticed that in `get_triple_str` in `darwin.py` env is added inside a
`components` list, which is probably supposed to be `component` (defined
on the line 61).

Signed-off-by: Nikita B <n2h9z4 at gmail.com>
DeltaFile
+1-1lldb/packages/Python/lldbsuite/test/builders/darwin.py
+1-11 files

LLVM/project f5b03ebllvm/test/CodeGen/AMDGPU constant-address-space-32bit.ll, llvm/test/CodeGen/RISCV/GlobalISel/rvv vluxei.ll

Merge remote-tracking branch 'official/main' into users/meinersbur/flang_builtin-mods_2
DeltaFile
+4,734-0llvm/test/tools/llvm-mca/RISCV/tt-ascalon-d8/vlseg-vsseg.s
+1,529-1,529llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-fp.s
+1,560-19llvm/test/CodeGen/AMDGPU/constant-address-space-32bit.ll
+0-1,554llvm/test/CodeGen/RISCV/rvv/vluxei.ll
+0-1,554llvm/test/CodeGen/RISCV/rvv/vloxei.ll
+0-1,484llvm/test/CodeGen/RISCV/GlobalISel/rvv/vluxei.ll
+7,823-6,1401,935 files not shown
+40,042-137,6321,941 files

LLVM/project 72e51d3llvm/test/Transforms/LoopVectorize first-order-recurrence-tail-folding.ll use-scalar-epilogue-if-tp-fails.ll, llvm/test/Transforms/LoopVectorize/RISCV uniform-load-store.ll divrem.ll

Reapply "[LV] Use ExtractLane(LastActiveLane, V) live outs when tail-folding. (#149042)"

This reverts commit a6edeedbfa308876d6f2b1648729d52970bb07e6.

The following fixes have landed, addressing issues causing the original
revert:
* https://github.com/llvm/llvm-project/pull/169298
* https://github.com/llvm/llvm-project/pull/167897
* https://github.com/llvm/llvm-project/pull/168949

Original message:
Building on top of https://github.com/llvm/llvm-project/pull/148817,
introduce a new abstract LastActiveLane opcode that gets lowered to
Not(Mask) → FirstActiveLane(NotMask) → Sub(result, 1).

When folding the tail, update all extracts for uses outside the loop the
extract the value of the last actice lane.

See also https://github.com/llvm/llvm-project/issues/148603

    [2 lines not shown]
DeltaFile
+757-111llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
+179-44llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
+141-66llvm/test/Transforms/LoopVectorize/optsize.ll
+57-69llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
+39-62llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
+46-40llvm/test/Transforms/LoopVectorize/pr43166-fold-tail-by-masking.ll
+1,219-39217 files not shown
+1,720-61423 files

LLVM/project d09644amlir/include/mlir/Dialect/LLVMIR ROCDLOps.td, mlir/test/Dialect/LLVMIR rocdl.mlir

[ROCDL] Added missing `cluster.load.async.to.lds` op (gfx1250) (#169042)

* Added missing cluster.load ops with different sizes. Extended all
rocdl tests
DeltaFile
+29-1mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+18-4mlir/test/Dialect/LLVMIR/rocdl.mlir
+13-0mlir/test/Target/LLVMIR/rocdl.mlir
+60-53 files

LLVM/project 2ac2a33flang/include/flang/Parser dump-parse-tree.h

Update dump-parse-tree.h
DeltaFile
+1-1flang/include/flang/Parser/dump-parse-tree.h
+1-11 files

LLVM/project 66f5740openmp/runtime/src CMakeLists.txt

Add TODO comment
DeltaFile
+2-0openmp/runtime/src/CMakeLists.txt
+2-01 files

LLVM/project d01e2e9flang/include/flang/Parser parse-tree.h, flang/lib/Semantics canonicalize-do.cpp check-omp-loop.cpp

[flang][OpenMP] Reject END DO on construct that crosses label-DO

In a label-DO construct where two or more loops share the same teminator,
an OpenMP construct must enclose all the loops if an end-directive is
present. E.g.

```
  do 100 i = 1,10
!$omp do
    do 100 j = 1,10
    100 continue
!$omp end do    ! Error, but ok if this line is removed
```

OpenMP 5.1 and later no longer has this restriction.

Fixes https://github.com/llvm/llvm-project/issues/169536.
DeltaFile
+27-5flang/lib/Semantics/canonicalize-do.cpp
+17-0flang/lib/Semantics/check-omp-loop.cpp
+4-3flang/test/Parser/OpenMP/cross-label-do.f90
+1-1flang/include/flang/Parser/parse-tree.h
+1-1flang/test/Parser/OpenMP/atomic-label-do.f90
+2-0flang/test/Semantics/OpenMP/loop-association.f90
+52-106 files

LLVM/project 66e18b8llvm/test/Transforms/SLPVectorizer/X86 user-with-multi-copyable-ops.ll

[SLP][NFC]Add a test with single op inst, used in many nodes, NFC.
DeltaFile
+123-0llvm/test/Transforms/SLPVectorizer/X86/user-with-multi-copyable-ops.ll
+123-01 files

LLVM/project 9863a81flang/include/flang/Parser parse-tree-visitor.h

Update parse-tree-visitor.h
DeltaFile
+0-1flang/include/flang/Parser/parse-tree-visitor.h
+0-11 files

LLVM/project 5ed80b9runtimes CMakeLists.txt, runtimes/cmake/Modules HandleFortran.cmake

Solve CMAKE_Fortran_PREPROCESS_SOURCE issue
DeltaFile
+87-62runtimes/cmake/Modules/HandleFortran.cmake
+1-1runtimes/CMakeLists.txt
+88-632 files

LLVM/project 19d2b2cllvm/lib/Target/AArch64 AArch64AsmPrinter.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 ptrauth-intrinsic-auth-resign-with-blend.ll

[AArch64][PAC] Rework the expansion of AUT/AUTPAC pseudos

Refactor `AArch64AsmPrinter::emitPtrauthAuthResign` to improve
readability and fix the conditions of `emitPtrauthDiscriminator` being
allowed to clobber AddrDisc:
* do not clobber `AUTAddrDisc` when computing `AUTDiscReg` on resigning
  if `AUTAddrDisc == PACAddrDisc`, as it would prevent passing raw,
  64-bit value as the new discriminator
* mark the `$Scratch` operand of `AUTxMxN` as early-clobber (fixes
  assertions when emitting code at `-O0`)
* move the code computing `ShouldCheck` and `ShouldTrap` conditions to a
  separate function
* define helper `struct PtrAuthSchema` to pass arguments to
  `emitPtrauthAuthResign` in a better structured way
DeltaFile
+117-68llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+67-10llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign-with-blend.ll
+12-1llvm/lib/Target/AArch64/AArch64InstrInfo.td
+196-793 files

LLVM/project 65f3662llvm/lib/Target/AArch64 AArch64InstrInfo.h

Add a comment and update the assertion description
DeltaFile
+4-1llvm/lib/Target/AArch64/AArch64InstrInfo.h
+4-11 files

LLVM/project 37c355ellvm/test/Transforms/PreISelIntrinsicLowering protected-field-pointer.ll protected-field-pointer-addrspace1.ll

Fix tests

Created using spr 1.3.6-beta.1
DeltaFile
+2-2llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
+2-2llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
+4-42 files

LLVM/project 8128b87flang/include/flang/Parser dump-parse-tree.h, flang/test/Parser/OpenMP sections.f90 order-clause01.f90

[flang][OpenMP] Make OmpDirectiveSpecification::Flags an EnumSet

The idea is that there can be multiple flags on a given directive.
When "Flags" was a simple enum, only one flag could have been set
at a time.
DeltaFile
+17-17flang/test/Parser/OpenMP/sections.f90
+15-15flang/test/Parser/OpenMP/order-clause01.f90
+11-11flang/test/Parser/OpenMP/assumption.f90
+17-1flang/include/flang/Parser/dump-parse-tree.h
+9-9flang/test/Parser/OpenMP/atomic-compare.f90
+9-9flang/test/Parser/OpenMP/openmp6-directive-spellings.f90
+78-6246 files not shown
+238-20652 files