Changes

Summary

  1. [DAG] Create fptoui.sat from clamped fptosi (details)
  2. [JITLink][ELF][x86-64] Adjust addends for R_X86_64_PLT32 relocations. (details)
  3. [MemoryLocation] Use getForArgument in getForSource/getForDest. (NFC) (details)
Commit 57ff805a6da7a54434646af589455069459c667e by david.green
[DAG] Create fptoui.sat from clamped fptosi

As an extension to D111976, this converts clamp fptosi, clamped between
0 and (2^n)-1 to a fptoui.sat. This can greatly help on targets with
conversions that naturally saturate, such as Arm.

X86 disables the transform as some of the test cases increases in size.
A fptoui.sat necessitates a fp clamp without native support, so there is
little use in converting if the instruction is just going to be
expanded.

Differential Revision: https://reviews.llvm.org/D112428
The file was modifiedllvm/test/CodeGen/Thumb2/mve-fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/RISCV/fpclamptosat.ll
The file was modifiedllvm/test/CodeGen/ARM/fpclamptosat.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/WebAssembly/fpclamptosat_vec.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/fpclamptosat.ll
The file was modifiedllvm/test/CodeGen/AArch64/fpclamptosat.ll
Commit 21562c03ed17ce288a0de095e0f2ae4f452d3359 by Lang Hames
[JITLink][ELF][x86-64] Adjust addends for R_X86_64_PLT32 relocations.

R_X86_64_PLT32 explicitly represents the '-4' PC-adjustment in the relocation's
addend, but JITLink's x86_64::Branch32PCRel includes the PC-adjustment
implicitly. We have been zeroing the addend to account for the difference, but
this breaks for branches to non-zero offsets past labels. This patch updates the
relocation parsing code to unconditionally adjust the offset by '+4' instead.
For branches directly to labels the result is still 0, for branches to offsets
past labels the result is the correct addend for x86_64::Branch32PCRel.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
The file was modifiedllvm/test/ExecutionEngine/JITLink/X86/ELF_x86-64_small_pic_relocations.s
Commit 203f29b40ca3a248307ab75af04577f10173591f by flo
[MemoryLocation] Use getForArgument in getForSource/getForDest. (NFC)

getForArgument already knows how to extract a memory location for all
memory intrinsics. Use it instead of duplicating the logic.
The file was modifiedllvm/lib/Analysis/MemoryLocation.cpp