SuccessChanges

Summary

  1. [x86] add signed compare variant test for PR50055; NFC (details)
  2. [NFC] Remove variable that was set but not used. (details)
  3. Fix dfsan handling of musttail calls. (details)
  4. [llvm-dwp] Skip type unit debug info sections (details)
  5. [SDAG] allow cast folding for vector sext-of-setcc with signed compare (details)
  6. [mlir] Add support for filtering patterns based on debug names and labels (details)
  7. [mlir-lsp] Avoid empty range diagnostic (details)
  8. Remove unused function from a previous iteration of unique-stable-name (details)
  9. [mlir] Resolve TODO and use the pass argument instead of the TypeID for registration (details)
  10. [llvm-dwp] Adding support for v5 index writing (details)
  11. [llvm-dwp] Add support for DWARFv5 type units                                                                                                                                                                ... (details)
  12. [llvm-dwp] Add support for rnglists and loclists (details)
  13. [mlir][NFC] Split the non-templated bits out of IROperand into a base class (details)
  14. Revert "[libc++] NFC: Move unwrap_iter to its own header" (details)
  15. [gn build] Port 05d164b25c40 (details)
  16. PR50337, PR50561: Fix determination of whether a template parameter list (details)
  17. Differential Revision: https://reviews.llvm.org/D99812 (details)
  18. [CodeGen][NFC] Remove unused virtual function (details)
  19. [SYCL] Fix __builtin_sycl_unique_stable_name to work on windows/spir (details)
Commit cfe32dd03f1645d1fc28ae194f30c135a408fc41 by spatel
[x86] add signed compare variant test for PR50055; NFC
The file was modifiedllvm/test/CodeGen/X86/sext-vsetcc.ll
Commit 1ed2e9b9a02f9cde9108233c045edde0d5893f34 by stefanp
[NFC] Remove variable that was set but not used.

The buildbot ppc64le-lld-multistage-test has been failing because the variable
Tag in Waymaking.h is set but not used. This patch removes that varaible.
The file was modifiedllvm/include/llvm/ADT/Waymarking.h
Commit 70804f2a2f7b87227a873cd6d8852ad295068e79 by browneee
Fix dfsan handling of musttail calls.

Without this change, a callsite like:
  [[clang::musttail]] return func_call(x);
will cause an error like:
  fatal error: error in backend: failed to perform tail call elimination
  on a call site marked musttail
due to DFSan inserting instrumentation between the musttail call and
the return.

Reviewed By: stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D103542
The file was addedllvm/test/Instrumentation/DataFlowSanitizer/musttailcall.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
Commit 595b1683b79be089c3f72e7b3dcee4d1a9f6327b by dblaikie
[llvm-dwp] Skip type unit debug info sections

This patch makes llvm-dwp skip debug info sections that may not be encoding a compile unit.
In DWARF5, debug info sections are also used for type units. As in preparation to support type units,
make llvm-dwp aware of other uses of debug info sections but skip them for now.

The patch first records all .debug_info sections, then goes through them one by one and records
the cu debug info section for writing the index unit, and copies that section to the final dwp output
info section. If it's not a compile unit, skip.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102312
The file was modifiedllvm/tools/llvm-dwp/llvm-dwp.cpp
The file was modifiedllvm/test/tools/llvm-dwp/X86/invalid_cu_header_length.s
The file was addedllvm/test/tools/llvm-dwp/X86/wrong-unit-type-info-v4.s
The file was addedllvm/test/tools/llvm-dwp/X86/cu_and_tu_info_section_v5.s
The file was removedllvm/test/tools/llvm-dwp/X86/wrong-unit-type-info-v5.s
The file was addedllvm/test/tools/llvm-dwp/X86/invalid_tu_header_length.s
The file was addedllvm/test/tools/llvm-dwp/X86/no_cu_found.s
The file was addedllvm/test/tools/llvm-dwp/X86/multiple_debug_info_sections_in_dwp.s
Commit 0718ac706d4df719a0f019d1c0c3050c96ac2b8b by spatel
[SDAG] allow cast folding for vector sext-of-setcc with signed compare

This extends 434c8e013a2c and ede3982792df to handle signed
predicates by sign-extending the setcc operands.

This is not shown directly in https://llvm.org/PR50055 ,
but the pattern is visible by changing the unsigned convert
to signed in the source code.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/sext-vsetcc.ll
Commit 0289a2692e0e1b6b846f0627262d15daa58160ac by riddleriver
[mlir] Add support for filtering patterns based on debug names and labels

This revision allows for attaching "debug labels" to patterns, and provides to FrozenRewritePatternSet for  filtering patterns based on these labels (in addition to the debug name of the pattern). This will greatly simplify the ability to write tests targeted towards specific patterns (in cases where many patterns may interact),  will also simplify debugging pattern application by observing how application changes when enabling/disabling specific patterns.

To enable better reuse of pattern rewrite options between passes, this revision also adds a new PassUtil.td file to the Rewrite/ library that will allow for passes to easily hook into a common interface for pattern debugging. Two options are used to seed this utility, `disable-patterns` and `enable-patterns`, which are used to enable the filtering behavior indicated above.

Differential Revision: https://reviews.llvm.org/D102441
The file was modifiedmlir/include/mlir/Rewrite/FrozenRewritePatternSet.h
The file was modifiedmlir/lib/Transforms/Canonicalizer.cpp
The file was modifiedmlir/include/mlir/Transforms/Passes.td
The file was modifiedmlir/docs/PatternRewriter.md
The file was modifiedmlir/test/Pass/pipeline-options-parsing.mlir
The file was modifiedmlir/include/mlir/Pass/PassOptions.h
The file was addedmlir/include/mlir/Rewrite/PassUtil.td
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
The file was modifiedmlir/lib/Rewrite/FrozenRewritePatternSet.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was addedmlir/test/Transforms/test-canonicalize-filter.mlir
Commit 3f70b4e0336001ca379490d1481024ddb87a3501 by jpienaar
[mlir-lsp] Avoid empty range diagnostic
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
Commit 8beaca8c1493f576431c3687329860e918616cd9 by erich.keane
Remove unused function from a previous iteration of unique-stable-name
The file was modifiedclang/lib/Sema/TreeTransform.h
Commit fa51c5af5d5de25a7824a939e90734ae5ca5448d by riddleriver
[mlir] Resolve TODO and use the pass argument instead of the TypeID for registration

This simplifies various pieces of code that interact with the pass registry, e.g. this removes the need to register passes to get accurate pass pipelines descriptions when generating crash reproducers.

Differential Revision: https://reviews.llvm.org/D101880
The file was modifiedmlir/test/lib/Pass/TestPassManager.cpp
The file was modifiedmlir/include/mlir/Pass/PassRegistry.h
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
The file was modifiedmlir/include/mlir/Pass/Pass.h
Commit 6e2d3049d25bcd96af7b0af8d572f3a7ccefecde by dblaikie
[llvm-dwp] Adding support for v5 index writing

This patch adds general support for DWARFv5 index writing.
In particular, this means only allowing inputs with one version,
either DWARFv5 or DWARFv4.

This patch adds the .debug_macro section as an example,
but the DWARFv5 type support and loc and rangelists are still
missing (and upcoming).

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102315
The file was addedllvm/test/tools/llvm-dwp/X86/incompatible_cu_index_versions.s
The file was modifiedllvm/test/tools/llvm-dwp/X86/info-v5.s
The file was modifiedllvm/test/tools/llvm-dwp/X86/unsupported_tu_index_version.s
The file was addedllvm/test/tools/llvm-dwp/X86/debug_macro_v5.s
The file was removedllvm/test/tools/llvm-dwp/X86/unsupported_cu_index_version.s
The file was modifiedllvm/tools/llvm-dwp/llvm-dwp.cpp
Commit 316da543af14fb4b40ef0377fe770f430745f5ea by dblaikie
[llvm-dwp] Add support for DWARFv5 type units                                                                                                                                                                ...

This patch adds support for DWARFv5 type units: parsing from
the .debug_info section, and writing index to the type unit index.
Previously, the type units were part of the .debug_types section
which is no longer used in DWARFv5.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D101818
The file was removedllvm/test/tools/llvm-dwp/X86/unsupported_tu_index_version.s
The file was addedllvm/test/tools/llvm-dwp/X86/incompatible_tu_index_version.s
The file was modifiedllvm/test/tools/llvm-dwp/X86/missing_tu_index.test
The file was addedllvm/test/tools/llvm-dwp/Inputs/type_dedup_v5/a.s
The file was addedllvm/test/tools/llvm-dwp/Inputs/type_dedup_v5/b.s
The file was addedllvm/test/tools/llvm-dwp/X86/type_dedup_v5.test
The file was modifiedllvm/tools/llvm-dwp/llvm-dwp.cpp
The file was modifiedllvm/test/tools/llvm-dwp/X86/cu_and_tu_info_section_v5.s
The file was addedllvm/test/tools/llvm-dwp/X86/tu_units_v5.s
Commit de51c48ed3e0934855b107d4524f49c5edfcb3cc by dblaikie
[llvm-dwp] Add support for rnglists and loclists

This patch updates llvm-dwp to include rnglists and loclists
when parsing debug sections.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D101894
The file was addedllvm/test/tools/llvm-dwp/X86/rnglists.s
The file was modifiedllvm/tools/llvm-dwp/llvm-dwp.cpp
The file was addedllvm/test/tools/llvm-dwp/X86/loclists.s
Commit c89dff5855bb32d47751cce087537c2b12a90f1b by riddleriver
[mlir][NFC] Split the non-templated bits out of IROperand into a base class

This removes the need to define the derived Operand class before the derived
Value class. The major benefit of this refactoring is that we no longer need
the OpaqueValue class, as OpOperand can now be defined after Value. As part of
this refactoring the BlockOperand and OpOperand classes are moved out of
UseDefLists.h and to more suitable locations in BlockSupport and Value. After
this change, UseDefLists.h is almost entirely composed of generic use def utilities.

Differential Revision: https://reviews.llvm.org/D103353
The file was modifiedmlir/include/mlir/IR/BlockSupport.h
The file was modifiedmlir/include/mlir/IR/UseDefLists.h
The file was modifiedmlir/include/mlir/IR/Value.h
The file was modifiedmlir/lib/IR/Value.cpp
Commit 05d164b25c403c0ab9a114f25e750c6410d4d86c by Louis Dionne
Revert "[libc++] NFC: Move unwrap_iter to its own header"

This reverts commit 924ea3bb53 *again*, this time because it broke the
LLDB build with modules. We need to figure out what's up with the libc++
modules build once and for all.

Differential Revision: https://reviews.llvm.org/D103369
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/include/module.modulemap
The file was removedlibcxx/include/__algorithm/unwrap_iter.h
The file was modifiedlibcxx/include/algorithm
Commit 01ba355268071bea0b9432b51b6a66b5be159da8 by llvmgnsyncbot
[gn build] Port 05d164b25c40
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 13659f48a1d7814fe893d2383acdc0b0313740a9 by richard
PR50337, PR50561: Fix determination of whether a template parameter list
contains constrained parameters.
The file was modifiedclang/test/SemaTemplate/concepts.cpp
The file was modifiedclang/lib/AST/DeclTemplate.cpp
Commit c729f2a48a6ef6b20554494c5630082c89c3680c by angandhi
Differential Revision: https://reviews.llvm.org/D99812
The file was addedllvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-args-lowering.ll
The file was modifiedllvm/lib/Target/PowerPC/GISel/PPCCallLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/GISel/PPCCallLowering.cpp
The file was removedllvm/test/CodeGen/PowerPC/GlobalISel/irtranslator-ret.ll
Commit 344e919b1a33cd69fe023cbe5a49bbdf4f5ea037 by minyihh
[CodeGen][NFC] Remove unused virtual function

`TargetFrameLowering::emitCalleeSavedFrameMoves` with 4 arguments is not
used anywhere in CodeGen. Thus it shouldn't be exposed as a virtual
function. NFC.

Differential Revision: https://reviews.llvm.org/D103328
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.h
The file was modifiedllvm/lib/Target/M68k/M68kFrameLowering.cpp
The file was modifiedllvm/lib/Target/M68k/M68kFrameLowering.h
The file was modifiedllvm/include/llvm/CodeGen/TargetFrameLowering.h
Commit d8e0ae9a76a62bdc6117630d59bf9967ac9bb4ea by erich.keane
[SYCL] Fix __builtin_sycl_unique_stable_name to work on windows/spir

In the case where the device is an itanium target, and the host is a
windows target, we were getting the names wrong, since in the itanium
case we filter by lambda-signature.

The fix is to always filter by the signature rather than just on
non-windows builds. I considered doing the reverse (that is, checking
the aux-triple), but doing so would result in duplicate lambda mangling
numbers (from linux reusing the same number for different signatures).
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was addedclang/test/CodeGenSYCL/unique_stable_name_windows_diff.cpp