SuccessChanges

Summary

  1. [llvm-readelf/obj] - Cleanup the interface of `DumpStyle`. NFCI. (details)
  2. [SCCP] Do not replace deref'able ptr with un-deref'able one. (details)
  3. Revert "[SCCP] Do not replace deref'able ptr with un-deref'able one." (details)
  4. [clang][aarch64] Drop experimental from  __ARM_FEATURE_SVE_BITS macro (details)
  5. Revert "Adding GDB PrettyPrinter for mlir::Identifier." (details)
Commit 3a204318c6cd6a6b54081e58ced012e2ec120cc9 by grimar
[llvm-readelf/obj] - Cleanup the interface of `DumpStyle`. NFCI.

We have 2 DumpStyles currently:
`class GNUStyle : public DumpStyle<ELFT>` and `class LLVMStyle : public DumpStyle<ELFT>`.

The problem of `DumpStyle` interface is that almost for each method
we provide `const ELFFile<ELFT> *` as argument. But in fact each of
dump styles keeps `ELFDumper<ELFT> *Dumper` which can be used to get an object from.

But since we use the `Obj` too often, I've decided to introduce a one more reference member
instead of reading it from the `Dumper` each time:
`const ELFFile<ELFT> &Obj;` This is kind of similar to `FileName` member which we have already:
it is also used to store a the file name which can be read from `Dumper->getElfObject()->getFileName()`.

I had to adjust the code which previously worked with a pointer to an object
and now works with a reference.

In a follow-up I am going to try to get rid of `const ELFObjectFile<ELFT>` arguments
which are still passed to a set of functions.

Differential revision: https://reviews.llvm.org/D87040
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
Commit 3542feeb2077f267bff1ab98fb4bf20099f44bb8 by flo
[SCCP] Do not replace deref'able ptr with un-deref'able one.

Currently IPSCCP (and others like CVP/GVN) blindly propagate pointer
equalities. In certain cases, that leads to dereferenceable pointers
being replaced, as in the example test case.

I think this is not allowed, as it introduces an access of an
un-dereferenceable pointer. Note that the pointer is inbounds, but one
past the last element, so it is valid, but not dereferenceable.

This patch is mostly to highlight the issue and start a discussion.
Currently it only checks for specifically looking
one-past-the-last-element pointers with array typed bases.

This causes the mis-compile outlined in
https://stackoverflow.com/questions/55754313/is-this-gcc-clang-past-one-pointer-comparison-behavior-conforming-or-non-standar

In the test case, if we replace %p with the GEP for the store, we
subsequently determine that the store and the load cannot alias, because
they are to different underlying objects.

Note that Alive2 seems to think that the replacement is valid:
https://alive2.llvm.org/ce/z/2rorhk

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D85332
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp (diff)
The file was modifiedllvm/test/Transforms/SCCP/indirectbr.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/apint-bigint2.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/replace-dereferenceable-ptr-with-undereferenceable.ll (diff)
Commit 4c5e4aa89b11ec3253258b8df5125833773d1b1e by flo
Revert "[SCCP] Do not replace deref'able ptr with un-deref'able one."

This reverts commit 3542feeb2077f267bff1ab98fb4bf20099f44bb8.

This seems to be causing issues with a sanitizer build
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/21677
The file was modifiedllvm/test/Transforms/SCCP/indirectbr.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp (diff)
The file was modifiedllvm/test/Transforms/SCCP/apint-bigint2.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/replace-dereferenceable-ptr-with-undereferenceable.ll (diff)
Commit f9091e56d34fc1a14fe4640b95a691d9ac7afcc4 by cullen.rhodes
[clang][aarch64] Drop experimental from  __ARM_FEATURE_SVE_BITS macro

The __ARM_FEATURE_SVE_BITS feature macro is specified in the Arm C
Language Extensions (ACLE) for SVE [1] (version 00bet5). From the spec,
where __ARM_FEATURE_SVE_BITS==N:

    When N is nonzero, indicates that the implementation is generating
    code for an N-bit SVE target and that the arm_sve_vector_bits(N)
    attribute is available.

This was defined in D83550 as __ARM_FEATURE_SVE_BITS_EXPERIMENTAL and
enabled under the -msve-vector-bits flag to simplify initial tests.
This patch drops _EXPERIMENTAL now there is support for the feature.

[1] https://developer.arm.com/documentation/100987/latest

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D86720
The file was modifiedclang/include/clang/Basic/AttrDocs.td (diff)
The file was modifiedclang/test/Preprocessor/aarch64-target-features.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-globals.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-types.c (diff)
The file was modifiedclang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c (diff)
The file was modifiedclang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/AArch64.cpp (diff)
The file was modifiedclang/test/Sema/attr-arm-sve-vector-bits.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c (diff)
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c (diff)
The file was modifiedclang/test/SemaCXX/attr-arm-sve-vector-bits.cpp (diff)
Commit 485e6db8729383345da9796218d99843449057ac by orlando.hyams
Revert "Adding GDB PrettyPrinter for mlir::Identifier."

This reverts commit 9e9e6e698d8ef5dc5b7576058f2022aab2534a52.

This commit is causing builds that include the 'debuginfo-tests' project to
fail.

Apple has a public bot which shows the failure:
http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/23667/console
The file was modifieddebuginfo-tests/CMakeLists.txt (diff)
The file was modifieddebuginfo-tests/lit.cfg.py (diff)
The file was modifieddebuginfo-tests/lit.site.cfg.py.in (diff)
The file was removedmlir/utils/gdb-scripts/prettyprinters.py
The file was removeddebuginfo-tests/llvm-prettyprinters/gdb/mlir-support.gdb
The file was removeddebuginfo-tests/llvm-prettyprinters/gdb/mlir-support.cpp