Section 2: Compiler
45
TI
-
89 / TI
-
92 Plus Sierra C Assembler Reference Manual
Not for Distribution
Beta Version February 2, 2001
c# c1
causes multiple function call stack cleanups to be
coalesced into a single cleanup.
c0
inhibits function call
stack cleanups from being coalesced (default).
f# f0
specifies that a stack frame (
link
and
unlk
) should not
be setup if it is not essential (default).
f1
specifies that a
stack frame should always be setup.
i# i1
causes calls to the
strcpy
function to generate in-line
code (default).
i0
causes calls to the
strcpy
function to
generate a normal function call.
i2
is the same as
i1
with the added provision that all arrays are aligned to the
same boundary as an
int
.
l#
Move expressions that are not modified inside a loop to
outside the loop.
l0
specifies that no loop invariant
expressions are to be moved.
l1
specifies that only
constants are to be moved outside inner-most loops
(default). The
-Op1
flag (also default) must also be in
effect for
l1
to have any effect.
l2
specifies that invariant
expressions are to be moved outside the inner-most loops
only.
l3
specifies that invariant expressions are to be
moved through as many levels of loop nesting as
possible.
l4
specifies the same action as
l3
, except that
a warning is issued (correct code is still generated) if the
compiler exceeds the number of loop invariants that it can
handle.
l2
typically gives the best performance when this
message is encountered.
m# m0
inhibits multiplication by a constant from being
expanded into a sequence of shifts and adds; it also
inhibits the move-multiple instruction from being
expanded into discrete moves.
m1
allows multiplication by
a constant to be expanded, but does not allow the
move-multiple instruction to be expanded (default).
p# p0
specifies that no post-code-generation optimizations
are to be performed.
p1
specifies that
post-code-generation optimizations are to be performed
(default).