[fpc-devel] Discussion on a particular optimisation development (WARNING: Technical!)
Florian Klämpfl
florian at freepascal.org
Wed Feb 3 22:18:52 CET 2021
Am 03.02.21 um 22:14 schrieb J. Gareth Moreton via fpc-devel:
> Rats, I might have messed up with some of the arithmetic, as well as the
> dangers of crossing bitwise with logical Boolean operations, although
> some combinations still work - if the conditions are "x = 0" rather than
> "x <> 0" in the example:
>
> testq %rbx,%rbx
> seteb %al
> testq %rsi,%rsi
> seteb %dl
> andb %dl,%al
>
> Then this would equate to:
>
> orq %rbx,%rsi
> seteb %al
Indeed:
# [6] b:=(x=0) and (y=0);
orl %edx,%eax
# Var b located in register al
seteb %al
:)
>
> Mistake aside, I'm looking for acceptable solutions for a
> platform-dependent node transformation, like a flag of some kind ($if
> defined etc. might get untidy, although is an option).
>
This depends on the transformation. Most transformations are beneficial
for all platforms.
More information about the fpc-devel
mailing list