------- Comment #34 from bergner at gcc dot gnu dot org 2007-01-17 20:58 ------- Created an attachment (id=12915) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12915&action=view) Patch to commutative_operand_precedence to increase the precedence of REG_POINTER and MEM_POINTER objects.
This patch modifies commutative_operand_precedence to increase the precedence of REG_POINTER and MEM_POINTER objects. This obviates the need for swap_commutative_operands_with_target which has been replaced by a call to swap_commutative_operands_p. This patch improves performance on POWER6 (using -mcpu=power6) by 30% across both specint and specfp, with a 498% improvement on galgel. On POWER5 (using -mcpu=power5), there was only negligible differences between the base and patched compilers. It also correctly transforms all of the above test cases except those with "artificial" pointers which will have to wait until Andrew's PTR_PLUS_EXPR work is complete. Paolo tested this patch on x86 and saw 4% degradation on galgel which he said he'd look into. However, overall across both specint and specfp, the performance change didn't seem that bad. -- bergner at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #12375|0 |1 is obsolete| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28690