Překladače GCC i Clang umožňují nastavit optimalizaci kódu v několika stupních od -O0
do -O3
, přičemž standardní je -O2
. K tomu kolem roku 2010 přibyla volba -Ofast
, což je v podstatě -O3 -ffast-math
. Ten druhý přepínač zrychluje výpočty v plovoucí desetinné čárce, ale vynechává některé výjimky a výsledný kód neodpovídá standardu IEEE 754. Jedná se hlavně o NaN a inf.
James Knight z Google navrhl, aby volba -Ofast
byla postupně odstraněna. Kdo to potřebuje, tak může stále používat -O3 -ffast-math
, ale ostatní to jen mate a pak mohou mít problémy například s nekompatibilitou s IEEE 754.
(zdroj: phoronix)