SuccessChanges

Summary

  1. AArch64: relax address-space assertion in FastISel. (details)
  2. [CodeGen] Canonicalise adds/subs of i1 vectors using XOR (details)
  3. Prefer /usr/bin/env xxx over /usr/bin/xxx where xxx = perl, python, awk (details)
  4. [lldb] Let ClangASTImporter assert that the target AST has an external source (details)
  5. [lldb][NFC] Remove some obsolete comments in ClangASTImporter.cpp (details)
  6. Support standalone build of clang-tidy unittest (details)
  7. [X86][SSE] Move unaryshuffle(xor(x,-1)) -> xor(unaryshuffle(x),-1) fold into helper. NFCI. (details)
  8. [NARY-REASSOCIATE] Support reassociation of min/max (details)
  9. [X86] Regenerate sdiv_fix.ll tests. NFCI. (details)
  10. [NFC] Fix build failure after 83d134c3c4222e8b8d3d90c099f749a3b3abc8e0 (details)
  11. [RISCV] Unify scalable- and fixed-vector EXTRACT_SUBVECTOR lowering (details)
  12. [RISCV] Support fixed-length vector sign/zero extension (details)
  13. [RISCV] Support fixed-length vector truncates (details)
  14. Pass GPU events instead of streams across async regions. (details)
  15. [RISCV] Support fixed-length vector FP_ROUND & FP_EXTEND (details)
  16. [lldb][NFC] Document ClangASTImporter (details)
  17. [clang][cli] NFC: Remove intermediate command line parsing functions (details)
  18. [clang][cli] NFC: Remove ArgList infrastructure for recording queries (details)
  19. [clang] Remove a superfluous semicolon, silencing GCC warnings. NFC. (details)
  20. [clang][driver] Set the input type to Fortran when reading from stdin (details)
  21. [clang][flang] Improve the consistency of the code-base (details)
Commit 201ada80ee15aed23728500982857ad3769f6802 by Tim Northover
AArch64: relax address-space assertion in FastISel.

Some people are using alternative address spaces to track GC data, but
otherwise they behave exactly the same. This is the only place in the backend
we even try to care about it so it's really not achieving anything.
The file was modifiedllvm/lib/Target/AArch64/AArch64FastISel.cpp
Commit 87dbcd88651a4e72fc8f5e1594f9b02232277301 by david.sherwood
[CodeGen] Canonicalise adds/subs of i1 vectors using XOR

When calling SelectionDAG::getNode() to create an ADD or SUB
of two vectors with i1 element types we can canonicalise this
to use XOR instead, where 1+1 is treated as wrapping around
to 0 and 0-1 wraps to 1.

I've added the following tests for SVE targets:

  CodeGen/AArch64/sve-pred-arith.ll

and modified some X86 tests to reflect the much simpler codegen
required.

Differential Revision: https://reviews.llvm.org/D97276
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-op.ll
The file was addedllvm/test/CodeGen/AArch64/sve-pred-arith.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/avx512bw-mask-op.ll
Commit a54f160b3a98b91cd241a555d904a6b6453affc4 by Raphael Isemann
Prefer /usr/bin/env xxx over /usr/bin/xxx where xxx = perl, python, awk

Allow users to use a non-system version of perl, python and awk, which is useful
in certain package managers.

Reviewed By: JDevlieghere, MaskRay

Differential Revision: https://reviews.llvm.org/D95119
The file was modifiedllvm/utils/llvm-native-gxx
The file was modifiedopenmp/runtime/tools/message-converter.pl
The file was modifiedopenmp/runtime/tools/check-execstack.pl
The file was modifiedopenmp/runtime/tools/check-instruction-set.pl
The file was modifiedpolly/lib/External/isl/doc/mypod2latex
The file was modifiedclang/utils/analyzer/update_plist_test.pl
The file was modifiedlldb/scripts/disasm-gdb-remote.pl
The file was modifiedllvm/utils/findsym.pl
The file was modifiedclang/tools/scan-build/bin/set-xcode-analyzer
The file was modifiedllvm/utils/llvm-compilers-check
The file was modifiedclang/test/make_test_dirs.pl
The file was modifiedclang/www/demo/index.cgi
The file was modifiedclang/utils/TestUtils/pch-test.pl
The file was modifiedlldb/docs/use/python-reference.rst
The file was modifieddebuginfo-tests/llgdb-tests/test_debuginfo.pl
The file was modifiedllvm/utils/GenLibDeps.pl
The file was modifiedclang/utils/analyzer/reducer.pl
The file was modifiedllvm/utils/codegen-diff
Commit 7cfa6e1cc64bc41e644cfc4a43bc122790896569 by Raphael Isemann
[lldb] Let ClangASTImporter assert that the target AST has an external source

This prevents people from accidentially using this code outside the
intended setup.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
Commit 2d6b767c1d15ec736b409370da33009de57de7f2 by Raphael Isemann
[lldb][NFC] Remove some obsolete comments in ClangASTImporter.cpp

The first two comments are incomplete and reference obsolete code. The
last one is just commented out code (that also doesn't look correct).
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
Commit f0e461057221ad334cd194211ef4fa31364054e3 by sguelton
Support standalone build of clang-tidy unittest

Apply the same pattern as the one used in clangd/unittests/CMakeLists.txt

Differential Revision: https://reviews.llvm.org/D96788
The file was modifiedclang-tools-extra/unittests/clang-tidy/CMakeLists.txt
Commit 8b82669d56936b135fb0729368a8f5dbb2fb3639 by llvm-dev
[X86][SSE] Move unaryshuffle(xor(x,-1)) -> xor(unaryshuffle(x),-1) fold into helper. NFCI.

We should be able to extend this "canonicalizeShuffleWithBinOps" to handle more generic binop cases where either/both operands can be cheaply shuffled.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 83d134c3c4222e8b8d3d90c099f749a3b3abc8e0 by ybrevnov
[NARY-REASSOCIATE] Support reassociation of min/max

Support reassociation for min/max. With that we should be able to transform min(min(a, b), c) -> min(min(a, c), b) if min(a, c) is already available.

Reviewed By: mkazantsev

Differential Revision: https://reviews.llvm.org/D88287
The file was modifiedllvm/include/llvm/IR/PatternMatch.h
The file was modifiedllvm/test/Transforms/NaryReassociate/nary-smin.ll
The file was modifiedllvm/include/llvm/Transforms/Scalar/NaryReassociate.h
The file was modifiedllvm/lib/Transforms/Scalar/NaryReassociate.cpp
The file was modifiedllvm/test/Transforms/NaryReassociate/nary-umin.ll
The file was modifiedllvm/test/Transforms/NaryReassociate/nary-umax.ll
The file was modifiedllvm/test/Transforms/NaryReassociate/nary-smax.ll
Commit 0d835ba48dfb803de3a170cee3b79b4deb9e80b8 by llvm-dev
[X86] Regenerate sdiv_fix.ll tests. NFCI.
The file was modifiedllvm/test/CodeGen/X86/sdiv_fix.ll
Commit d0a6f8bb6568979e986eb4b8938dba537e75db7b by ybrevnov
[NFC] Fix build failure after 83d134c3c4222e8b8d3d90c099f749a3b3abc8e0
The file was modifiedllvm/lib/Transforms/Scalar/NaryReassociate.cpp
Commit 821f8bb29a8967fc1dc6520fda4a2b94b9c7ea0d by fraser
[RISCV] Unify scalable- and fixed-vector EXTRACT_SUBVECTOR lowering

This patch unifies the two disparate paths for lowering
EXTRACT_SUBVECTOR operations under one roof. Consequently, with this
patch it is possible to support any fixed-length subvector extraction,
not just "cast-like" ones.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D97192
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract-subvector.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
Commit 3bc5ed38750c6a6daff39ad524b75e40c8c09183 by fraser
[RISCV] Support fixed-length vector sign/zero extension

This patch adds support for the custom lowering sign- and zero-extension
of fixed-length vector types. It does so through custom nodes. Since the
source and destination types are (necessarily) of different sizes, it is
possible that the source type is legal whilst the larger destination
type isn't. In this case the legalization makes heavy use of
EXTRACT_SUBVECTOR.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D97194
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll
Commit 84413e1947427a917a3e55abfc1f66c42adc751b by fraser
[RISCV] Support fixed-length vector truncates

This patch extends support for our custom-lowering of scalable-vector
truncates to include those of fixed-length vectors. It does this by
co-opting the custom RISCVISD::TRUNCATE_VECTOR node and adding mask and
VL operands. This avoids unnecessary duplication of patterns and
inflation of the ISel table.

Some truncates go through CONCAT_VECTORS which currently isn't
efficiently handled, as it goes through the stack. This can be improved
upon in the future.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D97202
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Commit f03826f896beb7edb68c7576be4721ff8711dacb by csigg
Pass GPU events instead of streams across async regions.

Lower !gpu.async.tokens returned from async.execute regions to events instead of streams.

Make !gpu.async.token returned from !async.execute single-use.
This allows creating one event per use and destroying them without leaking or ref-counting.
Technically we only need this for stream/event-based lowering. I kept the code separate
from the rest of the gpu-async-region pass so that we can make this optional or move
to a separate pass as needed.

Reviewed By: herhut

Differential Revision: https://reviews.llvm.org/D96965
The file was modifiedmlir/test/Dialect/GPU/async-region.mlir
The file was modifiedmlir/lib/Dialect/GPU/Transforms/AsyncRegionRewriter.cpp
The file was modifiedmlir/test/Conversion/GPUCommon/lower-wait-to-gpu-runtime-calls.mlir
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
Commit 9620ce90d7238c5ff450a83b49cbc4b811d19830 by fraser
[RISCV] Support fixed-length vector FP_ROUND & FP_EXTEND

This patch extends the support for vector FP_ROUND and FP_EXTEND by
including support for fixed-length vector types. Since fixed-length
vectors use "VL" nodes and scalable vectors can use the standard nodes,
there is slightly more to do in the fixed-length case. A helper function
was introduced to try and reduce the divergent paths. It is expected
that this function will similarly come in useful for lowering the
int-to-fp and fp-to-int operations for fixed-length vectors.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D97301
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-conv.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Commit 86c267233f51c36d71c12a93d661c4195f150f05 by Raphael Isemann
[lldb][NFC] Document ClangASTImporter
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
Commit fa7eb3e4a60c620b820ff6c616c678f659f4528e by Jan Svoboda
[clang][cli] NFC: Remove intermediate command line parsing functions

Patch D96280 moved command line round-tripping from each parsing functions into single `CreateFromArgs` function.

This patch cleans up the individual parsing functions, essentially merging `ParseXxxImpl` with `ParseXxx`, as the distinction is not necessary anymore.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D96323
The file was modifiedclang/include/clang/Frontend/CompilerInvocation.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit 43cac1d27d7d57a7800150f95c3f8ac1e3b2bc2b by Jan Svoboda
[clang][cli] NFC: Remove ArgList infrastructure for recording queries

This patch removes the infrastructure for recording queries in `ArgList`, partially reverting D94472.

The infrastructure was used during command line round-trip to determine which arguments should a certain subset of `CompilerInvocation` generate.

Since D96280, the command line arguments are being generated all at once, making this code no longer necessary.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D96325
The file was modifiedllvm/include/llvm/Option/ArgList.h
The file was modifiedllvm/lib/Option/ArgList.cpp
Commit 0c8b26bf530b3fc65af9205c593583f26549da3e by martin
[clang] Remove a superfluous semicolon, silencing GCC warnings. NFC.
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit baebc1162f810f7bf5de48919054f75a2f81e180 by andrzej.warzynski
[clang][driver] Set the input type to Fortran when reading from stdin

This patch makes sure that for the following invocation of the new Flang
driver, clangDriver sets the input type to Fortran:
```
flang-new -E -
```
This change does not affect `clang`, i.e. for the following invocation
the input type is set to C:
```
clang -E -
```

This change leverages the fact that for `flang-new` the driver is in
Flang mode.

Differential Revision: https://reviews.llvm.org/D96777
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedflang/test/Flang-Driver/input-from-stdin.f90
Commit ad14ccc8c22e1480db7bfc1a176311e6f572c588 by llvm
[clang][flang] Improve the consistency of the code-base

In clang:
Replace argc_ with Argc
Replace argv_ with Argv
Replace argv with Args
In flang:
Replace argc_ with argc
Replace argv_ with argv
Replace argv with args

Reviewed By: awarzynski, aganea

Differential Revision: https://reviews.llvm.org/D97138
The file was modifiedclang/tools/driver/driver.cpp
The file was modifiedflang/tools/flang-driver/driver.cpp