[mlir][tensor] Consolidate tensor fold patterns and rename related file (#192820)
This PR moves `MergeConsecutiveExtractSlice` from `MergeConsecutiveInsertExtractSlicePatterns.cpp` to `FoldTensorSubsetOps.cpp`, and removes the duplicate `MergeConsecutiveInsertSlice` pattern in favor of `InsertSliceOfInsertSliceFolder`, which already exists in `FoldTensorSubsetOps.cpp` and provides equivalent functionality with greater stability. Since the merge-related patterns have been fully migrated out, `MergeConsecutiveInsertExtractSlicePatterns.cpp` is renamed to `DropRedundantRankExpansionPatterns.cpp` to better reflect its remaining responsibilities.
[BOLT][AArch64] Refuse to run ThreeWayBranch pass (#193252)
On AArch64, `--three-way-branch` produces a crash as it is not
implemented. This patch adds a guard
and updates relevant test(s).
[RISCV][MC] Remove tautological CHECK-UNKNOWN disassembly checks (NFC) (#193682)
Many RISC-V MC tests assemble with `--mattr=+v` (or another extension),
then run llvm-objdump on the result *without* `--mattr=`, expecting the
disassembler to print `<unknown>` for every instruction. These
CHECK-UNKNOWN lines only restate the encoded bytes that are already
verified by CHECK-ENCODING from `llvm-mc -show-encoding`, so they do not
add coverage.
Drop the CHECK-UNKNOWN RUN lines and check directives from the affected
tests to reduce noise and make the tests easier to read. The remaining
CHECK-INST / CHECK-ENCODING / CHECK-ERROR coverage is unchanged.
This is a preparatory cleanup that makes the upcoming llvm-objdump
per-region disassembly change (using ISA mapping symbols #193448) easier
to review.
Assisted-by: Claude Opus
I use Opus to write commit message...:P
[llvm][RISCV] Split LMUL=8 fixed vector fcmp for zvfhmin and zvfbfmin (#193424)
Currently we don't handle any of illegal promoted fixed vectors for
zvfhmin and zvfbfmin we expand it and make general legalizer handle it.
However some of operators are split and some are scalarized depends on
operator type, in this case we need to split it manually.
[lldb-dap] Add valueLocationReference for member function pointers (#186837)
Added `valueLocationReference` for member function pointers. Also
changed `GetValueAsAddress`, because original implementation doesn't
work for member function pointers.
[LoongArch] Support VBIT{CLR,SET,REV}I patterns for non-native element sizes
Extend vsplat_uimm_{pow2,inv_pow2} matching to allow specifying an explicit
element bit width, enabling recognition of splat patterns whose logical
element size differs from the vector's native element type.
Introduce templated selectVSplatUimm{Pow2,InvPow2} helpers with an optional
EltSize parameter, and add corresponding ComplexPattern definitions for
i8/i16/i32 element widths. This allows TableGen patterns to match cases such
as operating on v8i32/v4i64 vectors with masks derived from smaller element
sizes (e.g. i16).
With these changes, AND/OR/XOR operations using inverse power-of-two or
power-of-two splat masks are now correctly selected to VBITCLRI, VBITSETI,
and VBITREVI instructions instead of falling back to vector logical
operations with materialized constants.
[RISCV][NFC] Rename isZipEven/isZipOdd to isPairEven/isPairOdd (#193674)
To match the terminologies in Zvzip extension.
And some comments are changed accordingly.
Revert "[clang][modules-driver] Add support for C++ named modules and `import std`" (#193677)
Reverts llvm/llvm-project#193312 due to a failing test
(Driver/modules-driver-import-std.cpp)
Reland: [LowerTypeTests] Add debug info to jump table entries (#193670)
When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.
Now stack trace, when stopped on jump table entry will looks like this:
```
#0: __ubsan_check_cfi_icall_jt at sanitizer/ubsan_interface.h:0
#1: c::c() (.cfi_jt) at sanitizer/ubsan_interface.h:0:0
#2: .cfi.jumptable.81 at sanitizer/ubsan_interface.h:0:0
```
This is reland of #192736, reverted with #193663.
This version don't update debug info for "Cross-DSO CFI" mode.
[mlir][LLVMIR] Extend FP array-splat constant lowering (#192378)
Handle floating-point compatible array splats in the ConstantDataArray
path using bit-pattern based ConstantDataArray::getFP construction,
instead of only specializing integer element types.
[clang][modules-driver] Add support for C++ named modules and `import std` (#193312)
This patch adds basic support for explicit C++ named module builds,
managed natively by the Clang driver, including support for use of the
Standard library modules.
This follows #187606, which adds the same for Clang modules.
Current limitations:
- Standard library modules are still compiled to object files instead of
using the provided shared library. (This will be addressed in a
follow-up soon.)
- Caching is not supported yet (but likely to be added during the
upcoming GSoC cycle).
- Importing C++ standard library modules into Clang modules is not
supported (and not expected in the near term).
RFC:
https://discourse.llvm.org/t/rfc-modules-support-simple-c-20-modules-use-from-the-clang-driver-without-a-build-system