This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/52575] avr*: error: unable to find a register to spill in class 'POINTER_REGS


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

--- Comment #4 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-03-15 12:14:56 UTC ---
(In reply to comment #3)
> (In reply to comment #2)
> > There are already spill fails reported for AVR, it's a known problem.
> > 
> > At this point it cannot be said if this PR is really the same as PR50925,
> > but it's not unlikely.
> 
> I am confused: 
> 
> PR50925 says "fails to build 4.6.2", however avr-rtems-gcc4.6.2 and 4.6.3 are
> known to build,

These spill fails might come or go with slight variations in surrounding code,
compiler source (i.e. version) or change of compiler options. The absence of a
spill fail does not mean that it is not present in the compiler, it just means
it does not show with that specific test case and set of options.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50925#c19
test case breaks 4.5, 4.6, 4.7 and 4.8 for example.

PR42204 indicates that the problem occurs with framepointer needed/framepointer
not needed transitions and changing back and forth. Such transitions depend on
the surrounding code and compiler optimizations, of course.

PR52148 is a bit different: The root cause is the same. But a code cleanup made
the test case pass. Therefore it's not marked as a duplicate, even though it's
very likely that its root cause is also the same as in PR50925. However, the
code cleanup along with PR52148 does not fix the root cause; it's just a
cleanup that's nice in itself.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]