public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
@ 2005-04-29 21:22 pluto at pld-linux dot org
  2005-04-29 21:23 ` [Bug other/21291] " pluto at pld-linux dot org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-29 21:22 UTC (permalink / raw)
  To: gcc-bugs

works with -O0, fails with -O[123]. 
 
gcc-4.0.0 + patches for pr20973,21173.

-- 
           Summary: can't find a register in class 'GENERAL_REGS' while
                    reloading 'asm'
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: other
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pluto at pld-linux dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pld-linux
  GCC host triplet: i686-pld-linux
GCC target triplet: i686-pld-linux


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


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

* [Bug other/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
@ 2005-04-29 21:23 ` pluto at pld-linux dot org
  2005-04-29 21:28 ` [Bug rtl-optimization/21291] " pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-29 21:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-29 21:22 -------
Created an attachment (id=8768)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8768&action=view)
testcase


-- 


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


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

* [Bug rtl-optimization/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
  2005-04-29 21:23 ` [Bug other/21291] " pluto at pld-linux dot org
@ 2005-04-29 21:28 ` pinskia at gcc dot gnu dot org
  2005-04-29 21:30 ` pluto at pld-linux dot org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-29 21:28 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-29 21:27 -------
This is most likely not really a bug.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|other                       |rtl-optimization


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


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

* [Bug rtl-optimization/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
  2005-04-29 21:23 ` [Bug other/21291] " pluto at pld-linux dot org
  2005-04-29 21:28 ` [Bug rtl-optimization/21291] " pinskia at gcc dot gnu dot org
@ 2005-04-29 21:30 ` pluto at pld-linux dot org
  2005-04-29 21:43 ` pluto at pld-linux dot org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-29 21:30 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mmazur at kernel dot pl


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


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

* [Bug rtl-optimization/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
                   ` (2 preceding siblings ...)
  2005-04-29 21:30 ` pluto at pld-linux dot org
@ 2005-04-29 21:43 ` pluto at pld-linux dot org
  2005-04-29 21:45 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-29 21:43 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-29 21:43 -------
(In reply to comment #2) 
> This is most likely not really a bug. 
 
I can't build the Objective Caml compiler with this gcc error :/ 

-- 


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


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

* [Bug rtl-optimization/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
                   ` (3 preceding siblings ...)
  2005-04-29 21:43 ` pluto at pld-linux dot org
@ 2005-04-29 21:45 ` pinskia at gcc dot gnu dot org
  2005-04-29 21:58 ` [Bug middle-end/21291] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-29 21:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-29 21:45 -------
Reduced testcase:
typedef unsigned long bngdigit;
typedef bngdigit * bng;
typedef unsigned int bngcarry;
typedef unsigned long bngsize;

bngdigit bng_ia32_mult_sub_digit
     (bng a , bngsize alen,
      bng b , bngsize blen,
      bngdigit d)
{
  bngdigit out, tmp;
  bngcarry carry;
bngdigit a11;

  alen -= blen;
  out = 0;
    asm(""
        : "+r" (a), "+r" (b), "+mr" (blen), "+mr" (out), "=&r" (tmp)
        : "mr" (d)
        : "eax", "edx");
  if (alen == 0) {a11 =out; goto t;}

  a11 = 1;
  t:
return a11;
}

We are just running out of registers which is what x86 is known for.

-- 


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


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

* [Bug middle-end/21291] [4.0/4.1 Regression] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
                   ` (4 preceding siblings ...)
  2005-04-29 21:45 ` pinskia at gcc dot gnu dot org
@ 2005-04-29 21:58 ` pinskia at gcc dot gnu dot org
  2005-04-30  8:25 ` uros at kss-loka dot si
  2005-04-30  9:35 ` pluto at pld-linux dot org
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-29 21:58 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-29 21:58 -------
(In reply to comment #3)
> I can't build the Objective Caml compiler with this gcc error :/ 

If we change the asm to like so:
    asm(""
        : "+r" (a), "+r" (b), "+m" (blen), "+m" (out), "=&r" (tmp)
        : "m" (d)
        : "eax", "edx");

We don't get an error.

Also using -fomit-frame-pointer works around the problem by adding another free register.
What is most likely happening is we are not selecting the secondary constraint.

Oh, reload sucks.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
          Component|rtl-optimization            |middle-end
     Ever Confirmed|                            |1
           Keywords|                            |rejects-valid
   Last reconfirmed|0000-00-00 00:00:00         |2005-04-29 21:58:36
               date|                            |
            Summary|can't find a register in    |[4.0/4.1 Regression] can't
                   |class 'GENERAL_REGS' while  |find a register in class
                   |reloading 'asm'             |'GENERAL_REGS' while
                   |                            |reloading 'asm'
   Target Milestone|---                         |4.0.1


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


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

* [Bug middle-end/21291] [4.0/4.1 Regression] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
                   ` (5 preceding siblings ...)
  2005-04-29 21:58 ` [Bug middle-end/21291] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-04-30  8:25 ` uros at kss-loka dot si
  2005-04-30  9:35 ` pluto at pld-linux dot org
  7 siblings, 0 replies; 9+ messages in thread
From: uros at kss-loka dot si @ 2005-04-30  8:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From uros at kss-loka dot si  2005-04-30 08:25 -------
Could this be related to PR19398: secondary reloads don't consider "m" alternatives?

-- 


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


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

* [Bug middle-end/21291] [4.0/4.1 Regression] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
  2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
                   ` (6 preceding siblings ...)
  2005-04-30  8:25 ` uros at kss-loka dot si
@ 2005-04-30  9:35 ` pluto at pld-linux dot org
  7 siblings, 0 replies; 9+ messages in thread
From: pluto at pld-linux dot org @ 2005-04-30  9:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pluto at pld-linux dot org  2005-04-30 09:35 -------
(In reply to comment #5) 
> (In reply to comment #3) 
> > I can't build the Objective Caml compiler with this gcc error :/  
>  
> (...) 
> Also using -fomit-frame-pointer works around the problem by adding 
> another free register. What is most likely happening is we are not 
> selecting the secondary constraint. 
 
this code is a part of library (-fPIC in use). 
-fomit-frame-pointer won't help. 
 

-- 


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


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

end of thread, other threads:[~2005-04-30  9:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-29 21:22 [Bug other/21291] New: can't find a register in class 'GENERAL_REGS' while reloading 'asm' pluto at pld-linux dot org
2005-04-29 21:23 ` [Bug other/21291] " pluto at pld-linux dot org
2005-04-29 21:28 ` [Bug rtl-optimization/21291] " pinskia at gcc dot gnu dot org
2005-04-29 21:30 ` pluto at pld-linux dot org
2005-04-29 21:43 ` pluto at pld-linux dot org
2005-04-29 21:45 ` pinskia at gcc dot gnu dot org
2005-04-29 21:58 ` [Bug middle-end/21291] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
2005-04-30  8:25 ` uros at kss-loka dot si
2005-04-30  9:35 ` pluto at pld-linux 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).