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] |