SuccessChanges

Summary

  1. [AArch64RegisterInfo] Supress new warning (details)
  2. [X86] Add VPTERNLOG test cases where the root node will be X86ISD::ANDNP. NFC (details)
  3. [X86] Support matching VPTERNLOG when the root node is X86ISD::ANDNP. (details)
  4. [libcxx-fuzzing] Fixed bug found by -Wstring-concatenation (details)
  5. [Reduce] Rewrite function body delta pass again (details)
  6. [X86] Remove a DCI.isBeforeLegalize() call from combineVSelectWithAllOnesOrZeros. (details)
Commit c814eca3e4c625e24be47e66fbfd6567e8375750 by Dávid Bolvanský
[AArch64RegisterInfo] Supress new warning
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
Commit a599e1320c52ef8c429001da197e84c0485e9df8 by craig.topper
[X86] Add VPTERNLOG test cases where the root node will be X86ISD::ANDNP. NFC

We currently fail to match this.
The file was modifiedllvm/test/CodeGen/X86/avx512vl-logic.ll
Commit 966a58e329e012da157ac9d6883f8a99b694ed6c by craig.topper
[X86] Support matching VPTERNLOG when the root node is X86ISD::ANDNP.
The file was modifiedllvm/test/CodeGen/X86/avx512vl-logic.ll
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Commit 48887c4e81d47ebeaa6dc7888143cc51bd0ed7c5 by Dávid Bolvanský
[libcxx-fuzzing] Fixed bug found by -Wstring-concatenation
The file was modifiedlibcxx/test/libcxx/fuzzing/fuzzer_test.h
Commit d4c3f20285aded64e31a4faf6a5a9280352ff6af by lebedev.ri
[Reduce] Rewrite function body delta pass again

It is not enough to replace all uses of users of the function with undef,
the users, we only drop instruction users, so they may stick around.

Let's try different approach - first drop bodies for all the functions
we will drop, which should take care of blockaddress issue the previous
rewrite was dealing with; then, after dropping *all* such bodies,
replace remaining uses with undef (thus all the uses are either
outside of functions, or are in kept functions)
and then finally drop functions.

This seems to work, and passes the *existing* test coverage,
but it is possible that a new issue will be discovered later :)

A new (previously crashing) test added.
The file was addedllvm/test/Reduce/remove-function-bodies-used-in-globals.ll
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceFunctions.cpp
Commit d3153b5ca29b80d73af449727ca557eb6ccbd973 by craig.topper
[X86] Remove a DCI.isBeforeLegalize() call from combineVSelectWithAllOnesOrZeros.

This was blocking isTypeLegal call so that we could do a particular
transform on illegal types before type legalization. But the we
create a target specific node using that type. We shouldn't do
that if the type isn't legal. So I think we should just always
make sure the type is legal.

I suspect that in order to get the condition VT to not be a vector
of i1 we already completed type legalization anyway so this probably
doesn't matter much in practice.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp