------- Comment #10 from dberlin at gcc dot gnu dot org 2007-03-09 23:48 ------- (In reply to comment #7) > The obvoious difference is more precise alias information: > > -bar: Maximum number of VOPS needed per statement: 80 > +bar: Maximum number of VOPS needed per statement: 71
See, it was buggy before and still getting dup'd symbols into the points-to sets. In particular: 80 NMT.114, UID 1780, real8[0:], is addressable, is global, call clobbered (, is global var ), may aliases: { dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 } ^^^^Note it's the same set of symbols repeated 14 times vs 5 NMT.114, UID 1780, real8[0:], is addressable, is global, call clobbered (, is global var ), may aliases: { dyinv dxinv dzinv epsinv SMT.109 } > This caused different partitioning, and this caused your performance drop. Sorry, nothing i can do about this, there is no bug here (in fact, it just shows that the patch removed a bug) You need Diego to look at the partitioning algorithms to get your performance back. -- dberlin at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dnovillo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31090