SuccessChanges

Summary

  1. [sanitizer] Fix "set -e in subshell" in QEMU checkout (details)
  2. [scudo] Remove HWCAP2_MTE workaround (details)
  3. [scudo] Fix "set -e in subsell" issue (details)
Commit b7d044fe8aebce30d254a874c77c1a4242e2899a by Vitaly Buka
[sanitizer] Fix "set -e in subshell" in QEMU checkout
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)
Commit 649236a0b9147a8d248d3199d64658f4849bbf96 by Vitaly Buka
[scudo] Remove HWCAP2_MTE workaround

It's not needed after https://patches.linaro.org/patch/433102/
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)
Commit 02976f40d5f7b0f044b5c6e23536fb5d5de92b31 by Vitaly Buka
[scudo] Fix "set -e in subsell" issue
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)

Summary

  1. [AArch64][GlobalISel] Prefer mov for s32->s64 G_ZEXT (details)
  2. [gn build] Add target for PassesBindingsTest (details)
  3. [test] Speculative fix for bots (details)
  4. [X86] Use Skylake Server model for x86-64-v4 so we have full instruction coverage (details)
  5. Revert "[test] Speculative fix for bots" (details)
  6. [IR] Add a Location to BlockArgument. (details)
  7. [InstCombine] add tests for funnel shift miscompile; NFC (details)
  8. [gn build] Rename PassesBindingsTests and add it to unittests (details)
  9. [test] Speculative fix for bots (round 2) (details)
  10. [InstCombine] restrict funnel shift match to avoid miscompile (details)
  11. [NFC] Format PassesBindingsTests CMake like other unittests (details)
Commit 58c57e1b5f5fbc489b95f3b3a387451632c60eea by Jessica Paquette
[AArch64][GlobalISel] Prefer mov for s32->s64 G_ZEXT

We can use an ORRWrs (mov) + SUBREG_TO_REG rather than a UBFX for G_ZEXT on
s32->s64.

This closer matches what SDAG does, and is likely more power efficient etc.

(Also fixed up arm64-rev.ll which had a fallback check line which was entirely
useless.)

Simple example: https://godbolt.org/z/h1jKKdx5c

Differential Revision: https://reviews.llvm.org/D102656
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-cmp.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/arm64-rev.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/opt-fold-ext-tbz-tbnz.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-int-ext.mir (diff)
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-redundant-zext.mir (diff)
Commit 85f8698eb96f5e74844c839b9da579239bc0854d by aeubanks
[gn build] Add target for PassesBindingsTest
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Passes/BUILD.gn (diff)
Commit 5c291482ec8bcd686044ebc0d4cffe7bf769521c by aeubanks
[test] Speculative fix for bots

Bot has error "Failed to create target from default triple: Unable to
find target for this triple (no targets are registered)", likely because
we only initialized the native target, not the registered target if it's
different.

https://lab.llvm.org/buildbot/#/builders/86/builds/13664
The file was modifiedllvm/unittests/Passes/PassBuilderBindingsTest.cpp (diff)
Commit 99c0f16ea406a99d2cfc063ffdd1d5d7a3825277 by llvm-dev
[X86] Use Skylake Server model for x86-64-v4 so we have full instruction coverage

The x86-64-v4 generic cpu arch supports AVX512BW/DQ/CD/VLX which isn't covered by the Haswell model, use the SkylakeServer model instead which is a lot closer to what the arch represents.

Differential Revision: https://reviews.llvm.org/D102553
The file was modifiedllvm/lib/Target/X86/X86.td (diff)
Commit c3530e75cee121b665f3d960934dda00a23522ec by aeubanks
Revert "[test] Speculative fix for bots"

This reverts commit 5c291482ec8bcd686044ebc0d4cffe7bf769521c.

unittests/Passes/CMakeFiles/PassesBindingsTests.dir/PassBuilderBindingsTest.cpp.o: In function `PassBuilderCTest::SetUp()':
PassBuilderBindingsTest.cpp:(.text._ZN16PassBuilderCTest5SetUpEv[_ZN16PassBuilderCTest5SetUpEv]+0x28): undefined reference to `LLVMInitializeARMTargetInfo'
The file was modifiedllvm/unittests/Passes/PassBuilderBindingsTest.cpp (diff)
Commit 3043be9d2db4d0cdf079adb5e1bdff032405e941 by clattner
[IR] Add a Location to BlockArgument.

This adds the ability to specify a location when creating BlockArguments.
Notably Value::getLoc() will return this correctly, which makes diagnostics
more precise (e.g. the example in test-legalize-type-conversion.mlir).

This is currently optional to avoid breaking any existing code - if
absent, the BlockArgument defaults to using the location of its enclosing
operation (preserving existing behavior).

The bulk of this change is plumbing location tracking through the parser
and printer to make sure it can round trip (in -mlir-print-debuginfo
mode).  This is complete for generic operations, but requires manual
adoption for custom ops.

I added support for function-like ops to round trip their argument
locations - they print correctly, but when parsing the locations are
dropped on the floor.  I intend to fix this, but it will require more
invasive plumbing through "function_like_impl" stuff so I think it
best to split it out to its own patch.

Differential Revision: https://reviews.llvm.org/D102567
The file was modifiedmlir/lib/IR/Builders.cpp (diff)
The file was modifiedmlir/include/mlir/IR/OpImplementation.h (diff)
The file was modifiedmlir/lib/IR/Value.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Block.h (diff)
The file was modifiedmlir/include/mlir/IR/Value.h (diff)
The file was modifiedmlir/include/mlir/IR/Builders.h (diff)
The file was modifiedmlir/lib/IR/Block.cpp (diff)
The file was modifiedmlir/test/Transforms/test-legalize-type-conversion.mlir (diff)
The file was modifiedmlir/lib/IR/AsmPrinter.cpp (diff)
The file was modifiedmlir/lib/Parser/Parser.cpp (diff)
The file was modifiedmlir/lib/IR/FunctionImplementation.cpp (diff)
The file was modifiedmlir/test/IR/locations.mlir (diff)
The file was modifiedmlir/test/mlir-tblgen/pattern.mlir (diff)
Commit e81f09f8f880dc54ab6a460aa7591e9615bac222 by spatel
[InstCombine] add tests for funnel shift miscompile; NFC
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll (diff)
Commit 16cbc80e72d9d60df6c18d4c524bfce343e2a755 by aeubanks
[gn build] Rename PassesBindingsTests and add it to unittests
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Passes/BUILD.gn (diff)
Commit 0b031eeefa8f510f78a4b63d52ce12bab28bf54c by aeubanks
[test] Speculative fix for bots (round 2)

Bot has error "Failed to create target from default triple: Unable to
find target for this triple (no targets are registered)", likely because
we only initialized the native target, not the registered target if it's
different.

https://lab.llvm.org/buildbot/#/builders/86/builds/13664
The file was modifiedllvm/unittests/Passes/CMakeLists.txt (diff)
The file was modifiedllvm/unittests/Passes/PassBuilderBindingsTest.cpp (diff)
Commit 6d949a9c8fa440b0b91c9a96a30a9b7c1b7cf1e1 by spatel
[InstCombine] restrict funnel shift match to avoid miscompile

As noted in the post-commit discussion for:
https://reviews.llvm.org/rGabd7529625a73f405e40a63dcc446c41d51a219e

...that change exposed a logic hole that allows a miscompile
if the shift amount could exceed the narrow width:
https://alive2.llvm.org/ce/z/-i_CiM
https://alive2.llvm.org/ce/z/NaYz28

The restriction isn't necessary for a rotate (same operand for
both shifts), so we should adjust the matching for the shift
value as a follow-up enhancement:
https://alive2.llvm.org/ce/z/ahuuQb
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll (diff)
Commit 5781f9a7434267bf15a94f4210d3abca3bf773e2 by aeubanks
[NFC] Format PassesBindingsTests CMake like other unittests
The file was modifiedllvm/unittests/Passes/CMakeLists.txt (diff)