This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug tree-optimization/21610] [4.0/4.1 Regression] ICE in make_decl_rtl
On May 16, 2005, at 4:28 PM, joseph at codesourcery dot com wrote:
------- Additional Comments From pinskia at gcc dot gnu dot org
2005-05-16 20:03 -------
(In reply to comment #3)
If you get rid of decl_constant_value_for_broken_optimization then I
suspect you'll lose some optimizations because fold doesn't operate
on SSA
so some constant values won't be available to fold, only to later
optimizations. But you'll get rid of the only references to
"optimize" in
the C front end other than those defining built-in macros, and the
front-end shouldn't care about "optimize" in principle, and you'll
probably get rid of some XFAILs in c9?-const-expr-?.c in the process.
Why do you believe fold does not operate on SSA?
Fold has optimizations working on large complicated trees of
expressions,
looking at their subexpressions and subsubexpressions; such trees are
only
available during parsing, before conversion to GIMPLE form. If the
constants aren't available in these non-GIMPLE trees then you lose the
optimizations. The folding called from the SSA optimizers can only
fold
smaller fragments of trees. Everything fold does which looks at
subexpressions and subsubexpressions of non-GIMPLE trees can in
principle
be done on GIMPLE but I don't think there's evidence that every such
fold
optimization is implemented for GIMPLE.
Yes that is what the tree combiner would do but since I have not have
time
to work it, we are missing more and more optimizations because not
having
it.
-- Pinski