> [jeremy@sour.sw.oz.au (Jeremy Fitzhardinge) writes:]
> >I've done rough port of lcc 3.1 to VSTa.
>
> This looks really nice. It even seems to know how to do register allocation
> and block unrolling!
It will automatically registerise variables which look busy (but will
always try to honour the register keyword first). What do you mean
by "block unrolling"?
> I've checked a fix for the "inline" assumption and it'll be in 1.3.3. I'm
> going to play with it some more myself and see if it should become the
> primary VSTa C compiler.
I've recompiled a few things, and found that things which behaved
oddly with gcc work properly when compiled with lcc. For example,
I compiled the rs232 server with gcc and it completely failed to
work: ./rs232 wouldn't print a usage message. I recompiled with
lcc and it worked well. gcc couldn't really be that broken, but
I didn't even need to have to look to work out the problem.
lcc is a strict ansi compiler with very few extentions, so there's
a few things that gcc will allow that lcc will barf on:
- inline
- assignment between pointers and integers
- assigning from a const to a non-const pointer
- pointer arithmatic with void pointers
- no doubt some other things which I haven't encountered
All except for inline can be fixed in a portable way (no ifdefs).
I feel the fatal error from mixing const and non-const pointers
is excessive, but it can be got around with some casting.
Just after I posted the announcement to the vsta list, I got an
announcement on the lcc list of lcc 3.2. It fixes a real bug for
the i386 target (a /= b/c generates bad code), so I'll look at
upgrading the VSTa port.
J
Received on Wed Dec 21 16:25:46 1994
This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:11 PDT