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