When passing a huge parameter using the byval mechanism, a long
authorDuncan Sands <baldrick@free.fr>
Thu, 4 Nov 2010 21:16:46 +0000 (21:16 +0000)
committerDuncan Sands <baldrick@free.fr>
Thu, 4 Nov 2010 21:16:46 +0000 (21:16 +0000)
commit1e92ec688624d17b552c88afc956f61da4948cbb
treed57525ff5824f627b43923e2d7f3a21c77349598
parent42c9b2555407a8aae2d81bf820dc95d16f4993c5
When passing a huge parameter using the byval mechanism, a long
sequence of loads and stores was being generated to perform the
copy on the x86 targets if the parameter was less than 4 byte
aligned, causing llc to use up vast amounts of memory and time.
Use a "rep movs" form instead.  PR7170.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118260 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86SelectionDAGInfo.cpp
test/CodeGen/Generic/2010-11-04-BigByval.ll [new file with mode: 0644]