Optimizer for DeSmet C Compiler

D.LEWIS at scu D.LEWIS at scu
Thu Mar 13 12:51:07 AEST 1986


      *** FREEWARE OPTIMIZER FOR DESMET (C-WARE) C COMPILER ***
      ---------------------------------------------------------

I have written a optimizer called O88 for the DeSmet C compiler and have
placed it in the public domain.  The executable and documentation for the
current 2.07 version is available for downloading under the filename
O88-V207.ARC in directory area 2 (IBM PC software) of from C-Ware's Fido BBS
(143/9) at (408) 720-8197.

O88 modifies the assembly language source code produced by GEN.EXE.  It
typically eliminates about 4-9% of the instructions and simplifies about 5%
of those that remain.  One user reported that the optimized code is smaller
than that produced by the MicroSoft compiler with it's highly touted
optimizer, and that O88 runs faster as well.

O88 has a special mode that can be invoked to use the 80188 instructions of
the NEC-V20 to eliminate about another 5% of the instructions.  This mode is
the default if O88 senses the presence of a NEC-V20 processor, but can be
overridden by a command line option.  

O88 can be run in stand-alone mode, or as an automatic part of the
compilation process by simply renaming ASM88.EXE to ASM88X.EXE, and O88.EXE
to ASM88.EXE.

For those that would like to see the dirty internals of O88, the source code
is available for $25 from the address below.  Please don't ask me to send
only the executable at a reduced price - distribution of the executable is
only via download unless you want to pay the full price.  Direct all
inquiries via E-MAIL, to either

	(a) to "Dan Lewis" via Fido 143/9, or

	(b) to "D.LEWIS%SCU%PANDA at SUMEX-AIM.ARPA" on the Arpanet, or

	(c) Dan Lewis, owner
            Key Software Products
	    440 Ninth Avenue
	    Menlo Park, CA 94086
	    (415) 364-9847


P.S.  Version 3.00 will soon be available with the following additional
      features:

		(a) Extension of the NEC-V20 sensing to also recognize a
		    80188, 80186, or 80286 to select the default target
		    instruction set (i.e., 8088 vs 80188).

		(b) 8087 optimization: Replacement of 8087 library calls by
		    in-line 8087 instructions, and elimination of redundant
		    8087 stack loads.  Automatic sensing of the presence or
		    absence of an 8087 or 80287 to determine the default 8087
		    vs no 8087 mode.

		(c) An environment variable to force the default modes.

		(d) An option to disable all optimization altogether.
-------



More information about the Comp.lang.c mailing list