Run-Time Model Options

These options are specific to the TMS302C6000 toolset. See the referenced sections for more information. TMS320C6000-specific assembler options are listed in Section 3.3.12.

The C6000 compiler now supports only the Embedded Application Binary Interface (EABI) ABI, which uses the ELF object format and the DWARF debug format. Refer to the C6000 Embedded Application Binary Interface Application Report (SPRAB89) for details about EABI. If you want support for the legacy COFF ABI, please use the C6000 v7.4.x Code Generation Tools and refer to SPRU187 and SPRU186 for documentation.

--big_endian Produces code in big-endian format. By default, little-endian code is produced.
--advice:performance Generates compile-time optimization advice. See Section 3.14.
--common={on|off} When on (the default), uninitialized file scope variables are emitted as common symbols. When off, common symbols are not created. The benefit of allowing common symbols to be created is that generated code can remove unused variables that would otherwise increase the size of the .bss section. (Uninitialized variables of a size larger than 32 bytes are separately optimized through placement in separate subsections that can be omitted from a link.) Variables cannot be common symbols if they are assigned to a section other than .bss or have a specified memory bank.
--debug_software_pipeline Produces verbose software pipelining report. See Section 4.6.2.
--disable_software_pipeline Turns off software pipelining. See Section 4.6.1.
--fp_not_associative Compiler does not reorder floating-point operations. See Section 4.13.
--interrupt_threshold=n Specifies an interrupt threshold value n that sets the maximum cycles the compiler can disable interrupts. See Section 3.12.
--mem_model:const=type Allows const objects to be made far independently of the --mem_model:data option. The type can be data, far, or far_aggregates. See Section 8.1.4.3
--mem_model:data=type Specifies data access model as type far, far_aggregates, or near. Default is far_aggregates. See Section 8.1.4.1.
--silicon_version=num Selects the target CPU version. See Section 3.3.5.
--small_enum By default, the C6000 compiler uses a 32-bit integer to store enum objects with enumeration values smaller than 32 bits. The --small_enum option makes the compiler use smaller integer types if the value will fit. For details about enum sizes, see Section 7.4.1.

Do not link object files compiled with the --small_enum option with object files that have been compiled without it. If you are using the --small_enum option, you must use it with all of your C/C++ files; otherwise, you will encounter errors that cannot be detected until run time.

--speculate_loads=n Specifies speculative load byte count threshold. Allows speculative execution of loads with bounded addresses. See Section 4.6.3.1.
--speculate_unknown_loads Allows speculative execution of loads with unbounded addresses.
--static_template_instantiation Instantiates all template entities in the current file as needed though the parser. These instantiations are also given internal (static) linkage. This option may provide a slight improvement to compilation speed.
--use_const_for_alias_analysis Uses const to disambiguate pointers.
--wchar_t={32|16} Sets the size (in bits) of the C/C++ type wchar_t. By default the compiler generates 16-bit wchar_t. 16-bit wchar_t objects are not compatible with 32-bit wchar_t objects; an error is generated if they are combined. When the --linux option is specified, it implies --wchar_t=32 since Linux uses 32-bit extended characters.