SuccessChanges

Summary

  1. [NFC] Remove some include cycles (details)
  2. [VP] getDeclarationForParams (details)
  3. [MLIR] Mark additional builtin attr methods const (details)
  4. Revert "3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"" (details)
  5. [llvm] Make Sequence reverse-iterable (details)
  6. [Polly][Isl] Removing nullptr constructor from C++ bindings. NFC. (details)
  7. Fix missing header and namespace qualifier in ADT Sequence (details)
  8. [CUDA][HIP] Fix store of vtbl in ctor (details)
  9. [LoopNest] Fix Wdeprecated-copy warnings (details)
  10. [DAG] foldShuffleOfConcatUndefs - ensure shuffles of upper (undef) subvector elements is undef (PR50609) (details)
Commit 22875b2ce3fd8a5cf4f615ed7e91950f613ba9d4 by tbaeder
[NFC] Remove some include cycles

These files include themselves directly.
The file was modifiedclang/lib/AST/Interp/Context.h
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/ELF.h
Commit 0f9d299122f1223e93c54f10401a608f5d481314 by simon.moll
[VP] getDeclarationForParams

`VPIntrinsic::getDeclarationForParams` creates a vp intrinsic
declaration for parameters you want to call it with.  This is in
preparation of a new builder class that makes emitting vp intrinsic code
nearly as convenient as using a plain ir builder (aka `VectorBuilder`,
to be used by D99750).

Reviewed By: frasercrmck, craig.topper, vkmr

Differential Revision: https://reviews.llvm.org/D102686
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was modifiedllvm/lib/IR/IntrinsicInst.cpp
The file was modifiedllvm/unittests/IR/VPIntrinsicTest.cpp
Commit 41eb2cec47986d8128c0ef03164a007b0db67127 by fabian
[MLIR] Mark additional builtin attr methods const

* Mark the following methods const:
  * `ArrayAttr::getAsRange`
  * `ArrayAttr::getAsValueRange`
  * `DictionaryAttr::getAs`
* Make `DictionarAttr::getAs` generic over the name class, such that
  `Identifier` and `StringRef` arguments get forwarded to the underlying
  call to `get`. (Made generic to avoid introducing a dependency on
  `include/mlir/IR/Identifier.h` as per the diff discussion.)

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D103822
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
Commit 386b66b2fc297cda121a3cc8a36887a6ecbcfc68 by hans
Revert "3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands""

> This reapplies c0f3dfb9, which was reverted following the discovery of
> crashes on linux kernel and chromium builds - these issues have since
> been fixed, allowing this patch to re-land.

This reverts commit 36ec97f76ac0d8be76fb16ac521f55126766267d.

The change caused non-determinism in the compiler, see comments on the code
review at https://reviews.llvm.org/D91722.

Reverting to unbreak people's builds until that can be addressed.

This also reverts the follow-up "[DebugInfo] Limit the number of values
that may be referenced by a dbg.value" in
a0bd6105d80698c53ceaa64bbe6e3b7e7bbf99ee.
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was removedllvm/test/DebugInfo/salvage-nonconst-binop.ll
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was removedllvm/test/DebugInfo/salvage-gep.ll
The file was modifiedllvm/include/llvm/IR/Operator.h
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was modifiedllvm/lib/IR/DebugInfoMetadata.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/test/Transforms/InstCombine/debuginfo-sink.ll
The file was modifiedllvm/lib/IR/IntrinsicInst.cpp
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was removedllvm/test/DebugInfo/limit-arglist-size.ll
The file was modifiedllvm/test/Transforms/Reassociate/undef_intrinsics_when_deleting_instructions.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/IR/Operator.cpp
The file was modifiedllvm/test/DebugInfo/NVPTX/debug-info.ll
Commit e772216e708937988c039420d2c559568f91ae27 by gchatelet
[llvm] Make Sequence reverse-iterable

This patch simplifies the implementation of Sequence and makes it compatible with llvm::reverse.
It exposes the reverse iterators through rbegin/rend which prevents a dangling reference in std::reverse_iterator::operator++().

Differential Revision: https://reviews.llvm.org/D102679
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedllvm/unittests/ADT/SequenceTest.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
The file was modifiedllvm/include/llvm/ADT/Sequence.h
Commit be5e2fc7bf781c7fc079943552ea1b519f45c815 by patacca
[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC.

[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC.

This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface.

Changes made:
- Removed `std::nullptr_t` constructor from all the classes in the isl C++ bindings.
- `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/a7e00bea38f251a4bcf5c2c6ce5fa7ee5f661528

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D103751
The file was modifiedpolly/unittests/DeLICM/DeLICMTest.cpp
The file was modifiedpolly/lib/Transform/FlattenSchedule.cpp
The file was modifiedpolly/lib/Transform/ForwardOpTree.cpp
The file was modifiedpolly/include/polly/ScopInfo.h
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
The file was modifiedpolly/lib/External/isl/include/isl/isl-noexceptions.h
The file was modifiedpolly/lib/Transform/DeLICM.cpp
The file was modifiedpolly/lib/Transform/FlattenAlgo.cpp
The file was modifiedpolly/lib/Support/ISLTools.cpp
The file was modifiedpolly/lib/Analysis/ScopBuilder.cpp
The file was modifiedpolly/lib/Transform/ZoneAlgo.cpp
The file was modifiedpolly/lib/CodeGen/IslAst.cpp
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp
Commit 7f6c878a2c035eb6325ab228d9bc2d257509d959 by gchatelet
Fix missing header and namespace qualifier in ADT Sequence
The file was modifiedllvm/include/llvm/ADT/Sequence.h
Commit 054cc3b1b469de4b0cb25d1dc3af43c679c5dc44 by Yaxun.Liu
[CUDA][HIP] Fix store of vtbl in ctor

vtbl itself is in default global address space. When clang emits
ctor, it gets a pointer to the vtbl field based on the this pointer,
then stores vtbl to the pointer.

Since this pointer can point to any address space (e.g. an object
created in stack), this pointer points to default address space, therefore
the pointer to vtbl field in this object should also be in default
address space.

Currently, clang incorrectly casts the pointer to vtbl field in this object
to global address space. This caused assertions in backend.

This patch fixes that by removing the incorrect addr space cast.

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D103835
The file was modifiedclang/lib/CodeGen/CGClass.cpp
The file was addedclang/test/CodeGenCUDA/vtbl.cu
Commit dee1f0cb348b0a56375d9b563fb4d6918c431ed1 by whitneyt
[LoopNest] Fix Wdeprecated-copy warnings

error: definition of implicit copy constructor for 'LoopNest' is
deprecated because it has a user-declared copy assignment operator
[-Werror,-Wdeprecated-copy]
  LoopNest &operator=(const LoopNest &) = delete;

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D103752
The file was modifiedllvm/include/llvm/Analysis/LoopNestAnalysis.h
Commit 61a2d6bfe48cf3da4b95d1383bf866690287f8e8 by llvm-dev
[DAG] foldShuffleOfConcatUndefs - ensure shuffles of upper (undef) subvector elements is undef (PR50609)

shuffle(concat(x,undef),concat(y,undef)) -> concat(shuffle(x,y),shuffle(x,y))

If the original shuffle references any of the upper (undef) subvector elements, ensure the split shuffle masks uses undef instead of an out-of-bounds value.

Fixes PR50609
The file was addedllvm/test/CodeGen/X86/pr50609.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp