Re: [Open64-devel] Source to source compilation
Brought to you by:
ributzka,
suneeljain
From: Costin I. <CC...@lb...> - 2008-05-14 17:08:58
|
As far as the internal representation per-se, I recall having to add new type attributes to keep around the original C types. For example "long" becomes internally INT32 or INT64. Hence a TY_is_long attribute. "long" may have already been in there but there were a lot of problems with the different flavors of "char"... > Wondering if you could say what internal representation changes were > necessary to make whirl2c work? > > Thanks > Vinod > > > > On Tue, Apr 29, 2008 at 3:20 PM, Costin Iancu <cc...@lb...> wrote: > As Mike Murphy pointed out, the Berkeley sources fixed a lot of C > compatibility problems. > This particular one has been fixed. From what I remember the changes > were not only in w2c, but also in the internal representation and > front-end in > order to keep the original type info around. > > Depending on your intentions, one alternative for you is to use our > software directly. ( http://upc.lbl.gov ) > It's based on an earlier release of open64. We might be > missing a lot of codegen (cg) changes but I think the lno, wopt and > front-ends are close enough in sync. > > Costin > > On Apr 29, 2008, at 2:07 PM, Dasarath Weeratunge wrote: > >>> Not so sure there is a "last" point where the C representation >>> would still >>> be valid. I expect you have to fix whirl2c. What are the problems >>> you are >>> seeing? Some small'ish things, or a large number of major problems? >>> >>> Robert >> >> struct node *n = head; >> >> if (n == NULL) >> head = m; >> else { >> while (n->next) >> n = n->next; >> n->next = m; >> } >> >> >> Here's the generated code. In the while loop, >> instead of referring to the next pointer, it does an >> array reference and then tries to cast the structure anon3[1] >> to an integer? >> >> >> union var_pool { >> struct ty { >> _INT32 int_pool[16LL]; >> struct node { >> _INT32 * item3; >> struct node * next; >> } node_pool[16LL]; >> } u0; >> } var_pool; >> >> >> >> anon3 = head; >> if((_UINT64)(head) == (_UINT64)(0U)) >> { >> head = (struct node *) rr1; >> } >> else >> { >> while((_UINT64)((anon3)[1LL]) != (_UINT64)(0U)) >> { >> tmp2 = (anon3)[1LL]; >> anon3 = *(struct node **) & tmp2; >> } >> tmp3 = (struct node *) rr1; >> (anon3)[1LL] = *(struct node *) & tmp3; >> } >> >> >> 1.w2c.c:33: warning: assignment from incompatible pointer type >> 1.w2c.c:83: error: aggregate value used where an integer was expected >> >> Thanks. >> Dineth >> >> >> Quoting Robert Hundt <rob...@gm...>: >> >> >>> >>> On Tue, Apr 29, 2008 at 1:34 PM, Dasarath Weeratunge <din...@gm... >>> > >>> wrote: >>> >>>> I compiled a C program with opencc -clist -ipa -O3 and then tried >>>> compiling >>>> the generated C source. However, the generated source cannot be >>>> recompiled. >>>> >>>> Could you please tell me what's that last point in be, that I may >>>> generate legal C source through whirl2c. >>>> >>>> If opencc performs so far as loop analysis, that suffices for my >>>> current >>>> work. >>>> >>>> Thank you. >>>> >>>> Dineth >>>> >>>> ------------------------------------------------------------------------- >>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>>> Don't miss this year's exciting event. There's still time to save >>>> $100. >>>> Use priority code J8TL2D2. >>>> >>>> >>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>>> _______________________________________________ >>>> Open64-devel mailing list >>>> Ope...@li... >>>> https://lists.sourceforge.net/lists/listinfo/open64-devel >>>> >>> >>> >>> >>> -- >>> Robert Hundt >>> >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save >> $100. >> Use priority code J8TL2D2. >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> _______________________________________________ >> Open64-devel mailing list >> Ope...@li... >> https://lists.sourceforge.net/lists/listinfo/open64-devel > > -- > Costin C. > Iancu cc...@lb... > Future Technologies Group Phone: > 510-495-2122 > Lawrence Berkeley National Laboratory Fax: 510-486-6900 > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Open64-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/open64-devel > > -- Costin C. Iancu cc...@lb... Future Technologies Group Phone: 510-495-2122 Lawrence Berkeley National Laboratory Fax: 510-486-6900 |