Re: lcc 3.1 ported to vsta

From: Jeremy Fitzhardinge <jeremy_at_nospam.org>
Date: Wed Dec 21 1994 - 16:54:07 PST

> [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