public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Fix PR 44691
@ 2010-08-18  8:53 Andrey Belevantsev
  2010-08-18 16:34 ` Vladimir Makarov
  2010-08-19 14:11 ` H.J. Lu
  0 siblings, 2 replies; 9+ messages in thread
From: Andrey Belevantsev @ 2010-08-18  8:53 UTC (permalink / raw)
  To: GCC Patches; +Cc: Vladimir N. Makarov

[-- Attachment #1: Type: text/plain, Size: 768 bytes --]

Hello,

As explained in the audit trail, the problem was that in the selective 
scheduler I assumed that SUBREG_REG will always be a REG, which seems to be 
not the case.  This is not quite in line with what documentation says, if I 
read it correctly, but it seems to be used in a number of backends, so the 
below patch just gives up substitution also when SUBREG_REG is not a 
register.  Bootstrapped and tested on ia64, and verified that the test is 
fixed on x86_64.

I think that this qualifies as obvious, so unless Vlad or other people have 
any comments, I'll commit it tomorrow.

Yours, Andrey

2010-08-18  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/44691

	* sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
	is not a register.


[-- Attachment #2: pr44691.diff --]
[-- Type: text/x-patch, Size: 858 bytes --]

Index: gcc/sel-sched.c
===================================================================
*** gcc/sel-sched.c	(revision 163192)
--- gcc/sel-sched.c	(working copy)
*************** count_occurrences_1 (rtx *cur_rtx, void 
*** 835,841 ****
  
    if (GET_CODE (*cur_rtx) == SUBREG
        && REG_P (p->x)
!       && REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p->x))
      {
        /* ??? Do not support substituting regs inside subregs.  In that case,
           simplify_subreg will be called by validate_replace_rtx, and
--- 835,842 ----
  
    if (GET_CODE (*cur_rtx) == SUBREG
        && REG_P (p->x)
!       && (!REG_P (SUBREG_REG (*cur_rtx))
! 	  || REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p->x)))
      {
        /* ??? Do not support substituting regs inside subregs.  In that case,
           simplify_subreg will be called by validate_replace_rtx, and

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

end of thread, other threads:[~2010-08-20  8:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-18  8:53 [PATCH] Fix PR 44691 Andrey Belevantsev
2010-08-18 16:34 ` Vladimir Makarov
2010-08-19 14:11 ` H.J. Lu
2010-08-19 14:14   ` Andrey Belevantsev
2010-08-19 14:24     ` H.J. Lu
2010-08-19 14:37       ` Andrey Belevantsev
2010-08-19 15:53         ` Andrey Belevantsev
2010-08-19 16:03           ` H.J. Lu
2010-08-20  8:42             ` Andrey Belevantsev

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).