Currently, compiled programs shouldn't show any measurable difference in running speed because the overhaul just attempts to make compilation faster overall.
Nice spot with the "incq" command there. It wasn't intentional for that to be split into 3 commands, but is likely just a side-effect of pass 1 not being run twice now... granted, since one of my criteria was that the code should not be less optimal, I'll see if I can watch out for that one. One interesting thing to note though is that the read and add work on the 32-bit register, but then the full 64-bit register is written. Gareth aka. Kit On Wed 12/12/18 13:08 , "Marģers ." margers.ro...@inbox.lv sent: ----- Reply to message ----- Subject: Re: [fpc-devel] x86_64 Optimizer Overhaul Date: 2018. gada 6. decembris 18:57:29 From: J. Gareth Moreton To: FPC developers' list > I believed I've fixed the bug. Thanks for your help. Now it's way better. -O3 and -O4 works fine. Speed test for my programs shows no measurable difference. # [468] inc(sk); --trunk --------- incq 272(%rsp) -- overhaul ------- movl 272(%rsp),%eax addl $1,%eax movq %rax,272(%rsp) did you mean to be so? margers
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel