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] Exploiting dual mode operation, implementation.


Following the message (http://gcc.gnu.org/ml/gcc/2004-06/msg00472.html)
regarding exploiting dual mode operations, I enclose the complete
implementation of the algorithm.

Also enclosed some testcases that shows the advantages of this 
optimization.
In these testcases, you can see that the redundant sign-extension
instructions are eliminated, and the non redundant ones are moved to their
optimal placement.

Performance result for SPEC2000 on powerpc64-suse-linux (POWER4):
- There is no regression on SPEC2000 benchmarks on 64-bit platform.
  (This means that this optimization didn't cause a compilation error or a
  miscompare to any of the benchmarks that passed successfully without the
  optimization.)
- There was no significant degredation in performance for all the 
benchmarks
  that passed!
- The greatest improvement of 1.75% was achieved for 186.crafty and 
188.ammp
  and about 1% for 256.bzip2.

Regression tests on SPEC2000 on powerpc64-suse-linux (POWER4):
1. c99_classification_macros_c.cc: was previously an unexpected success 
and
   with the optimization enabled it became expected failure.
2. intrinsic_sum.f90: Fails during compilation. It is possible that it 
exposes
   a bug somewhere else, I'm still working on it.
3. There was no change for the rest of the tests.

Comments are welcomed,
Leehod.


Attachment: see.c
Description: Binary data

Attachment: see_patch_22_6
Description: Binary data

Attachment: Changelog
Description: Binary data

Attachment: testcase-simple-loop2.c
Description: Binary data

Attachment: testcase-simple-loop1.c
Description: Binary data

Attachment: testcase-shift.c
Description: Binary data

Attachment: testcase-if.c
Description: Binary data

Attachment: testcase-cse_gcse_move_se.c
Description: Binary data

Attachment: testcase-compare-long.c
Description: Binary data

Attachment: testcase-branch.c
Description: Binary data

Attachment: testcase-add-long.c
Description: Binary data


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