cdecl keyword

Markku Savela msa at clinet.FI
Tue May 3 03:34:20 AEST 1988


    The recent discussion on "cdecl"-keyword prompted me to test,
whether it really would produce faster and/or smaller program in
one specific test case. This is just a report of my findings and not
intended to re-open the cdecl flame war ...:-)

    The results were not very promising. The program I've been
working with generates about 104k of code. Using "pascal"-calling
sequence ("-Gc"-flag) the EXE-size is reduced 4-7k. The effect to the
execution speed was insignificant. Here follows some results:

MSC 4.00  Flags used        EXE-size  Speed value (chrs/second)

         -Gs                172k      260        ("c" calling)
         -Gs -Gc            168k      250        ("pascal" calling)
         -Gs -Gc -G2        165k      255 (290)  ("pascal" calling)
         -Gs -Gc -G2 -Oat   164k      255 (290)  ("pascal" calling)
         -Gs -Oat           171k      260 (295)  ("c" calling)
    Notes:
    a) Flags "-AL -DLINT_ARGS -Gt32 -Gs -W3" were present in all cases
    b) Code Size is 104k (from map summing all *_TEXT-sizes). The
       remainder of the EXE-size is some large statically allocated
       variables and run-time library.
    c) the speed values should be interpreted very cautiously. They
       contain significant general overhead (like opening 4-8 files).
       (should have selected the test more carefully).

    Actually the program has recently been compiled from Pascal to
C and the pascal version measures as follows:

        Microsoft Pascal 3.31       199k    190 (195)

    Unfortunately this is not quite comparable, because during the
translation process (Pascal -> C) I completely rewrote one VERY BADLY
coded module. If the same modifications were done to the original
pascal version, the numbers might be something like 190k and 250, or
even closer to the C version.

    "cdecl" is best left to its original purpose -- there doesn't
seem to be any reason to use it either for speeding or squeezing
the program (perhaps it helps more with small model programs).
--
Markku Savela,   msa at clinet.fi



More information about the Comp.lang.c mailing list