This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello, Attached is an initial implementation of the -freorder-fp flag described in bug 28684 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28684). The new flag should allow optimizations for floating-point arithmetic that require reordering floating-point operations (eg. a/b --> a*(1/b) or a+b+c --> a+c+b). Also, I attached a list of places where the -funsafe-math-optimization flag occurs with an explanation for each one of them why it should [not] be under the new flag. There could be different occurrences of the unsafe flag in each file so in case the decision was not unified I mentioned it. The occurrences of the unsafe flag in .md files seems to be related to IEEE standards so I did not put the new flag in them. I appreciate your comments. Revital (See attached file: diff_21_9) File Should be under the -freorder-fp? ==================================================================== 1. builtins.c - Looks like it should'nt. Most of the code involves optimizations like pow(x,0.5) = sqrt(x); but I am not sure about expand_builtin_pow. -------------------------------------------------------------------- 2. builtins.def - Looks like it should'nt - related to rounding. -------------------------------------------------------------------- 3. calls.c - Looks like it should'nt - Precision issues. -------------------------------------------------------------------- 4. combine.c - Mixed. -------------------------------------------------------------------- 5. config/alpha/alpha.c - No , deals with simplify comparision. -------------------------------------------------------------------- 6. config/pa/pa.md -------------------------------------------------------------------- 7. config/mips/mips.md -------------------------------------------------------------------- 8. config/mn10300/mn10300.md -------------------------------------------------------------------- 9. config/i386/i386.md -------------------------------------------------------------------- 10. config/i386/i386.c - Looks like it should'nt. -------------------------------------------------------------------- 11. config/rs6000/spe.md -------------------------------------------------------------------- 12. config/rs6000/predicates.md -------------------------------------------------------------------- 13. config/rs6000/rs6000.md -------------------------------------------------------------------- 14. config/rs6000/rs6000.c - Looks like it should'nt. -------------------------------------------------------------------- 15. config/sh/sh.md -------------------------------------------------------------------- 16. config/m68k/m68k.md -------------------------------------------------------------------- 17. config/xtensa/xtensa.md -------------------------------------------------------------------- 18. convert.c - No - Precision issues. -------------------------------------------------------------------- 19. flags.h - No - Treatment of NaN. -------------------------------------------------------------------- 20. fold-const.c - Mixed. -------------------------------------------------------------------- 21. fortran/trans-expr.c - Not sure. -------------------------------------------------------------------- 22. java/typeck.c - No - Precision issues. -------------------------------------------------------------------- 23. loop-unroll.c - Yes - Variable expansions in unroller. -------------------------------------------------------------------- 24. reg-stack.c - No - Related to truncate. -------------------------------------------------------------------- 25. simplify-rtx.c - Mixed - Part of it realted to rounding or IEEE standard. -------------------------------------------------------------------- 26. tree-ssa-loop-im.c - Yes - convert a/b to a*(1/b). -------------------------------------------------------------------- 27. tree-ssa-math-opts.c - Yes - CSE reciprocal. -------------------------------------------------------------------- 28. tree-ssa-reassoc.c - Yes - Reassociate expressions in basic block BB. -------------------------------------------------------------------- 29. tree-tailcall.c - Yes - Reverse the order of operations. -------------------------------------------------------------------- 30. tree-vectorizer.c - Yes - Reduction. --------------------------------------------------------------------
Attachment:
diff_21_9
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |