Changes

Summary

  1. [VPlan] Mark overriden function in VPWidenPHIRecipe as virtual. (details)
  2. Revert "[VPlan] Add VPReductionPHIRecipe (NFC)." and follow-ups (details)
  3. [hwasan] Fix incorrect candidate matching for stack OOB. (details)
  4. [CodeGen][AArch64][SVE] Use ld1r[bhsd] for vector splat from memory (details)
  5. [LV] Prevent vectorization with unsupported element types. (details)
  6. [runtimes] Move enable_32bit to the DSL (details)
  7. Revert "[profile][test] Improve coverage-linkage.cpp" (details)
  8. [CostModel][X86] i8/i16 sitofp/uitofp are sext/zext to i32 for sitofp (details)
  9. Recommit "[VPlan] Add VPReductionPHIRecipe (NFC)." and follow-ups. (details)
  10. [libc++] NFC: Move the status docs to their own subdirectory (details)
Commit 3fed6d443f802c43aade1b5b1b09f5e2f8b3edb1 by flo
[VPlan] Mark overriden function in VPWidenPHIRecipe as virtual.

VPReductionRecipe overrides those implementations. Mark them as virtual
in the VPWidenPHIRecipe to unbreak build in certain configurations.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit 706bbfb35bd31051e46ac77aab3e9b2dbc3abe78 by flo
Revert "[VPlan] Add VPReductionPHIRecipe (NFC)." and follow-ups

This reverts commit 3fed6d443f802c43aade1b5b1b09f5e2f8b3edb1,
bbcbf21ae60c928e07dde6a1c468763b3209d1e6 and
6c3451cd76cbd0cd973d9c2b08b168dcd0bce3c2.

The changes causing build failures with certain configurations, e.g.
https://lab.llvm.org/buildbot/#/builders/67/builds/3365/steps/6/logs/stdio

    lib/libLLVMVectorize.a(LoopVectorize.cpp.o): In function `llvm::VPRecipeBuilder::tryToCreateWidenRecipe(llvm::Instruction*, llvm::ArrayRef<llvm::VPValue*>, llvm::VFRange&, std::unique_ptr<llvm::VPlan, std::default_delete<llvm::VPlan> >&) [clone .localalias.8]':
    LoopVectorize.cpp:(.text._ZN4llvm15VPRecipeBuilder22tryToCreateWidenRecipeEPNS_11InstructionENS_8ArrayRefIPNS_7VPValueEEERNS_7VFRangeERSt10unique_ptrINS_5VPlanESt14default_deleteISA_EE+0x63b): undefined reference to `vtable for llvm::VPReductionPHIRecipe'
    collect2: error: ld returned 1 exit status
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit 745758acf3c295e3bf9f9dd283a3568c912a1827 by fmayer
[hwasan] Fix incorrect candidate matching for stack OOB.

We would find an address with matching tag, only to discover in
ShowCandidate that it's very far away from [stack].

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D105197
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp
The file was modifiedcompiler-rt/test/hwasan/TestCases/stack-oob.c
Commit c5dfee44b983d7a96f2c1a234f83abf41c7e2443 by peter.waller
[CodeGen][AArch64][SVE] Use ld1r[bhsd] for vector splat from memory

This avoids the use of the vector unit for copying from scalar to
vector. There is an extra ptrue instruction, but a predicate register
with the ptrue pattern populated is likely to be free in the context of
real code.

Tests were generated from a template to cover the axes mentioned at the
top of the test file.

Co-authored-by: Francesco Petrogalli <francesco.petrogalli@arm.com>

Differential Revision: https://reviews.llvm.org/D103170
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-vector-splat.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-ld-post-inc.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was addedllvm/test/CodeGen/AArch64/sve-ld1r.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrFormats.td
The file was addedllvm/test/CodeGen/AArch64/sve-ld1r.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
Commit a7512401e5a2cc7a1d0805fc4daf0c808e9d502d by kerry.mclaughlin
[LV] Prevent vectorization with unsupported element types.

This patch adds a TTI function, isElementTypeLegalForScalableVector, to query
whether it is possible to vectorize a given element type. This is called by
isLegalToVectorizeInstTypesForScalable to reject scalable vectorization if
any of the instruction types in the loop are unsupported, e.g:

  int foo(__int128_t* ptr, int N)
    #pragma clang loop vectorize_width(4, scalable)
    for (int i=0; i<N; ++i)
      ptr[i] = ptr[i] + 42;

This example currently crashes if we attempt to vectorize since i128 is not a
supported type for scalable vectorization.

Reviewed By: sdesmalen, david-arm

Differential Revision: https://reviews.llvm.org/D102253
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was addedllvm/test/Transforms/LoopVectorize/AArch64/sve-illegal-type.ll
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
Commit f7d8754312bf3d10fb902d94f2bc84e3adf12ba4 by Louis Dionne
[runtimes] Move enable_32bit to the DSL

This is necessary for from-scratch configurations to support the 32-bit
mode of the test suite.

Differential Revision: https://reviews.llvm.org/D105435
The file was modifiedlibcxx/test/configs/legacy.cfg.in
The file was modifiedlibcxx/utils/libcxx/test/config.py
The file was modifiedlibcxx/test/CMakeLists.txt
The file was modifiedlibunwind/test/CMakeLists.txt
The file was modifiedlibunwind/test/lit.site.cfg.in
The file was modifiedlibcxxabi/test/lit.site.cfg.in
The file was modifiedlibcxx/utils/libcxx/test/params.py
The file was modifiedlibcxxabi/test/CMakeLists.txt
Commit f814cd7406aa13e082fdf6fe8296178a77735a5a by thakis
Revert "[profile][test] Improve coverage-linkage.cpp"

This reverts commit 36ba86fe8a29cdf3251b786db7f342efde666cb2.
Fails on some bots, see comments on
https://reviews.llvm.org/rG36ba86fe8a29cdf3251b786db7f342efde666cb2
The file was modifiedcompiler-rt/test/profile/Linux/coverage-linkage.cpp
Commit 6f3f9535fcafcde11d3b3ef72fdc0f357813e9da by llvm-dev
[CostModel][X86] i8/i16 sitofp/uitofp are sext/zext to i32 for sitofp

Provide a generic fallback that extends sub-i32 scalars before using the existing sitofp instructions.

These numbers can be tweaked for specific sse levels, but we should get the default handling in place first.

We get the extension for free for non-vector loads.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/uitofp.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/sitofp.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/sitofp-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/sitofp.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/uitofp.ll
Commit ef0d147cdcaf170de80ca6bb0208a2a519fbf083 by flo
Recommit "[VPlan] Add VPReductionPHIRecipe (NFC)." and follow-ups.

This reverts commit 706bbfb35bd31051e46ac77aab3e9b2dbc3abe78.

The committed version moves the definition of VPReductionPHIRecipe out
of an ifdef only intended for ::print helpers. This should resolve the
build failures that caused the revert
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit cf005c4c5061ed34b2bd21ae104923c28b8a1b04 by Louis Dionne
[libc++] NFC: Move the status docs to their own subdirectory

This cleans up the libcxx/doc directory quite a bit and will avoid the
proliferation of status files in that directory as new standards are voted.
The file was removedlibcxx/docs/Cxx1yStatusPaperStatus.csv
The file was addedlibcxx/docs/Status/Cxx17Issues.csv
The file was removedlibcxx/docs/RangesStatus.rst
The file was removedlibcxx/docs/RangesIssuePaperStatus.csv
The file was addedlibcxx/docs/Status/Cxx17.rst
The file was removedlibcxx/docs/Cxx2aStatusIssuesStatus.csv
The file was removedlibcxx/docs/Cxx2bStatusPaperStatus.csv
The file was removedlibcxx/docs/Cxx2aStatusPaperStatus.csv
The file was removedlibcxx/docs/FormatIssuePaperStatus.csv
The file was addedlibcxx/docs/Status/Format.rst
The file was addedlibcxx/docs/Status/Cxx2b.rst
The file was removedlibcxx/docs/Cxx1yStatus.rst
The file was removedlibcxx/docs/FormatProposalStatus.csv
The file was addedlibcxx/docs/Status/Cxx14Papers.csv
The file was removedlibcxx/docs/FormatStatus.rst
The file was removedlibcxx/docs/Cxx1zStatus.rst
The file was addedlibcxx/docs/Status/Cxx20Papers.csv
The file was addedlibcxx/docs/Status/FormatPaper.csv
The file was removedlibcxx/docs/Cxx2bStatusIssuesStatus.csv
The file was addedlibcxx/docs/Status/Cxx17Papers.csv
The file was removedlibcxx/docs/Cxx1zStatusPaperStatus.csv
The file was removedlibcxx/docs/OneRangesProposalStatus.csv
The file was removedlibcxx/docs/Cxx1zStatusIssuesStatus.csv
The file was modifiedlibcxx/docs/index.rst
The file was addedlibcxx/docs/Status/Cxx20Issues.csv
The file was removedlibcxx/docs/Cxx2bStatus.rst
The file was addedlibcxx/docs/Status/Cxx2bPapers.csv
The file was removedlibcxx/docs/Cxx1yStatusIssuesStatus.csv
The file was addedlibcxx/docs/Status/Cxx2bIssues.csv
The file was addedlibcxx/docs/Status/Ranges.rst
The file was addedlibcxx/docs/Status/Cxx14.rst
The file was addedlibcxx/docs/Status/RangesPaper.csv
The file was addedlibcxx/docs/Status/Cxx14Issues.csv
The file was removedlibcxx/docs/Cxx2aStatus.rst
The file was addedlibcxx/docs/Status/RangesIssues.csv
The file was addedlibcxx/docs/Status/FormatIssues.csv
The file was addedlibcxx/docs/Status/Cxx20.rst