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]

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


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?

-Pat


2009-01-25  Pat Haugen  <pthaugen@us.ibm.com>

      * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p):
Declare.
      * config/rs6000/rs6000.opt (avoid-xform): New option.
      * config/rs6000/rs6000.c (rs6000_override_options): Default
avoid-xform
      on for Power6, off for everything else.
      (avoiding_indexed_address_p): New function.
      (rs6000_legitimize_address): Use it.
      (rs6000_legitimate_address): Likewise.
      * config/rs6000/rs6000.md (movXX_updateX): Likewise

(See attached file: avoid_xform.diff)

Attachment: avoid_xform.diff
Description: Binary data


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