------- 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

Reply via email to