SuccessChanges

Summary

  1. [ArgumentPromotion]: Copy function metadata after promoting arguments (details)
  2. [lldb, tests] Correctly configure the yaml2obj paths (details)
  3. [gcov] Delete flush_fn_list (unused since D83149) (details)
  4. [NFC][ThinLTO] Let llvm::EmbedBitcodeInModule handle serialization. (details)
  5. Revert D86875 "[Flang][NFC] Remove license comments from files in docs/ folder." (details)
  6. [compiler-rt] [netbsd] Add fallback definitions for MKISCSI=no (details)
  7. [compiler-rt] [netbsd] Improve code formatting (details)
  8. [ImplicitNullCheck] Handle instructions that preserve zero value (details)
  9. [Support] Use unique_function rather than std::function for ThreadPool TaskTy. (details)
  10. [NFC] Fix whitespace in lldb-vscode --help (details)
  11. [PGO] Skip if an IndirectBrInst critical edge cannot be split (details)
  12. [compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk (details)
  13. [compiler-rt] [netbsd] Regenerate syscall hooks (details)
  14. [SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support. (details)
  15. Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy." (details)
  16. [WebAssembly] Set unreachable as canonical to permit disassembly (details)
  17. Make struct dialects have the same field name as everything else, 'dialect'. (details)
  18. Allow Dialects to be initialized via nullptr. (details)
  19. [gn build] (semi-manually) port 009cd4e4910 (details)
  20. Fix operator!= for Dialects. (details)
Commit 6b13cfe7399b0aba726873f807ddfcdd9f967563 by etiotto
[ArgumentPromotion]: Copy function metadata after promoting arguments

The argument promotion pass currently fails to copy function annotations
over to the modified function after promoting arguments.
This patch copies the original function annotation to the new function.

Reviewed By: fhann

Differential Revision: https://reviews.llvm.org/D86630
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp
The file was modifiedllvm/test/Transforms/ArgumentPromotion/profile.ll
Commit c464f1d8f9a04d7b4b6cc81eac0891c46aba5950 by stilis
[lldb, tests] Correctly configure the yaml2obj paths

They are currently not being set correctly for the case of multi-config generators like XCode and VS. There's also a typo in one of the cmake files.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D87466
The file was modifiedlldb/utils/lldb-dotest/CMakeLists.txt
The file was modifiedlldb/test/API/lit.site.cfg.py.in
Commit ab1de1fcfb0c53bc768deb8f8bacefad7d378b7b by i
[gcov] Delete flush_fn_list (unused since D83149)
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
Commit e543708e5ea7af0ec3ef11d6fe932db507472aa1 by mtrofin
[NFC][ThinLTO] Let llvm::EmbedBitcodeInModule handle serialization.

llvm::EmbedBitcodeInModule handles serializing the passed-in module, if
the provided MemoryBufferRef is invalid. This is already the path taken
in one of the uses of the API - clang::EmbedBitcode, when called from
BackendConsumer::HandleTranslationUnit - so might as well do the same
here and reduce (by very little) code duplication.

The only difference this patch introduces is that the serialization happens
with ShouldPreserveUseListOrder set to true.

Differential Revision: https://reviews.llvm.org/D87339
The file was modifiedllvm/include/llvm/Bitcode/BitcodeWriter.h
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modifiedllvm/lib/LTO/LTOBackend.cpp
Commit 932aae77e92b08e63c0225b6eb37dfa80b310313 by SourabhSingh.Tomar
Revert D86875 "[Flang][NFC] Remove license comments from files in docs/ folder."

This reverts commit f787c9a90c69f, this was causing some build issues.
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/docs/ControlFlowGraph.md
The file was modifiedflang/docs/OpenMP-semantics.md
The file was modifiedflang/docs/Overview.md
The file was modifiedflang/docs/PullRequestChecklist.md
The file was modifiedflang/docs/Calls.md
The file was modifiedflang/docs/ParserCombinators.md
The file was modifiedflang/docs/Parsing.md
The file was modifiedflang/docs/RuntimeDescriptor.md
The file was modifiedflang/docs/Semantics.md
The file was modifiedflang/docs/ArrayComposition.md
The file was modifiedflang/docs/LabelResolution.md
The file was modifiedflang/docs/FortranIR.md
The file was modifiedflang/docs/OptionComparison.md
The file was modifiedflang/docs/FortranForCProgrammers.md
The file was modifiedflang/docs/Character.md
The file was modifiedflang/docs/IORuntimeInternals.md
The file was modifiedflang/docs/ImplementingASemanticCheck.md
The file was modifiedflang/docs/Intrinsics.md
The file was modifiedflang/docs/Preprocessing.md
The file was modifiedflang/docs/Directives.md
The file was modifiedflang/docs/C++17.md
The file was modifiedflang/docs/C++style.md
The file was modifiedflang/docs/ModFiles.md
Commit cb8cb28ed90a10390bacb264d3b6cbb09c2ea94c by n54
[compiler-rt] [netbsd] Add fallback definitions for MKISCSI=no

Add dev/iscsi/iscsi_ioctl.h fallback ioctl(2) operations.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
Commit b85c085c846c2cb5d24812555847846877ca13cb by n54
[compiler-rt] [netbsd] Improve code formatting

No functional change.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
Commit 46329f6079da99133eab7942e79226b2afb40e75 by anna
[ImplicitNullCheck] Handle instructions that preserve zero value

This is the first in a series of patches to make implicit null checks
more general. This patch identifies instructions that preserves zero
value of a register and considers that as a valid instruction to hoist
along with the faulting load. See added testcases.

Reviewed-By: reames, dantrushin

Differential Revision: https://reviews.llvm.org/D87108
The file was modifiedllvm/test/CodeGen/X86/implicit-null-check-negative.ll
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp
The file was modifiedllvm/test/CodeGen/X86/implicit-null-check.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
Commit d9c8b0256cfc673c2413b13993c9440be598818f by Lang Hames
[Support] Use unique_function rather than std::function for ThreadPool TaskTy.

This will allow non-copyable function objects (e.g. lambdas that capture
unique_ptrs) to be used with ThreadPool.

Differential Revision: https://reviews.llvm.org/D87467
The file was modifiedllvm/unittests/Support/ThreadPool.cpp
The file was modifiedllvm/include/llvm/Support/ThreadPool.h
Commit 6040d525507ba8a2593f0906259d012725b6aed2 by rupprecht
[NFC] Fix whitespace in lldb-vscode --help
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
Commit a0ffe2b21a5159f3f8eed8e98e488e723aa7cab3 by i
[PGO] Skip if an IndirectBrInst critical edge cannot be split

PGOInstrumentation runs `SplitIndirectBrCriticalEdges` but some IndirectBrInst
critical edge cannot be split. `getInstrBB` will crash when calling `SplitCriticalEdge`, e.g.

  int foo(char *p) {
    void *targets[2];
    targets[0] = &&indirect;
    targets[1] = &&end;
    for (;; p++)
      if (*p == 7) {
  indirect:
        goto *targets[p[1]]; // the self loop is critical in -O
      }
  end:
    return 0;
  }

Skip such critical edges to prevent a crash.

Reviewed By: davidxl, lebedev.ri

Differential Revision: https://reviews.llvm.org/D87435
The file was modifiedllvm/test/Transforms/PGOProfile/split-indirectbr-critical-edges.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
Commit bba736e5036f3983ca22f08dec277fdf37926115 by n54
[compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk

Sync with NetBSD 9.99.72.
The file was modifiedcompiler-rt/utils/generate_netbsd_syscalls.awk
Commit 00460ae520e284ae8c0cd400c1c75c0c7a0e8fa7 by n54
[compiler-rt] [netbsd] Regenerate syscall hooks

Sync with NetBSD 9.99.72.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc
The file was modifiedcompiler-rt/include/sanitizer/netbsd_syscall_hooks.h
Commit c195ae2f003261f2c25f569b07ae556dee57f17d by craig.topper
[SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support.

Previously we could match fcmp+select to a reduction if the fcmp had
the nonans fast math flag. But if the select had the nonans fast
math flag, InstCombine would turn it into a fminnum/fmaxnum intrinsic
before SLP gets to it. Seems fairly likely that if one of the
fcmp+select pair have the fast math flag, they both would.

My plan is to start vectorizing the fmaxnum/fminnum version soon,
but I wanted to get this code out as it had some of the strangest
fast math flag behaviors.
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 54fcea86b1658f5fc70f4f1e7a763f87742d79bc by Lang Hames
Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy."

This reverts commit d9c8b0256cfc673c2413b13993c9440be598818f.

Some MSVC std::packaged_task implementations are not compatible with move-only types.
This caused failures on some of the Windows builders (e.g.
http://lab.llvm.org:8011/builders/sanitizer-windows/builds/69412).

Reverting until I can come up with a workaround.
The file was modifiedllvm/unittests/Support/ThreadPool.cpp
The file was modifiedllvm/include/llvm/Support/ThreadPool.h
Commit 4252f3009b169db250559d6a197b399375f89b27 by d.c.ddcc
[WebAssembly] Set unreachable as canonical to permit disassembly

Currently, using llvm-objdump to disassemble a function containing
unreachable will trigger an assertion while decoding the opcode, since both
unreachable and debug_unreachable have the same encoding. To avoid this, set
unreachable as the canonical decoding.

Differential Revision: https://reviews.llvm.org/D87431
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
Commit a39423084cbbeb59e81002e741190dccf08b5c82 by joker.eph
Make struct dialects have the same field name as everything else, 'dialect'.

Also make the behavior of getting a dialect more forgiving, in the case where
there isn't a dialect associated with an attribute.

Depends On D86807

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D86809
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/TableGen/Attribute.cpp
Commit d867be5de389f18cf3c1a61c8b9cbf8bfda8fe28 by joker.eph
Allow Dialects to be initialized via nullptr.

This allows Dialect to follow the MLIR style of nullable objects, and in fact is expected by `Dialect::operator bool() const` which already tests whether `def == nullptr`. This just wasn't a reachable situation, because the constructor was dereferencing the pointer unconditionally.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D86807
The file was modifiedmlir/lib/TableGen/Dialect.cpp
Commit 5692497aef08ab4810f125669bc2f6aa79d9ec7e by thakis
[gn build] (semi-manually) port 009cd4e4910
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/PowerPC/BUILD.gn
Commit 2141705337989195b448e292955f08884babbcbd by joker.eph
Fix operator!= for Dialects.

Currently the global operator!=(bool, bool) is selected due to the implicit bool
conversion operator. Since this is never the desired semantics, we give it a
standard operator!= and make the bool conversion explicit.

Depends On D86809

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D86810
The file was modifiedmlir/include/mlir/TableGen/Dialect.h