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

Andrew Pinski pinskia@physics.uc.edu
Fri Apr 9 20:06:00 GMT 2004


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



More information about the Gcc-patches mailing list