[PATCH] propagate IR-level fast-math-flags to DAG nodes
Sanjay Patel
spatel at rotateright.com
Thu Apr 9 08:22:44 PDT 2015
re: the -freciprocal-math flag
"see existing gcc behavior for a starting point"
I should've taken my own advice more seriously. :)
It turns out that -freciprocal-math is only used for a reassociation optimization on divisions. Specifically, this one:
https://llvm.org/bugs/show_bug.cgi?id=16218
With gcc, all of the machine-level hackery that we've put into generating hardware estimate instructions is controlled by a flag that doesn't even exist in clang yet: -mrecip
https://llvm.org/bugs/show_bug.cgi?id=20912
So the end result is that this patch's recip change is wrong. Update to at least that part of the patch coming soon.
I'm assuming that we should not diverge from gcc's user-visible behavior without good reason, so we'll still make -freciprocal-math cause 'arcp' generation in IR ( http://reviews.llvm.org/rL234493 ), but 'arcp' has nothing to do with HW estimate codegen. For that, we need -mrecip with its multitude of options:
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/i386-and-x86-64-Options.html#index-mrecip_003dopt-1627
http://reviews.llvm.org/D8900
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list