Invocation
and
Operation
of
the
TMS34010
C
Compiler
3.3.2
GSPCG
Options
The options parameter in the invocation command
is
a character preceded by
a hyphen in the format:
-x[x]
...
where x represents
an
option
character. These option characters can appear
anywhere in the invocation line; they
are
not
restricted
to
follow
the list
of
filenames given. Options can
be
strung together in any order.
The options available
are:
-a
Indicates there may be assignments
of
the form
·ptr=
...
where
ptr
is
a
pointer
to
a named variable. A module containing assignments
of
this
form can be compiled
without
this option, provided
ptr
does
not
point
to
a named variable. For example, if
ptr
points to
an
element
of
a
dy-
namically- or statically-allocated array, the assignment
of
values
to
the
array elements using the form
·ptr=
...
does
not
require compilation
of
the
module
with
the -a option. Structures
are
also
not
considered
to
be
named variables.
The compiler
normally remembers that a register contains a constant
or
the value
of
a named variable, so
it
does
not
'regenerate code to load that
value into a register. The compiler also assumes that
an
assignment
of
the form
·ptr=
...
does
not
assign a value
to
a named variable. Because
it
cannot
know
the named variable that this assignment affects,
if
any,
it
must forget the contents
of
all registers it assumed contained values
of
named variables upon encountering such
an
assignment. Thus,
when
the -a option
is
used, the compiler generates less efficient code, because
it forgets these registers' contents and has
to
regenerate the code.
However, this
is
very rarely a problem.
-0
Directs GSPCG
to
produce high-level-language debug directives in the
output
code. See the assembler section
of
the TMS34010 Assembly
Language Tools
User's Guide and the UNIX COFF documentation
for
more information about the types
of
debug information produced.
-v
Directs GSPCG
to
produce code
which
can run in a mUltiprocess envi-
ronment where
all variables may be considered volatile. This flag should
be used
to
compile modules
which
access variables
that
could be
modi-
fied by another task (process). In general, code generated this
way
is
somewhat less efficient.
-z
Causes GSPCG
to
not
delete the
input
file (intermediate file generated
by
GSPCC). This could be useful for generation
of
several object
mod-
ules
with
different GSPCG options.
-r
Causes GSPCG
to
periodically
write
a register status table to the
output
(assembly language) source file. The table
is
in the form
of
assembly
language comments, and lists each register currently used by
GSPCG.
It
also
shows
the type
of
each register's current contents. The table is
printed between statements whenever the contents
of
registers could
change. This
is
very useful
if
you
want
to
modify
the assembly language
output.
3-5