SuccessChanges

Summary

  1. [llvm-cov gcov] Simply computation of line counts and exit block counter (details)
  2. [Attributor] Cleanup `::initialize` of various AAs (details)
  3. [Attributor][NFC] Improve check lines in depgraph.ll (details)
  4. [ARM] Try to rematerialize VCTP instructions (details)
  5. [Statepoints] Properly handle const base pointer. (details)
  6. [MLIR] Add debug support for ignored patterns (details)
  7. [lldb][doc] Mention python3-dev instead of python2.7-dev in build docs (details)
  8. [Ignore Expressions] Fix performance regression by inlining `Ignore*SingleStep` (details)
  9. [gn build] Port c0e5e3fbfa5 (details)
  10. [MLIR][Standard] Update `tensor_from_elements` assembly format (details)
  11. [MLIR][Shape] Lower `shape_of` to `dynamic_tensor_from_elements` (details)
  12. [lldb] Don't infinite loop in SemaSourceWithPriorities::CompleteType when trying to complete a forward decl (details)
  13. [EarlyCSE] Explicitly require AAResultsWrapperPass. (details)
  14. [lldb] Fix a crash when the ASTImporter is giving us two Imported callbacks for the same target decl (details)
  15. [Test] Add failing test for pr47457 (details)
  16. [lldb] Enable std::pair in CxxModuleHandler (details)
  17. [mlir] Added support for loops to BufferPlacement transformation. (details)
  18. Temporairly revert "Thread safety analysis: Consider global variables in scope" & followup (details)
  19. Rename MemRefDescriptor::getElementType() to MemRefDescriptor::getElementPtrType(). (details)
  20. [AMDGPU] Workaround for LDS Misalignment bug on GFX10 (details)
  21. [ARM] Fixup of a few test cases. NFC. (details)
  22. [DomTree] Use SmallVector<DomTreeNodeBase *, 4> instead of std::vector. (details)
  23. [NFC][Asan] Fit ChunkHeader into redzone (details)
  24. [APFloat] Fix uninitialized variable in IEEEFloat constructors (details)
  25. ARMTargetParser.cpp - use auto const references in for range loops. NFCI. (details)
  26. TrigramIndex.cpp - remove unnecessary includes. NFCI. (details)
  27. [ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions (details)
  28. [flang]Add Semantic Checks for OpenMP Allocate Clause (details)
  29. [BuildLibCalls] Add more noundef to library functions (details)
  30. [UnifyFunctionExitNodes] Fix Modified status for unreachable blocks (details)
  31. [mlir][Linalg] Integration tests for convolutions added. (details)
  32. [cmake] Use absolute paths for modules search (details)
  33. [elf2yaml] Fix dumping a debug section whose name is not recognized. (details)
  34. APInt.h - return directly from clearUnusedBits in single word cases. NFCI. (details)
  35. [KnownBits] Move SelectionDAG::computeKnownBits ISD::ABS handling to KnownBits::abs (details)
  36. Revert "[AMDGPU] Support disassembly for AMDGPU kernel descriptors" (details)
Commit 6a9a0bfc3350efc0fc7fabec9a1fef94f4e9cc86 by i
[llvm-cov gcov] Simply computation of line counts and exit block counter
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
Commit d445b6dfec13cdf9b9cb01582ec93548ea30ed0e by johannes
[Attributor] Cleanup `::initialize` of various AAs

This commit cleans up the ::initialize method of various AAs in the
following ways:
  - If an associated function is required, give up on declarations.
    This was discovered as a real problem when lots of llvm.dbg.XXX
    call sites were assumed `noreturn` until proven otherwise. That
    does not make any sense and caused huge regressions and missed
    deductions.
  - Require more associated declarations for function interface AAs.
  - Use the IRAttribute::initialize to determine if function interface
    AAs can be used in IPO, don't replicate the checks (especially
    isFunctionIPOAmendable) all over the place. Arguably the function
    declaration check should be moved to some central place to.
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/misc.ll
The file was modifiedllvm/test/Transforms/Attributor/liveness.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/heap_to_stack.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/Attributor/noundef.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/Attributor/dereferenceable-2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Transforms/Attributor/nofree.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/Attributor/noalias.ll
Commit f9ea4501b861ecc987afb4a71266dcc83ae640ca by johannes
[Attributor][NFC] Improve check lines in depgraph.ll

This adds the check lines with -NEXT so we see any change in the future.
The file was modifiedllvm/test/Transforms/Attributor/depgraph.ll
Commit 3ebc7552270e632d16e7900dd6933ed467159289 by sam.parker
[ARM] Try to rematerialize VCTP instructions

We really want to try and avoid spilling P0, which can be difficult
since there's only one register, so try to rematerialize any VCTP
instructions.

Differential Revision: https://reviews.llvm.org/D87280
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/remat-vctp.ll
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
Commit 2a52c3301a5254d4614401b4aa12ab7c841d7340 by dantrushin
[Statepoints] Properly handle const base pointer.

Current code in InstEmitter assumes all GC pointers are either
VRegs or stack slots - hence, taking only one operand.
But it is possible to have constant base, in which case it
occupies two machine operands.

Add a convinience function to StackMaps to get index of next
meta argument and use it in InsrEmitter to properly advance to
the next statepoint meta operand.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D87252
The file was modifiedllvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
The file was modifiedllvm/test/CodeGen/X86/statepoint-vreg.ll
The file was modifiedllvm/include/llvm/CodeGen/StackMaps.h
The file was modifiedllvm/lib/CodeGen/StackMaps.cpp
Commit 6a494e117cd99fc5b4c728d9f5a78ae817f93434 by frgossen
[MLIR] Add debug support for ignored patterns

The rewrite engine's cost model may determine some patterns to be irrelevant
ahead of their application. These patterns were silently ignored previously and
now cause a message in `--debug` mode.

Differential Revision: https://reviews.llvm.org/D87290
The file was modifiedmlir/lib/IR/PatternMatch.cpp
Commit 4e4a3feecdb6bd56483b9c6ba9116609c20588aa by Raphael Isemann
[lldb][doc] Mention python3-dev instead of python2.7-dev in build docs
The file was modifiedlldb/docs/resources/build.rst
Commit c0e5e3fbfa504c3792023d0db9008b08caa6b6d7 by ecaldas
[Ignore Expressions] Fix performance regression by inlining `Ignore*SingleStep`

We also add a `const` versions of `IgnoreExprNodes`

Differential Revision: https://reviews.llvm.org/D87278
The file was modifiedclang/include/clang/AST/IgnoreExpr.h
The file was removedclang/lib/AST/IgnoreExpr.cpp
The file was modifiedclang/lib/AST/CMakeLists.txt
Commit fdc8a1aac293084ffb2d7f04b1225c8e2fb3b164 by llvmgnsyncbot
[gn build] Port c0e5e3fbfa5
The file was modifiedllvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
Commit 133322d2e30877d5039643ab5c2ed02f75c29466 by frgossen
[MLIR][Standard] Update `tensor_from_elements` assembly format

Remove the redundant parenthesis that are used for none of the other operation
formats.

Differential Revision: https://reviews.llvm.org/D86287
The file was modifiedmlir/test/Transforms/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was modifiedmlir/test/IR/core-ops.mlir
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/IR/invalid-ops.mlir
Commit 5106a8b8f8d0d3dd6c3fc0554f05402d8d9177ef by frgossen
[MLIR][Shape] Lower `shape_of` to `dynamic_tensor_from_elements`

Take advantage of the new `dynamic_tensor_from_elements` operation in `std`.
Instead of stack-allocated memory, we can now lower directly to a single `std`
operation.

Differential Revision: https://reviews.llvm.org/D86935
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
Commit 32c8da41dc0cb99651823a1a21130c2cbdf688e1 by Raphael Isemann
[lldb] Don't infinite loop in SemaSourceWithPriorities::CompleteType when trying to complete a forward decl

SemaSourceWithPriorities is a special SemaSource that wraps our normal LLDB
ExternalASTSource and the ASTReader (which is used for the C++ module loading).
It's only active when the `import-std-module` setting is turned on.

The `CompleteType` function there in `SemaSourceWithPriorities` is looping over
all ExternalASTSources and asks each to complete the type. However, that loop is
in another loop that keeps doing that until the type is complete. If that
function is ever called on a type that is a forward decl then that causes LLDB
to go into an infinite loop.

I remember I added that second loop and the comment because I thought I saw a
similar pattern in some other Clang code, but after some grepping I can't find
that code anywhere and it seems the rest of the code base only calls
CompleteType once (It would also be kinda silly to have calling it multiple
times). So it seems that's just a silly mistake.

The is implicitly tested by importing `std::pair`, but I also added a simpler
dedicated test that creates a dummy libc++ module with some forward declarations
and then imports them into the scratch AST context. At some point the
ASTImporter will check if one of the forward decls could be completed by the
ExternalASTSource, which will cause the `SemaSourceWithPriorities` to go into an
infinite loop once it receives the `CompleteType` call.

Reviewed By: shafik

Differential Revision: https://reviews.llvm.org/D87289
The file was addedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/root/usr/include/c++/v1/vector
The file was addedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/Makefile
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
The file was addedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/root/usr/include/libc_header.h
The file was addedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/main.cpp
The file was addedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/root/usr/include/c++/v1/module.modulemap
The file was addedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/TestForwardDeclFromStdModule.py
Commit 2bcc4db761768f1b7431237920f26360549ca268 by flo
[EarlyCSE] Explicitly require AAResultsWrapperPass.

The MemorySSAWrapperPass depends on AAResultsWrapperPass and if
MemorySSA is preserved but AAResultsWrapperPass is not, this could lead
to a crash when updating the last user of the MemorySSAWrapperPass.

Alternatively AAResultsWrapperPass could be marked preserved by GVN, but
I am not sure if that would be safe. I am not sure what is required in
order to preserve AAResultsWrapperPass. At the moment, it seems like a
couple of passes that do similar transforms to GVN are preserving it.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87137
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
The file was addedllvm/test/Transforms/EarlyCSE/reuse-preserved-memoryssa.ll
Commit 7866b91405693df5b4cf6ba770b3a92d48b0c508 by Raphael Isemann
[lldb] Fix a crash when the ASTImporter is giving us two Imported callbacks for the same target decl

The ASTImporter has an `Imported(From, To)` callback that notifies subclasses
that a declaration has been imported in some way. LLDB uses this in the
`CompleteTagDeclsScope` to see which records have been imported into the scratch
context. If the record was declared inside the expression, then the
`CompleteTagDeclsScope` will forcibly import the full definition of that record
to the scratch context so that the expression AST can safely be disposed later
(otherwise we might end up going back to the deleted AST to complete the
minimally imported record). The way this is implemented is that there is a list
of decls that need to be imported (`m_decls_to_complete`) and we keep completing
the declarations inside that list until the list is empty. Every `To` Decl we
get via the `Imported` callback will be added to the list of Decls to be
completed.

There are some situations where the ASTImporter will actually give us two
`Imported` calls with the same `To` Decl. One way where this happens is if the
ASTImporter decides to merge an imported definition into an already imported
one. Another way is that the ASTImporter just happens to get two calls to
`ASTImporter::Import` for the same Decl. This for example happens when importing
the DeclContext of a Decl requires importing the Decl itself, such as when
importing a RecordDecl that was declared inside a function.

The bug addressed in this patch is that when we end up getting two `Imported`
calls for the same `To` Decl, then we would crash in the
`CompleteTagDeclsScope`.  That's because the first time we complete the Decl we
remove the Origin tracking information (that maps the Decl back to from where it
came from). The next time we try to complete the same `To` Decl the Origin
tracking information is gone and we hit the `to_context_md->getOrigin(decl).ctx
== m_src_ctx` assert (`getOrigin(decl).ctx` is a nullptr the second time as the
Origin was deleted).

This is actually a regression coming from D72495. Before D72495
`m_decls_to_complete` was actually a set so every declaration in there could
only be queued once to be completed. The set was changed to a vector to make the
iteration over it deterministic, but that also causes that we now potentially
end up trying to complete a Decl twice.

This patch essentially just reverts D72495 and makes the `CompleteTagDeclsScope`
use a SetVector for the list of declarations to be completed. The SetVector
should filter out the duplicates (as the original `set` did) and also ensure that
the completion order is deterministic. I actually couldn't find any way to cause
LLDB to reproduce this bug by merging declarations (this would require that we
for example declare two namespaces in a non-top-level expression which isn't
possible). But the bug reproduces very easily by just declaring a class in an
expression, so that's what the test is doing.

Reviewed By: shafik

Differential Revision: https://reviews.llvm.org/D85648
The file was addedlldb/test/API/lang/c/record_decl_in_expr/TestRecordDeclInExpr.py
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
Commit 37a7c0a00773f135d909eb9eba7f82547aee1e89 by mkazantsev
[Test] Add failing test for pr47457
The file was addedllvm/test/Transforms/LoopLoadElim/pr47457.ll
Commit b85222520f861a1812f991d6bd65950dda22f31b by Raphael Isemann
[lldb] Enable std::pair in CxxModuleHandler

This adds support for substituting std::pair instantiations with enabled
import-std-module.

With the fixes in parent revisions we can currently substitute a single pair
(however, a result that returns a second pair currently causes LLDB to crash
while importing the second template instantiation).

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D85141
The file was addedlldb/test/API/commands/expression/import-std-module/pair/main.cpp
The file was addedlldb/test/API/commands/expression/import-std-module/pair/TestPairFromStdModule.py
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp
The file was addedlldb/test/API/commands/expression/import-std-module/pair/Makefile
Commit feb0b9c3bba7db6d547b552c3cdaa838559da664 by marcel.koester
[mlir] Added support for loops to BufferPlacement transformation.

The current BufferPlacement transformation cannot handle loops properly. Buffers
passed via backedges will not be freed automatically introducing memory leaks.
This CL adds support for loops to overcome these limitations.

Differential Revision: https://reviews.llvm.org/D85513
The file was modifiedmlir/test/Transforms/buffer-placement.mlir
The file was modifiedmlir/lib/Transforms/BufferPlacement.cpp
Commit 8427885e27813c457dccb011f65e8ded74444e31 by lebedev.ri
Temporairly revert "Thread safety analysis: Consider global variables in scope" & followup

This appears to cause false-positives because it started to warn on local non-global variables.

Repro posted to https://reviews.llvm.org/D84604#2262745

This reverts commit 9dcc82f34ea9b623d82d2577b93aaf67d36dabd2.
This reverts commit b2ce79ef66157dd752e3864ece57915e23a73f5d.
The file was modifiedclang/test/SemaCXX/warn-thread-safety-negative.cpp
The file was modifiedclang/lib/Analysis/ThreadSafety.cpp
The file was modifiedclang/test/SemaCXX/warn-thread-safety-analysis.cpp
The file was modifiedclang/lib/Analysis/ThreadSafetyCommon.cpp
Commit 3a577f544618d9713aca5052e55143142d23f427 by csigg
Rename MemRefDescriptor::getElementType() to MemRefDescriptor::getElementPtrType().

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D87284
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
Commit 43af2a6faa272565cde4e3eec7dfeac593d29701 by Mirko.Brkusanin
[AMDGPU] Workaround for LDS Misalignment bug on GFX10

Add subtarget feature check to avoid using ds_read/write_b96/128 with too
low alignment if a bug is present on that specific hardware.
Add this "feature" to GFX 10.1.1 as it is also affected.
Add global-isel test.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-misaligned-bug.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-misaligned-bug.ll
Commit 8cb8cea1bd7f03330fc310b8993a3be89da90c1d by sjoerd.meijer
[ARM] Fixup of a few test cases. NFC.

After changing the semantics of get.active.lane.mask, I missed a few tests
that should use now the tripcount instead of the backedge taken count.
The file was modifiedllvm/test/Verifier/get-active-lane-mask.ll
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-intrinsic-sub-sat.ll
The file was modifiedllvm/test/CodeGen/Thumb2/active_lane_mask.ll
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions.ll
Commit 3a61bfb027a623807a30adb496ab62203c9b4ba5 by flo
[DomTree] Use SmallVector<DomTreeNodeBase *, 4> instead of std::vector.

Currentl DomTreeNodeBase is using std::vectot to store it's children.
Using SmallVector should be more efficient in terms of compile-time.

A size of 4 seems to be the sweet-spot in terms of compile-time,
according to

http://llvm-compile-time-tracker.com/compare.php?from=9933188c90615c9c264ebb69117f09726e909a25&to=d7a801d027648877b20f0e00e822a7a64c58d976&stat=instructions

This results in the following geomean improvements

```
                       geomean insts     max rss
O3                          -0.31 %       +0.02 %
ReleaseThinLTO              -0.35 %       -0.12 %
ReleaseLTO                  -0.28 %       -0.12 %
O0                          -0.06 %       -0.02 %
NewPM O3                    -0.36 %       +0.05 %
ReleaseThinLTO (link only)  -0.44 %       -0.10 %
ReleaseLTO-g (link only):   -0.32 %       -0.03 %
```

I am not sure if there's any other benefits of using std::vector over
SmallVector.

Reviewed By: kuhar, asbirlea

Differential Revision: https://reviews.llvm.org/D87319
The file was modifiedllvm/include/llvm/Support/GenericDomTree.h
Commit b5bc56da8aa23dc57db9d286b0591dbcf9b1bdd3 by Vitaly Buka
[NFC][Asan] Fit ChunkHeader into redzone

In code as-is min redzone and ChunkHeader are 16 byte.
This patch just makes sure that redzone is calculated correctly if we
extend ChunkHeader.
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
Commit 24ecfdac7b7d195795b6cb0e373cba8bfa7911f4 by llvm-dev
[APFloat] Fix uninitialized variable in IEEEFloat constructors

Some constructors of IEEEFloat do not initialize member variable exponent.
Fix it by initializing exponent with the following values:

For NaNs, the `exponent` is `maxExponent+1`.
For Infinities, the `exponent` is `maxExponent+1`.
For Zeroes, the `exponent` is `maxExponent-1`.

Patch by: @nullptr.cpp (Yang Fan)

Differential Revision: https://reviews.llvm.org/D86997
The file was modifiedllvm/include/llvm/ADT/APFloat.h
The file was modifiedllvm/lib/Support/APFloat.cpp
Commit f16b2d83154aed71aaf9a0717fbb0199d027f312 by llvm-dev
ARMTargetParser.cpp - use auto const references in for range loops. NFCI.

Fix static analysis warnings about unnecessary copies.
The file was modifiedllvm/lib/Support/ARMTargetParser.cpp
Commit 455cce3e216ba3cac0844b4ee9cf85791c1ac046 by llvm-dev
TrigramIndex.cpp - remove unnecessary includes. NFCI.

TrigramIndex.h already includes most of these.
The file was modifiedllvm/include/llvm/Support/TrigramIndex.h
The file was modifiedllvm/lib/Support/TrigramIndex.cpp
Commit 25ce1e0497259711836f949005297125e92a6e93 by aqjune
[ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions

This patch adds isGuaranteedNotToBePoison and programUndefinedIfUndefOrPoison.

isGuaranteedNotToBePoison will be used at D75808. The latter function is used at isGuaranteedNotToBePoison.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D84242
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/include/llvm/Analysis/ValueTracking.h
The file was modifiedllvm/lib/Transforms/Instrumentation/PoisonChecking.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
Commit 0fd425af071a9bc5c0891a4db09f4d9a466b7be9 by caroline.concatto
[flang]Add Semantic Checks for OpenMP Allocate Clause

Reviewed By: kiranchandramohan, clementval, kiranktp, raghavendhra

Differential Revision: https://reviews.llvm.org/D86051
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Semantics/resolve-directives.cpp
The file was addedflang/test/Semantics/omp-resolve06.f90
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was modifiedflang/include/flang/Semantics/symbol.h
The file was modifiedflang/test/Semantics/omp-clause-validity01.f90
Commit 36c8621638d18c830efe2c6a2a6d0a0338b0f79d by aqjune
[BuildLibCalls] Add more noundef to library functions

This patch follows D85345 and adds more noundef attributes to return values/arguments of library functions
that are mostly about accessing the file system or processes.

A few functions like `chmod` or `times` use typedef `mode_t` and `clock_t`.
They are neither struct nor union, so they cannot contain undef even if they're lowered to iN in IR. So, it is fine to add noundef to them.

- clock_t's actual type is size_t (C17, 7.27.1.3), so it isn't struct or union.

- For mode_t, either int or long is used in practice because programmers use bit manipulation. So, I think it is okay that it's never aggregate in practice.

After this patch, the remaining library functions are those that eagerly participate in optimizations: they can be removed, reordered, or
introduced by a transformation from primitive IR operations.
For them, a few testings is needed, since it may not be valid to add noundef anymore even if C standard says it's okay.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D85894
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
Commit 48fc781438767bd8337facf2e232c695b0426fb4 by david.stenberg
[UnifyFunctionExitNodes] Fix Modified status for unreachable blocks

If a function had at most one return block, the pass would return false
regardless if an unified unreachable block was created.

This patch fixes that by refactoring runOnFunction into two separate
helper functions for handling the unreachable blocks respectively the
return blocks, as suggested by @bjope in a review comment.

This was caught using the check introduced by D80916.

Reviewed By: serge-sans-paille

Differential Revision: https://reviews.llvm.org/D85818
The file was modifiedllvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
The file was addedllvm/test/Transforms/UnifyFunctionExitNodes/unreachable-blocks-status.ll
The file was modifiedllvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
Commit edf244217a48b91c8e9c860848885106fbcc5c4b by limo
[mlir][Linalg] Integration tests for convolutions added.

This commit introduces end-to-end integration tests for
convolutions that test multiple ways of ConvOps lowering.

Differential Revision: https://reviews.llvm.org/D87277
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-ndhwc-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-2d-nchw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-3d-ncdhw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-ncw-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-call.mlir
The file was addedmlir/integration_test/Dialect/Linalg/Conv/test-conv-1d-nwc-call.mlir
Commit d4b88ac1658d681e143482336cac27c6a74b8b24 by diana.picus
[cmake] Use absolute paths for modules search

For out of tree builds, the user generally needs to specify LLVM_DIR and
MLIR_DIR on the command line so that the correct LLVM and MLIR
installations are picked up.

If the provided paths are absolute, everything works fine, however for
buildbots it is customary to work with relative paths, and that makes it
difficult for CMake to find the right modules to include.

This patch changes CMakeLists.txt to convert LLVM_DIR and MLIR_DIR to
absolute paths before adding them to CMAKE_MODULE_PATH. The inputs are
assumed to be relative to the source directory (llvm-project/flang).

Differential Revision: https://reviews.llvm.org/D87083
The file was modifiedflang/CMakeLists.txt
Commit 25f3cc0ced1759af1911c2446ac40fab4f5e5571 by Xing
[elf2yaml] Fix dumping a debug section whose name is not recognized.

If the debug section's name isn't recognized, it should be
dumped as a raw content section.

Reviewed By: jhenderson, grimar

Differential Revision: https://reviews.llvm.org/D87346
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/unrecognized-debug-section.yaml
Commit 1eaf7babf2dcc3ab8fb429171c991556ffa98291 by llvm-dev
APInt.h - return directly from clearUnusedBits in single word cases. NFCI.

Consistently use the same pattern of returning *this from the clearUnusedBits() call to allow us to early out from the isSingleWord() path and avoid an else statement.
The file was modifiedllvm/include/llvm/ADT/APInt.h
Commit d816499f95d673bbad297d0231cbeaf5efbbc5de by llvm-dev
[KnownBits] Move SelectionDAG::computeKnownBits ISD::ABS handling to KnownBits::abs

Move the ISD::ABS handling to a KnownBits::abs handler, to simplify future implementations in ValueTracking/GlobalISel.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/Support/KnownBits.cpp
The file was modifiedllvm/include/llvm/Support/KnownBits.h
Commit f078577f31cc96b6e8a064f628f81a376f21e2e2 by RonakNilesh.Chauhan
Revert "[AMDGPU] Support disassembly for AMDGPU kernel descriptors"

This reverts commit 487a80531006add8102d50dbcce4b6fd729ab1f6.

Tests fail on big endian machines.
The file was modifiedllvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
The file was removedllvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx10.s
The file was removedllvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-raw.s
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was modifiedllvm/include/llvm/Support/AMDHSAKernelDescriptor.h
The file was modifiedllvm/test/CodeGen/AMDGPU/nop-data.ll
The file was removedllvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-vgpr.s
The file was removedllvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx9.s
The file was removedllvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-sgpr.s
The file was modifiedllvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
The file was removedllvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-failure.s