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: [rfc] multi-word subreg lowering pass


Am Sonntag, 8. Mai 2005 01:05 schrieb Richard Henderson:
> On Sat, May 07, 2005 at 08:51:14PM +0200, Björn Haase wrote:
> > I think that your patch indeed could be very helpful for the avr port
> > :-)! However, I am facing a couple of difficulties with getting it
> > running. Main problem is that I am not succeding to compile libgcc with
> > your patch: I am constantly getting segmentation faults.
>
> With the following follow-on patch I'm able to build libgcc for avr.
>
>
> r~
>
>
> --- lower-subreg.c.orig 2005-05-07 15:53:06.000000000 -0700
> +++ lower-subreg.c      2005-05-07 16:00:16.000000000 -0700
> @@ -576,7 +576,15 @@
>
>         set = simple_move (insn);
>         if (set)
> -         find_pseudo_copy (set);
> +         {
> +           /* (set cc0 reg) is a comparison instruction and cannot be
> +              decomposed.  Clear SET so that we recognize this fact when
> +              we see it in find_decomposable_subregs.  */
> +           if (CC0_P (SET_DEST (set)))
> +             set = NULL;
> +           else
> +             find_pseudo_copy (set);
> +         }
>          for_each_rtx (&PATTERN (insn), find_decomposable_subregs, set);
>        }

I'll try it tomorrow,

I meanwhile have prepared a modified avr.md with expand patterns replacing the 
define_insn. Looks *really* good. Registers are allocated in a weird fashion.

Yours,

Björn


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