SuccessChanges

Summary

  1. [StackSafety,NFC] Add combined index test (details)
  2. [llvm-cov] reset executation count to 0 after wrapped segment (details)
  3. GlobalISel: Move load/store lowering to separate functions (details)
  4. GlobalISel: Fix redundant variable and shadowing (details)
  5. GlobalISel: Simplify code (details)
  6. GlobalISel: Use buildAnyExtOrTrunc (details)
  7. DomTree: Make PostDomTree immune to block successors swap (details)
  8. [BPI][NFC] Unify handling of normal and SCC based loops (details)
  9. Revert "DomTree: Make PostDomTree immune to block successors swap" (details)
  10. [JumpThreading] Add a test for D85023; NFC (details)
  11. [JumpThreading] Consider freeze as a zero-cost instruction (details)
  12. [llvm-rc] Allow string table values split into multiple string literals (details)
  13. [MLIR][SPIRVToLLVM] Updated documentation for SPIR-V to LLVM conversion (details)
  14. DomTree: Make PostDomTree indifferent to block successors swap (details)
  15. [MLIR][SPIRVToLLVM] Conversion pattern for loop op (details)
  16. [SyntaxTree] Add test coverage for `->*` operator (details)
  17. [lldb] fix building with panel.h being in /usr/include/ncurses/ (details)
  18. [lldb][gui] implement TerminalSizeChanged() (details)
  19. [lldb][gui] implement shift+tab for going back in views (details)
  20. [lldb][gui] implement breakpoint removal on breakpoint toggling (details)
  21. [lldb][gui] move TestGuiBasicDebug.py to lldb/test and update it (details)
  22. [lldb][gui] add a test for 'b' (toggle breakpoint) (details)
  23. [Flang] Fix multi-config generator builds (details)
  24. [AMDGPU] Lower frem f16 (details)
  25. [AMDGPU] Precommit tests for D84518 Propagate fast math flags in frem lowering (details)
  26. [AMDGPU] Propagate fast math flags in frem lowering (details)
  27. [MLIR][SPIRVToLLVM] Updated LLVM types in the documentation (details)
Commit fe74f731e7024ce8b66869777dca6d6ed5a22e47 by Vitaly Buka
[StackSafety,NFC] Add combined index test

Missing file for the previous patch
The file was addedllvm/test/Bitcode/Inputs/thinlto-function-summary-paramaccess.ll
Commit e3df9471750935876bd2bf7da93ccf0eacca8592 by zequanwu
[llvm-cov] reset executation count to 0 after wrapped segment

Fix the bug: https://bugs.llvm.org/show_bug.cgi?id=36979. It also fixes this bug: https://bugs.llvm.org/show_bug.cgi?id=35404, which I think is caused by the same problem.

Differential Revision: https://reviews.llvm.org/D85036
The file was modifiedllvm/unittests/ProfileData/CoverageMappingTest.cpp
The file was modifiedllvm/test/tools/llvm-cov/ignore-filename-regex.test
The file was modifiedllvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMapping.cpp
Commit 54615ec48f3ef6e9ea004bb2b84caadac2dead5b by Matthew.Arsenault
GlobalISel: Move load/store lowering to separate functions
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
Commit 8f65c933c42879ff807e3518d9f84892babd30a5 by Matthew.Arsenault
GlobalISel: Fix redundant variable and shadowing
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 1ea182ce79eedae740e20bbb33bdb3c4c4eb53cb by Matthew.Arsenault
GlobalISel: Simplify code

This cannot be a vector of pointers, so using getScalarSizeInBits just
added a bit extra noise.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 93cebb190ad24ea367c1302ee989e7cafcf238ac by Matthew.Arsenault
GlobalISel: Use buildAnyExtOrTrunc
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit c35585e209efe69e2233bdc5ecd23bed7b735ba3 by yrouban
DomTree: Make PostDomTree immune to block successors swap

This is another fix for the bug 46098 where PostDominatorTree
is unexpectedly changed by InstCombine's branch swapping
transformation.
This patch fixes PostDomTree builder. While looking for
the furthest away node in a reverse unreachable subgraph
this patch runs DFS with successors in their function order.
This order is indifferent to the order of successors, so is
the furthest away node.

Reviewers: kuhar, nikic, lebedev.ri
Differential Revision: https://reviews.llvm.org/D84763
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was addedllvm/test/Transforms/InstCombine/infinite-loop-postdom.ll
Commit 02a629daad0a1b7c8f70b11b312e94725c386dee by ybrevnov
[BPI][NFC] Unify handling of normal and SCC based loops

This is one more NFC part extracted from D79485. Normal and SCC based loops have very different representation and have to be handled separatly each time we deal with loops. D79485 is going to introduce much more extensive use of loops what will be problematic with out this change.

Reviewed By: davidxl

Differential Revision: https://reviews.llvm.org/D84838
The file was modifiedllvm/lib/Analysis/BranchProbabilityInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/BranchProbabilityInfo.h
Commit 1366d66a22a5f0d25fcc6e922118bb51ab22f8c1 by joker.eph
Revert "DomTree: Make PostDomTree immune to block successors swap"

This reverts commit c35585e209efe69e2233bdc5ecd23bed7b735ba3.

The MLIR is broken with this patch, reproduce by adding
-DLLVM_ENABLE_PROJECTS=mlir to the cmake configuration and
build `ninja tools/mlir/lib/IR/CMakeFiles/obj.MLIRIR.dir/Dominance.cpp.o`
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was removedllvm/test/Transforms/InstCombine/infinite-loop-postdom.ll
Commit 3401f9706be14f9c103542c8b6034a1126b9859e by aqjune
[JumpThreading] Add a test for D85023; NFC
The file was addedllvm/test/Transforms/JumpThreading/thread-two-bbs-threshold.ll
Commit e0d99e9aaf51dac0555655cbf17909377ed37a27 by aqjune
[JumpThreading] Consider freeze as a zero-cost instruction

This is a simple patch that makes freeze as a zero-cost instruction, as bitcast already is.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D85023
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/test/Transforms/JumpThreading/thread-two-bbs-threshold.ll
Commit b989fcbae6f179ad887d19ceef83ace1c00b87cc by martin
[llvm-rc] Allow string table values split into multiple string literals

This can practically easily be a product of combining strings with
macros in resource files.

This fixes https://github.com/mstorsjo/llvm-mingw/issues/140.

As string literals within llvm-rc are handled as StringRefs, each
referencing an uninterpreted slice of the input file, with actual
interpretation of the input string (codepage handling, unescaping etc)
done only right before writing them out to disk, it's hard to
concatenate them other than just bundling them up in a vector,
without rearchitecting a large part of llvm-rc.

This matches how the same already is supported in VersionInfoValue,
with a std::vector<IntOrString> Values.

MS rc.exe only supports concatenated string literals in version info
values (already supported), string tables (implemented in this patch)
and user data resources (easily implemented in a separate patch, but
hasn't been requested by any end user yet), while GNU windres supports
string immediates split into multiple strings anywhere (e.g. like
(100 ICON "myicon" ".ico"). Not sure if concatenation in other
statements actually is used in the wild though, in resource files
normally built by GNU windres.

Differential Revision: https://reviews.llvm.org/D85183
The file was modifiedllvm/tools/llvm-rc/ResourceScriptStmt.cpp
The file was modifiedllvm/test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc
The file was modifiedllvm/tools/llvm-rc/ResourceFileWriter.cpp
The file was modifiedllvm/tools/llvm-rc/ResourceScriptStmt.h
The file was modifiedllvm/tools/llvm-rc/ResourceFileWriter.h
The file was modifiedllvm/tools/llvm-rc/ResourceScriptParser.cpp
Commit 521c0b2659074c512d292dc30da78c862782d34c by georgemitenk0v
[MLIR][SPIRVToLLVM] Updated documentation for SPIR-V to LLVM conversion

Updated the documentation for SPIR-V to LLVM conversion, particularly:
- Added a section on control flow
- Added a section on memory ops
- Added a section on GLSL ops

Also, moved `spv.FunctionCall` to control flow section. Added a new section
that will be used to describe the modelling of runtime-related ops.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D84734
The file was modifiedmlir/docs/SPIRVToLLVMDialectConversion.md
Commit bc10888dcdda1fe80a983029bc50eec4b248cc77 by yrouban
DomTree: Make PostDomTree indifferent to block successors swap

Fixed the commit c35585e209efe69e2233bdc5ecd23bed7b735ba3.

This is a fix for the bug 46098 where PostDominatorTree
is unexpectedly changed by InstCombine's branch swapping
transformation.
This patch fixes PostDomTree builder. While looking for
the furthest away node in a reverse unreachable subgraph
this patch runs DFS with successors in their function order.
This order is indifferent to the order of successors, so is
the furthest away node.

Reviewers: kuhar, nikic, lebedev.ri
Differential Revision: https://reviews.llvm.org/D84763
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was addedllvm/test/Transforms/InstCombine/infinite-loop-postdom.ll
Commit e739648cfae21d2b564751ef0511fec9559305fa by georgemitenk0v
[MLIR][SPIRVToLLVM] Conversion pattern for loop op

This patch introduces a conversion of `spv.loop` to LLVM dialect.
Similarly to `spv.selection`, op's control attributes are not mapped
to LLVM yet and therefore the conversion fails if the loop control is
not `None`. Also, all blocks within the loop should be reachable in
order for conversion to succeed.

Reviewed By: mravishankar

Differential Revision: https://reviews.llvm.org/D84245
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/control-flow-ops-to-llvm.mlir
Commit c5cdc3e801ad1b0aceaf220d78a3ff3fab1e0fdb by ecaldas
[SyntaxTree] Add test coverage for `->*` operator

This was the last binary operator that we supported but didn't have any
test coverage. The recent fix in a crash in member pointers allowed us
to add this test.

Differential Revision: https://reviews.llvm.org/D85185
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp
Commit c952ec15d38843b69e22dfd7b0665304a0459f9f by l.lunak
[lldb] fix building with panel.h being in /usr/include/ncurses/

My openSUSE 15.2 has /usr/include/curses.h as a symlink to
/usr/include/ncurses/curses.h , but there's no such symlink
for panel.h . Prefer using /usr/include/ncurses for the includes
if they are found there by the CMake check.

Differential Revision: https://reviews.llvm.org/D85219
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
The file was modifiedlldb/include/lldb/Host/Config.h.cmake
Commit 2f1b24b70c6c3ecf3cf5ccd35209d9d7e426be63 by l.lunak
[lldb][gui] implement TerminalSizeChanged()

Differential Revision: https://reviews.llvm.org/D85088
The file was modifiedlldb/include/lldb/Core/IOHandlerCursesGUI.h
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit 7a63dc534eb8ebdf1b0aa2c0f6d943d0c7adda1d by l.lunak
[lldb][gui] implement shift+tab for going back in views

Also simplify the code for going forward.

Differential Revision: https://reviews.llvm.org/D85089
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit d6868d9ca1dbdeceaaa1660b6e7b4af0c207fcae by l.lunak
[lldb][gui] implement breakpoint removal on breakpoint toggling

It says it toggles breakpoints, so if one already exists
on the selected location, remove it instead of adding.

Differential Revision: https://reviews.llvm.org/D85098
The file was modifiedlldb/source/Core/IOHandlerCursesGUI.cpp
Commit c7be982c836cdaf7b1ef303d903e6a3de2eb4a34 by l.lunak
[lldb][gui] move TestGuiBasicDebug.py to lldb/test and update it

Between the time it was created and it was pushed upstream,
99451b4453688a94c6014cac233d371ab4cc342d has moved the existing
gui gui tests to lldb/test, so move this one too.
And update it to contain TestGuiBasic.py changes since the time
when it was based on that test.

Differential Revision: https://reviews.llvm.org/D85106
The file was addedlldb/test/API/commands/gui/basicdebug/func.c
The file was addedlldb/test/API/commands/gui/basicdebug/main.c
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/TestGuiBasicDebug.py
The file was addedlldb/test/API/commands/gui/basicdebug/Makefile
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/func.c
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/main.c
The file was addedlldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
The file was removedlldb/packages/Python/lldbsuite/test/commands/gui/basicdebug/Makefile
Commit db828aba55aca0ce977f086dcd449f8fe667f30a by l.lunak
[lldb][gui] add a test for 'b' (toggle breakpoint)

Differential Revision: https://reviews.llvm.org/D85107
The file was addedlldb/test/API/commands/gui/breakpoints/Makefile
The file was addedlldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py
The file was addedlldb/test/API/commands/gui/breakpoints/main.c
Commit 621681e3e59241c2ba9a4ac59047c46cdcc3c947 by andrzej.warzynski
[Flang] Fix multi-config generator builds

Based on https://reviews.llvm.org/D84022 with additional changes to
maintain out-of-tree builds.

Original commit message:
Currently the binaries are output directly into the bin subdirectory of
the build directory. This doesn't work correctly with multi-config
generators which should output the binaries into <CONFIG_NAME>/bin
instead.

The original patch was implemented by David Truby and the additional
changes added here were also proposed by David Truby.

Differential Revision: https://reviews.llvm.org/D85078/

Co-authored-by: David Truby <david.truby@arm.com>
The file was modifiedflang/test/lit.cfg.py
The file was modifiedflang/tools/f18/CMakeLists.txt
The file was modifiedflang/CMakeLists.txt
The file was modifiedflang/test/lit.site.cfg.py.in
The file was modifiedflang/test/CMakeLists.txt
Commit 04cf4a5a65576f286ca2e8a1aae7584def512761 by jay.foad
[AMDGPU] Lower frem f16

Without this it would fail to select on subtargets that have 16-bit
instructions.

Differential Revision: https://reviews.llvm.org/D84517
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Commit 1bb07e1b91c187d868bfe383175c2ce04ebed8b8 by jay.foad
[AMDGPU] Precommit tests for D84518 Propagate fast math flags in frem lowering
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
Commit 8cbf4a17ac57921b2c0e2112e766555d345494c4 by jay.foad
[AMDGPU] Propagate fast math flags in frem lowering

Differential Revision: https://reviews.llvm.org/D84518
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
Commit 159806704b05f2b562ea93e622f8dbb1976e24f0 by georgemitenk0v
[MLIR][SPIRVToLLVM] Updated LLVM types in the documentation

Updated the documentation with new MLIR LLVM types for
vectors, pointers, arrays and structs. Also, changed remaining
tabs to spaces.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D85277
The file was modifiedmlir/docs/SPIRVToLLVMDialectConversion.md