[PATCH] D41982: [mips] Reordering callseq* nodes to be linear
Aleksandar Beserminji via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 12 02:21:35 PST 2018
abeserminji created this revision.
abeserminji added reviewers: sdardis, petarj.
Herald added a subscriber: arichardson.
When calling a function and passing large argument by value, and when argument size is above certain threshold, memcpy is used to copy argument on stack instead of sequence of loads and stores. In that case callseq* nodes for memcpy are nested inside callseq* nodes for the called function. This patch corrects this behavior by moving callseq_start of the called function after arguments calculation to temporary registers, so that callseq* nodes in resulting DAG are linear.
This is a second try to fix this problem. Previously reverted here https://reviews.llvm.org/rL316215.
Repository:
rL LLVM
https://reviews.llvm.org/D41982
Files:
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsISelLowering.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41982.129588.patch
Type: text/x-patch
Size: 5995 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180112/e7a55468/attachment.bin>
More information about the llvm-commits
mailing list