SuccessChanges

Summary

  1. [lldb] Don't crash when LLDB can't extract the tsan report (details)
  2. [FileCheck] Move FileCheck implementation out of LLVMSupport into its own library (details)
  3. Revert "[FileCheck] Move FileCheck implementation out of LLVMSupport into its own library" (details)
  4. [llvm-readobj/elf] - Don't fail when dumping an archive with a member that can't be recognized. (details)
  5. [lldb] Fix TestCompletion's pid completion failing randomly (details)
  6. [lldb][NFC] Remove trailing whitespace in TestCompletion (details)
  7. Fix sphinx documentation after a6a37a2fcd2a8048a75bd0d8280497ed89d73224 (details)
  8. [lldb] tab completion for class `CommandObjectTypeFormatterDelete` (details)
  9. [NFCI] Silent a build warning due to an extra semi-colon (details)
  10. [analyzer] Add modeling for unique_ptr move constructor (details)
  11. [Flang][NFC] Remove license comments from files in docs/ folder. (details)
  12. [x86] add another test for reciprocal sqrt; NFC (details)
  13. [AArch64] add another test for reciprocal sqrt; NFC (details)
  14. [DAGCombiner] skip reciprocal divisor optimization for x/sqrt(x), better (details)
  15. [clang-tidy] New check readability-prefer-member-initializer (details)
  16. [Clang-Tidy] New check `bugprone-redundant-branch-condition` (details)
  17. [gn build] Port 14dd0737822 (details)
  18. [gn build] Port f5fd7486d6c (details)
  19. Teach the swift calling convention about _Atomic types (details)
  20. [CodeGen] Make sure the EH cleanup for block captures is conditional when the block literal is in a conditional context (details)
  21. [clang-tidy] Buildbot failure fix for commit rGf5fd7486d6c0 (details)
  22. [PowerPC][AIX] Add test for returning a vector type. [NFC] (details)
  23. [llvm-reduce] Create returns with undef values for non-void functions. (details)
  24. [NFC] [DAGCombiner] Remove unnecessary negation in visitFNEG (details)
  25. [NFC] [DAGCombiner] Refactor bitcast folding within fabs/fneg (details)
  26. [analyzer] Add bool operator modeling for unque_ptr (details)
  27. [X86][CGP] Pre-commit test cases for D86371. (details)
  28. [LLD] [COFF] Error out if creating a DLL with too many exported symbols (details)
  29. [ARM] Register pressure with -mthumb forces register reload before each call (details)
  30. [ORC] Remove a stray semicolon, silencing warnings. NFC. (details)
  31. [NFC][InstCombine] visitPHINode(): cleanup PHI CSE instruction replacement (details)
  32. [SVE] Remove calls to VectorType::getNumElements from InstCombine (details)
  33. [IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try) (details)
  34. [X86][CGP] Add gather test cases for D86371. (details)
  35. [docs] Fix indentation in FileCheck.rst (details)
  36. [mlir][OpFormatGen] Add support for specifiy "custom" directives. (details)
  37. [mlir][ODS] Add new SymbolNameAttr and add support for in assemblyFormat (details)
  38. [mlir][OpFormatGen] Add initial support for regions in the custom op assembly format (details)
  39. [mlir][PDL] Move the formats for PatternOp and RewriteOp to the declarative form. (details)
  40. [OpenMPOpt][HideMemTransfersLatency] Get values stored in offload arrays (details)
  41. [flang] Format label scope is independent of block scope (details)
  42. [analyzer][NFC] Add `override` keyword missing from D86027 (details)
  43. [SVE] Mark VectorType::getNumElements() deprecated (details)
  44. [lldb] Add reproducer verifier (details)
  45. [ORC] Remove an unused variable. (details)
  46. [flang] Make `TypeParamInquiry` monomorphic (details)
  47. [SVE] Remove calls to VectorType::getNumElements() from llvm-stress (details)
  48. Fix mlir-reduce to explicitly register dialects and disable the global dialect registry by default (details)
Commit 1c5a0cb1c3bffdae0d73acf8a23e31646b35c596 by Raphael Isemann
[lldb] Don't crash when LLDB can't extract the tsan report

Right now all tsan tests are crashing on Linux. The tests were already marked as
expected failures, but since commit 20ce8affce85d added an assert that every
StopInfo needs a non-empty stop description the tests actually started crash
(which is even with an expectedFailure a failed test).

The reason for that is that we never had any stop description when hitting tsan
errors on Linux. Before the assert that just made the test fail, but now the
empty description is hitting the assert. This patch just adds a generic stop
description mentioning tsan to prevent that we hit that assert on platforms
where we don't support extracting the tsan report.

Reviewed By: friss

Differential Revision: https://reviews.llvm.org/D86593
The file was modifiedlldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
Commit e9a3d1a401b07cbf7b11695637f1b549782a26cd by Raphael Isemann
[FileCheck] Move FileCheck implementation out of LLVMSupport into its own library

The actual FileCheck logic seems to be implemented in LLVMSupport. I don't see a
good reason for having FileCheck implemented there as it has a very specific use
while LLVMSupport is a dependency of pretty much every LLVM tool there is. In
fact, the only use of FileCheck I could find (outside the FileCheck tool and the
FileCheck unit test) is a single call in GISelMITest.h.

This moves the FileCheck logic to its own LLVMFileCheck library. This way only
FileCheck and the GlobalISelTests now have a dependency on this code.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D86344
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/BUILD.gn
The file was modifiedllvm/unittests/CMakeLists.txt
The file was modifiedllvm/utils/FileCheck/FileCheck.cpp
The file was modifiedllvm/unittests/Support/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
The file was addedllvm/lib/FileCheck/FileCheckImpl.h
The file was removedllvm/lib/Support/FileCheckImpl.h
The file was modifiedllvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
The file was addedllvm/utils/gn/secondary/llvm/unittests/FileCheck/BUILD.gn
The file was modifiedllvm/lib/CMakeLists.txt
The file was modifiedllvm/utils/FileCheck/CMakeLists.txt
The file was addedllvm/lib/FileCheck/FileCheck.cpp
The file was modifiedllvm/include/llvm/module.modulemap
The file was addedllvm/utils/gn/secondary/llvm/lib/FileCheck/BUILD.gn
The file was addedllvm/unittests/FileCheck/CMakeLists.txt
The file was addedllvm/unittests/FileCheck/FileCheckTest.cpp
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
The file was removedllvm/unittests/Support/FileCheckTest.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/GISelMITest.h
The file was addedllvm/lib/FileCheck/CMakeLists.txt
The file was removedllvm/lib/Support/FileCheck.cpp
The file was removedllvm/include/llvm/Support/FileCheck.h
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn
The file was addedllvm/include/llvm/FileCheck/FileCheck.h
Commit ed89eb3571e16307c16d2e5371855437835a40cc by Raphael Isemann
Revert "[FileCheck] Move FileCheck implementation out of LLVMSupport into its own library"

This reverts commit e9a3d1a401b07cbf7b11695637f1b549782a26cd. Seems the new
FileCheck library doesn't link on some bots. Reverting for now.
The file was removedllvm/utils/gn/secondary/llvm/lib/FileCheck/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn
The file was removedllvm/lib/FileCheck/FileCheckImpl.h
The file was modifiedllvm/unittests/Support/CMakeLists.txt
The file was modifiedllvm/utils/FileCheck/FileCheck.cpp
The file was modifiedllvm/unittests/CMakeLists.txt
The file was modifiedllvm/utils/FileCheck/CMakeLists.txt
The file was removedllvm/unittests/FileCheck/CMakeLists.txt
The file was modifiedllvm/unittests/CodeGen/GlobalISel/GISelMITest.h
The file was removedllvm/lib/FileCheck/CMakeLists.txt
The file was modifiedllvm/include/llvm/module.modulemap
The file was addedllvm/include/llvm/Support/FileCheck.h
The file was removedllvm/utils/gn/secondary/llvm/unittests/FileCheck/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
The file was modifiedllvm/lib/CMakeLists.txt
The file was addedllvm/unittests/Support/FileCheckTest.cpp
The file was removedllvm/include/llvm/FileCheck/FileCheck.h
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/BUILD.gn
The file was addedllvm/lib/Support/FileCheckImpl.h
The file was modifiedllvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
The file was removedllvm/unittests/FileCheck/FileCheckTest.cpp
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
The file was addedllvm/lib/Support/FileCheck.cpp
The file was removedllvm/lib/FileCheck/FileCheck.cpp
Commit 506f89ce914e99233a66fee8c1ec070b668d1759 by grimar
[llvm-readobj/elf] - Don't fail when dumping an archive with a member that can't be recognized.

Imagine we have an archive that has 3 objects in the following order:
<valid known object>,<unknown object> and <valid known object>.

Currently llvm-readelf/obj report an error and stops dumping in the middle.
This patch changes the error reported to warning.

Differential revision: https://reviews.llvm.org/D86771
The file was modifiedllvm/test/tools/llvm-readobj/archive.test
The file was modifiedllvm/tools/llvm-readobj/llvm-readobj.cpp
Commit b51321ccc894f6ed512c27cb43b1f04883d5ed0e by Raphael Isemann
[lldb] Fix TestCompletion's pid completion failing randomly

TestCompletion is randomly failing on some bots. The error message however states
that the computed completions actually do contain the expected pid we're
looking for, so there shouldn't be any test failure.

The reason for that turns out to be that complete_from_to is actually used
for testing two different features. It can be used for testing what the
common prefix for the list of completions is and *also* for checking all the
possible completions that are returned for a command. Which one of the two
things should be checked can't be defined by a parameter to the function, but
is instead guessed by the test method instead based on the results that were
returned. If there is a common prefix in all completions, then that prefix
is searched and otherwise all completions are searched.

For TestCompletion's pid test this behaviour leads to the strange test failures.
If all the pid's that our test LLDB can see have a common prefix (e.g., it
can only see pids [123, 122, 10004, 10000] -> common prefix '1'), then
complete_from_to check that the common prefix contains our pid, which is
always fails ('1' doesn't contain '123' or any other valid pid). If there
isn't a common prefix (e.g., pids are [123, 122, 10004, 777]) then
complete_from_to will check the list of completions instead which works correctly.

This patch is fixing this by adding a simple check method that doesn't
have this behaviour and is simply searching the returned list of completions.
This should get the bots green while I'm working on a proper fix that fixes
complete_from_to.
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was modifiedlldb/test/API/functionalities/completion/TestCompletion.py
Commit da0d43d90a4f931466ecdd9bc27c47fa45cc6c21 by Raphael Isemann
[lldb][NFC] Remove trailing whitespace in TestCompletion
The file was modifiedlldb/test/API/functionalities/completion/TestCompletion.py
Commit 9026d3b2f942db81b0d8588fd0990d389669dc55 by alexandre.ganea
Fix sphinx documentation after a6a37a2fcd2a8048a75bd0d8280497ed89d73224
The file was modifiedllvm/docs/CMake.rst
Commit 1cd99fe9d4166bbe72b0b935b40bbb41cdc0a6c8 by Raphael Isemann
[lldb] tab completion for class `CommandObjectTypeFormatterDelete`

1. Added a dedicated completion to class `CommandObjectTypeFormatterDelete`
   which can be used by these commands: `type filter/format/summary/synthetic delete`;
2. Added a related test case.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D84142
The file was modifiedlldb/source/Commands/CommandObjectType.cpp
The file was modifiedlldb/include/lldb/DataFormatters/FormattersContainer.h
The file was modifiedlldb/test/API/functionalities/completion/TestCompletion.py
Commit db464a2753e2b3dee7a1438cd8ccc33795fc9529 by SourabhSingh.Tomar
[NFCI] Silent a build warning due to an extra semi-colon
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
Commit 1b743a9efa0884ed3a48ebea97b6ef6cb7d73164 by vrnithinkumar
[analyzer] Add modeling for unique_ptr move constructor

Summary:
Add support for handling move contructor of std::unique_ptr.

Reviewers: NoQ, Szelethus, vsavchenko, xazax.hun

Reviewed By: NoQ

Subscribers: martong, cfe-commits
Tags: #clang

Differential Revision: https://reviews.llvm.org/D86373
The file was modifiedclang/test/Analysis/smart-ptr.cpp
The file was modifiedclang/test/Analysis/smart-ptr-text-output.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
Commit f787c9a90c69f604694b02493404c066ea601b9e by joshisameeran17
[Flang][NFC] Remove license comments from files in docs/ folder.

Solves issue https://reviews.llvm.org/D86131#2247275

Reviewed By: hans

Differential Revision: https://reviews.llvm.org/D86875
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/docs/FortranIR.md
The file was modifiedflang/docs/FortranForCProgrammers.md
The file was modifiedflang/docs/ControlFlowGraph.md
The file was modifiedflang/docs/IORuntimeInternals.md
The file was modifiedflang/docs/LabelResolution.md
The file was modifiedflang/docs/ImplementingASemanticCheck.md
The file was modifiedflang/docs/Directives.md
The file was modifiedflang/docs/Overview.md
The file was modifiedflang/docs/Calls.md
The file was modifiedflang/docs/Character.md
The file was modifiedflang/docs/ParserCombinators.md
The file was modifiedflang/docs/OptionComparison.md
The file was modifiedflang/docs/C++17.md
The file was modifiedflang/docs/PullRequestChecklist.md
The file was modifiedflang/docs/RuntimeDescriptor.md
The file was modifiedflang/docs/OpenMP-semantics.md
The file was modifiedflang/docs/ArrayComposition.md
The file was modifiedflang/docs/C++style.md
The file was modifiedflang/docs/Intrinsics.md
The file was modifiedflang/docs/Semantics.md
The file was modifiedflang/docs/ModFiles.md
The file was modifiedflang/docs/Parsing.md
The file was modifiedflang/docs/Preprocessing.md
Commit 9ff05dcd38f72871821a03f20f41092026e5cba0 by spatel
[x86] add another test for reciprocal sqrt; NFC

The change in rG716e35a0cf53 depends on the order that
we encounter the expression x/sqrt(x), so we need to
adjust the logic to be more flexible.
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath.ll
Commit 11e0c5b648460256176f2348d724338218542dce by spatel
[AArch64] add another test for reciprocal sqrt; NFC
The file was modifiedllvm/test/CodeGen/AArch64/sqrt-fastmath.ll
Commit 1c9a09f42e5ed66cba04700f9272ff53ea3cca86 by spatel
[DAGCombiner] skip reciprocal divisor optimization for x/sqrt(x), better

I tried to fix this in:
rG716e35a0cf53
...but that patch depends on the order that we encounter the
magic "x/sqrt(x)" expression in the combiner's worklist.

This patch should improve that by waiting until we walk the
user list to decide if there's a use to skip.

The AArch64 test reveals another (existing) ordering problem
though - we may try to create an estimate for plain sqrt(x)
before we see that it is part of a 1/sqrt(x) expression.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath.ll
The file was modifiedllvm/test/CodeGen/AArch64/sqrt-fastmath.ll
Commit f5fd7486d6c0debb465de3e927fcc31884874280 by adam.balogh
[clang-tidy] New check readability-prefer-member-initializer

Finds member initializations in the constructor body which can
be placed to the member initializers of the constructor instead.
This does not only improves the readability of the code but also
affects positively its performance. Class-member assignments
inside a control statement or following the first control
statement are ignored.

Differential Revision: https://reviews.llvm.org/D71199
The file was addedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-prefer-member-initializer-modernize-use-default-member-init.cpp
The file was addedclang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.h
The file was addedclang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines-prefer-member-initializer.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-prefer-member-initializer.cpp
The file was modifiedclang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was addedclang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt
The file was addedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
Commit 14dd0737822ba476803320a2ff37a1012174d312 by adam.balogh
[Clang-Tidy] New check `bugprone-redundant-branch-condition`

Checking the same condition again in a nested `if` usually make no sense,
except if the value of the expression could have been changed between
the two checks. Although compilers may optimize this out, such code is
suspicious: the programmer may have meant to check something else.
Therefore it is worth to find such places in the code and notify the
user about the problem.

This patch implements a basic check for this problem. Currently it
only detects redundant conditions where the condition is a variable of
integral type. It also detects the possible bug if the variable is in an
//or// or //and// logical expression in the inner if and/or the variable
is in an //and// logical expression in the outer if statement. Negated
cases are not handled yet.

Differential Revision: https://reviews.llvm.org/D81272
The file was modifiedclang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
The file was addedclang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/bugprone-redundant-branch-condition.cpp
The file was addedclang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.h
The file was addedclang-tools-extra/docs/clang-tidy/checks/bugprone-redundant-branch-condition.rst
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
Commit 04b30afed0a30dea5f99a025d15491c65d4ebb07 by llvmgnsyncbot
[gn build] Port 14dd0737822
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/bugprone/BUILD.gn
Commit 077238f1e12071bb116c24e181539d2310e26070 by llvmgnsyncbot
[gn build] Port f5fd7486d6c
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/cppcoreguidelines/BUILD.gn
Commit 41634497d4fd21f28d08ac6f538ca4045f386c95 by aschwaighofer
Teach the swift calling convention about _Atomic types

rdar://67351073

Differential Revision: https://reviews.llvm.org/D86218
The file was modifiedclang/lib/CodeGen/SwiftCallingConv.cpp
The file was modifiedclang/test/CodeGen/64bit-swiftcall.c
Commit a9a6e62ddff21c597b82f0f6d26bca6a1a473a6f by erik.pilkington
[CodeGen] Make sure the EH cleanup for block captures is conditional when the block literal is in a conditional context

Previously, clang was crashing on the attached test because the EH cleanup for
the block capture was incorrectly emitted under the assumption that the
expression wasn't conditionally evaluated. This was because before 9a52de00260,
pushLifetimeExtendedDestroy was mainly used with C++ automatic lifetime
extension, where a conditionally evaluated expression wasn't possible. Now that
we're using this path for block captures, we need to handle this case.

rdar://66250047

Differential revision: https://reviews.llvm.org/D86854
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was addedclang/test/CodeGenObjC/arc-blocks-exceptions.m
Commit 22808d693ef7f8cf61ceff506a320249a0bdb5ef by adam.balogh
[clang-tidy] Buildbot failure fix for commit rGf5fd7486d6c0

Commit `rGf5fd7486d6c0` caused a buildbot failure because exceptions are
disabled by default on one of the buildbots. This patch forcibly enables
exceptions for the affected test.
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-prefer-member-initializer.cpp
Commit 84875f69410252f8f0718f39d4978abbecdfd015 by sd.fertile
[PowerPC][AIX] Add test for returning a vector type. [NFC]

Shows error produced when trying to return a vector, which is not
yet supported.
The file was addedllvm/test/CodeGen/PowerPC/aix-vector-return.ll
Commit a5bb24758d02e1e42b72561d0ddbd682776d1a4d by flo
[llvm-reduce] Create returns with undef values for non-void functions.

Currently replaceBranchTerminator/removeUninterestingBBsFromSwitch
always creates `ret void` instructions if no successor is in the chunk.

This results in invalid IR for functions with non-void return types,
which makes those reductions unfeasible. Instead, create `ret ty undef`
for functions with non-void return types.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D86849
The file was modifiedllvm/test/Reduce/remove-bbs-ret-nonvoid.ll
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
Commit eb2a405c181c9833eb8676d147619b8c893dc6fa by qiucofan
[NFC] [DAGCombiner] Remove unnecessary negation in visitFNEG

In visitFNEG of DAGCombiner, the folding of (fneg (fsub c, x)) is
redundant since getNegatedExpression already handles it.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/fneg.ll
Commit 5475154865fd57ff00d20d11b32d2c18c633fb76 by qiucofan
[NFC] [DAGCombiner] Refactor bitcast folding within fabs/fneg

fabs and fneg share a common transformation:

(fneg (bitconvert x)) -> (bitconvert (xor x sign))
(fabs (bitconvert x)) -> (bitconvert (and x ~sign))

This patch separate the code into a single method.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D86862
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit bc3d4d9ed783a3051125075f1a58ad619d8ea454 by vrnithinkumar
[analyzer] Add bool operator modeling for unque_ptr

Summary: Implemented boolean conversion operator for unique_ptr

Reviewers: NoQ, Szelethus, vsavchenko, xazax.hun

Reviewed By: NoQ, xazax.hun

Subscribers: martong, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D86027
The file was modifiedclang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
The file was modifiedclang/test/Analysis/smart-ptr.cpp
The file was modifiedclang/test/Analysis/smart-ptr-text-output.cpp
Commit 44133d9a0801f9bca777c4858ee7d59618a9c4fe by craig.topper
[X86][CGP] Pre-commit test cases for D86371.
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/gather-scatter-opt.ll
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll
Commit a54919e0c11542f6716043003e403f1910f32528 by martin
[LLD] [COFF] Error out if creating a DLL with too many exported symbols

The PE/DLL format has a limit on 64k exported symbols per DLL; make
sure to check this.

Differential Revision: https://reviews.llvm.org/D86701
The file was addedlld/test/COFF/Inputs/def-many.py
The file was addedlld/test/COFF/export-limit.s
The file was modifiedlld/COFF/DriverUtils.cpp
Commit 85b4d286d7b19f78135277fe068b1d90f595f8bf by david.green
[ARM] Register pressure with -mthumb forces register reload before each call

This patch implements the foldMemoryOperand hook in Thumb1InstrInfo,
allowing tBLXr and a spilled function address to be combined back into a
tBL. This can help with codesize at Oz, especailly in the tinycrypt
library.

Differential Revision: https://reviews.llvm.org/D79785
The file was addedllvm/test/CodeGen/ARM/minsize-call-cse-3.ll
The file was modifiedllvm/lib/Target/ARM/Thumb1InstrInfo.h
The file was addedllvm/test/CodeGen/ARM/minsize-call-cse-2.ll
The file was modifiedllvm/lib/Target/ARM/Thumb1InstrInfo.cpp
Commit b16ac94419b73b2979b3d81855d283bf58cfd6f7 by martin
[ORC] Remove a stray semicolon, silencing warnings. NFC.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
Commit c23aefd7c38c9413a23fee3664655a10f4a2f41a by lebedev.ri
[NFC][InstCombine] visitPHINode(): cleanup PHI CSE instruction replacement

As @nikic is pointing out in https://reviews.llvm.org/rGbf21ce7b908e#inline-4647
this must be sufficient otherwise `EliminateDuplicatePHINodes()`
would have hit issues with it already.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
The file was modifiedllvm/test/Transforms/InstCombine/phi-cse.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction.ll
Commit 640f20b0c7bb93688f07ff38645171b41aa6494d by ctetreau
[SVE] Remove calls to VectorType::getNumElements from InstCombine

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D82237
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/include/llvm/Transforms/InstCombine/InstCombiner.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Commit e25449ff57ca4d318d9d8602863806a7a29f23bc by spatel
[IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try)

The 1st try was reverted because I missed an assert that
needed softening.

As discussed in D86798 / rG09652721 , we were potentially
returning a different result for whether an Instruction
is commutable depending on if we call the base class or
derived class method.

This requires relaxing asserts in GVN, but that pass
seems to be working otherwise.

NewGVN requires more work because it uses different
code paths for numbering binops and calls.
The file was modifiedllvm/include/llvm/IR/Instruction.h
The file was modifiedllvm/lib/IR/Instruction.cpp
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
The file was modifiedllvm/test/Transforms/GVN/commute.ll
The file was modifiedllvm/lib/Transforms/Scalar/NewGVN.cpp
Commit ab83348a638ee42f05f0f2adf9888463414f4570 by craig.topper
[X86][CGP] Add gather test cases for D86371.
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/gather-scatter-opt.ll
Commit 61e15ecab50943d8e62add494ff35d1cd165758d by aeubanks
[docs] Fix indentation in FileCheck.rst

Fixes
C:\src\llvm-project\llvm\docs\CommandGuide\FileCheck.rst:745:Bullet list ends without a blank line; unexpected unindent.
The file was modifiedllvm/docs/CommandGuide/FileCheck.rst
Commit 88c6e25e4f0630bd9204cb02787fcb67e097a43a by riddleriver
[mlir][OpFormatGen] Add support for specifiy "custom" directives.

This revision adds support for custom directives to the declarative assembly format. This allows for users to use C++ for printing and parsing subsections of an otherwise declaratively specified format. The custom directive is structured as follows:

```
custom-directive ::= `custom` `<` UserDirective `>` `(` Params `)`
```

`user-directive` is used as a suffix when this directive is used during printing and parsing. When parsing, `parseUserDirective` will be invoked. When printing, `printUserDirective` will be invoked. The first parameter to these methods must be a reference to either the OpAsmParser, or OpAsmPrinter. The type of rest of the parameters is dependent on the `Params` specified in the assembly format.

Differential Revision: https://reviews.llvm.org/D84719
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/test/mlir-tblgen/op-format-spec.td
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/docs/OpDefinitions.md
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
Commit 24b88920fed750c864e30add6a0fefe58f1a9f54 by riddleriver
[mlir][ODS] Add new SymbolNameAttr and add support for in assemblyFormat

Symbol names are a special form of StringAttr that get treated specially in certain areas, such as formatting. This revision adds a special derived attr for them in ODS and adds support in the assemblyFormat for formatting them properly.

Differential Revision: https://reviews.llvm.org/D86759
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
Commit eaeadce9bd11d50cecfdf9e97ac471acd38136ee by riddleriver
[mlir][OpFormatGen] Add initial support for regions in the custom op assembly format

This adds some initial support for regions and does not support formatting the specific arguments of a region. For now this can be achieved by using a custom directive that formats the arguments and then parses the region.

Differential Revision: https://reviews.llvm.org/D86760
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/test/mlir-tblgen/op-format-spec.td
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/lib/IR/OperationSupport.cpp
The file was modifiedmlir/lib/Parser/Parser.h
The file was modifiedmlir/lib/Parser/AttributeParser.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/docs/OpDefinitions.md
Commit 2481846a303dc6b99d4eebe761e2e3ffccead448 by riddleriver
[mlir][PDL] Move the formats for PatternOp and RewriteOp to the declarative form.

This is possible now that the declarative assembly form supports regions.

Differential Revision: https://reviews.llvm.org/D86830
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLOps.td
The file was modifiedmlir/lib/Dialect/PDL/IR/PDL.cpp
Commit 8931add6170508704007f1a410993e6aec879c01 by htobonmm7
[OpenMPOpt][HideMemTransfersLatency] Get values stored in offload arrays

getValuesInOffloadArrays goes through the offload arrays in __tgt_target_data_begin_mapper getting the values stored in them before the call is issued.

call void @__tgt_target_data_begin_mapper(arg0, arg1,
    i8** %offload_baseptrs, i8** %offload_ptrs, i64* %offload_sizes,
...)

Diferential Revision: https://reviews.llvm.org/D86300
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was addedllvm/test/Transforms/OpenMP/values_in_offload_arrays.ll
Commit 646f19bb9dc86ea5baf38969697a15d0f162ddb0 by pklausler
[flang] Format label scope is independent of block scope

Compilation of the following program currently generates a warning message:

        i = 1
        if (i .eq. 0) then
          write(6, 200) i
200       format (I8)
        end if
        write(6, 200) i
      end

x.f90:6:9: Label '200' is not in scope
          write(6, 200) i
          ^^^^^^^^^^^^^^^

Whereas branch targets must conform to the Clause 11.1.2.1 program
requirement "Transfer of control to the interior of a block from
outside the block is prohibited, ...", this doesn't apply to format
statement references.
The file was modifiedflang/lib/Semantics/resolve-labels.cpp
The file was modifiedflang/test/Semantics/io07.f90
Commit d563d7a7313cf47dcb24c6370a035bd803965b4e by hubert.reinterpretcast
[analyzer][NFC] Add `override` keyword missing from D86027

Speculative fix for `-Werror,-Wsuggest-override` build failures on
the ppc64le-lld-multistage-test bot.
The file was modifiedclang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
Commit 867de151a52b6d0750485ac1cf9b3bc012ee51fd by ctetreau
[SVE] Mark VectorType::getNumElements() deprecated

getNumElements() is being removed from base VectorType in
order to eliminate the class of bugs in which a scalable vector
is accidentally treated like a fixed length vector. Clients of
this function should either call getElementCount(), and handle
the case where getElementCount().isScalable() is true, or they can
cast to FixedVectorType and call getNumElements() if they are
sure that the vector has fixed width.

Deprecated VectorType functions will be removed after the LLVM
12 branch.

See: http://lists.llvm.org/pipermail/llvm-dev/2020-March/139811.html

Reviewed By: fpetrogalli

Differential Revision: https://reviews.llvm.org/D78127
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
Commit 297f69afac58fc9dc13897857a5e70131c5adc85 by Jonas Devlieghere
[lldb] Add reproducer verifier

Add a reproducer verifier that catches:

- Missing or invalid home directory
- Missing or invalid working directory
- Missing or invalid module/symbol paths
- Missing files from the VFS

The verifier is enabled by default during replay, but can be skipped by
passing --reproducer-no-verify.

Differential revision: https://reviews.llvm.org/D86497
The file was modifiedlldb/source/API/SBReproducer.cpp
The file was modifiedlldb/source/Utility/ReproducerProvider.cpp
The file was modifiedlldb/include/lldb/API/SBReproducer.h
The file was modifiedllvm/include/llvm/Support/VirtualFileSystem.h
The file was modifiedlldb/source/Commands/CommandObjectReproducer.cpp
The file was modifiedlldb/source/Commands/Options.td
The file was modifiedlldb/tools/driver/Options.td
The file was modifiedlldb/include/lldb/Utility/Reproducer.h
The file was modifiedlldb/test/Shell/Reproducer/TestDebugSymbols.test
The file was modifiedlldb/tools/driver/Driver.cpp
The file was modifiedlldb/source/Utility/Reproducer.cpp
The file was addedlldb/test/Shell/Reproducer/TestVerify.test
The file was modifiedllvm/lib/Support/VirtualFileSystem.cpp
Commit b79e19e6d6d70c33c6375dfa134e252f1bc60286 by Lang Hames
[ORC] Remove an unused variable.

The unused Main variable was accidentally left in an earlier commit.
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
Commit 4cbfd93a591a2e861bb69dfe896a7cff41931c05 by pklausler
[flang] Make `TypeParamInquiry` monomorphic

Change the expression representation TypeParamInquiry from being
a class that's templatized on the integer KIND of its result into
a monomorphic representation that results in a SubscriptInteger
that can then be converted.

This is a minor simplification, but it's worth doing because
it is believed to also be a work-around for bugs in the MSVC
compiler with overload resolution that affect the expression
traversal framework.

Differential Revision: https://reviews.llvm.org/D86551
The file was modifiedflang/test/Semantics/modfile17.f90
The file was modifiedflang/include/flang/Evaluate/traverse.h
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was modifiedflang/include/flang/Evaluate/expression.h
The file was modifiedflang/test/Semantics/kinds03.f90
The file was modifiedflang/lib/Evaluate/check-expression.cpp
The file was modifiedflang/lib/Evaluate/formatting.cpp
The file was modifiedflang/lib/Lower/ConvertType.cpp
The file was modifiedflang/lib/Evaluate/fold-integer.cpp
The file was modifiedflang/test/Semantics/modfile22.f90
The file was modifiedflang/include/flang/Evaluate/variable.h
The file was modifiedflang/test/Semantics/modfile33.f90
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/symbol17.f90
The file was modifiedflang/include/flang/Evaluate/shape.h
The file was modifiedflang/lib/Evaluate/variable.cpp
Commit 474a5a665422f6df297f260921c0ff6507fbee9d by ctetreau
[SVE] Remove calls to VectorType::getNumElements() from llvm-stress

Differential Revision: https://reviews.llvm.org/D86898
The file was modifiedllvm/tools/llvm-stress/llvm-stress.cpp
Commit f54914081fd43fa5aca92df6630723be902adebd by joker.eph
Fix mlir-reduce to explicitly register dialects and disable the global dialect registry by default

Clients who rely on the Context loading dialects from the global
registry can call `mlir::enableGlobalDialectRegistry(true);` before
creating an MLIRContext

Differential Revision: https://reviews.llvm.org/D86897
The file was modifiedmlir/tools/mlir-reduce/CMakeLists.txt
The file was modifiedmlir/tools/mlir-reduce/mlir-reduce.cpp
The file was modifiedmlir/lib/IR/Dialect.cpp