lcc-win32 (Jacob Navia)
3 Jun 1998 01:59:30 -0400

          From comp.compilers

Related articles
Opinions and experiences using LCC Win32 (1998-05-30)
Re: Opinions and experiences using LCC Win32 (1998-06-03)
lcc-win32 (1998-06-03)
| List of all articles for this month |

From: (Jacob Navia)
Newsgroups: comp.compilers
Date: 3 Jun 1998 01:59:30 -0400
Organization: Compilers Central
References: 98-05-132 98-06-012
Keywords: C, available

Lcc-win32: a Free compiler system for windows95/NT

Lcc-win32 consists of the following subsystems:
1) Compiler (pre-processor, compiler, assembler)
2) Linker
3) IDE
4) Debugger
5) Resource compiler
6) Resource editor
7) Libraries and header files for compiling under windows
8) Utilities (librarian, import library generator for dlls, make, lburg)

The compiler is based in the work of C. Fraser and D. Hanson, 'A portable C
compiler'. It has been enhanced with a:
a) Peephole optimizer
b) Higher level optimizer
c) Modified to accept all standard windows keywords that are not part of the
      ANSI standard: (_stdcall, _declspec, and other things like structured
      exception handling)
d) There is full support for all MMX instructions, that are implemented as
      C level pseudo functions that work in vectors of 64bit elements. There is
      full support (using the same technique) for many intrinsics that use special
      CPU instructions.

The generated code is very small, and it is roughly 10% slower only, in
normal applications (not benchmarks) than other compilers. In most applications
the speed of the generated code is the same.

As an example, here are the figures for the compilation of gcc comparing
lcc-win32 to MSVC 4.2. (The source set of gcc 2.7 is around 10MB of C)

MSVC was set with optimization for size, since those optimizations correspond
to the ones lcc-win32 does.

                                                                lcc-win32 MSVC4.2
Compilation Time: 153 sec 235 sec
Code size: 1 249 792 1 331 712 bytes
Image size: 1 605 632 1 810 432 bytes
gcc -O9 win32.c 47.8 sec 41.369 sec
link time: (stripped) 2.1 sec 3 sec
IDE timings:
Time for Wedit to load all 88 source files (10MB): 7 sec
Time for msvc 4.2 to load all 88 sources: 16 sec
Time for wedit's debugger for loading all debug info and stop at 'main': 3 sec.
Time for MSVC's debugger to get into 'main' and stop: 9 sec.

The IDE for the compiler supports all important features of an IDE (real-time
syntax coloring, utilities like grep, diff, built in) and many many other
features not found in other IDEs: object file cross referencing, software
metrics, character string extraction into a table, automatic generation of
software documentation, versioning system).

The debug information used by the system corresponds to the NB09 standard as
published by Microsoft. This makes the generated code compatible with their

Note that lcc-win32 is a C compiler, not a C++ compiler.

Where can I find it?
lcc-win32 can be downloaded for free from:

The sources of the compiler are distributed with the package. For a full set of
sources (linker and other subsystems) you can buy them from the author.

Jacob Navia Logiciels/Informatique
41 rue Maurice Ravel Tel 01
93430 Villetaneuse Fax 01

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.