SuccessChanges

Summary

  1. Remove scalable vector assert from InnerLoopVectorizer::setDebugLocFromInst (details)
  2. Revert "[X86] Limit X86InterleavedAccessGroup to handle the same type case only" (details)
  3. [mlir][Vector] NFC - Drop vector EDSC usage (details)
  4. [llvm][AArch64][SVE] Model FFR-using intrinsics with inaccessiblemem (details)
  5. Revert "[GlobalISel] Simplify G_ICMP to true/false when the result is known" (details)
  6. [lldb][NFC] Remove sample test boilerplate from TestBreakOnCPP11Initializers (details)
  7. [lldb] Encode `bool` as unsigned int (details)
  8. [mir][Python][linalg] Support OpDSL extensions in C++. (details)
  9. [X86][Atom] Fix vector integer shift by immediate resource/throughputs (details)
  10. [X86][AVX] createVariablePermute - generalize the PR50356 fix for smaller indices vector as well (details)
  11. [nfc] [lldb] 1/2: Fix DW_AT_ranges DW_FORM_sec_offset not using DW_AT_rnglists_base (used by GCC) (details)
  12. [lldb] 2/2: Fix DW_AT_ranges DW_FORM_sec_offset not using DW_AT_rnglists_base (used by GCC) (details)
  13. Revert rG528bc10e95d5f9d6a338f9bab5e91d7265d1cf05 : "[X86FixupLEAs] Transform the sequence LEA/SUB to SUB/SUB" (details)
Commit 7e95a563c89dc158217e2032b716e5be77677846 by david.sherwood
Remove scalable vector assert from InnerLoopVectorizer::setDebugLocFromInst

In InnerLoopVectorizer::setDebugLocFromInst we were previously
asserting that the VF is not scalable. This is because we want to
use the number of elements to create a duplication factor for the
debug profiling data. However, for scalable vectors we only know the
minimum number of elements. I've simply removed the assert for now
and added a FIXME saying that we assume vscale is always 1. When
vscale is not 1 it just means that the profiling data isn't as
accurate, but shouldn't cause any functional problems.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 66513e2f20d9885374d0df43a89fc768523d6354 by pengfei.wang
Revert "[X86] Limit X86InterleavedAccessGroup to handle the same type case only"

This reverts commit ca23a38e373142a18ab56700ba4f3b947bfe9db0.

Revert due to EXPENSIVE_CHECKS fail.
The file was modifiedllvm/lib/Target/X86/X86InterleavedAccess.cpp
The file was modifiedllvm/test/CodeGen/X86/x86-interleaved-access.ll
Commit 6825bfe23e3829c81574e7d5d41887ca2dae4bef by nicolas.vasilache
[mlir][Vector] NFC - Drop vector EDSC usage

Drop the vector dialect EDSC subdirectory and update all uses.
The file was modifiedmlir/lib/Dialect/Vector/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Interchange.cpp
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was removedmlir/test/EDSC/CMakeLists.txt
The file was modifiedmlir/test/CMakeLists.txt
The file was removedmlir/include/mlir/Dialect/Vector/EDSC/Builders.h
The file was removedmlir/test/EDSC/lit.local.cfg
The file was modifiedmlir/include/mlir/Dialect/Affine/IR/AffineOps.h
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was removedmlir/test/EDSC/builder-api-test.cpp
The file was removedmlir/lib/Dialect/Vector/EDSC/Builders.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was removedmlir/include/mlir/Dialect/Vector/EDSC/Intrinsics.h
Commit fd4ef793ea54e5730838998863fea5484fcba541 by peter.waller
[llvm][AArch64][SVE] Model FFR-using intrinsics with inaccessiblemem

Intriniscs reading or writing the FFR register need to model the fact
there is additional state being read/wrtten.

Model this state as inaccessible memory.

* setffr => write inaccessiblememonly
* rdffr => read inaccessiblememonly
* ldff* => read arg memory, write inaccessiblemem
* ldnf => read arg memory, write inaccessiblemem
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
Commit 52a779762688dee1a6042dc41f35e1f7a7048b85 by thakis
Revert "[GlobalISel] Simplify G_ICMP to true/false when the result is known"

This reverts commit 892497c806306a4b7185ead16d60b0ebcca0a304.
Breaks tests, see comments on https://reviews.llvm.org/D102542
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
The file was removedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-icmp-to-true-false-known-bits.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64Combine.td
The file was modifiedllvm/test/CodeGen/AArch64/fold-global-offsets.ll
Commit ff954865137cdd11165340e2c9537cfd1b3f805d by Raphael Isemann
[lldb][NFC] Remove sample test boilerplate from TestBreakOnCPP11Initializers
The file was modifiedlldb/test/API/lang/cpp/break-on-initializers/TestBreakOnCPP11Initializers.py
The file was modifiedlldb/test/API/lang/cpp/break-on-initializers/main.cpp
Commit 0bab7b26f4d9dc4cb8f6c2877ad4a2c388c41c65 by weratt
[lldb] Encode `bool` as unsigned int

`bool` is considered to be unsigned according to `std::is_unsigned<bool>::value` (and `Type::GetTypeInfo`). Encoding it as signed int works fine for normal variables and fields, but breaks when reading the values of boolean bitfields. If the field is declared as `bool b : 1` and has a value of `0b1`, the call to `SBValue::GetValueAsSigned()` will return `-1`.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D102685
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
The file was modifiedlldb/test/API/lang/cpp/bitfields/TestCppBitfields.py
The file was modifiedlldb/test/API/lang/cpp/bitfields/main.cpp
Commit 9a2769db801d4c45edb939223abfb3e1a639732f by gysit
[mir][Python][linalg] Support OpDSL extensions in C++.

The patch extends the yaml code generation to support the following new OpDSL constructs:
- captures
- constants
- iteration index accesses
- predefined types
These changes have been introduced by revision
https://reviews.llvm.org/D101364.

Differential Revision: https://reviews.llvm.org/D102075
The file was modifiedmlir/python/mlir/dialects/linalg/opdsl/lang/config.py
The file was modifiedmlir/test/lit.cfg.py
The file was addedmlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml
The file was modifiedmlir/python/mlir/dialects/linalg/opdsl/lang/emitter.py
The file was addedmlir/test/python/dialects/linalg/opdsl/arguments.py
The file was modifiedmlir/test/CMakeLists.txt
The file was modifiedmlir/test/python/dialects/linalg/opdsl/assignments.py
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOps.yaml
The file was modifiedmlir/test/python/dialects/linalg/opdsl/emit_structured_generic.py
The file was modifiedmlir/python/mlir/dialects/linalg/opdsl/lang/scalar_expr.py
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp
The file was modifiedmlir/test/python/dialects/linalg/opsrun.py
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py
The file was modifiedmlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py
The file was modifiedmlir/test/Dialect/Linalg/generalize-named-polymorphic-ops.mlir
Commit b14f9a1ebd7bb5ce9190990c07304befd6eff2ca by llvm-dev
[X86][Atom] Fix vector integer shift by immediate resource/throughputs

Match whats documented in the Intel AOM (and Agner/instlatx64 agree) - these are all Port0 only.

Now that we can use in-order models in llvm-mca, the atom model is a good "worst case scenario" analysis for x86.
The file was modifiedllvm/lib/Target/X86/X86ScheduleAtom.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-mmx.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s
Commit ab4e04a0f31ae187f67991980e707ff70bbc6285 by llvm-dev
[X86][AVX] createVariablePermute - generalize the PR50356 fix for smaller indices vector as well

Generalize the fix from rGd0902a8665b1 by ensuring we widen/narrow the indices subvector first and then perform the ZERO_EXTEND_VECTOR_INREG (if necessary), which should allow us to perform the variable permutes with source/destination/indices vectors of any widths.
The file was modifiedllvm/test/CodeGen/X86/var-permute-256.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 9dd861a4f53968c732531de5d4488ace20d6d075 by jan.kratochvil
[nfc] [lldb] 1/2: Fix DW_AT_ranges DW_FORM_sec_offset not using DW_AT_rnglists_base (used by GCC)

Refactor code only for D98289.

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D99653
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h
Commit d1310817194aad488c86f4fb627c33090600a4a9 by jan.kratochvil
[lldb] 2/2: Fix DW_AT_ranges DW_FORM_sec_offset not using DW_AT_rnglists_base (used by GCC)

DW_AT_ranges can use DW_FORM_sec_offset (instead of DW_FORM_rnglistx).
In such case DW_AT_rnglists_base does not need to be present.
DWARF-5 spec:
        "If the offset_entry_count is zero, then DW_FORM_rnglistx cannot
        be used to access a range list; DW_FORM_sec_offset must be used
        instead. If the offset_entry_count is non-zero, then
        DW_FORM_rnglistx may be used to access a range list;"

This fix is for TestTypeCompletion.py category `dwarf` using GCC with DWARF-5.

The fix just provides GetRnglist() lazy getter for `m_rnglist_table`.
The testcase is easier to review by:
        diff -u lldb/test/Shell/SymbolFile/DWARF/DW_AT_low_pc-addrx.s \
          lldb/test/Shell/SymbolFile/DWARF/DW_AT_range-DW_FORM_sec_offset.s

Differential Revision: https://reviews.llvm.org/D98289
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
The file was addedlldb/test/Shell/SymbolFile/DWARF/DW_AT_range-DW_FORM_sec_offset.s
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h
Commit 707fc2e2f227ec7b367273d0906b953bbae41392 by llvm-dev
Revert rG528bc10e95d5f9d6a338f9bab5e91d7265d1cf05 : "[X86FixupLEAs] Transform the sequence LEA/SUB to SUB/SUB"

Reports on D101970 indicate this is causing failures on multi-stage compiles.
The file was modifiedllvm/lib/Target/X86/X86FixupLEAs.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
The file was modifiedllvm/test/CodeGen/X86/lea-opt2.ll
The file was modifiedllvm/test/CodeGen/X86/vp2intersect_multiple_pairs.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h
The file was modifiedllvm/lib/CodeGen/TwoAddressInstructionPass.cpp

Summary

  1. [test-suite, CUDA] Work around build break in CUDA tests. (details)
  2. [test-suite,CUDA] Unbreak the test of new/delete with C++98 (details)
Commit ea321f7241a384f995fe4ab761e56f4d511081d4 by tra
[test-suite, CUDA] Work around build break in CUDA tests.

Technically we can't use std::nothrow in GPU code as it's a host variable.
Clang previously failed to diagnose it, but does so now.  This patch temporarily
works around the build break until it can be fixed in Clang's header wrappers.
The file was modifiedExternal/CUDA/new.cu (diff)
Commit 5a7fde03206e918ff9c131ed248036e8d49cd026 by tra
[test-suite,CUDA] Unbreak the test of new/delete with C++98

Previous workaround only works only for C++11 and newer.
For C++98 we can only disable the tests that need std::nothrow.
The file was modifiedExternal/CUDA/new.cu (diff)