public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/35044]  New: resource.c:find_dead_or_set_registers doesn't grok COND_EXEC
@ 2008-01-31 19:27 amylaar at gcc dot gnu dot org
  2008-01-31 19:29 ` [Bug rtl-optimization/35044] " amylaar at gcc dot gnu dot org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2008-01-31 19:27 UTC (permalink / raw)
  To: gcc-bugs

find_dead_or_set_registers uses mark_set_resources to determine if a register
is set, and if it is, it concludes that the register is before that set.
A register is also considered set when the set is inside a COND_EXEC, thus
delay slot scheduling can clobber values in registers that are supposed
to remain untouched when a COND_EXEC is not executed.

I have a patch for this, which changes find_dead_or_set_registers to not call
mark_set_resources for COND_EXEC patterns when the purpose is to find registers
that are killed.
I can't post this patch, or the target port we are using, at the moment
since we don't have a copyright assignment on file yet.

Another approach would be to change mark_set_resources to take a parameter
to tell it if the conservative assumption is that the register is set or
if it that the register is not set, and change all callers to provide an
appropriate value.


-- 
           Summary: resource.c:find_dead_or_set_registers doesn't grok
                    COND_EXEC
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: amylaar at gcc dot gnu dot org
GCC target triplet: arc-elf32


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044


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

* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC
  2008-01-31 19:27 [Bug rtl-optimization/35044] New: resource.c:find_dead_or_set_registers doesn't grok COND_EXEC amylaar at gcc dot gnu dot org
@ 2008-01-31 19:29 ` amylaar at gcc dot gnu dot org
  2009-03-04 22:25 ` amylaar at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2008-01-31 19:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from amylaar at gcc dot gnu dot org  2008-01-31 18:45 -------
Created an attachment (id=15067)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15067&action=view)
Test case

This is a test case, extracted from an ARC linux kernel.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044


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

* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC
  2008-01-31 19:27 [Bug rtl-optimization/35044] New: resource.c:find_dead_or_set_registers doesn't grok COND_EXEC amylaar at gcc dot gnu dot org
  2008-01-31 19:29 ` [Bug rtl-optimization/35044] " amylaar at gcc dot gnu dot org
@ 2009-03-04 22:25 ` amylaar at gcc dot gnu dot org
  2009-03-05  0:29 ` amylaar at gcc dot gnu dot org
  2009-09-11  7:22 ` amylaar at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2009-03-04 22:25 UTC (permalink / raw)
  To: gcc-bugs



-- 

amylaar at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|39302                       |
OtherBugsDependingO|                            |39363
              nThis|                            |
         AssignedTo|unassigned at gcc dot gnu   |amylaar at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
           Keywords|                            |patch
   Last reconfirmed|0000-00-00 00:00:00         |2009-03-04 22:25:34
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044


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

* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC
  2008-01-31 19:27 [Bug rtl-optimization/35044] New: resource.c:find_dead_or_set_registers doesn't grok COND_EXEC amylaar at gcc dot gnu dot org
  2008-01-31 19:29 ` [Bug rtl-optimization/35044] " amylaar at gcc dot gnu dot org
  2009-03-04 22:25 ` amylaar at gcc dot gnu dot org
@ 2009-03-05  0:29 ` amylaar at gcc dot gnu dot org
  2009-09-11  7:22 ` amylaar at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2009-03-05  0:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from amylaar at gcc dot gnu dot org  2009-03-05 00:29 -------
The patch is here:
http://gcc.gnu.org/ml/gcc-patches/2009-03/msg00248.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044


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

* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC
  2008-01-31 19:27 [Bug rtl-optimization/35044] New: resource.c:find_dead_or_set_registers doesn't grok COND_EXEC amylaar at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2009-03-05  0:29 ` amylaar at gcc dot gnu dot org
@ 2009-09-11  7:22 ` amylaar at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2009-09-11  7:22 UTC (permalink / raw)
  To: gcc-bugs



-- 

amylaar at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|amylaar at gcc dot gnu dot  |unassigned at gcc dot gnu
                   |org                         |dot org
             Status|ASSIGNED                    |NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044


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

end of thread, other threads:[~2009-09-11  7:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-31 19:27 [Bug rtl-optimization/35044] New: resource.c:find_dead_or_set_registers doesn't grok COND_EXEC amylaar at gcc dot gnu dot org
2008-01-31 19:29 ` [Bug rtl-optimization/35044] " amylaar at gcc dot gnu dot org
2009-03-04 22:25 ` amylaar at gcc dot gnu dot org
2009-03-05  0:29 ` amylaar at gcc dot gnu dot org
2009-09-11  7:22 ` amylaar at gcc dot gnu dot 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).