SuccessChanges

Summary

  1. [MemCpyOpt] Add additional call slot tests (NFC) (details)
  2. [SDAG] fold x * 0.0 at node creation time (details)
  3. [PowerPC] Add builtins for xvtdiv(dp|sp) and xvtsqrt(dp|sp). (details)
  4. [NFC][clang][codegen] Autogenerate a few ARM SVE tests that are being affected by an upcoming patch (details)
  5. [VPlan] Account for removed users in replaceAllUsesWith. (details)
  6. [VPlan] Add VPRecipeBase::toVPUser helper (NFC). (details)
  7. [X86] Consolidate wide Key Locker intrinsics into the same header as the other Key Locker intrinsics. (details)
  8. [X86] Synchronize the loadiwkey builtin operand order with gcc version. (details)
  9. [X86] Synchronize the encodekey builtins with gcc. Don't assume void* is 16 byte aligned. (details)
  10. [X86] Sync AESENC/DEC Key Locker builtins with gcc. (details)
  11. [gn build] Port 6c6cd5f8a97 (details)
  12. [SDA] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off builds (details)
  13. [X86] Remove an accidentally added file. NFC. (details)
  14. [MemCpyOpt] Don't use array allocas in tests (NFC) (details)
  15. Implement callee/caller type checking for llvm.call (details)
  16. [MemCpyOpt] Add tests for call slot optimization with GEPs (NFC) (details)
  17. llvm-dwarfdump: Skip tombstoned address ranges (details)
  18. [NFC][SCEV] Add a test with some patterns where we could treat inttoptr/ptrtoint as semi-transparent (details)
Commit 2c48dd7c3ac5f8a0287d1fc7455d45d755d664aa by nikita.ppv
[MemCpyOpt] Add additional call slot tests (NFC)

The case of a destination read between call and memcpy was not
covered anywhere (but is handled correctly).

However, a potentially throwing call between the call and the
memcpy appears to be miscompiled.
The file was addedllvm/test/Transforms/MemCpyOpt/callslot.ll
Commit 2ccbf3dbd5bac9d4fea8b67404b4c6b006d4adbe by spatel
[SDAG] fold x * 0.0 at node creation time

In the motivating case from https://llvm.org/PR47517
we create a node that does not get constant folded
before getNegatedExpression is attempted from some
other node, and we crash.

By moving the fold into SelectionDAG::simplifyFPBinop(),
we get the constant fold sooner and avoid the problem.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/fmul-combines.ll
The file was modifiedllvm/test/CodeGen/ARM/softfp-constant-comparison.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit e3475f5b91c8dc3142b90b2bb4a1884d6e8d8c2c by esme.yi
[PowerPC] Add builtins for xvtdiv(dp|sp) and xvtsqrt(dp|sp).

Summary: This patch implements the builtins for xvtdivdp, xvtdivsp, xvtsqrtdp, xvtsqrtsp.
The instructions correspond to the following builtins:
int vec_test_swdiv(vector double v1, vector double v2);
int vec_test_swdivs(vector float v1, vector float v2);
int vec_test_swsqrt(vector double v1);
int vec_test_swsqrts(vector float v1);
This patch depends on D88274, which fixes the bug in copying from CRRC to GPRC/G8RC.

Reviewed By: steven.zhang, amyk

Differential Revision: https://reviews.llvm.org/D88278
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedclang/test/CodeGen/builtins-ppc-vsx.c
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedllvm/test/CodeGen/PowerPC/vsx_builtins.ll
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
Commit aaae13d0c29ec2a20f93e6adb9d9b5c2656d2af6 by lebedev.ri
[NFC][clang][codegen] Autogenerate a few ARM SVE tests that are being affected by an upcoming patch
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c
Commit f5fe7abe8a8c8150b7b305bae963b429f15ea217 by flo
[VPlan] Account for removed users in replaceAllUsesWith.

Make sure we do not iterate using an invalid iterator.

Another small fix/step towards traversing the def-use chains in VPlan.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Commit 357bbaab666b212c5bfb65df80e76aace5367eff by flo
[VPlan] Add VPRecipeBase::toVPUser helper (NFC).

This adds a helper to convert a VPRecipeBase pointer to a VPUser, for
recipes that inherit from VPUser. Once VPRecipeBase directly inherits
from VPUser this helper can be removed.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit 6c6cd5f8a9750865800ce26bdeacd84533335db3 by craig.topper
[X86] Consolidate wide Key Locker intrinsics into the same header as the other Key Locker intrinsics.
The file was modifiedclang/lib/Headers/keylockerintrin.h
The file was modifiedclang/lib/Headers/immintrin.h
The file was modifiedclang/lib/Headers/CMakeLists.txt
The file was removedclang/lib/Headers/keylocker_wide_intrin.h
Commit 28595cbbeb2cc75584410b8b974f67ec99a853f2 by craig.topper
[X86] Synchronize the loadiwkey builtin operand order with gcc version.
The file was modifiedclang/lib/Headers/keylockerintrin.h
The file was modifiedclang/include/clang/Basic/BuiltinsX86.def
The file was modifiedllvm/test/CodeGen/X86/keylocker-intrinsics.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsX86.td
The file was modifiedllvm/lib/Target/X86/X86InstrKL.td
Commit 230c57b0bd8321085a5e0339baf37b509d5c76f6 by craig.topper
[X86] Synchronize the encodekey builtins with gcc. Don't assume void* is 16 byte aligned.

We were taking multiple pointer arguments in the builtin.
gcc accepts a single void*.

The cast from void* to _m128i* caused the IR generation to assume
the pointer was aligned.

Instead make the builtin take a single void*, emit i8* GEPs to
adjust then cast to <2 x i64>* and perform a store with align of 1.
The file was modifiedclang/include/clang/Basic/BuiltinsX86.def
The file was modifiedclang/lib/Headers/keylockerintrin.h
The file was modifiedclang/test/CodeGen/X86/keylocker.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was addedllvm/test/CodeGen/X86/keylocker-intrinsics-fast-isel.ll
Commit a02b449bb1556fe0f17b86eaa69f6bcda945d123 by craig.topper
[X86] Sync AESENC/DEC Key Locker builtins with gcc.

For the wide builtins, pass a single input and output pointer to
the builtins. Emit the GEPs and input loads from CGBuiltin.
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/X86/keylocker.c
The file was modifiedclang/lib/Headers/keylockerintrin.h
The file was modifiedllvm/test/CodeGen/X86/keylocker-intrinsics-fast-isel.ll
The file was modifiedclang/include/clang/Basic/BuiltinsX86.def
Commit 955b926b0b37ee3f56d32a90702cea9878eb9c78 by llvmgnsyncbot
[gn build] Port 6c6cd5f8a97
The file was modifiedllvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
Commit c36d441b6b64e412a975adb1401657870588563c by i
[SDA] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off builds
The file was modifiedllvm/lib/Analysis/SyncDependenceAnalysis.cpp
Commit b4288f278a254e597295001f7e544b680b54e61a by martin
[X86] Remove an accidentally added file. NFC.

This file seems to have been accidentally added as part of commit
413577a8790407d75ba834fa5668c2632fe1851e.
The file was removedllvm/lib/Target/X86/X86InstrInfo.td.rej
Commit 22664a325167086260aa2d1ff629686020f2b27d by nikita.ppv
[MemCpyOpt] Don't use array allocas in tests (NFC)

Apparently querying dereferenceability of array allocations is
being intentionally penalized (https://reviews.llvm.org/D41398),
so avoid using them in tests.
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
Commit f05173d0bfc268530afd9fb9622caf7f1db5f8d6 by joker.eph
Implement callee/caller type checking for llvm.call

This aligns the behavior with the standard call as well as the LLVM verifier.

Reviewed By: ftynse, dcaballe

Differential Revision: https://reviews.llvm.org/D88362
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
Commit 8aaa73134954b5e5ad51631665fd188f38ded75e by nikita.ppv
[MemCpyOpt] Add tests for call slot optimization with GEPs (NFC)
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
Commit 8036cf7f5402ea7fc8564a9a2beae512c324bf3d by dblaikie
llvm-dwarfdump: Skip tombstoned address ranges

Make the dumper & API a bit more informative by using the new tombstone
addresses to filter out or otherwise render more explicitly dead code
ranges.
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/Dwarf.h
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDie.cpp
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp
The file was addedllvm/test/tools/llvm-dwarfdump/X86/tombstone.s
Commit 80ac6da98e8fb88ed68308acc8e8689420a54f90 by lebedev.ri
[NFC][SCEV] Add a test with some patterns where we could treat inttoptr/ptrtoint as semi-transparent
The file was addedllvm/test/Analysis/ScalarEvolution/semi-transparent-inttoptr-ptrtoint-casts.ll