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][ARM] Enable arm target in ira-shrinkwrap-prep* testcases



On 22/07/14 17:29, Ramana Radhakrishnan wrote:
On Mon, Jul 14, 2014 at 11:11 AM, Jiong Wang <jiong.wang@arm.com> wrote:
currently the following testcases are disabled for arm target,

gcc.dg/ira-shrinkwrap-prep-1.c
gcc.dg/ira-shrinkwrap-prep-2.c
gcc.dg/pr10474.c

the reason is on arm target, register r3 is caller-saved.  Normally it does
not need to be saved on entry by the prologue.  However if we choose to save
it for padding then we may confuse the compiler into thinking a prologue
sequence
is required when in fact it is not.  This will occur when shrink-wrapping if
r3
is used as a scratch register and there are no other callee-saved writes.

This situation can be avoided when other callee-saved registers are
available
and r3 is not mandatory if we choose a callee-saved register for padding.


Dejagnu improvements
===
-UNSUPPORTED: gcc.dg/ira-shrinkwrap-prep-1.c
-UNSUPPORTED: gcc.dg/ira-shrinkwrap-prep-2.c
+PASS: gcc.dg/ira-shrinkwrap-prep-1.c (test for excess errors)
+PASS: gcc.dg/ira-shrinkwrap-prep-1.c scan-rtl-dump ira "Will split live
ranges of parameters"
+PASS: gcc.dg/ira-shrinkwrap-prep-1.c scan-rtl-dump ira "Split live-range of
register"
+PASS: gcc.dg/ira-shrinkwrap-prep-1.c scan-rtl-dump pro_and_epilogue
"Performing shrink-wrapping"
+PASS: gcc.dg/ira-shrinkwrap-prep-2.c (test for excess errors)
+PASS: gcc.dg/ira-shrinkwrap-prep-2.c scan-rtl-dump ira "Will split live
ranges of parameters"
+PASS: gcc.dg/ira-shrinkwrap-prep-2.c scan-rtl-dump ira "Split live-range of
register"
+PASS: gcc.dg/ira-shrinkwrap-prep-2.c scan-rtl-dump pro_and_epilogue
"Performing shrink-wrapping"
-UNSUPPORTED: gcc.dg/pr10474.c
+PASS: gcc.dg/pr10474.c (test for excess errors)
+PASS: gcc.dg/pr10474.c scan-rtl-dump pro_and_epilogue "Performing
shrink-wrapping"

ok for trunk ?
This is OK

Ramana

Hi all,

I've committed this on Jiongs' behalf as r212927 with some minor ChangeLog modifications to make it fit into the 80 character column limit:

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

    * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
    callee-saved registers are available for padding purpose
    and r3 is not mandatory, then prefer use those callee-saved
    instead of r3.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

    * gcc.dg/ira-shrinkwrap-prep-1.c (target): Add arm_nothumb.
    * gcc.dg/ira-shrinkwrap-prep-2.c (target): Likewise.
    * gcc.dg/pr10474.c (target): Likewise.


Kyrill
thanks.

-- Jiong

gcc/
   * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
callee-saved
     registers are available for padding purpose, and r3 is not mandatory,
then
     prefer use those callee-saved instead of r3.

gcc/testsuite/
   * gcc.dg/ira-shrinkwrap-prep-1.c (target): Add arm_nothumb
   * gcc.dg/ira-shrinkwrap-prep-2.c (target): Add arm_nothumb
   * gcc.dg/pr10474.c (target): Add arm_nothumb



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