SPRUI04G June 2015 – August 2025
Changes from April 6, 2023 to August 7, 2025 (from Revision F (April 2023) to Revision G (August 2025))
Changes from January 17, 2023 to April 6, 2023 (from Revision E (January 2023) to Revision F (April 2023))
Changes from January 14, 2022 to January 17, 2023 (from Revision D (January 2022) to Revision E (January 2023))
Changes from June 15, 2018 to January 14, 2022 (from Revision C (June 2018) to Revision D (January 2022))
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 |
#GUID-59BABC3F-17EF-4BDA-9460-EA65AB368624 and #GUID-A676B826-6EEE-4FB7-9262-1E91372DF6AF | 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 | GUID-59BABC3F-17EF-4BDA-9460-EA65AB368624.html#unique_38_Connect_42_STDZ0581722 and #GUID-04B31129-F100-493B-9E69-7D5E6484F886 | Corrected the spelling of the --disable_software_pipeline option. |
| SPRUI04C | Using the Compiler | #GUID-FF359EC0-6D08-43E3-AA27-EA1A9F598931 | 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 |
#GUID-50354AE1-9585-4868-878F-0939036324F0 and #GUID-362B62BD-A57F-4B62-B515-FB9D9A04C460 | 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 | #GUID-965A0B01-9C16-4E42-AEBB-003AFE34E9F6 and #GUID-5A2C04DB-3D30-4BED-91C1-C7F3B1DC1D3E | Support for vector data types no longer requires the use of the optimizer. |
| SPRUI04C | C/C++ Language | #GUID-65EEBDAB-33A6-4AD1-98FD-3B1CCA815FC6 and #GUID-78D218C4-1A65-4CD5-AA2D-2665B500E717 | Added "retain" as a function attribute and variable attribute. |
| SPRUI04C | C/C++ Language | #GUID-A925CBFA-6F2F-4AA2-BAC1-43EA9E843FFF | Vector data types can be used with printf() as described in the OpenCL 1.2 specification. |
| SPRUI04C | Run-Time Environment | #GUID-DFE71BC9-F8ED-452B-9577-2E099E2FDD62 | Clarified information about the alignment of __x128_t objects. |
| SPRUI04C | Run-Time Support Functions | #GUID-9F44BAF4-841E-42A9-BBA2-8A6753978CF8 | 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 | #GUID-59BABC3F-17EF-4BDA-9460-EA65AB368624 | The --multithread option has been added as both a compiler and linker option. |
| SPRUI04B | Using the Compiler, C/C++ Language |
#GUID-97003E53-CEE2-4243-926D-82A585EC4D26 | Revised to state that --check_misra option is required even if the CHECK_MISRA pragma is used. |
| SPRUI04B | Using the Compiler | #GUID-9BFAC774-FE99-4657-9AA8-A99E6D0E9BAA | Corrected the document to describe the ---gen_preprocessor_listing option. The name --gen_parser_listing was incorrect. |
| SPRUI04B | Optimization | #GUID-94AD1998-9815-4CD9-AC0A-40F74CE12241 | Corrected function names for _TI_start_pprof_collection() and _TI_stop_pprof_collection(). |
| SPRUI04B | Linking C/C++ Code | #GUID-62504B41-B565-469D-91C5-7417F7C2AF09 | Added .ovly and .TI.crctab to list of initialized sections created by the compiler. |
| SPRUI04B | Run-Time Environment | #GUID-D48E2C0E-E51E-416A-8F21-0515C73F673A | Identified the intrinsics that are defined as macros and so require that the c6x.h header file be included. |
| SPRUI04A | Using the Compiler | #GUID-59BABC3F-17EF-4BDA-9460-EA65AB368624 and #GUID-FDB5BEF2-DB94-44B7-B39A-4174561543BB | The --gen_data_subsections option has been added. |
| SPRUI04A | Run-Time Environment | #GUID-549B99AD-98DB-468A-AA41-884BA7E554BD | Additional boot hook functions are available. These can be customized for use during system initialization. |
| SPRUI04 | Introduction | #GUID-95851690-4BAF-4A9E-8C4C-F37D3EA7D342 | 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 | #GUID-57010919-D0FC-4994-B90D-9856A104F553 | Added a Getting Started chapter with introductory information for new users. |
| SPRUI04 | Using the Compiler | #GUID-B68154EB-3798-41F5-BC91-346E163891AA | The --ramfunc option has been added to the compiler command-line options. |
| SPRUI04 | Using the Compiler | #GUID-62B991B6-24C4-4AF4-86E0-F757BEE76E6A | 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 | #GUID-A6EFC38A-6EF1-4E62-A91F-6B2B91AEE69D | Added section on techniques for passing arguments to main(). |
| SPRUI04 | Using the Compiler | #GUID-50354AE1-9585-4868-878F-0939036324F0 | Corrected to state that automatic inlining is performed with --opt_level=3, but not --opt_level=2. |
| SPRUI04 | C/C++ Language | #GUID-0E24B11E-48B0-45B9-8F58-1408BBCD5F77 | Added the diag_push and diag_pop diagnostic message pragmas. |
| SPRUI04 | C/C++ Language | #GUID-F63D16C2-349F-4357-935E-2F7F5E70C589 | Added the NOINIT and PERSISTENT pragmas. |
| SPRUI04 | C/C++ Language | #GUID-65EEBDAB-33A6-4AD1-98FD-3B1CCA815FC6 | The ramfunc function attribute has been added. |
| SPRUI04 | C/C++ Language | #GUID-965A0B01-9C16-4E42-AEBB-003AFE34E9F6 and #GUID-5A2C04DB-3D30-4BED-91C1-C7F3B1DC1D3E | Added vector data types. |
| SPRUI04 | Run-Time Environment | #GUID-EA663CE9-F9EC-4E49-88A6-E33E2B797DB8 | Added reference to section on accessing linker symbols in C and C++ in the Assembly Language Tools User's Guide. |
| SPRUI04 | Run-Time Environment | #GUID-D48E2C0E-E51E-416A-8F21-0515C73F673A | Corrected the operands for the _shr2 and _shru2 intrinsics. |
Changes from Revision () to Revision ()