SuccessChanges

Summary

  1. Calculate getTerminator only when necessary (details)
  2. Implement DW_CFA_LLVM_* for Heterogeneous Debugging (details)
  3. [lld-macho] Try to fix MSAN "uninitialized memory" error (details)
  4. [Testsuite] Change these tests to only have a single verification error, NFC. (details)
  5. [LLParser] Remove outdated deplibs (details)
  6. AMD k8 family does not support SSE4.x which are required by x86-64-v2+ (details)
  7. [mlir][linalg] Lower PadTensorOp to InitTensorOp + FillOp + SubTensorInitOp (details)
  8. [mlir][linalg] Vectorize linalg.pad_op source copying (static source shape) (details)
  9. [mlir][linalg] Vectorize linalg.pad_op source copying (improved) (details)
  10. [LoopVectorize] precommit pr50686.ll for D104148 (details)
  11. Only consider built-in compound assignment operators for -Wunused-but-set-* (details)
  12. [mlir] Add ExpOp to Complex dialect. (details)
  13. [mlir][linalg] Lower PadTensorOps with non-constant pad value (details)
  14. [mlir][linalg] Add support for scalar input operands. (details)
  15. [mlir] Remove traits that require vector type support from ops in Complex dialect. (details)
Commit dcbbc69cc58294cedc865259c6fd5ba80ecd9bd3 by 1894981+hiraditya
Calculate getTerminator only when necessary

Differential Revision: https://reviews.llvm.org/D104202
The file was modifiedllvm/lib/Transforms/IPO/HotColdSplitting.cpp
Commit 167e7afcd52bc1438d60320ec1d1bc53b8eae4a3 by VenkataRamanaiah.Nalamothu
Implement DW_CFA_LLVM_* for Heterogeneous Debugging

Add support in MC/MIR for writing/parsing, and DebugInfo.

This is part of the Extensions for Heterogeneous Debugging defined at
https://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html

Specifically the CFI instructions implemented here are defined at
https://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html#cfa-definition-instructions

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D76877
The file was addedllvm/test/tools/llvm-dwarfdump/X86/debug_frame_LLVM_def_cfa_aspace.s
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/Dwarf.def
The file was modifiedllvm/lib/CodeGen/CFIInstrInserter.cpp
The file was addedllvm/test/MC/ELF/cfi-llvm-def-cfa-aspace.s
The file was modifiedllvm/lib/MC/MCAsmStreamer.cpp
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
The file was modifiedllvm/lib/CodeGen/MIRParser/MILexer.h
The file was modifiedllvm/lib/CodeGen/MachineOperand.cpp
The file was modifiedllvm/test/CodeGen/MIR/AArch64/cfi.mir
The file was addedllvm/test/MC/ELF/cfi-llvm-def-cfa-aspace-errors.s
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugFrameTest.cpp
The file was modifiedllvm/include/llvm/MC/MCStreamer.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
The file was modifiedllvm/lib/MC/MCStreamer.cpp
The file was modifiedllvm/include/llvm/MC/MCDwarf.h
The file was modifiedllvm/lib/CodeGen/MIRParser/MILexer.cpp
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
The file was modifiedllvm/lib/MC/MCDwarf.cpp
Commit 9c5d43fb5513260dad86c135755bc5313a81e768 by jezng
[lld-macho] Try to fix MSAN "uninitialized memory" error

I *think* this is the fix, with the regression being introduced by
D104199. Not 100% sure since MSAN isn't supported on my Mac machine, and
it'll take some time to spin up a Linux box... will look at the
buildbots for answers
The file was modifiedlld/MachO/Writer.cpp
Commit 0dd4c4b5ae49662359a56f45bccc90b16aea35b0 by clattner
[Testsuite] Change these tests to only have a single verification error, NFC.

These are testing for various verification failures, but have missing returns
at the end of their function.  Add the returns to focus the tests better.
The file was modifiedmlir/test/Dialect/LLVMIR/global.mlir
The file was modifiedmlir/test/Dialect/GPU/invalid.mlir
Commit e0bb5020643cf22e3989c641afaa50892766b557 by th3charlie
[LLParser] Remove outdated deplibs

The comment mentions deplibs should be removed in 4.0. Removing it in this patch.

Reviewed By: compnerd, dexonsmith, lattner

Differential Revision: https://reviews.llvm.org/D102763
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/AsmParser/LLLexer.cpp
The file was modifiedllvm/include/llvm/AsmParser/LLParser.h
Commit 092c303955cd18be6c0b923b1c0a1b96e2c91893 by sguelton
AMD k8 family does not support SSE4.x which are required by x86-64-v2+

So don't define __tune__k8__ for these micro architecture.

SSE, SSE2 and SSE3 appear in https://www.amd.com/system/files/TechDocs/25112.PDF
but not SSE4.x.

Differential Revision: https://reviews.llvm.org/D104116
The file was modifiedclang/lib/Basic/Targets/X86.cpp
Commit 98fff5153a81fc501a69a4c184de5236fc806b9f by springerm
[mlir][linalg] Lower PadTensorOp to InitTensorOp + FillOp + SubTensorInitOp

Currently limited to constant pad values. Any combination of dynamic/static tensor sizes and padding sizes is supported.

Differential Revision: https://reviews.llvm.org/D103679
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
Commit 4c2f3d810b4a032792b632998d90baf4ab2ff7f3 by springerm
[mlir][linalg] Vectorize linalg.pad_op source copying (static source shape)

If the source operand of a linalg.pad_op operation has static shape, vectorize the copying of the source.

Differential Revision: https://reviews.llvm.org/D103747
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
Commit 01e3b344690dbb20298977015f13fd03b40132f4 by springerm
[mlir][linalg] Vectorize linalg.pad_op source copying (improved)

Vectorize linalg.pad_op source copying if source or result shape are static.

Differential Revision: https://reviews.llvm.org/D103791
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
Commit 8449af41e5c735960691f711ed9500c2a80a0b11 by guopeilin1
[LoopVectorize] precommit pr50686.ll for D104148
The file was addedllvm/test/Transforms/LoopVectorize/pr50686.ll
Commit b5b9489b2415dc48c39d4d7d4bae6197dc499f38 by sbergman
Only consider built-in compound assignment operators for -Wunused-but-set-*

At least LibreOffice has, for mainly historic reasons that would be hard to
change now, a class Any with an overloaded operator >>= that semantically does
not assign to the LHS but rather extracts into the (by-reference) RHS.  Which
thus caused false positive -Wunused-but-set-parameter and
-Wunused-but-set-variable after those have been introduced recently.

This change is more conservative about the assumed semantics of overloaded
operators, excluding compound assignment operators but keeping plain operator =
ones.  At least for LibreOffice, that strikes a good balance of not producing
false positives but still finding lots of true ones.

(The change to the BinaryOperator case in MaybeDecrementCount is necessary
because e.g. the template f4 test code in warn-unused-but-set-variables-cpp.cpp
turns the += into a BinaryOperator.)

Differential Revision: https://reviews.llvm.org/D103949
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp
Commit 73cbc91c93dd5a7ee1b8b1a9d507e194e835b446 by akuegel
[mlir] Add ExpOp to Complex dialect.

Also add a conversion pattern from Complex to Standard/Math dialect.

Differential Revision: https://reviews.llvm.org/D104108
The file was modifiedmlir/include/mlir/Dialect/Complex/IR/ComplexOps.td
The file was modifiedmlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
The file was modifiedmlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
Commit ddda52ce3cf2936d9ee05e06ed70e7d270cfcd73 by springerm
[mlir][linalg] Lower PadTensorOps with non-constant pad value

The padding of such ops is not generated in a vectorized way. Instead, emit a tensor::GenerateOp.

We may vectorize GenerateOps in the future.

Differential Revision: https://reviews.llvm.org/D103879
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
Commit 046922e1003795d67df89721e6b76c01b214d408 by gysit
[mlir][linalg] Add support for scalar input operands.

Up to now all structured op operands are assumed to be shaped. The patch relaxes this assumption and allows scalar input operands. In contrast to shaped operands scalar operands are not indexed and directly forwarded to the body of the operation. As all other operands, scalar operands are associated to an indexing map that in case of a scalar or a 0D-operand has an empty range.

We will use scalar operands as a replacement for the capture mechanism. In contrast to captures, the approach ensures we can generate the function signature from the operand list and it prevents outdated capture values in case a transformation updates only the capture operand but not the hidden body of a named operation.

Removing captures and updating existing operations such as linalg.fill is left for a later patch.

The patch depends on https://reviews.llvm.org/D103891 and https://reviews.llvm.org/D103890.

Differential Revision: https://reviews.llvm.org/D104109
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
The file was modifiedmlir/test/Dialect/Linalg/loops.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/test/Dialect/Linalg/reshape_fusion.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile-and-pad-tensors.mlir
Commit 2116eadf0994942fa99778d9b9d4315bc106f35f by akuegel
[mlir] Remove traits that require vector type support from ops in Complex dialect.

Actually, no vector types are supported so far. We should add the traits once
the vector types are supported (e.g. ElementwiseMappable.traits).
Instead add Elementwise trait to each op.

Differential Revision: https://reviews.llvm.org/D104103
The file was modifiedmlir/include/mlir/Dialect/Complex/IR/ComplexOps.td