SuccessChanges

Summary

  1. [MLIR][docs] Fix typos (details)
  2. [clangd] Reorder a little bit of init code. NFC (details)
  3. [asan][test] Disable malloc-no-intercept.c on Solaris (details)
  4. [SCEV] Use loop guard info when computing the max BE taken count in howFarToZero. (details)
  5. [llvm-readobj] - Fix a warning. (details)
  6. [llvm-readelf/obj] - Stop printing wrong addresses for arm32 unwind info for non-relocatable objects. (details)
  7. Use different name for auto variable (details)
  8. [lld][ELF][test] Add a couple of test cases for LTO behaviour (details)
Commit 5ad06e43992a766fe048a1b964fd6fd1f10ade71 by georgemitenk0v
[MLIR][docs] Fix typos

Fixed typos in SPIR-V to LLVM manual.

Reviewed By: georgemitenkov

Differential Revision: https://reviews.llvm.org/D88202
The file was modifiedmlir/docs/SPIRVToLLVMDialectConversion.md (diff)
Commit 00e05b12c76c396688cd8d4caac09a2e96851fd9 by sam.mccall
[clangd] Reorder a little bit of init code. NFC

This makes it possible to do something else (run checks) instead of
starting the server, with all config applied.
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp (diff)
Commit 15c9af5618c8c4a810994df53543af9060086a8e by ro
[asan][test] Disable malloc-no-intercept.c on Solaris

`TestCases/malloc-no-intercept.c` `FAIL`s on Solaris/x86, e.g. with
`-Dtestfunc=mallinfo`:

  /usr/bin/ld: /tmp/malloc-no-intercept-586529.o: in function `main':
  /vol/llvm/src/llvm-project/dist/compiler-rt/test/asan/TestCases/malloc-no-intercept.c:30: undefined reference to `nonexistent_function'
  clang-12: error: linker command failed with exit code 1 (use -v to see invocation)

This is not surprising, actually:

- `mallinfo` and `mallopt` only exist in `libmalloc`
- `pvalloc` doesn't exist all all
- `cfree` does exist in `libc`, but isn't declared in any public header and
  the OpenSolaris sources reveal that it has a different signature than on
  Linux
- only `memalign` is a public interface

To avoid this, this patch disables the interceptors for all but `meminfo`.
Additionally, the test is marked `UNSUPPORTED` on Solaris since the
`memalign` and `cfree` variants **do** link on Solaris.

Tested on `amd64-pc-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D87898
The file was modifiedcompiler-rt/test/asan/TestCases/malloc-no-intercept.c (diff)
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h (diff)
Commit d4ddf63fc40cfbbc348adcc45cdc6f6d78268c5c by flo
[SCEV] Use loop guard info when computing the max BE taken count in howFarToZero.

For some expressions, we can use information from loop guards when
we are looking for a maximum. This patch applies information from
loop guards to the expression used to compute the maximum backedge
taken count in howFarToZero. It currently replaces an unknown
expression X with UMin(X, Y), if the loop is guarded by
X ult Y.

This patch is minimal in what conditions it applies, and there
are a few TODOs to generalize.

This partly addresses PR40961. We will also need an update to
LV to address it completely.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D67178
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll (diff)
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp (diff)
The file was modifiedllvm/unittests/Analysis/ScalarEvolutionTest.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll (diff)
Commit 5bddaf6dbf77085863346d3171023e30972b7323 by grimar
[llvm-readobj] - Fix a warning.

In a post review comments for D88097 it was mentioned that code
triggers bunch of warnings of the form:

llvm/tools/llvm-readobj/ELFDumper.cpp:5299:28: warning: loop variable 'Note' is always a copy because
the range of type 'iterator_range<llvm::object::ELFFile<llvm::object::ELFType<llvm::support::big, true> >::Elf_Note_Iterator>'
(aka 'iterator_range<Elf_Note_Iterator_Impl<ELFType<(llvm::support::endianness)0U, true> > >') does not return a reference [-Wrange-loop-analysis]
      for (const Elf_Note &Note : this->Obj.notes(P, Err))

It happens because Elf_Note is always copied here:

Elf_Note_Impl<ELFT> operator*() const {
  assert(Nhdr && "dereferenced ELF note end iterator");
  return Elf_Note_Impl<ELFT>(*Nhdr);
}

This patch fixes the issue by removing a reference.
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit bb0597067d1e7410e67d8c7d8a4c0ec9e6b26cd0 by grimar
[llvm-readelf/obj] - Stop printing wrong addresses for arm32 unwind info for non-relocatable objects.

This is the first patch for https://bugs.llvm.org/show_bug.cgi?id=47581.

Currently -u does not compute function addresses correctly and
dumps broken addresses for non-relocatable objects.

ARM spec says:
"An index table entry consists of 2 words.
The first word contains a prel31 offset (see Relocations) to the start of a function, with bit 31 clear."
...
"The relocated 31 bits form a place-relative signed offset to the referenced entity.
For brevity, this document will refer to the results of these relocations as "prel31 offsets"."

(https://developer.arm.com/documentation/ihi0038/c/?lang=en#index-table-entries)
(https://developer.arm.com/documentation/ihi0038/c/?lang=en#relocations)

Currently we use an address of the SHT_ARM_EXIDX section instead of an address of an entry
in computations. As a result we compute an offset that is not really "place-relative",
but section relative, what is wrong.

The patch fixes this issue.

Differential revision: https://reviews.llvm.org/D88076
The file was addedllvm/test/tools/llvm-readobj/ELF/ARM/unwind-non-relocatable.test
The file was modifiedllvm/tools/llvm-readobj/ARMEHABIPrinter.h (diff)
Commit 590cc068c160f3b623d47fb34fd1d26848cb0e0a by sepavloff
Use different name for auto variable

Without this change GCC 5.4.0 failed to compile JSON.cpp with the error:

    .../llvm-project/llvm/lib/Support/JSON.cpp: In lambda function:
    .../llvm-project/llvm/lib/Support/JSON.cpp:291:29: error: use of 'V' before deduction of 'auto'
           for (const auto &V : *V.getAsArray())
The file was modifiedllvm/lib/Support/JSON.cpp (diff)
Commit a4e42601d44b39fb0b2782344f5ed4ea53de5f20 by james.henderson
[lld][ELF][test] Add a couple of test cases for LTO behaviour

This patch expands two LTO test cases to check other aspects.

1) weak.ll has been expanded to show that it doesn't matter whether the
   first appearance of a weak symbol appears in a bitcode file or native
   object - that one is picked.
2) reproduce-lto.ll has been expanded to show that the bitcode files are
   stored in the reproduce package and that intermediate files (such as
   the LTO-compiled object) are not.

Differential Revision: https://reviews.llvm.org/D88094

Reviewed by: grimar, MaskRay
The file was modifiedlld/test/ELF/reproduce-lto.s (diff)
The file was modifiedlld/test/ELF/lto/weak.ll (diff)

Summary

  1. clang-x86-ninja-win10 enabling LLD (details)
Commit b1195d9085987c09d9c1ada0b47122d6bfc00771 by kuhnel
clang-x86-ninja-win10 enabling LLD
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)