FailedChanges

Summary

  1. CoroSplit: Fix coroutine splitting for retcon and retcon.once (details)
  2. lld: use `std::make_unique` (NFC) (details)
  3. [AArch64] Fix stp-opt-with-renaming-ld3.mir with expensive checks. (details)
  4. [lldb/StringPrinter] Convert DecodedCharBuffer to a class, NFC (details)
  5. [lldb/StringPrinter] Support strings with invalid utf8 sub-sequences (details)
  6. [lldb][NFC] Fix documentation formatting in ASTResultSynthesizer (details)
  7. Define __SPIR__ macro for spir/spir64 targets. (details)
  8. [clang-format] [PR46159] Linux kernel 'C' code uses 'try' as a variable name, allow clang-format to handle such cases (details)
  9. [clang-format] [PR46157] Wrong spacing of negative literals with use of operator (details)
  10. [mlir] Remove unneeded inference trait/fns (details)
  11. [IRInterpreter] Unused. Drive-by cleanup. NFCI. (details)
  12. Replace separator in OpenMP variant name mangling. (details)
  13. [Darwin] Improve runtime OS version checks (details)
  14. X86: Switch fastregalloc test to use generated checks (details)
  15. RegAllocFast: Record internal state based on register units (details)
  16. [clang-tidy]: Added modernize-replace-disallow-copy-and-assign-macro (details)
  17. [SVE] Eliminate calls to default-false VectorType::get() from IR (details)
  18. [WebAssembly] Add support for -mexec-model=reactor (details)
  19. Reland "[WebAssembly] Eliminate range checks on br_tables" (details)
  20. [gn build] Fix link with ld.bfd and gold. (details)
  21. [X86] Separate X86_CPU_TYPE_COMPAT_WITH_ALIAS from X86_CPU_TYPE_COMPAT. NFC (details)
  22. [gn build] Port 7f50c15be5c (details)
  23. [gn build] Port e636e6b79ac (details)
  24. Add a test for preserving state on the non-expr thread across expression evaluation. (details)
  25. [lldb/Test] Remove un(used|needed|maintained) files from lldbsuite. (details)
  26. [lldb/Test] Python <3.5 requires **kwargs to come last (details)
  27. [mlir] [VectorOps] Use 'vector.flat_transpose' for 2-D 'vector.tranpose' (details)
  28. [clangd] Fix forgotten propagation of AsnycPreamble flag (details)
  29. [mlir][Linalg] Add support for fusion between indexed_generic ops and generic ops on tensors. (details)
  30. [mlir][Linalg] Add support for fusion between indexed_generic ops and tensor_reshape ops (details)
  31. Introduce a "gc-live" bundle for the gc arguments of a statepoint (details)
  32. [mlir][StandardToSPIRV] Handle i1 case for lowering std.zexti to SPIR-V. (details)
  33. [AArch64][GlobalISel] Select uzp1 and uzp2 (details)
  34. [Statepoint] Fix signed vs unsigned in index handling (details)
  35. Fix bug in newly added VersionBase::operator>= (details)
  36. [AArch64][GlobalISel] Add selection support for rev16, rev32, and rev64 (details)
  37. [WebAssembly] Fix ISel crash in SIGN_EXTEND_INREG lowering (details)
  38. [AArch64][NFC] Regenerate arm64-rev.ll (details)
  39. [Statepoints][CGP] Minor parameter type cleanup (details)
  40. Fix typo in filename comment. (details)
  41. Fix "Statistics are disabled" (details)
  42. [StackSafety,NFC] Add statistic counters (details)
  43. lld: add basic static library search (details)
  44. GlobalISel: Fail expansion of G_DYN_STACKALLOC for StackGrowsUp (details)
  45. AMDGPU/GlobalISel: Handle uniform G_DYN_STACKALLOC (details)
  46. AArch64/GlobalISel: Fix assert on call returning 0 sized type (details)
  47. consitfy and auto -> auto * a few places to clean up uses. (details)
  48. Make linter happy (details)
  49. [RegisterCoalescer] Update empty subranges when rematerializing (details)
  50. GlobalISel: Start defining strict FP instructions (details)
  51. [Darwin] Add tests for OS version checking (details)
  52. [ObjectYAML][DWARF] Support emitting the .debug_aranges section in ELFYAML. (details)
  53. [ObjectYAML][ELF] Let the endianness of DWARF sections be inferred from FileHeader. (details)
  54. [CUDA][HIP] Fix constexpr variables for C++17 (details)
  55. [gcov] Improve .gcno compatibility with gcov and use DataExtractor (details)
Commit 2e4c5d1c483a986dbb3fc6486bdb2f0eb2adc8c8 by aschwaighofer
CoroSplit: Fix coroutine splitting for retcon and retcon.once

Summary:
For retcon and retcon.once coroutines we assume that all uses of spills
can be sunk past coro.begin. This simplifies handling of instructions
that escape the address of an alloca.

The current implementation would have issues if the address of the
alloca is escaped before coro.begin. (It also has issues with casts before and
uses of those casts after the coro.begin instruction)

  %alloca_addr = alloca ...
  %escape  = ptrtoint %alloca_addr
  coro.begin
  store %escape to %alloca_addr

rdar://60272809

Subscribers: hiraditya, modocache, mgrang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81023
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was addedllvm/test/Transforms/Coroutines/coro-retcon-frame.ll
Commit 9cb2badc596497f49ec2631bb5b8a2300656e75c by Saleem Abdulrasool
lld: use `std::make_unique` (NFC)

The LLVM code base already uses C++14, use std::make_unique
to avoid the explicit constructor invocation via new and to avoid
spelling out the type twice.
The file was modifiedlld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
Commit a3fcd6476a4e4270ea19137656d94d395d303349 by flo
[AArch64] Fix stp-opt-with-renaming-ld3.mir with expensive checks.

Unconditionally use -verify-machineinstrs and XFAIL the test until
fixed.
The file was modifiedllvm/test/CodeGen/AArch64/stp-opt-with-renaming-ld3.mir
Commit 7822b8a817d85827110f3047f4ec63f6825743a4 by Vedant Kumar
[lldb/StringPrinter] Convert DecodedCharBuffer to a class, NFC

The m_size and m_data members of DecodedCharBuffer are meant to be
private.
The file was modifiedlldb/source/DataFormatters/StringPrinter.cpp
Commit 4699a7e23010b7c0df49b64f8bea63919825a787 by Vedant Kumar
[lldb/StringPrinter] Support strings with invalid utf8 sub-sequences

Support printing strings which contain invalid utf8 sub-sequences, e.g.
strings like "hello world \xfe", instead of bailing out with "Summary
Unavailable".

I took the opportunity here to delete some hand-rolled utf8 -> utf32
conversion code and replace it with calls into llvm's Support library.

rdar://61554346
The file was modifiedlldb/source/DataFormatters/StringPrinter.cpp
The file was modifiedlldb/unittests/DataFormatter/StringPrinterTests.cpp
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/main.cpp
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
Commit a23d0a06d4b7996a86c3d1a7e47a4e56d6181b10 by Raphael Isemann
[lldb][NFC] Fix documentation formatting in ASTResultSynthesizer

This comment apparently didn't survive the great LLDB reformatting unharmed.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
Commit 3a1b07506c1fc6e6aee528289341aa0d0d806814 by vyacheslav.p.zakharin
Define __SPIR__ macro for spir/spir64 targets.

Differential Revision: https://reviews.llvm.org/D80655
The file was modifiedclang/lib/Basic/Targets/SPIR.cpp
The file was modifiedclang/test/Preprocessor/predefined-macros.c
Commit 6a0484f04b628870fb7cd0757a72d73294ff5346 by mydeveloperday
[clang-format] [PR46159] Linux kernel 'C' code uses 'try' as a variable name, allow clang-format to handle such cases

Reviewed By: curdeius

Differential Revision: https://reviews.llvm.org/D80940
The file was modifiedclang/lib/Format/FormatTokenLexer.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/FormatTokenLexer.h
Commit 6de794e2074b8d0ceb6215f808fb788555fc683d by mydeveloperday
[clang-format] [PR46157] Wrong spacing of negative literals with use of operator

Summary:
see https://bugs.llvm.org/show_bug.cgi?id=46157

Reviewed By: curdeius

Differential Revision: https://reviews.llvm.org/D80933
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 5b454b98d6488a27decbe7e21a361b2579376ec2 by jpienaar
[mlir] Remove unneeded inference trait/fns

Therse are all handled with the simple return type inference in ODS.
Also update some summaries to match what is recommended in ODS doc.
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
Commit 7c1b060c3c65cac50edec5cceb6653957c344d96 by ditaliano
[IRInterpreter] Unused. Drive-by cleanup. NFCI.
The file was modifiedlldb/source/Expression/IRInterpreter.cpp
Commit 8bd7e4188a096b063065aac70ce39129c479f124 by tianshilei1992
Replace separator in OpenMP variant name mangling.

Summary:
Nvidia PTX does not allow `.` to appear in identifiers, so OpenMP variant mangling now uses `$` to separate segments of the mangled name for variants of functions declared via `declare variant`.

Reviewers: jdoerfert, Hahnfeld

Reviewed By: jdoerfert

Subscribers: yaxunl, guansong, sstefan1, cfe-commits

Tags: #openmp, #clang

Differential Revision: https://reviews.llvm.org/D80439
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/lib/AST/OpenMPClause.cpp
The file was addedclang/test/OpenMP/nvptx_declare_variant_name_mangling.cpp
Commit ba6b1b4353e33a7a36bcbad1d1c1157826197fd2 by julian.lettner
[Darwin] Improve runtime OS version checks

Use a struct to represent numerical versions instead of encoding release
names in an enumeration. This avoids the need to extend the enumeration
every time there is a new release.

Rename `GetMacosVersion() -> GetMacosAlignedVersion()` to better reflect
how this is used on non-MacOS platforms.

Reviewed By: delcypher

Differential Revision: https://reviews.llvm.org/D79970
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.h
Commit a574edbba2b24fcfb733aa2d82308131f5b7d2d6 by Matthew.Arsenault
X86: Switch fastregalloc test to use generated checks
The file was modifiedllvm/test/CodeGen/X86/2010-06-28-FastAllocTiedOperand.ll
Commit 66251f7e1de79a7c1620659b7f58352b8c8e892e by Matthew.Arsenault
RegAllocFast: Record internal state based on register units

Record internal state based on register units. This is often more
efficient as there are typically fewer register units to update
compared to iterating over all the aliases of a register.

Original patch by Matthias Braun, but I've been rebasing and fixing it
for almost 2 years and fixed a few bugs causing intermediate failures
to make this patch independent of the changes in
https://reviews.llvm.org/D52010.
The file was modifiedllvm/test/CodeGen/X86/pr32340.ll
The file was modifiedllvm/test/CodeGen/X86/atomic32.ll
The file was modifiedllvm/test/CodeGen/X86/pr30813.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-m0.ll
The file was modifiedllvm/test/CodeGen/X86/pr32241.ll
The file was modifiedllvm/test/CodeGen/Mips/implicit-sret.ll
The file was modifiedllvm/test/CodeGen/X86/crash-O0.ll
The file was modifiedllvm/test/CodeGen/X86/atomic-unordered.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-conversion-fallback.ll
The file was modifiedllvm/test/CodeGen/X86/extend-set-cc-uses-dbg.ll
The file was modifiedllvm/test/CodeGen/X86/pr27591.ll
The file was modifiedllvm/test/CodeGen/AArch64/fast-isel-sp-adjust.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wwm-reserved.ll
The file was modifiedllvm/test/CodeGen/X86/pr1489.ll
The file was modifiedllvm/test/CodeGen/X86/pr32284.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-conversion.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll
The file was modifiedllvm/test/CodeGen/X86/2009-04-14-IllegalRegs.ll
The file was modifiedllvm/test/CodeGen/X86/pr32451.ll
The file was modifiedllvm/test/CodeGen/X86/pr44749.ll
The file was modifiedllvm/test/CodeGen/X86/pr34592.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll
The file was modifiedllvm/test/CodeGen/Mips/atomic.ll
The file was modifiedllvm/test/CodeGen/X86/swifterror.ll
The file was modifiedllvm/test/CodeGen/ARM/legalize-bitcast.ll
The file was modifiedllvm/test/CodeGen/PowerPC/addegluecrash.ll
The file was modifiedllvm/test/CodeGen/X86/swift-return.ll
The file was modifiedllvm/test/CodeGen/X86/pr32345.ll
The file was modifiedllvm/test/DebugInfo/X86/op_deref.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll
The file was modifiedllvm/test/CodeGen/X86/fast-isel-nontemporal.ll
The file was modifiedllvm/test/CodeGen/X86/atomic64.ll
The file was modifiedllvm/test/CodeGen/Mips/atomic-min-max.ll
The file was modifiedllvm/test/CodeGen/X86/avx-load-store.ll
The file was modifiedllvm/test/CodeGen/X86/regalloc-fast-missing-live-out-spill.mir
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vcvt_f.ll
The file was modifiedllvm/test/CodeGen/Mips/GlobalISel/llvm-ir/fptosi_and_fptoui.ll
The file was modifiedllvm/test/CodeGen/PowerPC/vsx.ll
The file was modifiedllvm/test/CodeGen/X86/pr39733.ll
The file was modifiedllvm/lib/CodeGen/RegAllocFast.cpp
The file was modifiedllvm/test/CodeGen/X86/pr30430.ll
Commit e636e6b79ac06b13059e46b49acb4d9de204c75b by kkleine
[clang-tidy]: Added modernize-replace-disallow-copy-and-assign-macro

Summary:
This check finds macro expansions of `DISALLOW_COPY_AND_ASSIGN(Type)` and
replaces them with a deleted copy constructor and a deleted assignment operator.

Before the `delete` keyword was introduced in C++11 it was common practice to
declare a copy constructor and an assignment operator as a private members. This
effectively makes them unusable to the public API of a class.

With the advent of the `delete` keyword in C++11 we can abandon the
`private` access of the copy constructor and the assignment operator and
delete the methods entirely.

Migration example:

```
lang=dif
class Foo {
  private:
  -  DISALLOW_COPY_AND_ASSIGN(Foo);
  +  Foo(const Foo &) = delete;
  +  const Foo &operator=(const Foo &) = delete;
  };
```

Reviewers: alexfh, hokein, aaron.ballman, njames93

Reviewed By: njames93

Subscribers: Eugene.Zelenko, mgorny, xazax.hun, cfe-commits

Tags: #clang, #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D80531
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.h
The file was addedclang-tools-extra/docs/clang-tidy/checks/modernize-replace-disallow-copy-and-assign-macro.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/modernize-replace-disallow-copy-and-assign-macro.cpp
Commit 900f78a714c583dd87432a9c89f6ccade8430fac by ctetreau
[SVE] Eliminate calls to default-false VectorType::get() from IR

Reviewers: efriedma, kmclaughlin, sdesmalen, dexonsmith, dblaikie

Reviewed By: efriedma

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80261
The file was modifiedllvm/lib/IR/IRBuilder.cpp
The file was modifiedllvm/include/llvm/IR/MatrixBuilder.h
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/lib/IR/Constants.cpp
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was modifiedllvm/lib/IR/DataLayout.cpp
The file was modifiedllvm/lib/IR/Core.cpp
Commit d496437a0bfd6d135343026cdb7b6a69cb6af536 by sunfish
[WebAssembly] Add support for -mexec-model=reactor

This adds a -mexec-model= command-line flag. The default value is "command"
which is no change from the current behavior. The other option is "reactor"
which enables the WASI Reactor ABI:

https://github.com/WebAssembly/WASI/blob/master/design/application-abi.md

Differential Revision: https://reviews.llvm.org/D62922
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/ToolChains/WebAssembly.cpp
The file was modifiedclang/test/Driver/wasm-toolchain.c
The file was modifiedclang/docs/ClangCommandLineReference.rst
Commit 7f50c15be5c020b2789f83dc3c87d28f8294664f by tlively
Reland "[WebAssembly] Eliminate range checks on br_tables"

This reverts commit 755a89591528b692315ad0325347e2fd4637271b.
Although I was not able to reproduce any test failures locally,
aheejin was able to reproduce them and found a fix, applied here.
The file was modifiedllvm/lib/Target/WebAssembly/WebAssembly.h
The file was modifiedllvm/test/CodeGen/WebAssembly/cfg-stackify.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/indirectbr.ll
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
The file was addedllvm/test/CodeGen/WebAssembly/switch-unreachable-default.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/switch.ll
The file was addedllvm/lib/Target/WebAssembly/WebAssemblyFixBrTableDefaults.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/WebAssembly/stack-insts.ll
The file was modifiedllvm/lib/Target/WebAssembly/CMakeLists.txt
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
Commit a946cb1813c228ac44a94e0ddf712258b9018ea9 by thakis
[gn build] Fix link with ld.bfd and gold.

lld's symbol resolution algorithm makes it not depend on
the order of object files and libraries, but ld.bfd and
gold require listing dependencies later on the link line.
Put {{libs}} after {{inputs}} so that e.g. -lpthreads
appears after the object files, not before it.

Differential Revision: https://reviews.llvm.org/D81035
The file was modifiedllvm/utils/gn/build/toolchain/BUILD.gn
Commit dd863ccae1346a44e4380fb17d22ae7041fee898 by craig.topper
[X86] Separate X86_CPU_TYPE_COMPAT_WITH_ALIAS from X86_CPU_TYPE_COMPAT. NFC

Add a separate X86_CPU_TYPE_COMPAT_ALIAS that carries alias string
and the enum from X86_CPU_TYPE_COMPAT.
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/lib/Basic/Targets/X86.cpp
The file was modifiedllvm/include/llvm/Support/X86TargetParser.def
Commit 86fdfc104e411499f2dcc139336c3a4da65bf283 by llvmgnsyncbot
[gn build] Port 7f50c15be5c
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/BUILD.gn
Commit 6cbccda89af63c797f6ce2211e91e8e6e53f2a7b by llvmgnsyncbot
[gn build] Port e636e6b79ac
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/modernize/BUILD.gn
Commit f4d427326539f007b05378eaf66018c10b651ad0 by jingham
Add a test for preserving state on the non-expr thread across expression evaluation.

There may be another test that tests this but I couldn't find one.
The file was addedlldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
The file was addedlldb/test/API/functionalities/thread/state_after_expression/Makefile
The file was addedlldb/test/API/functionalities/thread/state_after_expression/main.cpp
Commit 9caa34a24cb7d20a129143281cc0e1b2f44bd95c by Jonas Devlieghere
[lldb/Test] Remove un(used|needed|maintained) files from lldbsuite.
The file was removedlldb/packages/Python/lldbsuite/.clang-format
The file was removedlldb/packages/Python/lldbsuite/test/redo.py
The file was removedlldb/packages/Python/lldbsuite/test/lock.py
Commit 5fa9c9d7f276b44b3da949382e0d0b5dbfd0ac8b by Jonas Devlieghere
[lldb/Test] Python <3.5 requires **kwargs to come last

Thanks Martin Böhme for pointing this out.
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 6391da98f43a995fe3dfb96a5376b2d9c652ed87 by ajcbik
[mlir] [VectorOps] Use 'vector.flat_transpose' for 2-D 'vector.tranpose'

Summary:
Progressive lowering of vector.transpose into an operation that
is closer to an intrinsic, and thus the hardware ISA. Currently
under the common vector transform testing flag, as we prepare
deploying this transformation in the LLVM lowering pipeline.

Reviewers: nicolasvasilache, reidtatge, andydavis1, ftynse

Reviewed By: nicolasvasilache, ftynse

Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits

Tags: #llvm, #mlir

Differential Revision: https://reviews.llvm.org/D80772
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-contract-transforms.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was addedmlir/test/Dialect/Vector/vector-flat-transforms.mlir
Commit 49cbe56a657b91e612f8305e7f8f9119ffe84378 by kadircet
[clangd] Fix forgotten propagation of AsnycPreamble flag
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
Commit cc11ceda165b5ba0a87e812fbd6ed1bce4fefd2f by hanchung
[mlir][Linalg] Add support for fusion between indexed_generic ops and generic ops on tensors.

Summary:
Different from the fusion between generic ops, indices are involved. In this
context, we need to re-map the indices for producer since the fused op is built
on consumer's perspective. This patch supports all combination of the fusion
between indexed_generic ops and generic ops, which includes tests case:
  1) generic op as producer and indexed_generic op as consumer.
  2) indexed_generic op as producer and generic op as consumer.
  3) indexed_generic op as producer and indexed_generic op as consumer.

Differential Revision: https://reviews.llvm.org/D80347
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
Commit 27fca57546c2828e2684c02b7aa677cbd6603bfd by hanchung
[mlir][Linalg] Add support for fusion between indexed_generic ops and tensor_reshape ops

Summary:
The fusion for tensor_reshape is embedding the information to indexing maps,
thus the exising pattenr also works for indexed_generic ops.

Depends On D80347

Differential Revision: https://reviews.llvm.org/D80348
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
Commit 0e7c77053f560d391fecbec5d5e0e42082865c8a by listmail
Introduce a "gc-live" bundle for the gc arguments of a statepoint

Currently, gc.relocates are defined in terms of indices into the statepoint's operand list. Given the gc args are at the end of a variable length list of operands, this makes interpreting their indices by hand a tad challenging. We can simplify the statepoint sequence and improve readability quite a bit by pulling these new operands into their own named operand bundle.

This patch defines a new operand bundle tag "gc-live". The semantics of the bundle are the same as the existing gc arguments of a statepoint. This patch simply introduces the definition and codegen for the bundle, future patches will migrate RS4GC to emitting the new form.

Interestingly, with this done and the recent migration to using deopt and gc-transition bundles, we really don't have much left in the statepoint itself. It really looks like the existing ID and flags fields are redundant; we have (existing!) attributes for all of them. I think we'll be able to reduce the gc.statepoint signature to simply a wrapped call (e.g. actual target and actual arguments).

Differential Revision: https://reviews.llvm.org/D80937
The file was modifiedllvm/test/Bitcode/operand-bundles-bc-analyzer.ll
The file was modifiedllvm/lib/IR/LLVMContext.cpp
The file was modifiedllvm/include/llvm/IR/LLVMContext.h
The file was addedllvm/test/CodeGen/X86/statepoint-gc-live.ll
The file was modifiedllvm/docs/Statepoints.rst
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/IR/Statepoint.h
The file was modifiedllvm/lib/IR/Verifier.cpp
Commit 0b025d2733d02a8080f38d767cceab4812c5d6e2 by hanchung
[mlir][StandardToSPIRV] Handle i1 case for lowering std.zexti to SPIR-V.

Differential Revision: https://reviews.llvm.org/D80965
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
Commit 8dd34cce0716e0d83c2f05375e8352b5fb4c680c by Jessica Paquette
[AArch64][GlobalISel] Select uzp1 and uzp2

Porting the mask stuff for uzp1 and uzp2 from AArch64ISelLowering.

Add two custom opcodes: G_UZP1 and G_UZP2.

Produce them in the post-legalizer combiner when the mask checks out.

Tests:

- postlegalizer-combiner-uzp.mir verifies that we create G_UZP1 and G_UZP2.
The testcases that check that we create them come from neon-perm.ll.

- select-uzp.mir verifies that we can select G_UZP1 and G_UZP2.

Differential Revision: https://reviews.llvm.org/D81049
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-uzp.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-uzp.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrGISel.td
The file was modifiedllvm/lib/Target/AArch64/AArch64Combine.td
The file was modifiedllvm/lib/Target/AArch64/AArch64PostLegalizerCombiner.cpp
Commit ff529e0f2792e1383a602e4b8a466337fd0c2926 by listmail
[Statepoint] Fix signed vs unsigned in index handling

As noted in a comment on D80937, all of these are specified as unsigned values, but the verifier code was using signed.  Given the practical values involved, the different in range didn't matter, but we might as well clean it up.
The file was modifiedllvm/lib/IR/Verifier.cpp
Commit cab4b3b8e3a4a2822e459e5f103e49fcab16efaf by julian.lettner
Fix bug in newly added VersionBase::operator>=

Fixup for ba6b1b4353e33a7a36bcbad1d1c1157826197fd2.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.h
Commit 969d2d1ea9466143e7099040f5f0735cc81963b1 by Jessica Paquette
[AArch64][GlobalISel] Add selection support for rev16, rev32, and rev64

This does three things:

1) Adds G_REV16, G_REV32, and G_REV64. These are equivalent to AArch64rev16,
   AArch64rev32, and AArch64rev64 respectively.

2) Adds support for producing G_REV64 in the postlegalizer combiner.
   We don't legalize any of the shuffles which could give us a G_REV32 or
   G_REV16 yet. Since the function for detecting the rev mask is lifted from
   AArch64ISelLowering, it should work for G_REV32 and G_REV16 when we get
   there.

3) Adds a selection test for a good portion of the patterns imported for the rev
   family. The only ones which are not tested are the ones with bitconvert.

This also does a little cleanup, and adds a struct for shuffle vector pseudo
matchdata. This lets us still use `applyShuffleVectorPseudo` rather than adding
a new function.

It should also make it a bit easier to port some of the other masks from
AArch64ISelLowering. (e.g. `isZIP_v_undef_Mask` and friends)

Differential Revision: https://reviews.llvm.org/D81112
The file was modifiedllvm/lib/Target/AArch64/AArch64PostLegalizerCombiner.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrGISel.td
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-rev.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-rev.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64Combine.td
Commit 25af2126f93a76f39c3121b3ddccdfd9f1aba4be by tlively
[WebAssembly] Fix ISel crash in SIGN_EXTEND_INREG lowering

Summary:
The code previously assumed that the index of a vector extract was
constant, but this was not always true. This patch fixes the problem
by bailing out of the lowering if the index is nonconstant and also
replaces `static_cast`s in the lowering function with `cast`s because
the latter contain type-checking asserts that would make similar
issues easier to find and debug.

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81025
The file was addedllvm/test/CodeGen/WebAssembly/simd-nonconst-sext.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
Commit 06ae439110395e9d5cf9fdfbd9570130cc2f1a1e by Jessica Paquette
[AArch64][NFC] Regenerate arm64-rev.ll

Test had some GISel stuff in it which was changed by 969d2d1ea94.
The file was modifiedllvm/test/CodeGen/AArch64/arm64-rev.ll
Commit 382b3023cbbcffc07c7de73441d6b86f02486099 by listmail
[Statepoints][CGP] Minor parameter type cleanup
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
Commit 053fce9a02ad679f14f9dba33220f7d63fc11812 by echristo
Fix typo in filename comment.
The file was modifiedllvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
Commit 5477cf06d654e319ed066ba7f497e278853762be by Vitaly Buka
Fix "Statistics are disabled"

There is no -DLLVM_ENABLE_STATS, only
-DLLVM_FORCE_ENABLE_STATS.
It was renamed by 6cf299cf01e4a83844126f7faf17cbeb78e88da9
The file was modifiedllvm/lib/Support/Statistic.cpp
Commit 291dabefde01eae7473da224b49f6359766e0663 by Vitaly Buka
[StackSafety,NFC] Add statistic counters
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp
Commit 116e38fd8b89fb20279cbf7edb4a49a7ab5c7764 by Saleem Abdulrasool
lld: add basic static library search

This is a very basic static library search addition. This is the pre-Xcode4
behaviour of searching all paths for the shared version before searching for
the static version of the library. This behaviour is supposed to be inverted
with `-search_paths_first` being the default. This adds the library search
with the intention of providing the setup to merge the paths into one path
and making it controllable by `OPT_search_paths_first`.
The file was modifiedlld/MachO/Driver.cpp
The file was addedlld/test/MachO/static-link.s
Commit 3866e0a563ebfd622a0041d107f8d402097db0c1 by arsenm2
GlobalISel: Fail expansion of G_DYN_STACKALLOC for StackGrowsUp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit a1a93ca48ac80434ce8d490c9cb8efcf1412945d by arsenm2
AMDGPU/GlobalISel: Handle uniform G_DYN_STACKALLOC
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-dyn-stackalloc.mir
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-divergent.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
Commit 9cdc27ffac48acfc458d4d6ae9db1f90757645a1 by arsenm2
AArch64/GlobalISel: Fix assert on call returning 0 sized type

I don't know why this is considered valid IR, but it probably should
not be.
The file was modifiedllvm/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll
Commit 21a7b8a77dd47dd184e3f717a1c8e2f5591c803b by echristo
consitfy and auto -> auto * a few places to clean up uses.
The file was modifiedllvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
Commit eb9ca9da3e94e0c0d5eb8d98a388e92da0df9f12 by julian.lettner
Make linter happy

Fixup for ba6b1b4353e33a7a36bcbad1d1c1157826197fd2.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
Commit ccb3c8e8613413846d6c2f17cc1c1e2a8b6a98ef by qcolombet
[RegisterCoalescer] Update empty subranges when rematerializing

When we rematerialize a value as part of the coalescing, we may
widen the register class of the destination register.
When this happens, updateRegDefUses may create additional subranges
to account for the wider register class.
The created subranges are empty and if they are not defined by
the rematerialized instruction we clean them up.
However, if they are defined by the rematerialized instruction but
unused, we failed to flag them as dead definition and would leave
them as empty live-range.
This is wrong because empty live-ranges don't interfere with anything,
thus if we don't fix them, we would fail to account that the
rematerialized instruction clobbers some lanes.

E.g., let us consider the following pseudo code:
def.lane_low64:reg128 = ldimm
newdef:reg32 = COPY def.lane_low64_low32

When rematerialization happens for newdef, we end up with:
newdef.lane_low64:reg128 = ldimm
= use newdef.lane_low64_low32

Let's look at the live interval of newdef.
Before rematerialization, we would get:
newdef [defIdx, useIdx:0) 0@defIdx

Right after updateRegDefUses, newdef register class is widen to reg128
and the subrange definitions will be augmented to fill the subreg that
is used at the definition point, here lane_low64.
The resulting live interval would be:
newdef [newDefIdx, useIdx:0) 0@newDefIdx
* lane_low64_high32 EMPTY
* lane_low64_low32 [newDefIdx, useIdx:0)

Before this patch this would be the final status of the live interval.
Therefore we miss that lane_low64_high32 is actually live on the
definition point of newdef.

With this patch, after rematerializing, we check all the added subranges
and for the ones that are defined but empty, we flag them as dead def.
Thus, in that case, newdef would look like this:
newdef [newDefIdx, useIdx:0) 0@newDefIdx
* lane_low64_high32 [newDefIdx, newDefIdxDead) ; <-- instead of EMPTY
* lane_low64_low32 [newDefIdx, useIdx:0)

This fixes https://www.llvm.org/PR46154
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was addedllvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
Commit ed5017e153c76adc13badcfd123c68dd074e75d1 by arsenm2
GlobalISel: Start defining strict FP instructions

The AMDGPU lowering for unconstrained G_FDIV sometimes needs to
introduce a mode switch in the middle, so it's helpful to have
constrained instructions available to legalize this. Right now nothing
is preventing reordering of the mode switch with the other
instructions in the expansion.
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
The file was modifiedllvm/include/llvm/Target/GenericOpcodes.td
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-constrained-fp.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
Commit e9f556526e57270d1f8e148e7f2be8cccf297eb2 by julian.lettner
[Darwin] Add tests for OS version checking

Extract ParseVersion helper function for testing.

Reviewed By: delcypher

Differential Revision: https://reviews.llvm.org/D80761
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/CMakeLists.txt
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was addedcompiler-rt/lib/sanitizer_common/tests/sanitizer_mac_test.cpp
Commit a50f4eb2e91bc384fb8956a9637abb7e46e7ec84 by Xing
[ObjectYAML][DWARF] Support emitting the .debug_aranges section in ELFYAML.

This patch enables yaml2obj to emit the .debug_aranges section in ELFYAML.

Known issues:
- The current implementation of `debug_aranges` doesn't support emitting `segment` in the `(segment, address, length)` tuple. I will fix it in a follow-up patch.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D80972
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was addedllvm/test/tools/yaml2obj/ELF/DWARF/debug-aranges.yaml
Commit b6020c330d3826aa542164842d6ba71fdee3650b by Xing
[ObjectYAML][ELF] Let the endianness of DWARF sections be inferred from FileHeader.

This patch helps infer the endianness of DWARF sections from `FileHeader`.

Reviewed By: jhenderson, grimar

Differential Revision: https://reviews.llvm.org/D81051
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-aranges.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
Commit 049d860707ef22978b9379fee6dce38c66a22671 by Yaxun.Liu
[CUDA][HIP] Fix constexpr variables for C++17

constexpr variables are compile time constants and implicitly const, therefore
they are safe to emit on both device and host side. Besides, in many cases
they are intended for both device and host, therefore it makes sense
to emit them on both device and host sides if necessary.

In most cases constexpr variables are used as rvalue and the variables
themselves do not need to be emitted. However if their address is taken,
then they need to be emitted.

For C++14, clang is able to handle that since clang emits them with
available_externally linkage together with the initializer.

However for C++17, the constexpr static data member of a class or template class
become inline variables implicitly. Therefore they become definitions with
linkonce_odr or weak_odr linkages. As such, they can not have available_externally
linkage.

This patch fixes that by adding implicit constant attribute to
file scope constexpr variables and constexpr static data members
in device compilation.

Differential Revision: https://reviews.llvm.org/D79237
The file was addedclang/test/CodeGenCUDA/constexpr-variables.cu
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaCUDA.cpp
The file was addedclang/test/SemaCUDA/constexpr-variables.cu
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
Commit 01899bb4e41178af6f4cf7b32833e661fe1e3322 by maskray
[gcov] Improve .gcno compatibility with gcov and use DataExtractor

llvm-cov.test and many Inputs/test* files contain wrong tests.
This patch rewrites a large portion of these files.
The pre-canned .gcno & .gcda are replaced by binaries produced by
clang --coverage (compatible with gcov 4.8~7)
(after some GCDAProfiling.c bugs were fixed by my previous commits).

Also make llvm-cov gcov on a little-endian host capable to parse big-endian .gcno and .gcda,
and make llvm-cov gcov on big-endian host capable to parse little-endian .gcno and .gcda
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test.h
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_preserve_paths.output
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h
The file was removedllvm/test/tools/llvm-cov/Inputs/test_long_paths.output
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_gcda.cpp.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a_-b_-u.cpp.gcov
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_options.output
The file was modifiedllvm/test/tools/llvm-cov/llvm-cov.test
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_options.cpp.gcov
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a_-b_-u.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_missing.output
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_gcda.output
The file was removedllvm/test/tools/llvm-cov/Inputs/test_long_file_names.output
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_-f.output
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_output.output
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_paths.gcda
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_gcda.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/copy_block_helper.gcda
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a_-b_-c_-u.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/copy_block_helper.gcno
The file was removedllvm/test/tools/llvm-cov/copy_block_helper.m
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test.gcno
The file was removedllvm/test/tools/llvm-cov/Inputs/test_objdir.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a.cpp.gcov
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
The file was removedllvm/test/tools/llvm-cov/Inputs/test_missing.cpp.gcov
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_no_options.h.gcov
The file was removedllvm/test/tools/llvm-cov/range_based_for.cpp
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a_-b_-c_-u.cpp.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a_-b.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_objdir.cpp.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a_-b.cpp.gcov
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_paths.gcno
The file was modifiedllvm/test/tools/llvm-cov/Inputs/test_-b.output
The file was removedllvm/test/tools/llvm-cov/Inputs/test_-a.h.gcov
The file was removedllvm/test/tools/llvm-cov/Inputs/test_missing.h.gcov