[tree-ssa][unit-at-a-time] bootstrap

judd.jenne@charter.net judd.jenne@charter.net
Sun Aug 31 14:09:00 GMT 2003


Andrew,

First of all, thank you for looking into this.

I produced these using an ssa compiler from the last few 
hours.  I hope this helps.

I used something like -fdump-tree-all.  I didn't include 
dumps that
seemed identical to those prior.

It seems that rewrite_out_of_ssa() seems a likely culprit 
from examining
dumps .dce and .optimized.

Off Topic:

Pre seems to leave alot of (void)0;.  Are these required? 
 Do they
contribute negatively/positively to later stages?


Various Files:

// tc1.c

static int
foo(int n) {
     static int yy = 0;

     yy = n;

     return yy;
}

int
main(void)
{
     int pp;

     pp = foo(3);
     return pp;
}

// tc1.c.t02.original

;; Function foo (foo)
;; enabled by -tree-original


{
    static int yy = 0;
    yy = n;
    return <return-value> = yy;
}



;; Function main (main)
;; enabled by -tree-original


{
    int pp;
    pp = foo(3);
    return <return-value> = pp;
}

// tc1.c.t03.generic

;; Function foo (foo)

foo (n)
{
   static int yy = 0;

   yy = n;
   return yy;;
}


;; Function main (main)

main ()
{
   int T.1;
   int pp;

   T.1 = foo (3);
   pp = T.1;
   return pp;;
}


// tc1.c.t05.gimple

;; Function main (main)

main ()
{
   int retval.2;
   int T.1;
   int pp;

   {
     int n;
     int <UVecb0>;

     n = 3;
     {
       static int yy = 0;

       yy = n;
       {
         <UVecb0> = yy;
         goto <ULec40>;;
       };
     };
     <ULec40>:;;
     retval.2 = <UVecb0>;
   };
   T.1 = retval.2;
   pp = T.1;
   return pp;;
}


// tc1.c.t09.ssa

;; Function main (main)

main ()
{
   int retval.2;
   int T.1;
   int pp;

   {
     int n;
     int <UVecb0>;

     n_1 = 3;
     {
       static int yy = 0;

       yy = 3;
       <UVecb0>_4 = 3;
       goto <ULec40>;;
     };
     <ULec40>:;;
     retval.2_5 = 3;
   };
   T.1_6 = 3;
   pp_7 = 3;
   return 3;;
}

// tc1.c.t13.pre

;; Function main (main)

main ()
{
   int retval.2;
   int T.1;
   int pp;

   {
     int n;
     int <UVecb0>;

     (void)0;
     {
       static int yy = 0;

       yy = 3;
       (void)0;
       goto <ULec40>;;
     };
     <ULec40>:;;
     (void)0;
   };
   (void)0;
   (void)0;
   return 3;;
}

// tc1.c.t17.optimized

;; Function main (main)

main ()
{
   {
     yy = 3;
     <ULec40>:;;
   };
   return 3;;
}


Judd

p.s. Incidentally, mainline ICE'd during bootstrap with 
'-O3 -g' earlier.
I will run '-O2 -funit-at-a-time -g' shortly.

/home/judd/gcc-dev/gcc-trunk/gcc/gengtype.c: In function 
`adjust_field_tree_exp':

/home/judd/gcc-dev/gcc-trunk/gcc/gengtype.c:803: internal 
compiler error: tree check: expected field_decl, have 
tree_list in gen_struct_or_union_type_die, at 
dwarf2out.c:11330



More information about the Gcc mailing list