This is the mail archive of the gcc-patches@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]

Re: [PATCH] PR middle-end/19378: Fix AVR build failures


Roger Sayle wrote:
>
> The following patch resolves PR middle-end/19378 which is an ICE
> compiling libgcc for AVR, due to an abort in reload.c's find_valid_class.
> ...

Yup, can verify the successful build of today's 4.0 cvs version with only
this patch applied for --target=avr.

(thank you)

--

However note that while attempting to determine the problem earlier, had
noticed a few things which are fragilely implemented in GCC and should be
fixed sooner than later, although not literally required by this PR:

- unwind.h & unwind_pe.h unconditionally define DI mode exception variables,
  regardless of whether a target can support them (resulting both in an
  otherwise needless requirement for target DI mode support, and general
  unwind inefficiency on smaller targets, as DI exception variables are
  unnecessarily large).

- libgcc2 in general should likely be cleaned up, as libgcc2.h's logic
  which determines built-in default support function modes is minimally
  odd, and most likely simply wrong, impeding it's clear, proper, and
  correct behavior, impeding new port specification or refinement; (most
  existing ports seem to tend to just disable much if it by defining their
  own definitions apparently rather than attempting to refine/correct it's
  implementation; which should likely be done if for no other reason than
  to enable the easier, flexible, and correct definitions of new targets).

How/where would these observations be best recorded/requested, as this PR
will likely close (thereby effectively ironically diminishing the necessity
to remedy the two above issues, which should likely remain important)?

(As presently for example, the avr port must support DI mode although very
 inefficient; and needs to "trick" libgcc2.h by having to "lie" about it's
 it's true word-size when it's machine specification is included by it.)




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