mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 13:06:18 +02:00
* call g_concatcopy() from a_load_ref_ref() if the size of the to be copied
data is big, because large load/store operations result in very slow code (and takes forever to generate by llc) git-svn-id: trunk@34135 -
This commit is contained in:
parent
88a736c95a
commit
c05fa52775
@ -810,6 +810,11 @@ implementation
|
|||||||
sdref:=make_simple_ref(list,dref,tosize);
|
sdref:=make_simple_ref(list,dref,tosize);
|
||||||
list.concat(taillvm.op_size_ref_size_ref(la_store,fromsize,sref,cpointerdef.getreusable(tosize),sdref));
|
list.concat(taillvm.op_size_ref_size_ref(la_store,fromsize,sref,cpointerdef.getreusable(tosize),sdref));
|
||||||
end
|
end
|
||||||
|
else if (fromsize=tosize) and
|
||||||
|
not(fromsize.typ in [orddef,floatdef,enumdef]) and
|
||||||
|
(sref.refaddr<>addr_full) and
|
||||||
|
(fromsize.size>2*sizeof(aint)) then
|
||||||
|
g_concatcopy(list,fromsize,sref,dref)
|
||||||
else
|
else
|
||||||
inherited
|
inherited
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user