This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH,rs6000] Add option to avoid generation of indexed load/store instructions


On Mon, 2009-01-26 at 13:52 +0100, Paolo Bonzini wrote:
> Richard Guenther wrote:
> > On Sun, Jan 25, 2009 at 6:37 PM, Pat Haugen <pthaugen@us.ibm.com> wrote:
> >> The following patch adds a new option, -mavoid-xform, to avoid generation
> >> of indexed load/store instructions when possible. Enabling this option on
> >> Power6 has shown some significant improvement on certain benchmarks (lucas,
> >> stream, PTRANS), while at the same time only introducing some minor
> >> improvements/degradations on the other spec benchmarks.
> >>
> >> Bootstrapped and regression tested on powerpc64-linux with no new errors
> >> when the option is not enabled.  With the option enabled there is one new
> >> failure, gcc.dg/tree-ssa/loop-19.c, which would be expected since that test
> >> is looking for indexed load/store patterns.
> >>
> >> OK for trunk?
> 
> Is this related to PR28690?

Kind of, in that both deal with performance problems due to indexed load
and store instructions.  PR28690 was about getting the operand order correct
(address value in first reg and offset value in the second reg).
This patch is dealing with performance problems even when we have the
operand order correct, but due to specific values in the registers
(the offset value causes the effective address to cross a 16M boundary)
we still end up with a performance penalty.  Therefore, we'd like an
option where we can completely disable generation of the indexed ops.

Peter




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]