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]

Re: [tree-ssa] A pass to remove a large number of casts in C++ code



On Apr 3, 2004, at 11:21, Jan Hubicka wrote:


Even though the tree-ssa is in a freeze this
improves C++ so much I was asked by Diego to submit it.

I'll time a bootstrap with this patch, without ADDRESSOF, and disabling RTL
jump bypassing as well as CSE1; I think I'll be able to submit a patch on
Monday. Anybody can volunteer to SPEC-test it?

Since Diego volunteed, I won't try to beat him ;)
However I am attaching patch that is usefull to find the missed cases.
It dumps out all variables that has been promoted on RTL level (and thus
missed by tree-ssa)
Also it kils two put_var_int_stack calls that seems to be unnecesary.


For some reason some unused struct variable are not being removed from some functions.

For an example from PR 8361:
_ForwardIterator std::__uninitialized_copy_aux(_InputIterator, _InputIterator, _ForwardIterator, __false_type) [with _InputIterator = __gnu_cxx::__normal_iterator<DEPGRAPH<GATOM, GCONSTRAINTS, GPROGRAM>::EDGE*, std::vector<DEPGRAPH<GATOM, GCONSTRAINTS, GPROGRAM>::EDGE, std::allocator<DEPGRAPH<GATOM, GCONSTRAINTS, GPROGRAM>::EDGE> > >, _ForwardIterator = __gnu_cxx::__normal_iterator<DEPGRAPH<GATOM, GCONSTRAINTS, GPROGRAM>::EDGE*, std::vector<DEPGRAPH<GATOM, GCONSTRAINTS, GPROGRAM>::EDGE, std::allocator<DEPGRAPH<GATOM, GCONSTRAINTS, GPROGRAM>::EDGE> > >]
struct __normal_iterator<DEPGRAPH<GATOM, std::vector<TCONSTRAINT<TLITERAL<GATOM> >, std::allocator<TCONSTRAINT<TLITERAL<GATOM> > > >, TPROGRAM<TRULE<GATOM, TLITERAL<GATOM> > > >::EDGE*,std::vector<DEPGRAPH<GATOM, std::vector<TCONSTRAINT<TLITERAL<GATOM> >, std::allocator<TCONSTRAINT<TLITERAL<GATOM> > > >, TPROGRAM<TRULE<GATOM, TLITERAL<GATOM> > > >::EDGE, std::allocator<DEPGRAPH<GATOM, std::vector<TCONSTRAINT<TLITERAL<GATOM> >, std::allocator<TCONSTRAINT<TLITERAL<GATOM> > > >, TPROGRAM<TRULE<GATOM, TLITERAL<GATOM> > > >::EDGE> > > __cur;



Thanks, Andrew Pinski


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]