public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1
       [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
@ 2014-09-09  6:07 ` zhenqiang.chen at arm dot com
  2014-09-24  7:01 ` zqchen at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 6+ messages in thread
From: zhenqiang.chen at arm dot com @ 2014-09-09  6:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

--- Comment #1 from Zhenqiang Chen <zhenqiang.chen at arm dot com> ---
Here is a workaround patch to show the point.

diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index e2ea359..1573fb5 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -1709,6 +1709,8 @@ assign_hard_reg (ira_allocno_t a, bool retry_p)
         {
       ira_allocno_t conflict_a = OBJECT_ALLOCNO (conflict_obj);
       enum reg_class conflict_aclass;
+      HARD_REG_SET prof_regs;
+      prof_regs = ALLOCNO_COLOR_DATA (conflict_a)->profitable_hard_regs;

       /* Reload can give another class so we need to check all
          allocnos.  */
@@ -1780,7 +1782,7 @@ assign_hard_reg (ira_allocno_t a, bool retry_p)
             hard_regno = ira_class_hard_regs[aclass][j];
             ira_assert (hard_regno >= 0);
             k = ira_class_hard_reg_index[conflict_aclass][hard_regno];
-            if (k < 0)
+            if (k < 0 || !TEST_HARD_REG_BIT (prof_regs, hard_regno))
               continue;
             full_costs[j] -= conflict_costs[k];
           }

For this case, "r0" is not available for r115. The conflict for r110 on "r0"
maybe meaningless.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1
       [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
  2014-09-09  6:07 ` [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1 zhenqiang.chen at arm dot com
@ 2014-09-24  7:01 ` zqchen at gcc dot gnu.org
  2014-10-28 12:57 ` ramana at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 6+ messages in thread
From: zqchen at gcc dot gnu.org @ 2014-09-24  7:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

--- Comment #2 from zqchen at gcc dot gnu.org ---
Author: zqchen
Date: Wed Sep 24 07:00:55 2014
New Revision: 215540

URL: https://gcc.gnu.org/viewcvs?rev=215540&root=gcc&view=rev
Log:
ChangeLog:
2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

    PR rtl-optimization/63210
    * ira-color.c (assign_hard_reg): Ignore conflict cost if the
    HARD_REGNO is not availabe for CONFLICT_A.

testsuite/ChangeLog:
2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

    * gcc.target/arm/pr63210.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/arm/pr63210.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ira-color.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1
       [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
  2014-09-09  6:07 ` [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1 zhenqiang.chen at arm dot com
  2014-09-24  7:01 ` zqchen at gcc dot gnu.org
@ 2014-10-28 12:57 ` ramana at gcc dot gnu.org
  2014-10-29  3:30 ` zhenqiang.chen at arm dot com
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 6+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-10-28 12:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ramana at gcc dot gnu.org
      Known to work|                            |4.8.3
      Known to fail|                            |5.0

--- Comment #3 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
Fixed is it? And does it fail in GCC 4.9 ?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1
       [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2014-10-28 12:57 ` ramana at gcc dot gnu.org
@ 2014-10-29  3:30 ` zhenqiang.chen at arm dot com
  2014-10-29  9:28 ` ramana at gcc dot gnu.org
  2014-12-04 14:19 ` yroux at gcc dot gnu.org
  5 siblings, 0 replies; 6+ messages in thread
From: zhenqiang.chen at arm dot com @ 2014-10-29  3:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

--- Comment #4 from Zhenqiang Chen <zhenqiang.chen at arm dot com> ---
(In reply to Ramana Radhakrishnan from comment #3)
> Fixed is it? And does it fail in GCC 4.9 ?

Fixed on trunk. Same fail in GCC 4.9.

It is a performance issue. Do you think it is OK for 4.9?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1
       [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2014-10-29  3:30 ` zhenqiang.chen at arm dot com
@ 2014-10-29  9:28 ` ramana at gcc dot gnu.org
  2014-12-04 14:19 ` yroux at gcc dot gnu.org
  5 siblings, 0 replies; 6+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-10-29  9:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |5.0

--- Comment #5 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
(In reply to Zhenqiang Chen from comment #4)
> (In reply to Ramana Radhakrishnan from comment #3)
> > Fixed is it? And does it fail in GCC 4.9 ?
> 
> Fixed on trunk. Same fail in GCC 4.9.
> 
> It is a performance issue. Do you think it is OK for 4.9?

If it is a 4.9 regression you should be marking it as so in the bug report-
change the title to [4.9 regression] and fill up the "Known to Fail" fields.

I cannot possibly comment if it is suitable for 4.9 branch or not.

I'm marking this as fixed for 5.0 - if you get this backported please remember
to change the target milestone to the appropriate 4.9 milestone.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1
       [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2014-10-29  9:28 ` ramana at gcc dot gnu.org
@ 2014-12-04 14:19 ` yroux at gcc dot gnu.org
  5 siblings, 0 replies; 6+ messages in thread
From: yroux at gcc dot gnu.org @ 2014-12-04 14:19 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

--- Comment #6 from Yvan Roux <yroux at gcc dot gnu.org> ---
Author: yroux
Date: Thu Dec  4 14:19:00 2014
New Revision: 218368

URL: https://gcc.gnu.org/viewcvs?rev=218368&root=gcc&view=rev
Log:
gcc/
2014-12-04  Yvan Roux  <yvan.roux@linaro.org>

    Backport from trunk r215540.
    2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

    PR rtl-optimization/63210
    * ira-color.c (assign_hard_reg): Ignore conflict cost if the
    HARD_REGNO is not available for CONFLICT_A.

gcc/testsuite/
2014-12-04  Yvan Roux  <yvan.roux@linaro.org>

    Backport from trunk r215540.
    2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

    * gcc.target/arm/pr63210.c: New test.


Added:
    branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.target/arm/pr63210.c
Modified:
    branches/linaro/gcc-4_9-branch/gcc/ChangeLog.linaro
    branches/linaro/gcc-4_9-branch/gcc/ira-color.c
    branches/linaro/gcc-4_9-branch/gcc/testsuite/ChangeLog.linaro


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-12-04 14:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-63210-4@http.gcc.gnu.org/bugzilla/>
2014-09-09  6:07 ` [Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1 zhenqiang.chen at arm dot com
2014-09-24  7:01 ` zqchen at gcc dot gnu.org
2014-10-28 12:57 ` ramana at gcc dot gnu.org
2014-10-29  3:30 ` zhenqiang.chen at arm dot com
2014-10-29  9:28 ` ramana at gcc dot gnu.org
2014-12-04 14:19 ` yroux at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).