SuccessChanges

Summary

  1. [llvm-readobj/elf] - Simplify and refine the implementation which dumps .stack_sizes (details)
  2. [X86] detectAVGPattern - accept non-pow2 vectors by padding. (details)
  3. [MVE] fix typo in llvm debug message. NFC. (details)
  4. [Transforms][Coroutines] Add missing header path to CMakeLists.txt (details)
Commit bccd2ec3e216fed04c46df7077462165435703a1 by grimar
[llvm-readobj/elf] - Simplify and refine the implementation which dumps .stack_sizes

Our implementation of stack sizes section dumping heavily uses `ELFObjectFile<ELFT>`,
while the rest of the code uses `ELFFile<ELFT>`.

That APIs are very different. `ELFObjectFile<ELFT>` is very generic
and has `SectionRef`, `RelocationRef`, `SymbolRef` and other generic concepts.
The `ELFFile<ELFT>` class works directly with `Elf_Shdr`, `Elf_Rel[a]`, `Elf_Sym` etc,
what is probably much cleaner for ELF dumper.

Also, `ELFObjectFile<ELFT>` API does not always provide a way to check
for possible errors. E.g. the implementation of `symbol_end()` does not verify the `sh_size`:

```
template <class ELFT>
basic_symbol_iterator ELFObjectFile<ELFT>::symbol_end() const {
  const Elf_Shdr *SymTab = DotSymtabSec;
  if (!SymTab)
    return symbol_begin();
  DataRefImpl Sym = toDRI(SymTab, SymTab->sh_size / sizeof(Elf_Sym));
  return basic_symbol_iterator(SymbolRef(Sym, this));
}
```
There are many other examples which makes me thing we might win from
switching to `ELFFile<ELFT>` API, where we heavily validate an input data already.

This patch is the first step in this direction. I've converted the large portion of the code
to use `ELFFile<ELFT>`.

Differential revision: https://reviews.llvm.org/D87362
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit fc446935d724e87be515eb465293d82e040eb571 by llvm-dev
[X86] detectAVGPattern - accept non-pow2 vectors by padding.

Drop the pow2 vector limitation for AVG generation by padding the vector to the next pow2, creating the PAVG nodes and then extracting the final subvector.

Fixes some poor codegen that has been annoying me for years.....
The file was modifiedllvm/test/CodeGen/X86/avg.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit b4b1b84106a03d7b6374090bc0ff04b3a77a0862 by sjoerd.meijer
[MVE] fix typo in llvm debug message. NFC.
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp (diff)
Commit 5f13d6c1eef7fa4264d143af6e7bafbb74937ccd by llvm-dev
[Transforms][Coroutines] Add missing header path to CMakeLists.txt

Helps Visual Studio check include dependencies.
The file was modifiedllvm/lib/Transforms/Coroutines/CMakeLists.txt (diff)