This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/28690] [4.2/4.3 Regression] Performace problem with indexed load/stores on powerpc
- From: "bergner at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Jan 2007 20:58:33 -0000
- Subject: [Bug middle-end/28690] [4.2/4.3 Regression] Performace problem with indexed load/stores on powerpc
- References: <bug-28690-5233@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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