We have been carrying a patch in Julia for quite a few years that removes all the occurrences of -Ofast from Makefile.power (the only place it is ever used in OpenBLAS), because we forbid its use in Julia.
Looking at how it is actually used in the command line, it is used with the fast math optimizations disabled:
CCOMMON_OPT += -Ofast -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math
Those optimizations make up the core part of it, and other than enabling the O3 optimizations, it tells the compiler to also allow possible data races when optimizing, so I am curious why -Ofast used here?
Ideally I would like to work on removing our Julia-specific patch for this, and I can see that done in one of two ways:
- Introduce a
NO_OFAST build option that we can set that guards this.
- Just remove it from those PowerPC build options.
We have been carrying a patch in Julia for quite a few years that removes all the occurrences of
-Ofastfrom Makefile.power (the only place it is ever used in OpenBLAS), because we forbid its use in Julia.Looking at how it is actually used in the command line, it is used with the fast math optimizations disabled:
Those optimizations make up the core part of it, and other than enabling the
O3optimizations, it tells the compiler to also allow possible data races when optimizing, so I am curious why-Ofastused here?Ideally I would like to work on removing our Julia-specific patch for this, and I can see that done in one of two ways:
NO_OFASTbuild option that we can set that guards this.