SuccessChanges

Summary

  1. [SyntaxTree][NFC] Nit on `replaceChildRangeLowLevel` (details)
  2. [InstCombine] matchFunnelShift - add support for non-uniform vectors containing undefs. (details)
  3. [LV] Unroll factor is expected to be > 0 (details)
  4. [DebugInstrRef] Parse debug instruction-references from/to MIR (details)
  5. [AArch64] Add more addv tests (details)
  6. Reland "[Support][unittests] Enforce alignment in ConvertUTFTest" (details)
  7. [Test] Auto-update for some tests (details)
  8. Add x86 REQUIRES to tests from 2c5f3d54c5ee / D85746 (details)
  9. [Flang][OpenMP] Fix issue in only a single nowait clause can appear on a sections directive. (details)
  10. [InstCombine] Add undef funnel shift amount test coverage (details)
  11. [mlir][Linalg] Make a Linalg CodegenStrategy available. (details)
  12. Analysis: only query size of sized objects. (details)
  13. [ValueTracking] Use assume's noundef operand bundle (details)
  14. [AMDGPU] Base getSubRegFromChannel on TableGen data (details)
  15. [clangd] Refine recoveryAST flags in clangd (details)
  16. [ASTImporter] Fix crash caused by unimported type of FromatAttr (details)
  17. [ASTImporter] Fix crash caused by unset AttributeSpellingListIndex (details)
  18. [clangd] Disable extract variable for RHS of assignments (details)
  19. [flang] Make flang build compatible with LLVM dylib (details)
Commit 6fbad9bf304c05d37454420f7d5a1c2ab3adab20 by ecaldas
[SyntaxTree][NFC] Nit on `replaceChildRangeLowLevel`
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp
Commit 1e4d882f9afe3fa5d0085f056b56eec21eb2c087 by llvm-dev
[InstCombine] matchFunnelShift - add support for non-uniform vectors containing undefs.

Replace m_SpecificInt with m_APIntAllowUndef to matching splats containing undefs, then use ConstantExpr::mergeUndefsWith to merge the undefs together in the result.

The undef funnel shift amounts are getting replaced with zero later on - I'll address this in a later patch, otherwise we lose potential shift by splat value patterns.
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit d0c95808e50c9f77484dacb8db0dc95b23f9f877 by ybrevnov
[LV] Unroll factor is expected to be > 0

LV fails with assertion checking that UF > 0. We already set UF to 1 if it is 0 except the case when IC > MaxInterleaveCount. The fix is to set UF to 1 for that case as well.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D87679
The file was addedllvm/test/Transforms/LoopVectorize/SystemZ/zero_unroll.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 2c5f3d54c5ee4efdf63736c23a3a7b448a308996 by jeremy.morse
[DebugInstrRef] Parse debug instruction-references from/to MIR

This patch defines the MIR format for debug instruction references: it's an
integer trailing an instruction, marked out by "debug-instr-number", much
like how "debug-location" identifies the DebugLoc metadata of an
instruction. The instruction number is stored directly in a MachineInstr.

Actually referring to an instruction comes in a later patch, but is done
using one of these instruction numbers.

I've added a round-trip test and two verifier checks: that we don't label
meta-instructions as generating values, and that there are no duplicates.

Differential Revision: https://reviews.llvm.org/D85746
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/include/llvm/CodeGen/MachineInstr.h
The file was modifiedllvm/lib/CodeGen/MIRParser/MILexer.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp
The file was addedllvm/test/DebugInfo/MIR/InstrRef/no-duplicates.mir
The file was addedllvm/test/DebugInfo/MIR/InstrRef/no-metainstrs.mir
The file was modifiedllvm/lib/CodeGen/MIRParser/MILexer.h
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
The file was addedllvm/test/DebugInfo/MIR/InstrRef/instr-ref-roundtrip.mir
The file was modifiedllvm/lib/CodeGen/MIRPrinter.cpp
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit a6ad5930d5f51a14b6828cfb4bd661c9e7e6e83e by vinay
[AArch64] Add more addv tests

Differential Revision: https://reviews.llvm.org/D89365
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-addv.ll
Commit 3b956a58f3c51d49b54cfba24a5c241a68078a53 by ro
Reland "[Support][unittests] Enforce alignment in ConvertUTFTest"

This relands commit 53b3873cf428fd78f1d92504cc20adf11181ead7.  The failure
of `ConvertUTFTest.UTF16WrappersForConvertUTF16ToUTF8String` detected the
first time is fixed.

Differential Revision: https://reviews.llvm.org/D88824
The file was modifiedllvm/lib/Support/ConvertUTFWrapper.cpp
The file was modifiedllvm/unittests/Support/ConvertUTFTest.cpp
Commit be8344f2a5d41650128fd046f4c8917a9a164830 by mkazantsev
[Test] Auto-update for some tests
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/infer-poison-flags.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-dead-ivs.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/floating-point-iv.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-pr31181.ll
Commit abaa8706e9443dad12f7cf83ff4b777ebc186bb6 by jeremy.morse
Add x86 REQUIRES to tests from 2c5f3d54c5ee / D85746
The file was modifiedllvm/test/DebugInfo/MIR/InstrRef/no-metainstrs.mir
The file was modifiedllvm/test/DebugInfo/MIR/InstrRef/no-duplicates.mir
The file was modifiedllvm/test/DebugInfo/MIR/InstrRef/instr-ref-roundtrip.mir
Commit 3291041641febf73ba98f074a946fe92331de90b by joshisameeran17
[Flang][OpenMP] Fix issue in only a single nowait clause can appear on a sections directive.

The OpenMP 5.0 standard restricts nowait clause to appear only once on sections
directive.
See OpenMP 5.0
  - 2.8.1
  - point 3 in restrictions.

Added a test with fix.

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D88556
The file was modifiedflang/test/Semantics/omp-clause-validity01.f90
The file was modifiedflang/test/Semantics/omp-sections01.f90
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
Commit 9b4db7f73331986768e113140e5b929b9cdcab33 by llvm-dev
[InstCombine] Add undef funnel shift amount test coverage
The file was modifiedllvm/test/Transforms/InstCombine/fsh.ll
Commit af5be38a01031ed3d9a9690c4ed881fbe781111f by nicolas.vasilache
[mlir][Linalg] Make a Linalg CodegenStrategy available.

This revision adds a programmable codegen strategy from linalg based on staged rewrite patterns. Testing is exercised on a simple linalg.matmul op.

Differential Revision: https://reviews.llvm.org/D89374
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/test/lib/Transforms/TestLinalgCodegenStrategy.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h
The file was modifiedmlir/lib/Conversion/VectorToSCF/CMakeLists.txt
The file was addedmlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was addedmlir/test/Dialect/Linalg/codegen-strategy.mlir
Commit 630d2647986aa6d672dce184460d7ca3349eb006 by Tim Northover
Analysis: only query size of sized objects.

Recently we started looking into sret parameters, though the issue could crop
up elsewhere. If the pointee type is opaque, we should not try to compute its
size because that leads to an assertion failure.
The file was addedllvm/test/Transforms/InstCombine/object-size-opaque.ll
The file was modifiedllvm/lib/Analysis/MemoryBuiltins.cpp
Commit 9b3c2a72e4cb3b0ae27f87064c11f728452b2af9 by aqjune
[ValueTracking] Use assume's noundef operand bundle

This patch updates `isGuaranteedNotToBeUndefOrPoison` to use `llvm.assume`'s `noundef` operand bundle.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D89219
The file was modifiedllvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/Inline/arg-attr-propagation.ll
The file was modifiedllvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/DivRemPairs.cpp
The file was modifiedllvm/include/llvm/Analysis/ValueTracking.h
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit 01549dd976faa93dcf18d7363ccf8b2509833f7c by carl.ritson
[AMDGPU] Base getSubRegFromChannel on TableGen data

Generate (at runtime) the table used to drive getSubRegFromChannel,
base on AMDGPUSubRegIdxRanges from TableGen data.
The is a step closer to it being staticly generated by TableGen and
allows getSubRegFromChannel handle all bitwidths in the mean time.

Reviewed By: rampitec, arsenm, foad

Differential Revision: https://reviews.llvm.org/D89217
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.h
Commit 3fcca804b2916b68d34523e9f88c77272a256d77 by hokein.wu
[clangd] Refine recoveryAST flags in clangd

so that we could start experiment for C.

Previously, these flags in clangd were only meaningful for C++. We need
to flip them for C, this patch repurpose these flags.

- if true, just set it.
- if false, just respect the value in clang.

this would allow us to keep flags on for C++, and optionally flip them on for C.

Differential Revision: https://reviews.llvm.org/D89233
The file was modifiedclang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang-tools-extra/clangd/Compiler.cpp
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TestTU.cpp
The file was modifiedclang-tools-extra/clangd/ClangdServer.h
Commit dd965711c9f0e4b6e1dc9b465fe049c38e05d5aa by gabor.marton
[ASTImporter] Fix crash caused by unimported type of FromatAttr

During the import of FormatAttrs we forgot to import the type (e.g
`__scanf__`) of the attribute. This caused a segfault when we wanted to
traverse the AST (e.g. by the dump() method).

Differential Revision: https://reviews.llvm.org/D89319
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was addedclang/test/ASTMerge/attr/Inputs/FormatAttr.cpp
The file was addedclang/test/ASTMerge/attr/testFormatAttr.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
Commit 73c6beb2f7053fe8b5150072c2b5cd930de38a22 by gabor.marton
[ASTImporter] Fix crash caused by unset AttributeSpellingListIndex

During the import of attributes we forgot to set the spelling list
index. This caused a segfault when we wanted to traverse the AST
(e.g. by the dump() method).

Differential Revision: https://reviews.llvm.org/D89318
The file was addedclang/test/ASTMerge/attr/Inputs/RestrictAttr.cpp
The file was addedclang/test/ASTMerge/attr/testRestrictAttr.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
Commit 82a71822a54d76c62bf730d8c0e8e86d68c60159 by kadircet
[clangd] Disable extract variable for RHS of assignments

Differential Revision: https://reviews.llvm.org/D89307
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
Commit cde06f783ce9811ed5e6d4c9a4e803b76842eccc by sguelton
[flang] Make flang build compatible with LLVM dylib

Harmonize usage of LLVM components througout Flang.

Explicit LLVM Libs where used across several CMakeFIles, which led to
incompatibilities with LLVM shlibs.
Fortunately, the LLVM component system can be relied on to harmoniously handle
both cases.

Differential Revision: https://reviews.llvm.org/D87893
The file was modifiedflang/unittests/Decimal/CMakeLists.txt
The file was modifiedflang/unittests/CMakeLists.txt
The file was modifiedflang/unittests/Runtime/CMakeLists.txt
The file was modifiedflang/tools/flang-driver/CMakeLists.txt
The file was modifiedflang/cmake/modules/AddFlang.cmake
The file was modifiedflang/CMakeLists.txt
The file was modifiedflang/unittests/Evaluate/CMakeLists.txt

Summary

  1. [LNT] Pin Python version in Dockerfile to 3.7 temporarily (details)
Commit 60343998f7907b77e24f01c94c48ea6c753eca7e by thomasp
[LNT] Pin Python version in Dockerfile to 3.7 temporarily

Python 3.9 has been released and one of the dependencies of LNT does not compiler under it.  pyyaml seems to fail during building:

```
ext/_yaml.c: In function '__Pyx_modinit_type_init_code':
    ext/_yaml.c:25698:25: error: 'PyTypeObject' {aka 'struct _typeobject'} has no member named 'tp_print'
    25698 |   __pyx_type_5_yaml_Mark.tp_print = 0;
          |                         ^
    ext/_yaml.c:25718:28: error: 'PyTypeObject' {aka 'struct _typeobject'} has no member named 'tp_print'
    25718 |   __pyx_type_5_yaml_CParser.tp_print = 0;
          |                            ^
    ext/_yaml.c:25732:29: error: 'PyTypeObject' {aka 'struct _typeobject'} has no member named 'tp_print'
    25732 |   __pyx_type_5_yaml_CEmitter.tp_print = 0;
          |                             ^
```

Presumably because the header has changed under python 3.9.  For now let's pin the Dockerfile to 3.7 until this is sorted so LNT can still run.

Reviewed By: thopre

Differential Revision: https://reviews.llvm.org/D89377
The file was modifieddocker/Dockerfile (diff)