[all-commits] [llvm/llvm-project] 61f834: GlobalISel: Insert memcpy for outgoing byval argum...
Matt Arsenault via All-commits
all-commits at lists.llvm.org
Thu Mar 18 06:17:17 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 61f834cc0937c4532e5679f95b2a44d529a4d8bf
https://github.com/llvm/llvm-project/commit/61f834cc0937c4532e5679f95b2a44d529a4d8bf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2021-03-18 (Thu, 18 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
Log Message:
-----------
GlobalISel: Insert memcpy for outgoing byval arguments
byval requires an implicit copy between the caller and callee such
that the callee may write into the stack area without it modifying the
value in the parent. Previously, this was passing through the raw
pointer value which would break if the callee wrote into it.
Most of the time, this copy can be optimized out (however we don't
have the optimization SelectionDAG does yet).
This will trigger more fallbacks for AMDGPU now, since we don't have
legalization for memcpy yet (although we should stop using byval
anyway).
Commit: b9a03849836f6409291025a31089bfabfa96dd0b
https://github.com/llvm/llvm-project/commit/b9a03849836f6409291025a31089bfabfa96dd0b
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2021-03-18 (Thu, 18 Mar 2021)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
Log Message:
-----------
GlobalISel: Preserve source value information for outgoing byval args
Pass through the original argument IR value in order to preserve the
aliasing information in the memcpy memory operands.
Compare: https://github.com/llvm/llvm-project/compare/b3ced9852c7e...b9a03849836f
More information about the All-commits
mailing list