LLVM/project b78fd58flang/test/Semantics dosemantics12.f90 kinds02.f90, flang/test/Semantics/OpenACC acc-atomic-validity.f90 acc-reduction-validity.f90

[flang][NFC] Strip trailing whitespace from tests (11 of 14)

Only some fortran source files in flang/test/Semantics have been
modified. The remaining files will be cleaned up in subsequent commits.
DeltaFile
+14-14flang/test/Semantics/dosemantics12.f90
+6-6flang/test/Semantics/kinds02.f90
+4-4flang/test/Semantics/OpenACC/acc-atomic-validity.f90
+3-3flang/test/Semantics/dosemantics11.f90
+3-3flang/test/Semantics/dosemantics05.f90
+2-2flang/test/Semantics/OpenACC/acc-reduction-validity.f90
+32-3217 files not shown
+50-5123 files

LLVM/project a1eff73libc/src/string string_length.h

Include inline_strlen.h on aarch64 only if the target has vector instrucions (#170892)

DeltaFile
+2-1libc/src/string/string_length.h
+2-11 files

LLVM/project b464d77llvm/lib/Target/RISCV RISCVSchedSiFive7.td RISCVScheduleV.td

[RISCV] LMUL lists for indexed and strided loads (#169756)

Create additional lists representing valid LMULs for strided and indexed
load of particular element sizes.
DeltaFile
+5-7llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
+8-0llvm/lib/Target/RISCV/RISCVScheduleV.td
+4-4llvm/lib/Target/RISCV/RISCVSchedTTAscalonD8.td
+17-113 files

LLVM/project 216caeaflang/lib/Lower/OpenMP Clauses.cpp ClauseProcessor.cpp, llvm/include/llvm/Frontend/OpenMP ClauseT.h

[flang][OpenMP] Store list of expressions in InitializerT

The INITIALIZER clause holds a stylized expression that can be
intiantiated with different types. Currently, the InitializerT
class only holds one expression, which happens to correspond to
the first type in the DECLARE_REDUCTION type list.

Change InitializerT to hold a list of expressions instead, one
for each type. Keep the lowering code unchanged by picking the
first expression from the list.
DeltaFile
+13-11flang/lib/Lower/OpenMP/Clauses.cpp
+3-2flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+2-1llvm/include/llvm/Frontend/OpenMP/ClauseT.h
+18-143 files

LLVM/project 4c59219libc/src/__support/FPUtil/x86_64 FEnvImpl.h fenv_x86_common.h, libc/test/UnitTest FEnvSafeTest.cpp

[libc][fenv] Refactor x86 fenv implementations to make it work for various fenv_t. (#165015)

DeltaFile
+205-603libc/src/__support/FPUtil/x86_64/FEnvImpl.h
+259-0libc/src/__support/FPUtil/x86_64/fenv_x86_common.h
+194-0libc/src/__support/FPUtil/x86_64/fenv_x87_utils.h
+166-0libc/src/__support/FPUtil/x86_64/fenv_mxcsr_utils.h
+137-0libc/src/__support/FPUtil/x86_64/fenv_x87_only.h
+43-19libc/test/UnitTest/FEnvSafeTest.cpp
+1,004-62214 files not shown
+1,090-69420 files

LLVM/project f558c30llvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-multidim.ll promote-alloca-negative-index.ll

AMDGPU/PromoteAlloca: Always use i32 for indexing (#170511)

Create more canonical code that may even lead to slightly better
codegen.
DeltaFile
+15-13llvm/test/CodeGen/AMDGPU/promote-alloca-multidim.ll
+7-6llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+8-4llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
+1-1llvm/test/CodeGen/AMDGPU/promote-alloca-vector-to-vector.ll
+31-244 files

LLVM/project 22a2c27llvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp

AMDGPU/PromoteAlloca: Simplify how deferred loads work (#170510)

The second pass of promotion to vector can be quite simple. Reflect that
simplicity in the code for better maintainability.
DeltaFile
+34-46llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+34-461 files

LLVM/project bad1a88clang/test/Driver darwin-link-libcxx.cpp

[clang] Temporarily disable Darwin test for linking against libc++ on non-darwin systems (#170912)

Disable the test added in #170303, which breaks bots that don't use ld
as their linker. This is a temporary and narrow disablement of the test
until we can make it more general again, to get the bots green.

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
DeltaFile
+3-0clang/test/Driver/darwin-link-libcxx.cpp
+3-01 files

LLVM/project ecf4927lldb/source/Host/windows ProcessLauncherWindows.cpp

[lldb] Fix Windows build after 6b51e26d39fa (#170917)

DeltaFile
+1-1lldb/source/Host/windows/ProcessLauncherWindows.cpp
+1-11 files

LLVM/project 93d64a5llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp SPIRVLegalizerInfo.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector atomicrmw_faddfsub_vec_float16.ll atomicrmw_fminfmax_vec_float16.ll

[SPIRV] Add `<2 x half>` and `<4 x half>` atomics via `SPV_NV_shader_atomic_fp16_vector` (#170213)

This adds support for the `SPV_NV_shader_atomic_fp16_vector` extension,
and then uses it to enable lowering of atomic add, sub, min and max on 2
and 4 component vectors of FP16, which are rather common options in ML
workloads. Even though `bfloat16` also works in practice, we do not
enable it since it's not specified in the extension (which might need
updating / promoting to KHR at least). A `TODO` is also inserted in
`SPIRVModuleAnalysis.cpp' regarding the need to upgrade its ample usage
of `report_fatal_error`; I have a WiP patch for that, but it still needs
a bit of baking. Finally, a paired patch will be necessary in the
Translator, as it's not aware of the extension either - I'll update this
review to reference the PR once I create it.
DeltaFile
+47-0llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_faddfsub_vec_float16.ll
+45-0llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_fminfmax_vec_float16.ll
+41-0llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+3-2llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
+3-1llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+3-0llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
+142-32 files not shown
+146-38 files

LLVM/project 4c50d83clang/test/Driver darwin-link-libcxx.cpp

Require darwin
DeltaFile
+3-0clang/test/Driver/darwin-link-libcxx.cpp
+3-01 files

LLVM/project 3ac8417clang/lib/Driver/ToolChains Darwin.cpp, clang/test/Driver darwin-link-libcxx.cpp experimental-library-flag.cpp

Reapply "[clang][Darwin] Prefer the toolchain-provided libc++.dylib if there i…"

This reverts commit 12a532cc430c3b89483ce9cc89bbfc7bea8541e5.
DeltaFile
+81-0clang/test/Driver/darwin-link-libcxx.cpp
+41-3clang/lib/Driver/ToolChains/Darwin.cpp
+15-0compiler-rt/cmake/config-ix.cmake
+5-3clang/test/Driver/experimental-library-flag.cpp
+2-2clang/test/Driver/darwin-header-search-libcxx.cpp
+0-0clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/lib/libc++experimental.a
+144-85 files not shown
+144-811 files

LLVM/project 9dc9c14.github CODEOWNERS

[NFC] Become CODEOWNER of AMDGPULowerBufferFatPointers (#167953)

DeltaFile
+3-0.github/CODEOWNERS
+3-01 files

LLVM/project 7470d72llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp AArch64Subtarget.h, llvm/test/Transforms/LoopUnroll/AArch64 apple-unrolling.ll

[AArch64] Add isAppleMLike helper to check for M cores and aligned CPUs. (#170553)

Add a new isAppleMLike helper, that returns true if the core is part of
the Apple M core family or Apple A14 or later. Used to apply cost
decisions consistently to those groups of cores.

The function is now a single place to update when new cores are added.
It also makes sure we apply unrolling decisions for newer Apple cores to
Apple A17.

PR: https://github.com/llvm/llvm-project/pull/170553
DeltaFile
+2-201llvm/test/Transforms/LoopUnroll/AArch64/apple-unrolling.ll
+4-13llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+15-0llvm/lib/Target/AArch64/AArch64Subtarget.h
+1-10llvm/lib/Target/AArch64/AArch64Subtarget.cpp
+22-2244 files

LLVM/project 12a532cclang/lib/Driver/ToolChains Darwin.cpp, clang/test/Driver darwin-link-libcxx.cpp experimental-library-flag.cpp

Revert "[clang][Darwin] Prefer the toolchain-provided libc++.dylib if there i…"

This reverts commit 190b8d0b4f19e1c3d68c5d153ec7be71a9969192.
DeltaFile
+0-81clang/test/Driver/darwin-link-libcxx.cpp
+3-41clang/lib/Driver/ToolChains/Darwin.cpp
+0-15compiler-rt/cmake/config-ix.cmake
+3-5clang/test/Driver/experimental-library-flag.cpp
+2-2clang/test/Driver/darwin-header-search-libcxx.cpp
+0-0clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/lib/libc++experimental.a
+8-1445 files not shown
+8-14411 files

LLVM/project 03c3716flang/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 (#169714)

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
```

Fixes https://github.com/llvm/llvm-project/issues/169536.
DeltaFile
+28-5flang/lib/Semantics/canonicalize-do.cpp
+19-0flang/lib/Semantics/check-omp-loop.cpp
+1-1flang/include/flang/Parser/parse-tree.h
+1-1flang/test/Parser/OpenMP/atomic-label-do.f90
+1-1flang/test/Parser/OpenMP/cross-label-do.f90
+1-0flang/test/Semantics/OpenMP/loop-association.f90
+51-86 files

LLVM/project d07af13llvm/lib/MC GOFFObjectWriter.cpp

Fix formatting
DeltaFile
+1-2llvm/lib/MC/GOFFObjectWriter.cpp
+1-21 files

LLVM/project acb9742lldb/source/Commands CommandObjectBreakpoint.cpp

[lldb] Fix a warning

This patch fixes:

  lldb/source/Commands/CommandObjectBreakpoint.cpp:1266:21: error:
  unused variable 'expr' [-Werror,-Wunused-variable]
DeltaFile
+0-1lldb/source/Commands/CommandObjectBreakpoint.cpp
+0-11 files

LLVM/project 4febd61clang/test/CodeGenObjC expose-direct-method-consumed.m

fix mac test
DeltaFile
+0-11clang/test/CodeGenObjC/expose-direct-method-consumed.m
+0-111 files

LLVM/project 5d714bdclang/lib/CodeGen CGCall.cpp, clang/test/CodeGen lifetime-invoke-c.c

Add cleanups for the error path and add more tests
DeltaFile
+12-13clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+5-7clang/test/CodeGen/lifetime-invoke-c.c
+3-0clang/lib/CodeGen/CGCall.cpp
+20-203 files

LLVM/project aa32d94clang/lib/CodeGen CGCall.cpp

Avoid checking NoLifetimeMarkersForTemporaries
DeltaFile
+5-4clang/lib/CodeGen/CGCall.cpp
+5-41 files

LLVM/project 2560fa6clang/test/CodeGen lifetime-invoke-c.c

Fix test checks
DeltaFile
+2-2clang/test/CodeGen/lifetime-invoke-c.c
+2-21 files

LLVM/project 8be2cadclang/lib/CodeGen CGCall.cpp

Update comment to be more accurate
DeltaFile
+3-5clang/lib/CodeGen/CGCall.cpp
+3-51 files

LLVM/project 78523ecclang/test/CodeGenCXX aggregate-lifetime-invoke.cpp

Update invoke test for tighter lifetimes
DeltaFile
+12-14clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+12-141 files

LLVM/project 2513476clang/lib/CodeGen CGCall.cpp CGCall.h, clang/test/CodeGen stack-usage-lifetimes.c

[clang] Use tighter lifetime bounds for C temporary arguments

In C, consecutive statements in the same scope are under
CompoundStmt/CallExpr, while in C++ they typically fall under
CompoundStmt/ExprWithCleanup. This leads to different behavior with
respect to where pushFullExprCleanUp inserts the lifetime end markers
(e.g., at the end of scope).

For these cases, we can track and insert the lifetime end markers right
after the call completes. Allowing the stack space to be reused
immediately. This partially addresses #109204 and #43598 for improving
stack usage.
DeltaFile
+89-0clang/test/CodeGen/stack-usage-lifetimes.c
+15-5clang/lib/CodeGen/CGCall.cpp
+19-0clang/lib/CodeGen/CGCall.h
+1-1clang/test/CodeGenCXX/stack-reuse-miscompile.cpp
+124-64 files

LLVM/project 5daad5bclang/docs ReleaseNotes.rst, clang/lib/CodeGen CGCall.cpp

[clang] Limit lifetimes of temporaries to the full expression (#170517)

We have several issues describing suboptimal stack usage related to the
lifetimes of temporary objects, such as #68747, #43598, and #109204.

Previously, https://reviews.llvm.org/D74094 tried to address this. In
that review, a few issues were brought up, particularly a concern about
the lifetimes of the temporaries needing to be extended to end of the
full expression. While there are arguably more optimal lifetime bounds
we could enforce, for now we can conservatively make them extend to the
end of the full expression, and later refine the optimization to use
tighter bounds (or perhaps a better mechanism in the middle end?).

Fixes #68747

Co-authored-by: Nick Desaulniers <nick.desaulniers at gmail.com>
Co-authored-by: Erik Pilkington <erik.pilkington at gmail.com>

---------

    [2 lines not shown]
DeltaFile
+98-0clang/test/CodeGen/lifetime-call-temp.c
+50-0clang/test/CodeGen/lifetime-invoke-c.c
+47-0clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+21-1clang/lib/CodeGen/CGCall.cpp
+19-0clang/test/CodeGenCXX/amdgcn-call-with-aggarg.cc
+9-0clang/docs/ReleaseNotes.rst
+244-14 files not shown
+261-110 files

LLVM/project 8c08de3flang/lib/Semantics check-omp-loop.cpp, flang/test/Semantics/OpenMP loop-association.f90

Fix typo in error message
DeltaFile
+1-1flang/test/Semantics/OpenMP/loop-association.f90
+1-1flang/lib/Semantics/check-omp-loop.cpp
+2-22 files

LLVM/project bb17dfamlir/include/mlir/Transforms RegionUtils.h, mlir/lib/Dialect/Bufferization/Transforms EmptyTensorElimination.cpp

[mlir][bufferization] Enable moving dependent values in eliminate-empty-tensors (#169718)

Currently empty tensor elimination by constructing a SubsetExtractionOp
to match a SubsetInsertionOp at the end of a DPS chain will fail if any
operands required by the insertion op don't dominate the insertion point
for the extraction op.

This change improves the transformation by attempting to move all pure
producers of required operands to the insertion point of the extraction
op. In the process this improves a number of tests for empty tensor
elimination.
DeltaFile
+89-87mlir/test/Transforms/move-operation-deps.mlir
+80-19mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-empty-tensor-elimination.mlir
+12-5mlir/lib/Transforms/Utils/RegionUtils.cpp
+8-2mlir/lib/Dialect/Bufferization/Transforms/EmptyTensorElimination.cpp
+3-1mlir/test/lib/Transforms/TestTransformsOps.td
+2-1mlir/include/mlir/Transforms/RegionUtils.h
+194-1156 files

LLVM/project 5506a4dflang/lib/Semantics check-omp-loop.cpp

Remove unused variable
DeltaFile
+0-1flang/lib/Semantics/check-omp-loop.cpp
+0-11 files

LLVM/project ee781e8flang/lib/Semantics check-omp-loop.cpp canonicalize-do.cpp, flang/test/Parser/OpenMP cross-label-do.f90

The END DO crossing loop boundary is always illegal
DeltaFile
+16-13flang/lib/Semantics/check-omp-loop.cpp
+6-5flang/lib/Semantics/canonicalize-do.cpp
+2-3flang/test/Parser/OpenMP/cross-label-do.f90
+0-1flang/test/Semantics/OpenMP/loop-association.f90
+24-224 files