SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. InstCombine: Add constant folding/simplify for amdgcn.ldexp intrinsic (details)
  2. [Target] Fix typos. NFC (details)
  3. [CMake] Fix typos. NFC (details)
  4. [PowerPC] Add missing handling for half precision (details)
  5. [PowerPC] Treat 'Z' inline asm constraint as a true memory constraint (details)
  6. [SLP] fix test to have valid IR; NFC (details)
  7. [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter. (details)
  8. [SLP] fix verification check for valid IR (details)
  9. [libc++] NFC: Inline array<T,N>::at methods inside the class (details)
  10. [TargetLowering] Move TargetLoweringBase::isJumpTableRelative() implementation into TargetLoweringBase.cpp. NFC. (details)
  11. TargetLowering.h - remove unnecessary includes. NFC. (details)
  12. Title: [LV] Handle Fold-Tail of loops with vectorizarion factor equal to 1 (details)
Commit 88c20fa3d2a25ea1319c78cb1173532511879cfc by Matthew.Arsenault
InstCombine: Add constant folding/simplify for amdgcn.ldexp intrinsic

This really belongs in InstructionSimplify since it doesn't introduce
new instructions. Put it in instcombine to avoid increasing the number
of passes considering target intrinsics.

I also noticed that we seem to now be interpreting strictfp attributes
on call sites, so try to handle that.
The file was addedllvm/test/Transforms/InstCombine/AMDGPU/ldexp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
Commit 9301e3aaca5986fd9517c6e35704a1619dc35694 by marek
[Target] Fix typos. NFC
The file was modifiedllvm/lib/Target/ARM/ARMAsmPrinter.cpp
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
Commit eddcce0814f96610be50a32569c3b42590e94adb by marek
[CMake] Fix typos. NFC
The file was modifiedllvm/tools/llvm-shlib/CMakeLists.txt
Commit 1a493b0fa556a07c728862c3c3f70bfd8683bef0 by nemanjai
[PowerPC] Add missing handling for half precision

The fix for PR39865 took care of some of the handling for half precision
but it missed a number of issues that still exist. This patch fixes the
remaining issues that cause crashes in the PPC back end.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=45776

Differential revision: https://reviews.llvm.org/D79283
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/scalar_vector_test_2.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
The file was modifiedllvm/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll
The file was modifiedllvm/test/CodeGen/PowerPC/handle-f16-storage-type.ll
Commit aede24ecaa08db806fb173faf2de9cff95df8cee by nemanja.i.ibm
[PowerPC] Treat 'Z' inline asm constraint as a true memory constraint

We currently emit incorrect codegen for this constraint because we set it as a
constraint that allows registers. This will cause the value to be copied to the
stack and that address to be passed as the address. This is not what we want.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=42762

Differential revision: https://reviews.llvm.org/D77542
The file was modifiedclang/lib/Basic/Targets/PPC.h
The file was modifiedclang/test/CodeGen/ppc64-inline-asm.c
Commit 880df559f9dc4fca6c8c8cfb6676a95a6c3c9ca5 by spatel
[SLP] fix test to have valid IR; NFC

This test was failing verification because the
metadata is ill-formed. This commit is split
from D80401 because it is an independent fix
(although the test would break with that change).
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_scheduling.ll
Commit 99b94f29ac5dbbce0585d16f631359a66f279ea4 by Artem Dergachev
[analyzer] LoopUnrolling: fix crash when a parameter is a loop counter.

When loop counter is a function parameter "isPossiblyEscaped" will not find
the variable declaration which lead to hitting "llvm_unreachable".
Parameters of reference type should be escaped like global variables;
otherwise treat them as unescaped.

Patch by Abbas Sabra!

Differential Revision: https://reviews.llvm.org/D80171
The file was modifiedclang/test/Analysis/loop-unrolling.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
Commit 21f7cf4057b75ac3bc46597415499dd0fc214e97 by spatel
[SLP] fix verification check for valid IR

This is a fix for PR45965 - https://bugs.llvm.org/show_bug.cgi?id=45965 -
which was left out of D80106 because of a test failure.

SLP does its own mini-CSE after potentially creating redundant instructions,
so we need to wait for that to complete before running the verifier.
Otherwise, we will see a test failure for
test/Transforms/SLPVectorizer/X86/crash_vectorizeTree.ll (not changed here)
because a phi temporarily has identical but different incoming values for
the same incoming block.

A related, but independent, test that would have been altered here was
fixed with:
rG880df55

The test was escaping verification in SLP without this change because we
were not running verifyFunction() unless SLP actually changed the IR.

Differential Revision: https://reviews.llvm.org/D80401
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 0161874c04645cbcb8c69af38a571b9fba84cd48 by Louis Dionne
[libc++] NFC: Inline array<T,N>::at methods inside the class

All other methods are defined in the class, so this increases consistency.
The file was modifiedlibcxx/include/array
Commit d4c0a082a48236df427e3244212aea50887b2e9f by llvm-dev
[TargetLowering] Move TargetLoweringBase::isJumpTableRelative() implementation into TargetLoweringBase.cpp. NFC.

This will help with reducing header dependencies in TargetLowering.h in a future patch.
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
Commit 4ed909bb5b59ba8460cd64217e600c4c8c4acf63 by llvm-dev
TargetLowering.h - remove unnecessary includes. NFC.

Replace with forward declarations and move SizeOpts.h down to TargetLoweringBase.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
Commit 13bf6039c9ae959598e8c117c3d8c5a72303fd2b by anhtuyen
Title: [LV] Handle Fold-Tail of loops with vectorizarion factor equal to 1

Summary:
When handling loops whose VF is 1, fold-tail vectorization sets the
backedge taken count of the original loop with a vector of a single
element. This causes type-mismatch during instruction generartion.

The purpose of this patch is toto address the case of VF==1.

Reviewer: Ayal (Ayal Zaks), bmahjour (Bardia Mahjour), fhahn (Florian Hahn), gilr (Gil Rapaport), rengolin (Renato Golin)

Reviewed By: Ayal (Ayal Zaks), bmahjour (Bardia Mahjour), fhahn (Florian Hahn)

Subscribers: Ayal (Ayal Zaks), rkruppe (Hanna Kruppe), bmahjour (Bardia Mahjour), rogfer01 (Roger Ferrer Ibanez), vkmr (Vineet Kumar), bollu (Siddharth Bhat), hiraditya (Aditya Kumar), llvm-commits (Mailing List llvm-commits)

Tag: LLVM

Differential Revision: https://reviews.llvm.org/D79976
The file was addedllvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp