SuccessChanges

Summary

  1. [AArch64] Handle any extend whilst lowering mull (details)
  2. [flang][driver] Add checks for errors from `Prescan` and `Parse` (details)
  3. Revert "[sanitizer] Define SANITIZER_GLIBC to refine SANITIZER_LINUX feature detection and support musl" (details)
  4. [AArch64] Handle any extend whilst lowering addw/addl/subw/subl (details)
  5. [flang][driver] Update error messages (nfc) (details)
  6. Fix test failure in a7e3339f3b0eb71e43d44e6f59cc8db6a7b110bf (details)
  7. [VPlan] Use public VPValue constructor in VPPRedInstPHIRecipe (NFC). (details)
  8. [ARM] Handle any extend whilst lowering mull (details)
  9. [RISCV][NFC] Add new test cases for mul (details)
  10. [mlir] Use thread_local stack in LLVM dialect type parsing and printing (details)
  11. [VPlan] Add getLiveInIRValue accessor to VPValue. (details)
  12. [ARM] Handle any extend whilst lowering addw/addl/subw/subl (details)
  13. [LiveDebugValues] Handle spill locations with a fixed and scalable component. (details)
  14. [ValueTypes] Fix formatting on scalable vector warning (NFC) (details)
  15. [AArch64][SVE] Emit DWARF location expr for SVE (dbg.declare) (details)
  16. [VPlan] Keep start value in VPWidenIntOrFpInductionRecipe (NFC). (details)
  17. [PowerPC] Fix issue where vsrq is given incorrect shift vector (details)
  18. [X86] Add scalar/vector test coverage for D93599 (details)
  19. [libc] remove modulo from CircularArrayRef iterator (details)
  20. [libc] Align src buffer instead of dst buffer (details)
Commit 78d8a821e23e42d13dcbb3467747e480fb889b8a by david.green
[AArch64] Handle any extend whilst lowering mull

Demanded bits may turn a sext or zext into an anyext if the top bits are
not needed. This currently prevents the lowering to instructions like
mull, addl and addw. This patch fixes the mull generation by keeping it
simple and treating them like zextends.

Differential Revision: https://reviews.llvm.org/D93832
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-smull.ll
The file was modifiedllvm/test/CodeGen/AArch64/lowerMUL-newload.ll
Commit e49dc2981cb311ac2b696ebb016fac9a8cd60922 by andrzej.warzynski
[flang][driver] Add checks for errors from `Prescan` and `Parse`

If either `Prescan` or `Parse` generate any fatal errors, the new driver
will:
  * report it (i.e. issue an error diagnostic)
  * exit early
  * return non-zero exit code
This behaviour is consistent with f18 (i.e. the old driver).

Reviewed By: sameeranjoshi

Differential Revision: https://reviews.llvm.org/D93712
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
The file was modifiedflang/lib/Frontend/FrontendAction.cpp
The file was addedflang/test/Flang-Driver/scanning-error.f95
The file was addedflang/test/Flang-Driver/parse-error.f95
Commit 4839378ca05f88faed53ea25457fd93fcad93460 by oliver.stannard
Revert "[sanitizer] Define SANITIZER_GLIBC to refine SANITIZER_LINUX feature detection and support musl"

This reverts commit b7718b617557aa9827f994a16267537236634095, because it
is causing build failures on all 32-bit ARM bots which build
compiler-rt.
The file was modifiedcompiler-rt/cmake/Modules/AddCompilerRT.cmake
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
The file was modifiedcompiler-rt/lib/asan/tests/asan_test.cpp
The file was modifiedcompiler-rt/lib/msan/tests/msan_test.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
The file was modifiedcompiler-rt/lib/interception/interception_linux.cpp
The file was modifiedcompiler-rt/lib/asan/asan_interceptors.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
The file was modifiedcompiler-rt/lib/interception/interception_linux.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform.h
Commit a9b6440eddde920920141d8ade9090273271a79b by david.green
[AArch64] Handle any extend whilst lowering addw/addl/subw/subl

This adds an extra tablegen PatFrag, zanyext, which matches either any
extend or zext and uses that in the aarch64 backend to handle any
extends in addw/addl/subw/subl patterns.

Differential Revision: https://reviews.llvm.org/D93833
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/lowerMUL-newload.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-neon-3vdiff.ll
Commit fa1e543e0b8c625bf2625598d9a16c484e349884 by andrzej.warzynski
[flang][driver] Update error messages (nfc)

As per Flang's coding guidelines
(flang/docs/C++style.md#error-messages):
```
Messages should start with a capital letter.
```

This patch updates error messages in the driver (new and old) so that
they conform with the guideline above.

This change was suggested in one of the recent reviews:
https://reviews.llvm.org/D93712. It felt like this deserved a dedicated
patch, so sending it separately.
The file was modifiedflang/test/Flang-Driver/syntax-only.f90
The file was modifiedflang/lib/Frontend/FrontendAction.cpp
The file was modifiedflang/test/Flang-Driver/parse-error.f95
The file was modifiedflang/test/Flang-Driver/scanning-error.f95
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
The file was modifiedflang/tools/f18/f18.cpp
Commit e4cda13d5a54a8c6366e4ca82d74265e68bbb3f5 by sander.desmalen
Fix test failure in a7e3339f3b0eb71e43d44e6f59cc8db6a7b110bf

Set the target-triple to aarch64 in debug-info-sve-dbg-value.mir
to avoid "'+sve' is not a recognized feature for this target"
diagnostic.
The file was modifiedllvm/test/CodeGen/AArch64/debug-info-sve-dbg-value.mir
Commit f73c09caa2a86fa9fe6f88b4a4c438c005fea32c by flo
[VPlan] Use public VPValue constructor in VPPRedInstPHIRecipe (NFC).

VPPredInstPHIRecipe does not need access to VPValue via friendship. It
can just use the public constructor,

Discussed as part of D92281.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h
Commit ddb82fc76ceb92e6f361d35f1ee8dedaee756854 by david.green
[ARM] Handle any extend whilst lowering mull

Similar to 78d8a821e23e but for ARM, this handles any_extend whilst
creating MULL nodes, treating them as zextends.

Differential Revision: https://reviews.llvm.org/D93834
The file was modifiedllvm/test/CodeGen/ARM/vmul.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/ARM/vmls.ll
The file was modifiedllvm/test/CodeGen/ARM/vmla.ll
Commit 351a45ca73de3ec4524d2194674e2a92f8b7d9b5 by powerman1st
[RISCV][NFC] Add new test cases for mul
The file was modifiedllvm/test/CodeGen/RISCV/mul.ll
Commit 74438eff511e71dc33841546d89cb34206551d55 by zinenko
[mlir] Use thread_local stack in LLVM dialect type parsing and printing

LLVM dialect type parsing and printing have been using a local stack object
forwarded between recursive functions responsible for parsing or printing
specific types. This stack is necessary to intercept (mutually) recursive
structure types and avoid inifinite recursion. This approach works only thanks
to the closedness of the LLVM dialect type system: types that don't belong to
the dialect are not allowed. Switch the approach to using a `thread_local`
stack inside the functions parsing the structure types. This makes the code
slightly cleaner by avoiding the need to pass the stack object around and, more
importantly, makes it possible to reconsider the closedness of the LLVM dialect
type system. As a nice side effect of this change, container LLVM dialect types
now support type aliases in their body (although it is currently impossible to
also use the alises when printing).

Depends On D93713

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D93714
The file was modifiedmlir/test/Dialect/LLVMIR/types-invalid.mlir
The file was modifiedmlir/test/Dialect/LLVMIR/types.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
Commit 0ce5f402e0166a33bea01d577ce8ee32189d80e3 by flo
[VPlan] Add getLiveInIRValue accessor to VPValue.

This patch adds a new getLiveInIRValue accessor to VPValue, which
returns the underlying value, if the VPValue is defined outside of
VPlan. This is required to handle scalars in VPTransformState, which
requires dealing with scalars defined outside of VPlan.

We can simply check VPValue::Def to determine if the value is defined
inside a VPlan.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D92281
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h
Commit 63dce70b794eb99ebbfdeed3ca9aafca2b8fe5c4 by david.green
[ARM] Handle any extend whilst lowering addw/addl/subw/subl

Same as a9b6440edd, use zanyext to treat any_extends as zero extends
during lowering to create addw/addl/subw/subl nodes.

Differential Revision: https://reviews.llvm.org/D93835
The file was modifiedllvm/test/CodeGen/ARM/vsub.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrNEON.td
The file was modifiedllvm/test/CodeGen/ARM/vadd.ll
Commit 84a1120943a651184bae507fed5d648fee381ae4 by sander.desmalen
[LiveDebugValues] Handle spill locations with a fixed and scalable component.

This patch fixes the two LiveDebugValues implementations
(InstrRef/VarLoc)Based to handle cases where the StackOffset contains
both a fixed and scalable component.

This depends on the `TargetRegisterInfo::prependOffsetExpression` being
added in D90020. Feel free to leave comments on that patch if you have them.

Reviewed By: djtodoro, jmorse

Differential Revision: https://reviews.llvm.org/D90046
The file was addedllvm/test/CodeGen/AArch64/live-debugvalues-sve.mir
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Commit 6e6e24bb09c7845bfa89772527d30cea36ebf19b by fraser
[ValueTypes] Fix formatting on scalable vector warning (NFC)
The file was modifiedllvm/include/llvm/CodeGen/ValueTypes.h
Commit aa280c99f708dca9dea96bc9070d6194d2622529 by sander.desmalen
[AArch64][SVE] Emit DWARF location expr for SVE (dbg.declare)

When using dbg.declare, the debug-info is generated from a list of
locals rather than through DBG_VALUE instructions in the MIR.
This patch is different from D90020 because it emits the DWARF
location expressions from that list of locals directly.

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D90044
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was addedllvm/test/CodeGen/AArch64/debug-info-sve-dbg-declare.mir
Commit 816dba48af49050625adec6ed696983618346b11 by flo
[VPlan] Keep start value in VPWidenIntOrFpInductionRecipe (NFC).

This patch updates VPWidenIntOrFpInductionRecipe to hold the start value
for the induction variable. This makes the start value explicit and
allows for adjusting the start value for a VPlan.

The flexibility will be used in further patches.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D92129
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
Commit cb0c034edc98b32691ea25b70fc3cc2e9d6d2a86 by stefanp
[PowerPC] Fix issue where vsrq is given incorrect shift vector

The new Power10 instruction vsrq was being given the wrong shift vector.
The original code assumed that the shift would be found in bits 121 to 127.
This is not correct. The shift is found in bits 57 to 63.
This can be fixed by swaping the first and second double words.

Reviewed By: nemanjai, #powerpc

Differential Revision: https://reviews.llvm.org/D94113
The file was modifiedllvm/test/CodeGen/PowerPC/p10-vector-shift.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
Commit dfcb872c3e82c821bb32a2dd53ab73314d38ce38 by llvm-dev
[X86] Add scalar/vector test coverage for D93599

This expands the test coverage beyond just the boolvector/movmsk concat pattern
The file was addedllvm/test/CodeGen/X86/cmp-concat.ll
Commit 223a6f94c59c00733763bacc43f5b9458b4cc6f4 by gchatelet
[libc] remove modulo from CircularArrayRef iterator
The file was modifiedlibc/benchmarks/LibcBenchmark.h
Commit aa9db51ef69f36775e9babd2f4b23142967784ee by gchatelet
[libc] Align src buffer instead of dst buffer

We used to align destination buffer instead of source buffer for the loop of block copy.
This is a mistake.

Differential Revision: https://reviews.llvm.org/D93457
The file was modifiedlibc/src/string/memory_utils/memcpy_utils.h
The file was modifiedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp