www.ti.com
C/C++ Compiler Overview
The following list describes the tools that are shown in Figure 1-1:
• The assembly optimizer allows you to write linear assembly code without being concerned with the
pipeline structure or with assigning registers. It accepts assembly code that has not been
register-allocated and is unscheduled. The assembly optimizer assigns registers and uses loop
optimization to turn linear assembly into highly parallel assembly that takes advantage of software
pipelining. See Chapter 4.
• The compiler accepts C/C++ source code and produces C6000 assembly language source code. See
Chapter 2.
• The assembler translates assembly language source files into machine language object modules. The
TMS320C6000 Assembly Language Tools User's Guide explains how to use the assembler.
• The linker combines object files into a single executable object module. As it creates the executable
module, it performs relocation and resolves external references. The linker accepts relocatable object
files and object libraries as input. See Chapter 5. The TMS320C6000 Assembly Language Tools
User's Guide provides a complete description of the linker.
• The archiver allows you to collect a group of files into a single archive file, called a library.
Additionally, the archiver allows you to modify a library by deleting, replacing, extracting, or adding
members. One of the most useful applications of the archiver is building a library of object modules.
The TMS320C6000 Assembly Language Tools User's Guide explains how to use the archiver.
• You can use the library-build process to build your own customized run-time-support library. See
Section 8.5. Standard run-time-support library functions for C and C++ are provided in the
self-contained rtssrc.zip file.
The run-time-support libraries contain the standard ISO run-time-support functions, compiler-utility
functions, floating-point arithmetic functions, and C I/O functions that are supported by the compiler.
See Chapter 8.
• The hex conversion utility converts an object file into other object formats. You can download the
converted file to an EPROM programmer. The TMS320C6000 Assembly Language Tools User's Guide
explains how to use the hex conversion utility and describes all supported formats.
• The absolute lister accepts linked object files as input and creates .abs files as output. You can
assemble these .abs files to produce a listing that contains absolute, rather than relative, addresses.
Without the absolute lister, producing such a listing would be tedious and would require many manual
operations. The TMS320C6000 Assembly Language Tools User's Guide explains how to use the
absolute lister.
• The cross-reference lister uses object files to produce a cross-reference listing showing symbols,
their definitions, and their references in the linked source files. The TMS320C6000 Assembly
Language Tools User's Guide explains how to use the cross-reference utility.
• The C++ name demangler is a debugging aid that converts names mangled by the compiler back to
their original names as declared in the C++ source code. As shown in Figure 1-1, you can use the C++
name demangler on the assembly file that is output by the compiler; you can also use this utility on the
assembler listing file and the linker map file. See Chapter 9.
• The disassembler disassembles object files. The TMS320C6000 Assembly Language Tools User's
Guide explains how to use the disassembler.
• The main product of this development process is a module that can be executed in a TMS320C6000
device. You can use one of several debugging tools to refine and correct your code. Available products
include:
– An instruction-level and clock-accurate software simulator
– An XDS emulator
1.2 C/C++ Compiler Overview
The following subsections describe the key features of the compiler.
1.2.1 ANSI/ISO Standard
These features pertain to ISO standards:
• ISO-standard C
19
SPRU187Q–February 2010 Introduction to the Software Development Tools
Submit Documentation Feedback
Copyright © 2010, Texas Instruments Incorporated