Download TMS320C55x Optimizing C/C++ Compiler

Transcript
Changing the Compiler's Behavior With Options
--printf_support={full|
nofloat|minimal}
--sat_reassoc={on|off}
www.ti.com
Enables support for smaller, limited versions of the printf and sprintf
run-time-support functions. The valid values are:
• full: Supports all format specifiers. This is the default.
• nofloat: Excludes support for printing floating point values. Supports
all format specifiers except %f, %F, %g, %G, %e, and %E.
• minimal: Supports the printing of integer, char, or string values
without width or precision flags. Specifically, only the %%, %d, %o,
%c, %s, and %x format specifiers are supported
There is no run-time error checking to detect if a format specifier is
used for which support is not included. The --printf_support option
precedes the --run_linker option, and must be used when performing
the final link.
Enables or disables the reassociation of saturating arithmetic.
2.3.3 Run-Time Model Options
These options are specific to the TMS320C55x toolset. See the referenced sections for more information.
TMS320C55x-specific assembler options are listed in Section 2.3.11.
--algebraic
--align_functions
--asm_source={algebraic|
mnemonic}
--assume_smul_off
--call=value
--check_32bit_int_portability
32
Causes the compiler and assembler to generate algebraic assembly.
Forces all functions in the compilation to be aligned on a 4-byte
boundary. This enables program performance to remain consistent.
Without this forced alignment, a change in one C function can lead to
changed cycle counts in other (unchanged) C functions due to
different alignment of branches and loops.
By default, the compiler and assembler use mnemonic assembly: the
compiler generates mnemonic assembly output, and the assembler
only accepts mnemonic assembly input files. This is equivalent to
specifying --asm_source=mnemonic. When --asm_source=algebraic
is specified, the compiler and assembler use algebraic assembly. You
must use this option to assemble algebraic assembly input files, or to
compile C code containing algebraic asm statements. Algebraic and
mnemonic source code cannot be mixed in a single source file.
For C55x, specifies that the compile should use 0 as the presumed
value of the SMUL status bit (see Section 6.3.2).
Forces compiler compatibility with specific calling conventions. Early
versions of the C55x compiler used a calling convention that was less
efficient. The new calling conventions address these inefficiencies.
The --call option supports compatibility with existing code which either
calls or is called by assembly code using the original convention.
Using --call=c55_compat forces the compiler to generate code that is
compatible with the original calling convention. Using --call=c55_new
forces the compiler to use the new calling convention.
The compiler uses the new convention by default, except when
compiling for P2 reserved mode, which sets the default to the original
convention. Within a single executable, only one calling convention
can be used. The linker enforces this rule.
Issues a warning if the compiler detects a source language construct
that may not be portable when moved from a C environment where
type int is represented in 32 bits to C55x C where int is 16 bits. Not all
such portability issues can be detected at compile time.
Using the C/C++ Compiler
Copyright © 2011, Texas Instruments Incorporated
SPRU281G – December 2011
Submit Documentation Feedback