UnstableChanges

Summary

  1. PR45521: Preserve the value kind when performing a standard conversion (details)
  2. [mlir][spirv] Add MatrixTimesMatrix operation (details)
  3. [RISCV] Optimize multiplication by constant (details)
  4. [RISCV] optimize addition with a pair of (addi imm) (details)
  5. Recommit "[X86] Merge the FEATURE_64BIT and FEATURE_EM64T bits in X86TargetParser.def." (details)
  6. [LLDB] Disable flaky lldb-vscode tests on arm (details)
  7. [gn build] Port baca8f977ed (details)
  8. [openmp][NFC] Remove duplicate clause defaultmap for target parallel do (details)
  9. Revert "[X86] Add back the assert in getImpliedFeatures that I removed in ef4cc70f3ed2a91e0a48c6448c517c3ba34c2846" (details)
  10. Rename `xla_lhlo.terminator` into `return` in SCF parallel loop test (NFC) (details)
  11. Upgrade TypePromotionTransaction to be able to report changes in CodeGenPrepare (details)
  12. [analyzer] Warning for default constructed unique_ptr dereference (details)
  13. [gn build] Port 20e271a98de (details)
  14. [DSE,MSSA] Eliminate stores by terminators (free,lifetime.end). (details)
  15. [WebAssembly] Generate unreachable after __stack_chk_fail (details)
  16. [MLIR][SPIRVToLLVM] Miscellaneous ops conversion: select, fmul and undef (details)
  17. [CodeGen] Fix warnings in sve-ld1-addressing-mode-reg-imm.ll (details)
  18. [analyzer] Silence gcc -Wparentheses warning [NFC] (details)
  19. [CodeGen] Fix wrong use of getVectorNumElements in PromoteIntRes_EXTRACT_SUBVECTOR (details)
  20. [CodeGen] Fix wrong use of getVectorNumElements() in DAGTypeLegalizer::SplitVecRes_ExtendOp (details)
  21. [llvm-readobj] - Refine error reporting in MipsGOTParser<ELFT> helper. (details)
  22. [DebugInfo/DWARF] - Test invalid CFI opcodes properly and refine related `CFIProgram::parse` code. (details)
  23. [X86][AVX] Remove redundant EXTRACT_VECTOR_ELT(VBROADCAST(SCALAR())) fold (details)
  24. Fix MSVC "not all control paths return a value" warnings. NFC. (details)
  25. [NFCI][llvm-reduce] Cleanup Delta passes to use Oracle abstraction (details)
  26. [DWARF] Add cuttoff guarding quadratic validThroughout behaviour (details)
  27. [MLIR][SPIRVToLLVM] Implementation of spv.BitFieldSExtract and spv.BitFieldUExtract patterns (details)
  28. [lldb] Skip TestIOHandlerResizeNoEditline on Windows (details)
  29. [SVE] Custom ISel for fixed length extract/insert_subvector. (details)
  30. [UpdateTestChecks] Move more update_test_checks.py logic to common.py (details)
  31. [UpdateTestChecks] Add UTC_ARGS support for update_{llc,cc}_test_checks.py (details)
  32. [Support] Fix signed/unsigned comparison warning (details)
  33. [X86][AVX] Add SimplifyDemandedVectorEltsForTargetShuffle test for v32i8->v16i8 PSHUFB (details)
  34. [GlobalISel][InlineAsm] Fix matching input constraints to mem operand (details)
  35. [lldb][NFC] Fix indentation in expect_expr (details)
  36. Add missing REQUIRES: x86-registered-target (details)
  37. [X86][AVX] SimplifyDemandedVectorEltsForTargetShuffle - ensure mask is same size as constant size (details)
  38. [cmake] Use CMAKE_GENERATOR to determine if Ninja is used (details)
  39. [lldb/API] Overwrite variables with SBLaunchInfo::SetEnvironment(append=true) (details)
  40. [AST][RecoveryExpr] Fix the value category for recovery expr. (details)
  41. [lldb/Utility] Simplify Scalar float accessors (details)
  42. clang: Don't show a trailing space with --version when not built from the repo (details)
  43. [lldb/Core] Update comment to make it more explicit (NFC) (details)
  44. [x86] improve codegen for non-splat bit-masked vector compare and select (PR46531) (details)
  45. [flang] Fix setting mxcsr on MSVC (details)
  46. [mlir] Add ViewLikeOpInterface to std.memref_cast. (details)
  47. [NVPTX]Add a test for debug info for packed bitfields, NFC. (details)
  48. Fix crash on overloaded postfix unary operators due to invalid sloc (details)
  49. [CodeGen] Don't combine extract + concat vectors with non-legal types (details)
  50. [flang] Support for image selectors (details)
  51. [flang] Upstreaming intrinsic call lowering. (details)
  52. [clangd] Enable reading config from files behind a flag (details)
  53. SLP: honor requested max vector size merging PHIs (details)
  54. [OpenMPIRBuilder][Fix] Move llvm::omp::types to OpenMPIRBuilder. (details)
  55. [clangd] Improve serialization error messages. NFC (details)
Commit 065fc1eafe7c6f67f8029bcd38e6864b3c429e35 by richard
PR45521: Preserve the value kind when performing a standard conversion
sequence on a glvalue expression.

If the sequence is supposed to perform an lvalue-to-rvalue conversion,
then one will be specified as the first conversion in the sequence.
Otherwise, one should not be invented.
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/SemaCXX/references.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
Commit 34c485201507de2602b70b0df368dbc6c0b0fecb by antiagainst
[mlir][spirv] Add MatrixTimesMatrix operation

Add MatrixTimesMatrix operation to SPIRV Dialect and add NoSideEffect trait
to Matrix ops.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D82671
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/test/Dialect/SPIRV/matrix-ops.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVTypes.h
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/matrix.mlir
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVMatrixOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVBase.td
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVDialect.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
Commit cb82de29601745d6c4beaf51ee1dbd1bf7acc186 by maskray
[RISCV] Optimize multiplication by constant

... to shift/add or shift/sub.

Do not enable it on riscv32 with the M extension where decomposeMulByConstant
may not be an optimization.

Reviewed By: luismarques, MaskRay

Differential Revision: https://reviews.llvm.org/D82660
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/mul.ll
Commit 1e9d0811c9bf40abbe07d591057869568f140036 by maskray
[RISCV] optimize addition with a pair of (addi imm)

For an addition with an immediate in specific ranges, a pair of
addi-addi can be generated instead of the ordinary lui-addi-add serial.

Reviewed By: MaskRay, luismarques

Differential Revision: https://reviews.llvm.org/D82262
The file was addedllvm/test/CodeGen/RISCV/add-imm.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
Commit 51b0da731af75c68dd521e04cc576d5a611b1612 by craig.topper
Recommit "[X86] Merge the FEATURE_64BIT and FEATURE_EM64T bits in X86TargetParser.def."

These represent the same thing but 64BIT only showed up from
getHostCPUFeatures providing a list of featuers to clang. While
EM64T showed up from getting the features for a named CPU.

EM64T didn't have a string specifically so it would not be passed
up to clang when getting features for a named CPU. While 64bit
needed a name since that's how it is index.

Merge them by filtering 64bit out before sending features to clang
for named CPUs.
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedllvm/lib/Support/Host.cpp
The file was modifiedllvm/include/llvm/Support/X86TargetParser.def
Commit 1f780c997c3616465a4180ffb20a5db4ec9d7776 by omair.javaid
[LLDB] Disable flaky lldb-vscode tests on arm

Summary:
These two tests are flaky on lldb Arm buildbot as well. They are already
being skipped for aarch64. I am going to mark them skipped for Arm.

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D81978
The file was modifiedlldb/test/API/tools/lldb-vscode/attach/TestVSCode_attach.py
Commit fe13ee875b102e5bf66c212883852f08796168b3 by thakis
[gn build] Port baca8f977ed
The file was modifiedllvm/utils/gn/secondary/compiler-rt/lib/builtins/BUILD.gn
Commit 0a41493b9822514daf72d036d088ac91d9235b0c by clementval
[openmp][NFC] Remove duplicate clause defaultmap for target parallel do
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
Commit e885f336fd78e35ccb8e967e0664b356de333963 by thakis
Revert "[X86] Add back the assert in getImpliedFeatures that I removed in ef4cc70f3ed2a91e0a48c6448c517c3ba34c2846"

This reverts commit 91f70675cc6e5c872e0059c11d797b8726eeac67.
It seems to break most (all?) hwasan tests.
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedllvm/include/llvm/Support/X86TargetParser.def
Commit f54d0e36be6a4d5dab67244e85b8664282dcf5d1 by joker.eph
Rename `xla_lhlo.terminator` into `return` in SCF parallel loop test (NFC)

It seems that these were inserted here inadvertently instead of using
standard `return`.
The file was modifiedmlir/test/Dialect/SCF/parallel-loop-fusion.mlir
Commit edc7da24057b22896dc6522d3f98ccdd75a4e7f8 by sguelton
Upgrade TypePromotionTransaction to be able to report changes in CodeGenPrepare

optimizeMemoryInst was reporting no change while still modifying the IR.
Inspect the status of TypePromotionTransaction to get a better status.

Related to https://reviews.llvm.org/D80916

Differential Revision: https://reviews.llvm.org/D81256
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
Commit 20e271a98de5609e22766e56f9c374b150f06982 by vrnithinkumar
[analyzer] Warning for default constructed unique_ptr dereference

Summary: Add support for warning incase of default constructed unique pointer dereferences

Reviewed By: NoQ, Szelethus, vsavchenko, xazax.hun

Tags: #clang

Differential Revision: https://reviews.llvm.org/D81315
The file was modifiedclang/docs/analyzer/checkers.rst
The file was modifiedclang/test/Analysis/smart-ptr.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
The file was modifiedclang/test/Analysis/use-after-move.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator-cxx.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
The file was addedclang/lib/StaticAnalyzer/Checkers/SmartPtrChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
The file was modifiedclang/test/Analysis/analyzer-config.c
The file was addedclang/lib/StaticAnalyzer/Checkers/SmartPtr.h
Commit d8dfd6dcc143a2164ae781de6598e72b7183fc3f by llvmgnsyncbot
[gn build] Port 20e271a98de
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Commit 80970ac87574c6d0292894a4a912fa512336f434 by flo
[DSE,MSSA] Eliminate stores by terminators (free,lifetime.end).

This patch adds support for eliminating stores by free & lifetime.end
calls. We can remove stores that are not read before calling a memory
terminator and we can eliminate all stores after a memory terminator
until we see a new lifetime.start. The second case seems to not really
trigger much in practice though.

Reviewers: dmgreen, rnk, efriedma, bryant, asbirlea, Tyker

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D72410
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
Commit 7e6793aa33dd61ed9dd531871fce30c1b7978e13 by aheejin
[WebAssembly] Generate unreachable after __stack_chk_fail

`__stack_chk_fail` does not return, but `unreachable` was not generated
following `call __stack_chk_fail`. This had a possibility to generate an
invalid binary for functions with a return type, because
`__stack_chk_fail`'s return type is void and `call __stack_chk_fail` can
be the last instruction in the function whose return type is non-void.
Generating `unreachable` after it makes sure CFGStackify's
`fixEndsAtEndOfFunction` handles it correctly.

Reviewed By: tlively

Differential Revision: https://reviews.llvm.org/D83277
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/CodeGen/WebAssembly/stack-protector.ll
Commit 00580349c39280a1d0a9ef5999c9826dad553470 by georgemitenk0v
[MLIR][SPIRVToLLVM] Miscellaneous ops conversion: select, fmul and undef

This patch introduces 3 new direct conversions for SPIR-V ops:
- `spv.Select`
- `spv.Undef`
- `spv.FMul` that was skipped in the patch with arithmetic ops

Differential Revision: https://reviews.llvm.org/D83291
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was addedmlir/test/Conversion/SPIRVToLLVM/misc-ops-to-llvm.mlir
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/arithmetic-ops-to-llvm.mlir
Commit 15aeb805dc46fbd268388af5f8de19e4de29cdb3 by david.sherwood
[CodeGen] Fix warnings in sve-ld1-addressing-mode-reg-imm.ll

For the GetElementPtr case in function
  AddressingModeMatcher::matchOperationAddr
I've changed the code to use the TypeSize class instead of relying
upon the implicit conversion to a uint64_t. As part of this we now
check for scalable types and if we encounter one just bail out for
now as the subsequent optimisations doesn't currently support them.

This changes fixes up all warnings in the following tests:

  llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
  llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll

Differential Revision: https://reviews.llvm.org/D83124
The file was modifiedllvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
Commit cfcf8e17ef537686e03c58921a10593a2b0c4a3d by mikael.holmen
[analyzer] Silence gcc -Wparentheses warning [NFC]
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporter.cpp
Commit 5b14f5051f134d29f51b523e5c9b602c08a4a7af by david.sherwood
[CodeGen] Fix wrong use of getVectorNumElements in PromoteIntRes_EXTRACT_SUBVECTOR

Calling getVectorNumElements() is not safe for scalable vectors and we
should normally use getVectorElementCount() instead. However, for the
code changed in this patch I decided to simply move the instantiation of
the variable 'OutNumElems' lower down to the place where only fixed-width
vectors are used, and hence it is safe to call getVectorNumElements().

Fixes up one warning in this test:

  sve-sext-zext.ll

Differential Revision: https://reviews.llvm.org/D83195
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit 9e66e9c30a19dc5923c85d3a3a4b757935299fba by david.sherwood
[CodeGen] Fix wrong use of getVectorNumElements() in DAGTypeLegalizer::SplitVecRes_ExtendOp

In DAGTypeLegalizer::SplitVecRes_ExtendOp I have replaced an invalid
call to getVectorNumElements() with a call to getVectorMinNumElements(),
since the code path works for both fixed and scalable vectors.

This fixes up a warning in the following test:

  sve-sext-zext.ll

Differential Revision: https://reviews.llvm.org/D83197
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 1f84ace3c7266564801d79185ebb05eb451205f1 by grimar
[llvm-readobj] - Refine error reporting in MipsGOTParser<ELFT> helper.

This is a follow-up for D83225. This does the following:
1) Adds missing tests for existent errors.
2) Stops using `unwrapOrError` to propagate errors to caller.
   (I am trying to get rid of all `unwrapOrErr` calls in the llvm-readelf code).
3) Improves error messages reported slightly.

Differential revision: https://reviews.llvm.org/D83314
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-plt.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-got.test
Commit bee8cdcabd2b3931be3f240e70b0b04e766ea4fe by grimar
[DebugInfo/DWARF] - Test invalid CFI opcodes properly and refine related `CFIProgram::parse` code.

There are following issues with `CFIProgram::parse` code:

1) Invalid CFI opcodes were never tested. And currently a test would fail
when the `LLVM_ENABLE_ABI_BREAKING_CHECKS` is enabled. It happens because
the `DataExtractor::Cursor C` remains unchecked when the
"Invalid extended CFI opcode" error is reported:

```
.eh_frame section at offset 0x1128 address 0x0:
Program aborted due to an unhandled Error:
Error value was Success. (Note: Success values must still be checked prior to being destroyed).
```

2) It is impossible to reach the "Invalid primary CFI opcode" error with the current code.
There are 3 possible primary opcode values and all of them are handled. Hence this error
should be replaced with llvm_unreachable.

3) Errors currently reported are upper-case.

This patch refines the code in the `CFIProgram::parse` method to fix all issues mentioned
and adds unit tests for all possible invalid extended CFI opcodes.

Differential revision: https://reviews.llvm.org/D82868
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugFrameTest.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
Commit c00a27752e4944db609a683504bb10e0975fdf76 by llvm-dev
[X86][AVX] Remove redundant EXTRACT_VECTOR_ELT(VBROADCAST(SCALAR())) fold

Noticed while looking for similar cases to rG931ec74f7a29 - SimplifyDemandedVectorElts and shuffle combining both should handle this now.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 997a3c29f4655e930a9ef44be98d28368d757d98 by llvm-dev
Fix MSVC "not all control paths return a value" warnings. NFC.
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
Commit a39c7ab9c355670510341191a802f3799265e9ef by lebedev.ri
[NFCI][llvm-reduce] Cleanup Delta passes to use Oracle abstraction

Summary:
I think, this results in much more understandable/readable flow.
At least the original logic was perhaps the most hard thing for me to grasp when taking an initial look on the delta passes.

Reviewers: nickdesaulniers, dblaikie, diegotf, george.burgess.iv

Reviewed By: nickdesaulniers

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83287
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceOperandBundles.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/Delta.h
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceArguments.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceFunctions.cpp
Commit b9d977b0ca60c54f11615ca9d144c9f08b29fd85 by jeremy.morse
[DWARF] Add cuttoff guarding quadratic validThroughout behaviour

Occasionally we see absolutely massive basic blocks, typically in global
constructors that are vulnerable to heavy inlining. When these blocks are
dense with DBG_VALUE instructions, we can hit near quadratic complexity in
DwarfDebug's validThroughout function. The problem is caused by:

  * validThroughout having to step through all instructions in the block to
    examine their lexical scope,
  * and a high proportion of instructions in that block being DBG_VALUEs
    for a unique variable fragment,

Leading to us stepping through every instruction in the block, for (nearly)
each instruction in the block.

By adding this guard, we force variables in large blocks to use a location
list rather than a single-location expression, as shown in the added test.
This shouldn't change the meaning of the output DWARF at all: instead we
use a less efficient DWARF encoding to avoid a poor-performance code path.

Differential Revision: https://reviews.llvm.org/D83236
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was addedllvm/test/DebugInfo/MIR/X86/singlelocation-cutoffs.mir
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
Commit 7a4e39b326d0cc69e6b4fbe9010aaf5dc704a12f by georgemitenk0v
[MLIR][SPIRVToLLVM] Implementation of spv.BitFieldSExtract and spv.BitFieldUExtract patterns

This patch adds conversion patterns for `spv.BitFieldSExtract` and `spv.BitFieldUExtract`.
As in the patch for `spv.BitFieldInsert`, `offset` and `count` have to be broadcasted in
vector case and casted to match the type of the base.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D82640
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/bitwise-ops-to-llvm.mlir
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
Commit e9f943429c895e4d6d29505fab2fad365fe2766e by Raphael Isemann
[lldb] Skip TestIOHandlerResizeNoEditline on Windows

It seems opening the empty file and trying use that file object as an input
stream doesn't work on Windows. Skipping it for now.
The file was modifiedlldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py
Commit fb75451775f83c04d53e4e94bb4bd298ea9a882f by paul.walker
[SVE] Custom ISel for fixed length extract/insert_subvector.

We use extact_subvector and insert_subvector to "cast" between
fixed length and scalable vectors.  This patch adds custom c++
based ISel for the following cases:

  fixed_vector = ISD::EXTRACT_SUBVECTOR scalable_vector, 0
  scalable_vector = ISD::INSERT_SUBVECTOR undef(scalable_vector), fixed_vector, 0

Which result in either EXTRACT_SUBREG/INSERT_SUBREG for NEON sized
vectors or COPY_TO_REGCLASS otherwise.

Differential Revision: https://reviews.llvm.org/D82871
The file was addedllvm/test/CodeGen/AArch64/sve-fixed-length-subvector.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
Commit aae413462fae16c481df31ff23b951c5df494a60 by Alexander.Richardson
[UpdateTestChecks] Move more update_test_checks.py logic to common.py

I intend to reuse this to add UTC_ARGS support for update_llc_test_checks.py
and update_cc_test_checks.py in D78478.

Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D78618
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was modifiedllvm/utils/update_test_checks.py
Commit a80afc032859ebe65af283f76b38a0f5921b683f by Alexander.Richardson
[UpdateTestChecks] Add UTC_ARGS support for update_{llc,cc}_test_checks.py

https://reviews.llvm.org/D69701 added support for on-the-fly argument
changes for update scripts. I recently wanted to keep some manual check
lines in a test generated by update_cc_test_checks.py in our CHERI fork, so
this commit adds support for UTC_ARGS in update_cc_test_checks.py. And since
I was refactoring the code to be in common.py, I also added it for
update_llc_test_checks.py.

Reviewed By: jdoerfert, MaskRay
Differential Revision: https://reviews.llvm.org/D78478
The file was addedclang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c
The file was modifiedclang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.funcsig.expected
The file was addedclang/test/utils/update_cc_test_checks/on_the_fly_arg_change.test
The file was modifiedllvm/utils/update_llc_test_checks.py
The file was addedclang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c.expected
The file was modifiedclang/test/utils/update_cc_test_checks/mangled_names.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/on_the_fly_arg_change.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/on_the_fly_arg_change.ll
The file was modifiedllvm/utils/update_cc_test_checks.py
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/basic.ll.expected
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/basic.test
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/on_the_fly_arg_change.test
Commit a50c7ebfd0f06982e8dc31020acae4d32e6d0e9f by oliver.stannard
[Support] Fix signed/unsigned comparison warning
The file was modifiedllvm/lib/Support/FormattedStream.cpp
Commit 75f9aa6ce0751064d89bb19c9767866d770adf84 by llvm-dev
[X86][AVX] Add SimplifyDemandedVectorEltsForTargetShuffle test for v32i8->v16i8 PSHUFB

On SKX targets we end up loading a v16i8 PSHUFB mask from a v32i8 constant and scaling incorrectly indexes the demanded elts mask - we're missing a check that the constant pool is the same size as the loaded mask.

Test case from D81791 post-commit review.
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-avx512.ll
Commit 419c92a749294a22a3deaa22719094ebd4e70568 by petar.avramovic
[GlobalISel][InlineAsm] Fix matching input constraints to mem operand

Mark matching input constraint to mem operand as not supported.

Differential Revision: https://reviews.llvm.org/D83235
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
Commit ebee165184a8000b7f650f0946b25b6ea51859b8 by Raphael Isemann
[lldb][NFC] Fix indentation in expect_expr
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 1be92dd207275e1ecf09dd38f44ead908fe4b8c9 by Alexander.Richardson
Add missing REQUIRES: x86-registered-target

This should fix build bot failures after a80afc032859ebe65af283f76b38a0f5921b683f
The file was modifiedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/on_the_fly_arg_change.test
Commit 9dc250db9db29b0264fbb1e59bde8efa86d90c9b by llvm-dev
[X86][AVX] SimplifyDemandedVectorEltsForTargetShuffle - ensure mask is same size as constant size

Fixes test regression reported on D81791
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-avx512.ll
Commit b19913188d03d59332908f6280af37325bc49492 by hans
[cmake] Use CMAKE_GENERATOR to determine if Ninja is used

The name of the make program does not necessarily match "ninja",
especially if an alternative implementation like samurai is used.

Using CMAKE_GENERATOR is a more robust detection method, and is
already used elsewhere in this file.

Differential revision: https://reviews.llvm.org/D77091
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 695b33a56919af8873eecb47cb83fa17a271e99f by pavel
[lldb/API] Overwrite variables with SBLaunchInfo::SetEnvironment(append=true)

Summary:
This function was documented to overwrite entries with D76111, which was
adding a couple of similar functions. However, this function (unlike the
functions added in that patch) was/is not actually overwriting variables
-- any pre-existing variables would get ignored.

This behavior does not seem to be intentional. In fact, before the refactor in
D41359, this function could introduce duplicate entries, which could
have very surprising effects both inside lldb and on other applications
(some applications would take the first value, some the second one; in
lldb, attempting to unset a variable could make the second variable
become active, etc.).

Overwriting seems to be the most reasonable behavior here, so change the
code to match documentation.

Reviewers: clayborg, wallace, jingham

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D83306
The file was modifiedlldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
The file was modifiedlldb/source/API/SBLaunchInfo.cpp
Commit 96a5cfff208d8e86a598e64412d9ef5dde0f9c9e by hokein.wu
[AST][RecoveryExpr] Fix the value category for recovery expr.

RecoveryExpr was always lvalue, but it is wrong if we use it to model
broken function calls, function call expression has more compliated rules:

- a call to a function whose return type is an lvalue reference yields an lvalue;
- a call to a function whose return type is an rvalue reference yields an xvalue;
- a call to a function whose return type is nonreference type yields a prvalue;

This patch makes the recovery-expr align with the function call if it is
modeled a broken call.

Differential revision: https://reviews.llvm.org/D83201
The file was modifiedclang/lib/AST/ExprClassification.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/test/AST/ast-dump-recovery.cpp
The file was modifiedclang/test/SemaCXX/recovery-expr-type.cpp
Commit 88c82474d2ef92d0cda7d902206d90a73eed9c9d by pavel
[lldb/Utility] Simplify Scalar float accessors

Make use of APFloat conversion methods to avoid needing to switch based
on the stored value type.
The file was modifiedlldb/source/Utility/Scalar.cpp
Commit bbea4d5e6b82a683dccaa8f4916e2a44f5dd3490 by sylvestre
clang: Don't show a trailing space with --version when not built from the repo

Reported here:
https://bugs.llvm.org/show_bug.cgi?id=38998#c15

Reviewers: hans

Differential Revision: https://reviews.llvm.org/D83386
The file was modifiedclang/lib/Basic/Version.cpp
Commit 9c31da853855eb952bbad98b99978df8c515e9b2 by medismail.bennani
[lldb/Core] Update comment to make it more explicit (NFC)

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/source/Core/ValueObject.cpp
Commit 91149002872f968673c8f01f641dfe11dc4a4d7c by spatel
[x86] improve codegen for non-splat bit-masked vector compare and select (PR46531)

vselect ((X & Pow2C) == 0), LHS, RHS --> vselect ((shl X, C') < 0), RHS, LHS

Follow-up to D83073 - the non-splat mask cases where we actually see an
improvement are quite limited from what I can tell. AVX1 needs multiply
and blend capabilities and AVX2 needs vector shift and blend capabilities.
The intersection of those 2 constraints is only vectors with 32-bit or
64-bit elements.

XOP is/was better.

Differential Revision: https://reviews.llvm.org/D83181
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vselect-pcmp.ll
Commit 2ebf4b6e4c35c93c97da9ed14db7b38757c0d7f9 by isuruf
[flang] Fix setting mxcsr on MSVC

Reviewers: sscalpone, jdoerfert, #flang, DavidTruby, jeanPerier

Reviewed By: jeanPerier

Subscribers: richard.barton.arm, jeanPerier, ro, llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D77815
The file was modifiedflang/unittests/Evaluate/fp-testing.h
The file was modifiedflang/lib/Evaluate/host.h
The file was modifiedflang/unittests/Evaluate/fp-testing.cpp
The file was modifiedflang/lib/Evaluate/host.cpp
Commit 1ea289681acf622ceda783c8fda2f16754b7c933 by pifon
[mlir] Add ViewLikeOpInterface to std.memref_cast.

Summery:  It's needed for correct work of BufferPlacement.

Differential Revision: https://reviews.llvm.org/D83385
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
Commit 64363a9d93006595d05825ce8fdbcc146aac15b1 by a.bataev
[NVPTX]Add a test for debug info for packed bitfields, NFC.
The file was addedllvm/test/DebugInfo/NVPTX/packed_bitfields.ll
Commit ea8bba7e8d0db3541a386ad649c4bf21d53e8380 by ecaldas
Fix crash on overloaded postfix unary operators due to invalid sloc

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D82954
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
Commit 26a22478cdfe6fe4d169320910c38958d5dafc38 by ties.stuij
[CodeGen] Don't combine extract + concat vectors with non-legal types

Summary:
The following combine currently breaks in the DAGCombiner:

```
extract_vector_elt (concat_vectors v4i16:a, v4i16:b), x
   -> extract_vector_elt a, x
```

This happens because after we have combined these nodes we have inserted nodes
that use individual instances of the vector element type. In the above example
i16. However this isn't a legal type on all backends, and when the combining pass calls
the legalizer it breaks as it expects types to already be legal. The type legalizer has
already been run, and running it again would make a mess of the nodes.

In the example code at least, the generated code is still efficient after the change.

Reviewers: miyuki, arsenm, dmgreen, lebedev.ri

Reviewed By: miyuki, lebedev.ri

Subscribers: lebedev.ri, wdng, hiraditya, steven.zhang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83231
The file was addedllvm/test/CodeGen/AArch64/regress-combine-extract-vectors.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 15fa287b64d0ef845201339994cdf6eb3e4d51e1 by psteinfeld
[flang] Support for image selectors

Summary:
This change implements support for image selectors and image selector
specifications as described in section 9.6.

In check-coarray[.h,cpp] I changed the `Leave()` function for
`parser::ImageSelectorSpec` to take a `parser::ImageSelector`, which
contains a list of image selector specifications.  This allows us to
detect when the same specification is used more than once.  I also added
code to analyze the expressions for the image selector specifications to
expression.cpp and a test for all of the conditions to check at
compile-time.

Note that we do not check at compile-time to see if the value of the
cosubscripts are within the specified cobounds.  We also do not check anything
related to selecting a valid team.  We also do not check that the denotation of
the `stat-variable` is not dependent on the evaluation of an entity in the
same statement.

Reviewers: klausler, tskeith, DavidTruby

Subscribers: llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D83336
The file was modifiedflang/lib/Semantics/check-coarray.cpp
The file was modifiedflang/include/flang/Parser/tools.h
The file was modifiedflang/lib/Semantics/check-coarray.h
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Parser/tools.cpp
The file was addedflang/test/Semantics/resolve94.f90
Commit 24b62f28c5daa293a2602712e1eba82cb59f3a6f by eschweitz
[flang] Upstreaming intrinsic call lowering.

This module implements the lowering of Fortran intrinsics to the
corresponding calls in support libraries (the Fortran runtime, math
libraries, etc.)

This revision is a tad larger because there are a large number of Fortran
intrinsics and this adds lowering for a fair number of them.

Differential revision: https://reviews.llvm.org/D83355
The file was modifiedflang/include/flang/Lower/Mangler.h
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRType.h
The file was addedflang/lib/Lower/IntrinsicCall.cpp
The file was modifiedflang/lib/Optimizer/Dialect/FIRType.cpp
The file was modifiedflang/include/flang/Lower/IntrinsicCall.h
The file was modifiedflang/lib/Lower/Mangler.cpp
The file was modifiedflang/lib/Lower/CMakeLists.txt
The file was modifiedflang/include/flang/Lower/CharacterExpr.h
The file was modifiedflang/lib/Lower/CharacterExpr.cpp
Commit 69c22edb7d30983f1bb9d21154e427ebcc5f699c by sam.mccall
[clangd] Enable reading config from files behind a flag

Reviewers: kadircet, hokein

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83233
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
Commit 64030099c378062131fa1b29742a783f2ca14c17 by Stanislav.Mekhanoshin
SLP: honor requested max vector size merging PHIs

At the moment this place does not check maximum size set
by TTI and just creates a maximum possible vectors.

Differential Revision: https://reviews.llvm.org/D82227
The file was modifiedllvm/test/Transforms/SLPVectorizer/slp-max-phi-size.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/remark_unsupported.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 6aab27ba851f132f01ea8e87f92243918dc23cfd by sstipanovic
[OpenMPIRBuilder][Fix] Move llvm::omp::types to OpenMPIRBuilder.

Summary:
D82193 exposed a problem with global type definitions in
`OMPConstants.h`. This causes a race when running in thinLTO mode.
Types now live inside of OpenMPIRBuilder to prevent this from happening.

Reviewers: jdoerfert

Subscribers: yaxunl, hiraditya, guansong, dexonsmith, aaron.ballman, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D83176
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedllvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
The file was modifiedllvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedllvm/lib/Frontend/OpenMP/OMPConstants.cpp
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.h
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPConstants.h
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
Commit a15d798594ae340b037efec2cdba5ec77221e7e7 by sam.mccall
[clangd] Improve serialization error messages. NFC
The file was modifiedclang-tools-extra/clangd/RIFF.cpp
The file was modifiedclang-tools-extra/clangd/index/Serialization.cpp
The file was modifiedclang-tools-extra/clangd/RIFF.h