AbortedChanges

Summary

  1. Use zu rather than llu format specifier for size_t (-Wformat warning fix). (details)
  2. debug_rnglists/symbolizing: reduce memory usage by not caching rnglists (details)
  3. Revert "[IRSim] Adding IR Instruction Mapper" (details)
  4. [gn build] Port a895040eb02 (details)
  5. Flush bitcode incrementally for LTO output (details)
  6. Add the header of std::min (details)
  7. Fix the arguments of std::min (details)
  8. [lldb] Return FileSP and StreamFileSP by value in IOHandler (NFC) (details)
  9. Add __divmodti4 to match libgcc. (details)
  10. [llvm-cov gcov][test] Move tests to gcov/ (details)
  11. [DebugInfo] Simplify DIEInteger::SizeOf(). (details)
  12. [mlir][spirv] Add GroupNonUniformBroadcastOp (details)
  13. [llvm-cov gcov] Add --demangled-names (-m) (details)
  14. [mlir] Remove redundant shape.cstr_broadcastable canonicalization. (details)
  15. [SelectionDAG] Check any use of negation result before removal (details)
  16. [Lint] Add check for intrinsic get.active.lane.mask (details)
  17. [AMDGPU] Generate test checks for splitkit-copy-bundle.mir (details)
  18. [SplitKit] Only copy live lanes (details)
  19. [NFC] EliminateDuplicatePHINodes(): small-size optimization: if there are <= 32 PHI's, O(n^2) algo is faster (geomean -0.08%) (details)
  20. Revert "Re-land: Add new hidden option -print-changed which only reports changes to IR" (details)
  21. [X86] Fix stack alignment on 32-bit Solaris/x86 (details)
  22. [lldb] Don't send invalid region addresses to lldb server (details)
  23. [clang][aarch64] ACLE: Support implicit casts between GNU and SVE vectors (details)
  24. [mlir][Linalg] Convolution tiling added to ConvOp vectorization pass (details)
  25. [AsmPrinter] Remove orphan DwarfUnit::shareAcrossDWOCUs declaration. NFCI. (details)
  26. [AMDGPU] Remove orphan SITargetLowering::LowerINT_TO_FP declaration. NFCI. (details)
  27. [AsmPrinter] DwarfDebug - use DebugLoc const references where possible. NFC. (details)
Commit c140322819806cb292e079d62f2e9dbab697c08c by echristo
Use zu rather than llu format specifier for size_t (-Wformat warning fix).
The file was modifiedlldb/source/Expression/REPL.cpp
Commit 6a07f1edf8e6a172734286cd3ab5988313313d8f by dblaikie
debug_rnglists/symbolizing: reduce memory usage by not caching rnglists

This matches the debug_ranges behavior - though is currently implemented
differently. (the debug_ranges parsing was handled by creating a new
ranges parser during DIE address querying, and just destroying it after
the query - whereas the rnglists parser is a member of the DWARFUnit
currently - so the API doesn't cache anymore)

I think this could/should be improved by not parsing debug_rnglists
headers at all when dumping debug_info or symbolizing - do it the way
DWARF (roughly) intended: take the rnglists_base, add addr*index to it,
read the offset, parse the list at rnglists_base+offset. This would have
no error checking for valid index (because the number of valid indexes
is stored in the header, which has a negative offset from rnglists_base
- and is sort of only intended for use by dumpers, not by parsers going
from debug_info to a rnglist) or out of contribution bounds access
(since it wouldn't know the length of the contribution, also in the
header) - nor any error-checking that the rnglist contribution was using
the same properties as the debug_info (version, DWARF32/64, address
size, etc).
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h
Commit a895040eb022b8a621d8e85754f113d82e232ab1 by stilis
Revert "[IRSim] Adding IR Instruction Mapper"

This reverts commit b04c1a9d3127730c05e8a22a0e931a12a39528df.
The file was removedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
The file was removedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h
The file was modifiedllvm/lib/Analysis/CMakeLists.txt
The file was modifiedllvm/unittests/Analysis/CMakeLists.txt
The file was removedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
Commit 0dd4d70ec20cebb951bd2e0e6525b056fb8dc86c by llvmgnsyncbot
[gn build] Port a895040eb02
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
Commit 11201315d5881a135faa5aa87f415ce03f99eb96 by jianzhouzh
Flush bitcode incrementally for LTO output

Bitcode writer does not flush buffer until the end by default. This is
fine to small bitcode files. When -flto,--plugin-opt=emit-llvm,-gmlt are
used, the final bitcode file is large, for example, >8G. Keeping all
data in memory consumes a lot of memory.

This change allows bitcode writer flush data to disk early when buffered
data size is above some threshold. This is only enabled when lld emits
LLVM bitcode.

One issue to address is backpatching bitcode: subblock length, function
body indexes, meta data indexes need to backfill. If buffer can be
flushed partially, we introduced raw_fd_stream that supports
read/seek/write, and enables backpatching bitcode flushed in disk.

Reviewed-by: tejohnson, MaskRay

Differential Revision: https://reviews.llvm.org/D86905
The file was modifiedlld/ELF/LTO.cpp
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedllvm/include/llvm/Bitcode/BitcodeWriter.h
The file was modifiedllvm/include/llvm/Bitstream/BitstreamWriter.h
Commit 352a55ef06a9dcb3dfeb45302e9789da24b513c3 by jianzhouzh
Add the header of std::min

fixing
https://github.com/llvm/llvm-project/commit/11201315d5881a135faa5aa87f415ce03f99eb96
The file was modifiedllvm/include/llvm/Bitstream/BitstreamWriter.h
Commit aec80c5cfd1bda8e630fca0f3ed2a84659f68635 by jianzhouzh
Fix the arguments of std::min

fixing
https://github.com/llvm/llvm-project/commit/11201315d5881a135faa5aa87f415ce03f99eb96
The file was modifiedllvm/include/llvm/Bitstream/BitstreamWriter.h
Commit 57dd92746a53526bd7a86c1cfc7c0dce57a2e170 by Jonas Devlieghere
[lldb] Return FileSP and StreamFileSP by value in IOHandler (NFC)

Smart pointers should be returned by value.
The file was modifiedlldb/source/Core/IOHandler.cpp
The file was modifiedlldb/include/lldb/Core/IOHandler.h
Commit c9af34027bc9cb852a4e5e96154a7bd89531a6de by craig.topper
Add __divmodti4 to match libgcc.

gcc has used this on x86-64 since at least version 7.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D80506
The file was modifiedcompiler-rt/lib/builtins/CMakeLists.txt
The file was addedcompiler-rt/lib/builtins/divmodti4.c
The file was modifiedcompiler-rt/lib/builtins/README.txt
The file was addedcompiler-rt/test/builtins/Unit/divmodti4_test.c
Commit e69092be5247937213865289013185811d0fbc5e by i
[llvm-cov gcov][test] Move tests to gcov/

And rename llvm-cov.test (misnomer) to basic.test
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_paths.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_no_gcda.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_no_options.cpp.gcov
The file was addedllvm/test/tools/llvm-cov/gcov/basic.test
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-8.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/test_paths.gcno
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test.gcno
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_file_checksum_fail.gcda
The file was removedllvm/test/tools/llvm-cov/gcov-4.7.c
The file was removedllvm/test/tools/llvm-cov/gcov-8.c
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_func_checksum_fail.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/gcov-8.c
The file was addedllvm/test/tools/llvm-cov/gcov/intermediate-format.test
The file was removedllvm/test/tools/llvm-cov/Inputs/test.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/test_paths.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-9.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/test.h
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_no_gcda.cpp.gcov
The file was removedllvm/test/tools/llvm-cov/gcov-intermediate-format.test
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-fake-4.2.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-4.7.gcno
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-4.7.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-9.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test.h
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_read_fail.gcno
The file was removedllvm/test/tools/llvm-cov/gcov-fake-4.2.c
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_no_options.cpp.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-8.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-8.gcno
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-9.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/test.cpp
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-fake-4.2.gcno
The file was removedllvm/test/tools/llvm-cov/llvm-cov.test
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-4.7.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/test_no_gcda.cpp.gcov
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-fake-4.2.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/test_no_gcda.h.gcov
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_no_options.h.gcov
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test_paths.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/test_read_fail.gcno
The file was addedllvm/test/tools/llvm-cov/gcov/gcov-4.7.c
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-fake-4.2.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-4.7.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/gcov-fake-4.2.c
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/gcov-8.gcda
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/test.cpp
The file was removedllvm/test/tools/llvm-cov/Inputs/test.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/test_func_checksum_fail.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/gcov-9.gcno
The file was removedllvm/test/tools/llvm-cov/gcov-9.c
The file was removedllvm/test/tools/llvm-cov/Inputs/test_file_checksum_fail.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/test_no_options.h.gcov
The file was addedllvm/test/tools/llvm-cov/gcov/gcov-9.c
Commit 027d47d1c7ce1708294f5273cde09b24c7cbab77 by ikudrin
[DebugInfo] Simplify DIEInteger::SizeOf().

An AsmPrinter should always be provided to the method because some forms
depend on its parameters. The only place in the codebase which passed
a nullptr value was found in the unit tests, so the patch updates it to
use some dummy AsmPrinter instead.

Differential Revision: https://reviews.llvm.org/D85293
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp
The file was modifiedllvm/unittests/CodeGen/DIEHashTest.cpp
Commit 4ce84b0e704ee7b8b13e236e65b3bf49da27a91c by thomasraoux
[mlir][spirv] Add GroupNonUniformBroadcastOp

Added GroupNonUniformBroadcastOp to spirv dialect.

Differential Revision: https://reviews.llvm.org/D87688
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVNonUniformOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVBase.td
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/non-uniform-ops.mlir
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/test/Dialect/SPIRV/non-uniform-ops.mlir
Commit c16417f65f9a9eb3718efa3ece63ba910f91f77b by i
[llvm-cov gcov] Add --demangled-names (-m)

gcov 4.9 introduced the option.
The file was modifiedllvm/tools/llvm-cov/gcov.cpp
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
The file was modifiedllvm/lib/ProfileData/LLVMBuild.txt
The file was addedllvm/test/tools/llvm-cov/gcov/demangled-names.test
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h
Commit b05629230e9c7e90a2e70a761f7800afb1a8eefd by tpopp
[mlir] Remove redundant shape.cstr_broadcastable canonicalization.

These canonicalizations are already handled by folding which will occur
in a superset of situations, so they are being removed.

Differential Revision: https://reviews.llvm.org/D87706
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
Commit a2fb5446be960ad164060b3c05fc268f7f72d67a by qiucofan
[SelectionDAG] Check any use of negation result before removal

2508ef01 fixed a bug about constant removal in negation. But after
sanitizing check I found there's still some issue about it so it's
reverted.

Temporary nodes will be removed if useless in negation. Before the
removal, they'd be checked if any other nodes used it. So the removal
was moved after getNode. However in rare cases the node to be removed is
the same as result of getNode. We missed that and will be fixed by this
patch.

Reviewed By: steven.zhang

Differential Revision: https://reviews.llvm.org/D87614
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was addedllvm/test/CodeGen/X86/pr47517.ll
Commit 6637d72ddd3cf4cf3a7e6dfc227a86999137badb by sjoerd.meijer
[Lint] Add check for intrinsic get.active.lane.mask

As @efriedma pointed out in D86301, this "not equal to 0 check" of
get.active.lane.mask's second operand needs to live here in Lint and not the
Verifier.

Differential Revision: https://reviews.llvm.org/D87228
The file was modifiedllvm/lib/Analysis/Lint.cpp
The file was addedllvm/test/Analysis/Lint/get-active-lane-mask.ll
Commit d49707cf4b288e8d3cad00a78cfa45ec4c376496 by jay.foad
[AMDGPU] Generate test checks for splitkit-copy-bundle.mir

This is a pre-commit for D87757 "[SplitKit] Only copy live lanes".
The file was modifiedllvm/test/CodeGen/AMDGPU/splitkit-copy-bundle.mir
Commit 6f6d389da5c37e5e9a900902f03dc649d57919b7 by jay.foad
[SplitKit] Only copy live lanes

When splitting a live interval with subranges, only insert copies for
the lanes that are live at the point of the split. This avoids some
unnecessary copies and fixes a problem where copying dead lanes was
generating MIR that failed verification. The test case for this is
test/CodeGen/AMDGPU/splitkit-copy-live-lanes.mir.

Without this fix, some earlier live range splitting would create %430:

%430 [256r,848r:0)[848r,2584r:1)  0@256r 1@848r L0000000000000003 [848r,2584r:0)  0@848r L0000000000000030 [256r,2584r:0)  0@256r weight:1.480938e-03
...
256B     undef %430.sub2:vreg_128 = V_LSHRREV_B32_e32 16, %20.sub1:vreg_128, implicit $exec
...
848B     %430.sub0:vreg_128 = V_AND_B32_e32 %92:sreg_32, %20.sub1:vreg_128, implicit $exec
...
2584B    %431:vreg_128 = COPY %430:vreg_128

Then RAGreedy::tryLocalSplit would split %430 into %432 and %433 just
before 848B giving:

%432 [256r,844r:0)  0@256r L0000000000000030 [256r,844r:0)  0@256r weight:3.066802e-03
%433 [844r,848r:0)[848r,2584r:1)  0@844r 1@848r L0000000000000030 [844r,2584r:0)  0@844r L0000000000000003 [844r,844d:0)[848r,2584r:1)  0@844r 1@848r weight:2.831776e-03
...
256B     undef %432.sub2:vreg_128 = V_LSHRREV_B32_e32 16, %20.sub1:vreg_128, implicit $exec
...
844B     undef %433.sub0:vreg_128 = COPY %432.sub0:vreg_128 {
           internal %433.sub2:vreg_128 = COPY %432.sub2:vreg_128
848B     }
  %433.sub0:vreg_128 = V_AND_B32_e32 %92:sreg_32, %20.sub1:vreg_128, implicit $exec
...
2584B    %431:vreg_128 = COPY %433:vreg_128

Note that the copy from %432 to %433 at 844B is a curious
bundle-without-a-BUNDLE-instruction that SplitKit creates deliberately,
and it includes a copy of .sub0 which is not live at this point, and
that causes it to fail verification:

*** Bad machine code: No live subrange at use ***
- function:    zextload_global_v64i16_to_v64i64
- basic block: %bb.0  (0x7faed48) [0B;2848B)
- instruction: 844B    undef %433.sub0:vreg_128 = COPY %432.sub0:vreg_128
- operand 1:   %432.sub0:vreg_128
- interval:    %432 [256r,844r:0)  0@256r L0000000000000030 [256r,844r:0)  0@256r weight:3.066802e-03
- at:          844B

Using real bundles with a BUNDLE instruction might also fix this
problem, but the current fix is less invasive and also avoids some
unnecessary copies.

https://bugs.llvm.org/show_bug.cgi?id=47492

Differential Revision: https://reviews.llvm.org/D87757
The file was modifiedllvm/test/CodeGen/AMDGPU/splitkit-copy-bundle.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/subreg-split-live-in-error.mir
The file was addedllvm/test/CodeGen/AMDGPU/splitkit-copy-live-lanes.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
The file was modifiedllvm/lib/CodeGen/SplitKit.cpp
Commit aadf55d1cea24a4e5384ab8546c3d794cb1ec724 by lebedev.ri
[NFC] EliminateDuplicatePHINodes(): small-size optimization: if there are <= 32 PHI's, O(n^2) algo is faster (geomean -0.08%)

This is functionally equivalent to the old implementation.

As per https://llvm-compile-time-tracker.com/compare.php?from=5f4e9bf6416e45eba483a4e5e263749989fdb3b3&to=4739e6e4eb54d3736e6457249c0919b30f6c855a&stat=instructions
this is a clear geomean compile-time regression-free win with overall geomean of `-0.08%`

32 PHI's appears to be the sweet spot; both the 16 and 64 performed worse:
https://llvm-compile-time-tracker.com/compare.php?from=5f4e9bf6416e45eba483a4e5e263749989fdb3b3&to=c4efe1fbbfdf0305ac26cd19eacb0c7774cdf60e&stat=instructions
https://llvm-compile-time-tracker.com/compare.php?from=5f4e9bf6416e45eba483a4e5e263749989fdb3b3&to=e4989d1c67010d3339d1a40ff5286a31f10cfe82&stat=instructions

If we have more PHI's than that, we fall-back to the original DenseSet-based implementation,
so the not-so-fast cases will still be handled.

However compile-time isn't the main motivation here.
I can name at least 3 limitations of this CSE:
1. Assumes that all PHI nodes have incoming basic blocks in the same order (can be fixed while keeping the DenseMap)
2. Does not special-handle `undef` incoming values (i don't see how we can do this with hashing)
3. Does not special-handle backedge incoming values (maybe can be fixed by hashing backedge as some magical value)

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87408
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
Commit b03c2b8395ba94fb53f1e73a6473faedf628bbd9 by douglas.yung
Revert "Re-land: Add new hidden option -print-changed which only reports changes to IR"

The test added in this commit is failing on Windows bots:

http://lab.llvm.org:8011/builders/llvm-clang-win-x-armv7l/builds/1269

This reverts commit f9e6d1edc0dad9afb26e773aa125ed62c58f7080 and follow-up commit 6859d95ea2d0f3fe0de2923a3f642170e66a1a14.
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp
The file was removedllvm/test/Other/change-printer.ll
The file was modifiedllvm/lib/IR/LegacyPassManager.cpp
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
Commit a9cbe5cf30e386a4f44981f5bf9e1862ad36574d by ro
[X86] Fix stack alignment on 32-bit Solaris/x86

On Solaris/x86, several hundred 32-bit tests `FAIL`, all in the same way:

  env ASAN_OPTIONS=halt_on_error=false ./halt_on_error_suppress_equal_pcs.cpp.tmp
  Segmentation Fault (core dumped)

They segfault during startup:

  Thread 2 received signal SIGSEGV, Segmentation fault.
  [Switching to Thread 1 (LWP 1)]
  0x080f21f0 in __sanitizer::internal_mmap(void*, unsigned long, int, int, int, unsigned long long) () at /vol/llvm/src/llvm-project/dist/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp:65
  65                              int prot, int flags, int fd, OFF_T offset) {
  1: x/i $pc
  => 0x80f21f0 <_ZN11__sanitizer13internal_mmapEPvmiiiy+16>: movaps 0x30(%esp),%xmm0
  (gdb) p/x $esp
  $3 = 0xfeffd488

The problem is that `movaps` expects 16-byte alignment, while 32-bit Solaris/x86
only guarantees 4-byte alignment following the i386 psABI.

This patch updates `X86Subtarget::initSubtargetFeatures` accordingly,
handles Solaris/x86 in the corresponding testcase, and allows for some
variation in address alignment in
`compiler-rt/test/ubsan/TestCases/TypeCheck/vptr.cpp`.

Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`.

Differential Revision: https://reviews.llvm.org/D87615
The file was modifiedllvm/test/CodeGen/X86/stack-align2.ll
The file was modifiedllvm/lib/Target/X86/X86Subtarget.cpp
The file was modifiedcompiler-rt/test/ubsan/TestCases/TypeCheck/vptr.cpp
Commit c687af0c30b4dbdc9f614d5e061c888238e0f9c5 by david.spickett
[lldb] Don't send invalid region addresses to lldb server

Previously when <addr> in "memory region <addr>" didn't
parse correctly, we'd print an error then also ask lldb-server
for a region containing LLDB_INVALID_ADDRESS.

(lldb) memory region not_an_address
error: invalid address argument "not_an_address"...
error: Server returned invalid range

Only send the command to lldb-server if the address
parsed correctly.

(lldb) memory region not_an_address
error: invalid address argument "not_an_address"...

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D87694
The file was modifiedlldb/source/Commands/CommandObjectMemory.cpp
The file was modifiedlldb/test/API/functionalities/memory-region/TestMemoryRegion.py
Commit 9218f9283802b2d1ff33c490761fdb925b1e56d9 by cullen.rhodes
[clang][aarch64] ACLE: Support implicit casts between GNU and SVE vectors

This patch adds support for implicit casting between GNU vectors and SVE
vectors when `__ARM_FEATURE_SVE_BITS==N`, as defined by the Arm C
Language Extensions (ACLE, version 00bet5, section 3.7.3.3) for SVE [1].

This behavior makes it possible to use GNU vectors with ACLE functions
that operate on VLAT. For example:

  typedef int8_t vec __attribute__((vector_size(32)));
  vec f(vec x) { return svasrd_x(svptrue_b8(), x, 1); }

Tests are also added for implicit casting between GNU and fixed-length
SVE vectors created by the 'arm_sve_vector_bits' attribute. This
behavior makes it possible to use VLST with existing interfaces that
operate on GNUT. For example:

  typedef int8_t vec1 __attribute__((vector_size(32)));
  void f(vec1);
  #if __ARM_FEATURE_SVE_BITS==256 && __ARM_FEATURE_SVE_VECTOR_OPERATORS
  typedef svint8_t vec2 __attribute__((arm_sve_vector_bits(256)));
  void g(vec2 x) { f(x); } // OK
  #endif

The `__ARM_FEATURE_SVE_VECTOR_OPERATORS` feature macro indicates
interoperability with the GNU vector extension. This is the first patch
providing support for this feature, which once complete will be enabled
by the `-msve-vector-bits` flag, as the `__ARM_FEATURE_SVE_BITS` feature
currently is.

[1] https://developer.arm.com/documentation/100987/latest

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87607
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
The file was modifiedclang/test/Sema/attr-arm-sve-vector-bits.c
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/test/SemaCXX/attr-arm-sve-vector-bits.cpp
Commit 347d59b16c71194d7a9372dd69d3e41ebeca3113 by limo
[mlir][Linalg] Convolution tiling added to ConvOp vectorization pass

ConvOp vectorization supports now only convolutions of static shapes with dimensions
of size either 3(vectorized) or 1(not) as underlying vectors have to be of static
shape as well. In this commit we add support for convolutions of any size as well as
dynamic shapes by leveraging existing matmul infrastructure for tiling of both input
and kernel to sizes accepted by the previous version of ConvOp vectorization.
In the future this pass can be extended to take "tiling mask" as a user input which
will enable vectorization of user specified dimensions.

Differential Revision: https://reviews.llvm.org/D87676
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ncdhw-call.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-ncw-call.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-nwc-call.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir
The file was modifiedmlir/test/Conversion/LinalgToVector/linalg-to-vector.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nhwc-call.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-call.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ndhwc-call.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-call.mlir
The file was modifiedmlir/test/lib/Transforms/TestConvVectorization.cpp
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-call.mlir
Commit 4ae1bb193a596d5dab8e4e6acfcc081972b166a3 by llvm-dev
[AsmPrinter] Remove orphan DwarfUnit::shareAcrossDWOCUs declaration. NFCI.

Method implementation no longer exists.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
Commit 8adf92e2d11ad23c946ae5bc10fc17505389e956 by llvm-dev
[AMDGPU] Remove orphan SITargetLowering::LowerINT_TO_FP declaration. NFCI.

Method implementation no longer exists.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h
Commit 550b1a6fd46f59134b2629ce23ca6a7874b45585 by llvm-dev
[AsmPrinter] DwarfDebug - use DebugLoc const references where possible. NFC.

Avoid unnecessary copies.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp