[fpc-devel] Finally fixed that MOVZX/SX optimisation!

J. Gareth Moreton gareth at moreton-family.com
Thu Feb 20 21:25:23 CET 2020


On 20/02/2020 17:10, Florian Klämpfl wrote:
> Am 18.02.20 um 23:04 schrieb J. Gareth Moreton:
>> ...
>>
>> It seems that not all regressions are caught when you run the test 
>> suite conventionally, and you have to specify additional options like 
>> "-O4", which may cause other failures to occur if a test is not 
>> expecting any kind of intense optimisation, for example.  In 
>> response, over here at https://bugs.freepascal.org/view.php?id=36687, 
>> I've introduced two new tests that are copies of the ones that 
>> failed, but which explicitly add -O4 to the default compiler 
>> options.  Besides covering the fault in my patch, I can see these 
>> tests proving useful later on because I can see future peephole 
>> optimisations in the compiled assembly language (e.g. the following 
>> triplet appears... "movw $65280,%ax; cmp $65280,%ax; je @lbl"... 
>> logical analysis shows that the conditional branch is always taken).
>
> Yes, but in this case, there is something missed at the node level 
> optimizer. Such code should not be generated.

it might be an artefact of "-Oonoconstprop", but if you run all of the 
"test/cg/tcnvint3" tests with the "-a" option, you will notice such 
sequences in some of the ".s" file.

Gareth aka. Kit



More information about the fpc-devel mailing list