http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52417
Alexandre Oliva <aoliva at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #26796|0 |1 is obsolete| | --- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-03-01 13:41:47 UTC --- Created attachment 26803 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26803 Here's a patch I'm happier with This patch fully restores the get_addr behavior from before my patch in case permanent equivalences aren't in use (e.g., for any passes other than var-tracking), enabling the heuristics that breaks equivalence cycles only when there are equivalences in the first place. It looks like the expensive, seemingly exponential computational cost exhibited in dse doesn't occur with var-tracking. Indeed, for this particular testcase, compile time with and without -g is pretty much the same after the patch, wth or without dse.