SuccessChanges

Summary

  1. [mlir][linalg] Cleanup LinalgOp usage in scalar inlining. (details)
  2. [mlir] Fix warnings. (details)
  3. [RISCV] Precommit a test case to show overwriting vector frame objects. (details)
  4. [mlir][linalg] Cleanup LinalgOp usage in capi. (details)
  5. [mlir][sparse] add more type combinations to sparse storage scheme (details)
  6. [clang-format] Fix PointerAlignmentRight with AlignConsecutiveDeclarations (details)
  7. [clang-format] Add PPIndentWidth option (details)
  8. [lld-macho] Parse re-exports of nested TAPI documents (details)
  9. [DebugInstrRef][2/3] Track PHI values through register coalescing (details)
  10. [CostModel][AArch64] Add tests for ctlz, ctpop and cttz. NFC. (details)
  11. Revert "[DebugInstrRef][2/3] Track PHI values through register coalescing" (details)
Commit f44e90b93ad89d0a93a550e8fca8a2a9b6e4f190 by gysit
[mlir][linalg] Cleanup LinalgOp usage in scalar inlining.

Replace the uses of deprecated Structured Op Interface methods in InlineScalarOperands.cpp. This patch is based on https://reviews.llvm.org/D103394.

Differential Revision: https://reviews.llvm.org/D103518
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/InlineScalarOperands.cpp
Commit 89df483d30bb22cdbc330553a13dd4761992bba0 by pifon
[mlir] Fix warnings.
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
The file was modifiedmlir/include/mlir/ExecutionEngine/MemRefUtils.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
Commit 9d4922eab437d01febf9871fcc7e18440118fbbf by kai.wang
[RISCV] Precommit a test case to show overwriting vector frame objects.
The file was addedllvm/test/CodeGen/RISCV/rvv/rvv-out-arguments.ll
Commit 5a9c91b2231dda50c66265abc1e840ff7c72ca12 by gysit
[mlir][linalg] Cleanup LinalgOp usage in capi.

Replace the uses of deprecated Structured Op Interface methods in Linalg.cpp. This patch is based on https://reviews.llvm.org/D103394.

Differential Revision: https://reviews.llvm.org/D103619
The file was modifiedmlir/lib/CAPI/Dialect/Linalg.cpp
Commit 12db09d7f3bb12a65a6ebdab497e2db035a3fa44 by ajcbik
[mlir][sparse] add more type combinations to sparse storage scheme

Useful for "exhaustively" testing and benchmarking annotation combinations
to verify correctness and perform state space search for best performing.

Reviewed By: penpornk

Differential Revision: https://reviews.llvm.org/D103566
The file was modifiedmlir/lib/ExecutionEngine/SparseUtils.cpp
Commit 3e333cc82e42e1e2ecc974d896489eebe1a5edc2 by bjoern
[clang-format] Fix PointerAlignmentRight with AlignConsecutiveDeclarations

This re-applies the old patch D27651, which was never landed, into the
latest "main" branch, without understanding the code. I just applied
the changes "mechanically" and made it compiling again.

This makes the right pointer alignment working as expected.
Fixes https://llvm.org/PR27353

For instance

const char* const* v1;
float const* v2;
SomeVeryLongType const& v3;

was formatted as

const char *const *     v1;
float const *           v2;
SomeVeryLongType const &v3;

This patch keep the *s or &s aligned to the right, next to their variable.
The above example is now formatted as

const char *const      *v1;
float const            *v2;
SomeVeryLongType const &v3;

It is a pity that this still does not work with clang-format in 2021,
even though there was a fix available in 2016. IMHO right pointer alignment
is the default case in C, because syntactically the pointer belongs to the
variable.

See

int* a, b, c; // wrong, just the 1st variable is a pointer

vs.

int *a, *b, *c; // right

Prominent example is the Linux kernel coding style.

Some styles argue the left pointer alignment is better and declaration
lists as shown above should be avoided. That's ok, as different projects
can use different styles, but this important style should work too.

I hope that somebody that has a better understanding about the code,
can take over this patch and land it into main.

For now I must maintain this fork to make it working for our projects.

Cheers,
Gerhard.

Differential Revision: https://reviews.llvm.org/D103245
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/WhitespaceManager.cpp
Commit 6f605b8d0bc1c19dccc7a6c248b4fa60e6f7fde3 by bjoern
[clang-format] Add PPIndentWidth option

This allows to set a different indent width for preprocessor statements.

Example:

#ifdef __linux_
# define FOO
#endif

int main(void)
{
    return 0;
}

Differential Revision: https://reviews.llvm.org/D103286
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 6881f29a36a97102e5c89653a343f656231bc2f2 by jezng
[lld-macho] Parse re-exports of nested TAPI documents

D103423 neglected to call `parseReexports()` for nested TBD
documents, leading to symbol resolution failures when trying to look up
a symbol nested more than one level deep in a TBD file. This fixes the
regression and adds a test.

It also appears that `umbrella` wasn't being set properly when calling
`parseLoadCommands` -- it's supposed to resolve to `this` if `nullptr`
is passed. I didn't write a failing test case for this but I've made
`umbrella` a member so the previous behavior should be preserved.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D103586
The file was modifiedlld/test/MachO/tapi-link.s
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/DriverUtils.cpp
Commit ae4303b42cfa5c8c14e3fff67d73af2f154aea9a by jeremy.morse
[DebugInstrRef][2/3] Track PHI values through register coalescing

In the instruction referencing variable location model, we store variable
locations that point at PHIs in MachineFunction during register
allocation. Unfortunately, register coalescing can substantially change
the locations of registers, and so that PHI-variable-location side table
needs maintenence during the pass.

This patch builds an index from the side table, and whenever a vreg gets
coalesced into another vreg, update the index to record the new vreg that
the PHI happens in. It also accepts a limited range of subregister
coalescing, for example merging a subregister into a larger class.

Differential Revision: https://reviews.llvm.org/D86813
The file was addedllvm/test/DebugInfo/MIR/InstrRef/phi-coalescing.mir
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was addedllvm/test/DebugInfo/MIR/InstrRef/phi-coalesce-subreg.mir
Commit 2e3636f974dfdfac796ec6d07a22e9d31d4ea1ea by rosie.sumpter
[CostModel][AArch64] Add tests for ctlz, ctpop and cttz. NFC.

Differential Revision: https://reviews.llvm.org/D103601
The file was addedllvm/test/Analysis/CostModel/AArch64/ctpop.ll
The file was addedllvm/test/Analysis/CostModel/AArch64/cttz.ll
The file was addedllvm/test/Analysis/CostModel/AArch64/ctlz.ll
Commit 0507fc2ffc96819429e8074408d33609081c7205 by jeremy.morse
Revert "[DebugInstrRef][2/3] Track PHI values through register coalescing"

This reverts commit ae4303b42cfa5c8c14e3fff67d73af2f154aea9a.

Expensive checks buildbot has found a problem with this:

  https://lab.llvm.org/buildbot/#/builders/16/builds/11863
The file was removedllvm/test/DebugInfo/MIR/InstrRef/phi-coalesce-subreg.mir
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was removedllvm/test/DebugInfo/MIR/InstrRef/phi-coalescing.mir