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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ messages in thread
[parent not found: <bug-35044-4@http.gcc.gnu.org/bugzilla/>]
* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC [not found] <bug-35044-4@http.gcc.gnu.org/bugzilla/> @ 2011-03-22 20:21 ` jsm28 at gcc dot gnu.org 2012-09-20 1:08 ` amylaar at gcc dot gnu.org 2012-09-20 2:07 ` amylaar at gcc dot gnu.org 2 siblings, 0 replies; 8+ messages in thread From: jsm28 at gcc dot gnu.org @ 2011-03-22 20:21 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044 Joseph S. Myers <jsm28 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target|arc-elf32 | --- Comment #3 from Joseph S. Myers <jsm28 at gcc dot gnu.org> 2011-03-22 20:18:13 UTC --- ARC support has been removed for GCC 4.7, but please ping patches such as this to generic code if you think they are logically right (even if the issues are latent for other targets). ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC [not found] <bug-35044-4@http.gcc.gnu.org/bugzilla/> 2011-03-22 20:21 ` jsm28 at gcc dot gnu.org @ 2012-09-20 1:08 ` amylaar at gcc dot gnu.org 2012-09-20 2:07 ` amylaar at gcc dot gnu.org 2 siblings, 0 replies; 8+ messages in thread From: amylaar at gcc dot gnu.org @ 2012-09-20 1:08 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044 Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2009-03-04 22:25:34 |2011-11-27 --- Comment #4 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> 2012-09-20 01:07:43 UTC --- Another testcase for ARC700 is: gcc.c-torture/execute/builtin-bitops-1.c -O1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/35044] resource.c:find_dead_or_set_registers doesn't grok COND_EXEC [not found] <bug-35044-4@http.gcc.gnu.org/bugzilla/> 2011-03-22 20:21 ` jsm28 at gcc dot gnu.org 2012-09-20 1:08 ` amylaar at gcc dot gnu.org @ 2012-09-20 2:07 ` amylaar at gcc dot gnu.org 2 siblings, 0 replies; 8+ messages in thread From: amylaar at gcc dot gnu.org @ 2012-09-20 2:07 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35044 --- Comment #5 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> 2012-09-20 02:07:01 UTC --- (In reply to comment #4) > Another testcase for ARC700 is: gcc.c-torture/execute/builtin-bitops-1.c -O1 Sorry, that's a mixup: the above is a testcase of an analogous bug in rtlanal.c:dead_or_set_regno_p . Note that the policy for ambiguous codes like POST_INC, ZERO_EXTRACT or COND_EXEC of mark_set_resources is different from dead_or_set_p: while the former errs on the side of marking something set, the latter (is suspposed to) err(s) on the side of something not entirely killed. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-09-20 2:07 UTC | newest] Thread overview: 8+ 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 [not found] <bug-35044-4@http.gcc.gnu.org/bugzilla/> 2011-03-22 20:21 ` jsm28 at gcc dot gnu.org 2012-09-20 1:08 ` amylaar at gcc dot gnu.org 2012-09-20 2:07 ` amylaar 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).