SPRUIG5E January   2018  – March 2023 TDA4VM , TDA4VM-Q1

 

  1.   Abstract
  2. 1About This Document
    1. 1.1 Related Documents
    2. 1.2 Trademarks
  3. 2Migrating C Source from C6000 to C7000
    1. 2.1  Compiler Options
    2. 2.2  Native Vector Data Types
    3. 2.3  Type Qualifiers: near and far
    4. 2.4  64-bit long Type
    5. 2.5  References to Control Registers
    6. 2.6  Memory-Mapped Peripherals
    7. 2.7  Run-Time Support
    8. 2.8  Contents of Migration Header File c6x_migration.h
      1. 2.8.1 Supported Macros
      2. 2.8.2 Non-Supported Macros
      3. 2.8.3 Legacy Data Types
      4. 2.8.4 Legacy Intrinsics
    9. 2.9  Galois Field Multiply Instructions
    10. 2.10 Performance Considerations for Migrated Code
      1. 2.10.1 UNROLL Pragma
      2. 2.10.2 Subvector Access
      3. 2.10.3 16x16 and 16x32 Bit Multiplies
      4. 2.10.4 __x128_t Type
      5. 2.10.5 Unsigned Array Offsets
      6. 2.10.6 Streaming Engine and Streaming Address Generator
      7. 2.10.7 Additional Optimization Guidance
  4. 3Host Emulation
  5. 4Revision History
    1.     29
    2.     30

Compiler Options

Change the following compiler command-line options when porting C6000 code to C7000:

  • Set the --silicon_version option to --silicon_version=7100. (Or replace the -mv6600, -mv6740, or -mv6400+ option with -mv7100.)
  • The --interrupt_threshold (-mi) option will be ignored. C7000 C code is always interruptible.
  • The --speculate_loads (-mh) option will be ignored. The C7000 compiler uses speculative load instructions for all loads except those to ioport variables/addresses.
  • Specify the size/speed tradeoff option using the --opt_for_speed (-mf) option. Change the previously used --opt_for_space (-ms) option to the corresponding -mf option using Table 2-1. The --opt_for_space options do not exist for C7000. An --opt_for_speed option must be used instead, even if no --opt_for_space option was used for C6000.
Table 2-1 Corresponding -ms and -mf Options
--opt_for_space (-ms) level (C6000 only)--opt_for_speed (-mf) level (C6000 and C7000)Description
No C6000 option-mf5Maximum performance on C7000; Code size could be very large
no -ms option selected-mf4Near maximum performance on C7000; Maximum performance on C6000
-ms0-mf3Favor performance
-ms1-mf2Favor code size
-ms2-mf1Near minimum code size
-ms3-mf0Minimum code size

Consider using the --opt_level=3 (-O3) compiler option. This option enables a high level of optimization by the compiler.