FailedChanges

Summary

  1. [ASTMatchers] extract public matchers from const-analysis into own patch (details)
  2. [CodeGen][typeid] Emit typeinfo directly if type is known at compile-time (details)
  3. [PowerPC] Implement __int128 vector divide operations (details)
  4. [AArch64][SVE] Add lowering for llvm fsqrt (details)
  5. [clang] Add a command line flag for the Machine Function Splitter. (details)
  6. InferAddressSpaces: Fix assert with unreachable code (details)
  7. [TableGen] Fix invalid comparison function `SizeOrder` in `getMatchingSubClassWithSubRegs` (details)
Commit 69f98311ca42127df92527b6fc3be99841a15f12 by development
[ASTMatchers] extract public matchers from const-analysis into own patch

The analysis for const-ness of local variables required a view generally useful
matchers that are extracted into its own patch.

They are decompositionDecl and forEachArgumentWithParamType, that works
for calls through function pointers as well.

This is a reupload of https://reviews.llvm.org/D72505, that already landed,
but had to be reverted due to a GCC crash on powerpc
(https://reviews.llvm.org/rG4c48ea68e491cb42f1b5d43ffba89f6a7f0dadc4)

Because this took a long time to adress, i decided to redo this patch and
have a clean workflow.
I try to coordinate with someone that has a PPC to apply this patch and
test for the crash. If everything is fine, I intend to just commit.
If the crash is still happening, i hope to at least find the cause.

Differential Revision: https://reviews.llvm.org/D87588
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp (diff)
The file was modifiedclang/docs/LibASTMatchersReference.html (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h (diff)
Commit f975ae4867d1fdfaba11a3ec7e479da8fbfd82d8 by zequanwu
[CodeGen][typeid] Emit typeinfo directly if type is known at compile-time

Differential Revision: https://reviews.llvm.org/D87425
The file was modifiedclang/include/clang/AST/ExprCXX.h (diff)
The file was modifiedclang/lib/AST/ExprCXX.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGExprCXX.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-typeid.cpp (diff)
Commit 05aa997d511eed530305e2f3aa401584d0691186 by conanap
[PowerPC] Implement __int128 vector divide operations

This patch implements __int128 vector divide operations for ISA3.1.

Differential Revision: https://reviews.llvm.org/D85453
The file was modifiedclang/lib/Headers/altivec.h (diff)
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/p10-vector-divide.ll (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
Commit d417488ef5a6cd1089900defcd6d5ae5a1d47fd4 by dancgr
[AArch64][SVE] Add lowering for llvm fsqrt

Add the functionality to lower fsqrt for passthru variant

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D87707
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/AArch64/sve-fp.ll (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
Commit f1a3ab904439a63b21ba1c4521765c46630687c6 by snehasishk
[clang] Add a command line flag for the Machine Function Splitter.

This patch adds a command line flag for the machine function splitter
(added in rG94faadaca4e1).

-fsplit-machine-functions
Split machine functions using profile information (x86 ELF). On
other targets an error is emitted. If profile information is not
provided a warning is emitted notifying the user that profile
information is required.

Differential Revision: https://reviews.llvm.org/D87047
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp (diff)
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def (diff)
The file was addedclang/test/Driver/fsplit-machine-functions.c
Commit 7d6ca2ec57073b9eabe6808ff1fe0560586c5ffb by Matthew.Arsenault
InferAddressSpaces: Fix assert with unreachable code

Invalid IR in unreachable code is technically valid IR. In this case,
the address space of the value was never inferred, and we tried to
rewrite it with an invalid address space value which would assert.
The file was addedllvm/test/Transforms/InferAddressSpaces/AMDGPU/unreachable-code-assert.ll
The file was addedllvm/test/Transforms/InferAddressSpaces/AMDGPU/self-phi.ll
The file was modifiedllvm/lib/Transforms/Scalar/InferAddressSpaces.cpp (diff)
Commit 38ecd6161993ea9632efe0c0bf304bf6c2dee98f by Matthew.Arsenault
[TableGen] Fix invalid comparison function `SizeOrder` in `getMatchingSubClassWithSubRegs`

Building LLVM with -DEXPENSIVE_CHECKS fails with the following error
message with libstdc++ in debug mode:

Error: comparison doesn't meet irreflexive requirements,
assert(!(a < a)).

The patch fixes the comparison function SizeOrder by returning false
when comparing two equal items.
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp (diff)