Nice work, I have no answer for you though. :) 

What is the performance improvement here and why was it done the old way?

Another question I had about them is why they can't be inlined. Does anyone 
have the answer for that? Not being able to be inlined is the biggest 
performance problem I suspect, followed by the copy operator which gets called 
redundantly on assignment to temporary memory.

> On Jul 22, 2023, at 7:07 AM, Benito van der Zander via fpc-devel 
> <fpc-devel@lists.freepascal.org> wrote:
> 
> Hallo,
> 
> 
> i made a patch for faster management operators: 
> https://gitlab.com/benibela/fpc-source/-/commit/1aa0866112c97dd0c7ed7f3a4b1c7ab6420cb942
> 
> 
> 
> And it has been working fine on fixes3_2, but when I tried to apply it on 
> main, I get an error message:
> 
> views.inc(4318,17) Error: Wrong number of parameters specified for call to 
> "$copy" 
> video.inc(180,35) Error: Found declaration: operator copy(constref 
> TEnhancedVideoCell;var TEnhancedVideoCell); Static;
> 
> I have been creating two paranodes for the call like that:
> 
>            if is_rtti_managed_type(left.resultdef) and 
> is_record(left.resultdef)
>                and (mop_copy in 
> trecordsymtable(left.resultdef.getsymtable(gs_record)).managementoperators) 
> then
>              begin
>                hsym := 
> tprocsym(left.resultdef.getsymtable(gs_record).Find('copy'));
>                hp := ccallparanode.create(left, ccallparanode.create(right, 
> nil));
>                result := ccallnode.create(hp,hsym,hsym.owner,nil,[],nil);
> 
> should it be done differently?
> 
> 
>     
> Viele Grüße,
> Benito 
> 
> _______________________________________________
> fpc-devel maillist  -  fpc-devel@lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Regards,
Ryan Joseph

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to