SPRUI04F july 2015 – april 2023
This document describes the v8.x TI Code Generation Tools for the C64x+, C6740, and C6600 variants of the TMS320C6000™ processor series. The C6200, C6400, C6700, and C6700+ variants are not supported in v8.0 and later versions of the TI Code Generation Tools. In addition, the v8.x tools no longer support the COFF object file format and the associated STABS debugging format. If you are using a legacy device or want COFF support, please use v7.4 of the Code Generation Tools and refer to SPRU187 and SPRU186 for documentation.
The following table lists changes made to this document prior to changes to the document numbering format. The left column identifies the first version of this document in which that particular change appeared.
Version Added | Chapter | Location | Additions / Modifications / Deletions |
---|---|---|---|
SPRUI04C | Using the
Compiler, C/C++ Language |
Section 3.3 and Section 7.2 | The compiler now follows the C++14 standard. In addition, removed several older C++ features from the exception list because they have been supported for several releases. |
SPRUI04C | Using the Compiler and Optimization | Table 3-12 and Section 4.6.1 | Corrected the spelling of the --disable_software_pipeline option. |
SPRUI04C | Using the Compiler | Section 3.3.1 | Added the --ecc=on linker option, which enables ECC generation. Note that ECC generation is now off by default. Also added the --no_const_clink options, which prevents the compiler from generating .clink directives for const global arrays. |
SPRUI04C | Using the
Compiler, C/C++ Language |
Section 3.11 and Section 7.9 | Revised the section on inline function expansion and its subsections to include new pragmas and changes to the compilers decision-making about what functions to inline. The FORCEINLINE, FORCEINLINE_RECURSIVE, and NOINLINE pragmas have been added. |
SPRUI04C | C/C++ Language | Section 7.3.2 and Section 7.15 | Support for vector data types no longer requires the use of the optimizer. |
SPRUI04C | C/C++ Language | Section 7.14.2 and Section 7.14.4 | Added "retain" as a function attribute and variable attribute. |
SPRUI04C | C/C++ Language | Section 7.15.6 | Vector data types can be used with printf() as described in the OpenCL 1.2 specification. |
SPRUI04C | Run-Time Environment | Section 8.6.2 | Clarified information about the alignment of __x128_t objects. |
SPRUI04C | Run-Time Support Functions | Section 9.2.1.1 | Added information about the FORMAT_CONVERSION_BUFSIZE macro defined in format.h and used by functions such as printf(). |
SPRUI04B | Using the Compiler | Several compiler options have been deprecated, removed, or renamed. The compiler continues to accept some of the deprecated options, but they are not recommended for use. | |
SPRUI04B | Using the Compiler | Section 3.3 | The --multithread option has been added as both a compiler and linker option. |
SPRUI04B | Using the
Compiler, C/C++ Language |
Section 3.3.3 | Revised to state that --check_misra option is required even if the CHECK_MISRA pragma is used. |
SPRUI04B | Using the Compiler | Section 3.10 | Corrected the document to describe the ---gen_preprocessor_listing option. The name --gen_parser_listing was incorrect. |
SPRUI04B | Optimization | Section 4.10.3 | Corrected function names for _TI_start_pprof_collection() and _TI_stop_pprof_collection(). |
SPRUI04B | Linking C/C++ Code | Section 6.3.5 | Added .ovly and .TI.crctab to list of initialized sections created by the compiler. |
SPRUI04B | Run-Time Environment | Section 8.6.6 | Identified the intrinsics that are defined as macros and so require that the c6x.h header file be included. |
SPRUI04A | Using the Compiler | Section 3.3 and Section 6.2.3 | The --gen_data_subsections option has been added. |
SPRUI04A | Run-Time Environment | Section 8.9.1 | Additional boot hook functions are available. These can be customized for use during system initialization. |
SPRUI04 | Introduction | Section 1.4 | The COFF object file format and the associated STABS debugging format are no longer supported. The C6000 compiler now supports only the Embedded Application Binary Interface (EABI) ABI, which works only with object files that use the ELF object file format and the DWARF debug format. Sections of this document that referred to the COFF format have been removed or simplified. If you need COFF support, please use v7.4 of the Code Generation Tools and refer to SPRU187 and SPRU186 for documentation. |
SPRUI04 | Getting Started | Chapter 15 | Added a Getting Started chapter with introductory information for new users. |
SPRUI04 | Using the Compiler | Section 3.3.4 | The --ramfunc option has been added to the compiler command-line options. |
SPRUI04 | Using the Compiler | Section 3.3.5 | The C6200, C6400, C6700, and C6700+ variants are no longer supported. Sections of this document that referred to these devices have been removed or simplified. If you are using one of these legacy devices, please use v7.4 of the Code Generation Tools and refer to SPRU187 and SPRU186 for documentation. |
SPRUI04 | Using the Compiler | Section 3.6 | Added section on techniques for passing arguments to main(). |
SPRUI04 | Using the Compiler | Section 3.11 | Corrected to state that automatic inlining is performed with --opt_level=3, but not --opt_level=2. |
SPRUI04 | C/C++ Language | Section 7.9.7 | Added the diag_push and diag_pop diagnostic message pragmas. |
SPRUI04 | C/C++ Language | Section 7.9.24 | Added the NOINIT and PERSISTENT pragmas. |
SPRUI04 | C/C++ Language | Section 7.14.2 | The ramfunc function attribute has been added. |
SPRUI04 | C/C++ Language | Section 7.3.2 and Section 7.15 | Added vector data types. |
SPRUI04 | Run-Time Environment | Section 8.5 | Added reference to section on accessing linker symbols in C and C++ in the Assembly Language Tools User's Guide. |
SPRUI04 | Run-Time Environment | Section 8.6.6 | Corrected the operands for the _shr2 and _shru2 intrinsics. |