4 ms·
A lesson I learned very early on: don't use -ffast-math unless you know what it does. It has a very appealing name that suggests nice things. You probably won't
by parasti 2y ago
A lesson I learned very early on: don't use -ffast-math unless you know what it does. It has a very appealing name that suggests nice things. You probably won't ever need it.
- SassyBird 2y agoAnd even if you do know what it does, it’s very impractical given that it’s a global option. Turning it on for selected portions of code would be a completely different game.
- adgjlsfhk1 2y agoJulia has this (via a @fastmath macro) and it's so nice!
- swatcoder 2y agoYou're mistaken. You can/would just use it in the translation units where you want it; usually for numerical code where you want certain optimizations or behaviors and know that the tradeoffs are irrelevant. It's mostly harmless for everday application math anyway, and so enabling it for your whole application isn't a catastrophe, but it's not what people who know what they're doing would usually do. It's usually used for a specific file or perhaps a specific support library.
- leni536 2y ago-ffast-math affects other translation units too, because it introduces a global initialization that affects some CPU flags. You can't really contain it to a single TU.
- senkora 2y agoIt seems like this depends on whether you specify -ffast-math when linking or only when compiling: https://stackoverflow.com/a/68938551 https://stackoverflow.com/a/68938551 My understanding is that if you don't specify -ffast-math when linking then you shouldn't get crtfastmath.o linked in.
- adgjlsfhk1 2y agoso this is complicated by the fact that GCC has a bug until last year where it would set the subnormal truncation flag when it wasn't supposed to.
- adgjlsfhk1 2y agoI prefer -funsafemath. Who doesn't want their math to be fun and safe?
- glitchc 2y agoI don't know how many people got your joke, but that flag actually says unsafe math. The -f prefix signifies a floating point flag.
- rockwotj 2y agoI am pretty sure the -f is for feature. Because there are flags like -fno-exceptions and -fcoroutines
- jkrejcha 2y agoIt's a feature flag, they're not all necessarily floating point related. As an example though, I still intentionally humorously misread -funroll-loops as funroll loops even though it's f(eature) unroll loops
- hackcasual 2y agoThe f in that case stands for fruit