SuccessChanges

Summary

  1. [PowerPC] Parse and ignore .machine (details)
  2. [SimplifyCFG] FoldBranchToCommonDest: gracefully handle unreachable code () (details)
  3. [IR] Make Value::getType() work better with invalid IR. (details)
  4. [InstSimplify] add tests for ctpop; NFC (PR48608) (details)
  5. [InstSimplify] remove ctpop of 1 (low) bit (details)
Commit f931290308abd0eebecae385cd32ca3a25ddd9be by i
[PowerPC] Parse and ignore .machine

glibc/sysdeps/powerpc/powerpc64 has .machine
{altivec,power4,power5,power6,power7,power8} (.machine power9 is planned in
sysdeps/powerpc/powerpc64/power9/strcmp.S).
The diagnostic is not useful anyway so just delete it.
The file was modifiedllvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
The file was modifiedllvm/test/MC/PowerPC/ppc-machine.s
Commit ef93f7a11c347534ac768ec8bbbed64cd20c41d2 by lebedev.ri
[SimplifyCFG] FoldBranchToCommonDest: gracefully handle unreachable code ()

We might be dealing with an unreachable code,
so the bonus instruction we clone might be self-referencing.

There is a sanity check that all uses of bonus instructions
that are not in the original block with said bonus instructions
are PHI nodes, and that is obviously not the case
for self-referencing instructions..

So if we find such an use, just rewrite it.

Thanks to Mikael Holmén for the reproducer!

Fixes https://bugs.llvm.org/show_bug.cgi?id=48450#c8
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
Commit 87c032f7b449cee97751d86739e249738029bf63 by clattner
[IR] Make Value::getType() work better with invalid IR.

The asmprinter would crash when dumping IR objects that had their
operands dropped.  With this change, we now get this output, which
makes op->dump() style debugging more useful.

%5 = "firrtl.eq"(<<NULL>>, <<NULL>>) : (<<NULL TYPE>>, <<NULL TYPE>>) -> !firrtl.uint<1>

Previously the asmprinter would crash getting the types of the null operands.

Differential Revision: https://reviews.llvm.org/D93869
The file was modifiedmlir/lib/IR/Value.cpp
Commit 1351f719d49642f7f1254d13e90d8d3a2824dcde by spatel
[InstSimplify] add tests for ctpop; NFC (PR48608)
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll
Commit 236c4524a7cd3051a150690b4f4f55f496e7e248 by spatel
[InstSimplify] remove ctpop of 1 (low) bit

https://llvm.org/PR48608

As noted in the test comment, we could handle a more general
case in instcombine and remove this, but I don't have evidence
that we need to do that.

https://alive2.llvm.org/ce/z/MRW9gD
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstCombine/ctpop.ll
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll