http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60381

--- Comment #6 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
Created attachment 32274
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32274&action=edit
WIP patch to start combining useless value removal and table reset, after
reverting the faulty patch

I'd prefer if we kept the preserved table without potentially useless locs. 
I've struggled for several hours this morning trying to combine useless value
removal, preservation of values in the alternate table, detection of constants
and equivalences for preservation and discarding values that should not be
preserved into fewer passes over the hash table, unfortunately without much
success.  In the end, I returned to mostly separate removal and reset passes,
but I've managed to make both passes optional, except at the end of
vt_initialize.  Here's the WIP patch, to be applied after the reversal of the
faulty patch.  Unfortunately, the result is not much faster than the reversal,
probably because it works much harder to release cselib_vals and loc lists as
they get removed from the table, instead of just dropping them on the floor
till the pool is released as a whole.

Reply via email to