SuccessChanges

Summary

  1. [flang] Fix bugs in .mod file for abstract interface (details)
  2. [MIRPrinter] Fix incorrect output of unnamed stack names (details)
  3. [InstCombine] 'hoist xor-by-constant from xor-by-value': ignore constantexprs (details)
  4. [TableGen] Fix bug in !interleave operator (details)
  5. Revert "[benchmark] Fixed a build error when using CMake 3.15.1 + NDK-R20" (details)
Commit d55627d221be8154cbdf454fa727afcc3f716b08 by tkeith
[flang] Fix bugs in .mod file for abstract interface

When an abstract interface is defined, add the ABSTRACT attribute to
subprogram symbols that define the interface body. Make use of that
when writing .mod files to include "abstract" on the interface statement.

Also, fix a problem with the order of symbols in a .mod file. Sometimes
a name is mentioned before the "real" declaration, e.g. in an access
statement. We want the order to be based on the real definitions. In
these cases we replace the symbol name with an identical name with a
different source location. Then by sorting based on the source location
we get symbols in the right order.

Differential Revision: https://reviews.llvm.org/D93572
The file was modifiedflang/test/Semantics/procinterface01.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/lib/Semantics/mod-file.cpp
The file was modifiedflang/test/Semantics/modfile10.f90
The file was modifiedflang/test/Semantics/symbol15.f90
Commit b9a7c89d4322b261b65eb96d678a9d38b776cb60 by mikael.holmen
[MIRPrinter] Fix incorrect output of unnamed stack names

The MIRParser expects unnamed stack entries to have empty names ('').
In case of unnamed alloca instructions, the MIRPrinter would output
'<unnamed alloca>', which caused the MIRParser to reject the generated
code.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D93685
The file was modifiedllvm/lib/CodeGen/MIRPrinter.cpp
The file was addedllvm/test/CodeGen/MIR/AArch64/unnamed-stack.ll
The file was modifiedllvm/test/CodeGen/PowerPC/alloca-crspill.ll
Commit d4ccef38d0bbcd70f56d586b4dfc988db863e388 by lebedev.ri
[InstCombine] 'hoist xor-by-constant from xor-by-value': ignore constantexprs

As it is being reported (in post-commit review) in
https://reviews.llvm.org/D93857
this fold (as i expected, but failed to come up with test coverage
despite trying) has issues with constant expressions.
Since we only care about true constants, which constantexprs are not,
don't perform such hoisting for constant expressions.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/hoist-xor-by-constant-from-xor-by-value.ll
Commit 4820af99ddc3271198ecccce4fdd867dc65b11f5 by paul
[TableGen] Fix bug in !interleave operator

I forgot to account for unresolved elements of the list.

Differential Revision: https://reviews.llvm.org/D93814
The file was modifiedllvm/lib/TableGen/Record.cpp
The file was modifiedllvm/test/TableGen/interleave.td
Commit 38bfa25387f4d1292c12a574df6b3cd0f3c212d6 by lebedev.ri
Revert "[benchmark] Fixed a build error when using CMake 3.15.1 + NDK-R20"

Temporairly revert until a consensus on post-commit comments is achieved.

This reverts commit a485a59d2172daaee1d5e734da54fbb243f7d54c.
The file was modifiedllvm/utils/benchmark/include/benchmark/benchmark.h