bugGNU Development Chain for 68HC11/68HC12 - Bugs: bug #11903, Code generator bug: Unable to find...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #11903: Code generator bug: Unable to find a register to spill

Submitted by:  None
Submitted on:  Tue 08 Feb 2005 10:38:21 PM UTC  
 
Category: gccSeverity: 3 - Normal
Item Group: sw-bugStatus: Works For Me
Privacy: PublicAssigned to: Stephane Carrez <ciceron>
Open/Closed: Closed

Sun 12 Jun 2005 10:04:01 AM UTC, comment #2:

Closed because it works with 3.0 and 3.0.1

Stephane Carrez <ciceron>
Project AdministratorIn charge of this item.
Sat 12 Feb 2005 01:07:29 PM UTC, comment #1:

The problem cannot be reproduced on release 2.92 as well as
3.0 (gcc 3.3.4 or gcc 3.3.5).

Which compiler version does this bug refers to?

The result of:

m6811-elf-gcc -v

is necessary to say more. Until I have more information,
I mark this bug as "Unreproducible".

Stephane Carrez <ciceron>
Project AdministratorIn charge of this item.
Tue 08 Feb 2005 10:38:21 PM UTC, original submission:

When using 32 bit math under certain conditions the compilor errors saying there it can't find a register to spill. The conditions for triggering this error seem to be:

- performing a 32 bit multiply or divide inside a for loop.
(using a variable other than the loop variable is ok)
(addition and subtraction are ok)
- where the loop veriable is 8 or 16 bits but not 32 bits
- using the loop variable as either operand on a multiply
or divide.
- subsequently storing the result of the expression into
an array indexed by the loop variable
(using a variable other than the loop variable is ok)
- the data size of table is 8 bits (16 and 32 bit ok)
- the loop variable is an automatic variable.
(function static and global variables are ok;
static variables can be accessed with immediate
addreses rather than indexed off stack.
- for simpler expressions (single operator) not
using an intermediate long variable is enough to make
the function compile (the table destination address is
computed before doing the calculation instead of after) but for
more complex expressions, this is not sufficient
to eliminate the problem. I think the issue here
is whether the math is full 32 bit or if the compiler
can optimize it down to a 32/16=16 divide or 16*16=32 multiply
instructions.

Anonymous

 

Attached Files
file #2531:  slnk_tst.zip added by None (5KiB - application/x-zip-compressed - Complete project that results in the error mentioned in the bug report (at least with release 2.2 of the toolchain))

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 4 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Sun 12 Jun 2005 10:04:01 AM UTCciceronOpen/ClosedOpen=>Closed
Sat 12 Feb 2005 01:07:29 PM UTCciceronStatusNone=>Works For Me
  Assigned toNone=>ciceron
Tue 08 Feb 2005 10:38:21 PM UTCNoneAttached File-=>Added slnk_tst.zip, #2174

Back to the top


Powered by Savane 3.1-cleanup1