SuccessChanges

Summary

  1. [Doc] Fix example in codegen doc. (details)
  2. [NFC]Migrate VectorCombine.cpp to use InstructionCost (details)
  3. [InferAttrs] Mark some library functions as willreturn. (details)
  4. [PowerPC][AIX]Do not emit xxspltd mnemonic on AIX. (details)
  5. [CSInfo][MIPS] Update CSInfo in delay slot filler (details)
Commit 9399681a57cef143dc4d087706947a03af819ef5 by kai
[Doc] Fix example in codegen doc.

The attributes in the example are placed wrong:
They belong after the type, not after the parameter name.

Reviewed by: abhina.sreeskantharajan

Differential Revision: https://reviews.llvm.org/D94683
The file was modifiedllvm/docs/CodeGenerator.rst
Commit 36710c38c1b741ff9cc70060893d53fc24c07833 by caroline.concatto
[NFC]Migrate VectorCombine.cpp to use InstructionCost

This patch changes these functions:
vectorizeLoadInsert
isExtractExtractCheap
foldExtractedCmps
scalarizeBinopOrCmp
getShuffleExtract
foldBitcastShuf
to use the class InstructionCost when calling TTI.get<something>Cost().

This patch is part of a series of patches to use InstructionCost instead of
unsigned/int for the cost model functions.
See this thread for context:
    http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
See this patch for the introduction of the type:
    https://reviews.llvm.org/D91174

ps.:This patch adds the test || !NewCost.isValid(), because we want to
return false when:
!NewCost.isValid && !OldCost.isValid()->the cost to transform it expensive
and
!NewCost.isValid() && OldCost.isValid()
Therefore for simplication we only add  test for !NewCost.isValid()

Differential Revision: https://reviews.llvm.org/D94069
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
Commit e6d758de82b6f93f81e71617aeb5a37e57d6ada9 by flo
[InferAttrs] Mark some library functions as willreturn.

This patch marks some library functions as willreturn. On the first pass, I
excluded most functions that interact with streams/the filesystem.

Along with willreturn, it also adds nounwind to a set of math functions.
There probably are a few additional attributes we can add for those, but
that should be done separately.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D94684
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
The file was modifiedllvm/test/Transforms/LICM/strlen.ll
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
Commit ead71a23edde5f8a1acfdd75bd01f1fa6e0c4014 by sd.fertile
[PowerPC][AIX]Do not emit xxspltd mnemonic on AIX.

A bug in the system assembler can assemble the xxspltd extended
menemonic into the wrong instruction (extracting the wrong element).
Emit the full xxpermdi with all operands to work around the problem.

Differential Revision: https://reviews.llvm.org/D94419
The file was modifiedllvm/test/MC/PowerPC/modern-aix-as.s
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
The file was addedllvm/test/CodeGen/PowerPC/xxpermdi_mnemonics.s
Commit 2040c1110b661caae7999abc0158a7f57a6400fb by djolertrk
[CSInfo][MIPS] Update CSInfo in delay slot filler

In MipsDelaySlotFiller, when replacing old call-branch with
the compact branch instruction, an assertion is caused by erasing
the old call with unhandled CSInfo.
The problem was reported in PR48695.
This patch fixes it, by moving call site info from the old call
instruction to its replace.

Patch by Nikola Tesic

Differential revision: https://reviews.llvm.org/D94685
The file was addedllvm/test/DebugInfo/MIR/Mips/call-site-info-update-delay-slot-filler.mir
The file was modifiedllvm/lib/Target/Mips/MipsDelaySlotFiller.cpp