[fpc-devel] Finally fixed that MOVZX/SX optimisation!
Florian Klämpfl
florian at freepascal.org
Thu Feb 20 21:34:39 CET 2020
Am 20.02.20 um 21:25 schrieb J. Gareth Moreton:
> 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",
Then the peephole optimizer should care even less about it.
> 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.
With full -O3?
More information about the fpc-devel
mailing list