SPRUIG8J January 2018 – March 2024
These options are specific to the C7000 toolset. See the referenced sections for more information.
--big_endian | Produces code in big-endian format. By default, little-endian code is produced. | |
--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.7.2. | |
--disable_software_pipeline | Turns off software pipelining. See Section 4.7.1. | |
--fp_not_associative | Compiler does not reorder floating-point operations. See Section 4.10. | |
--mma_version={ 1 | 2 | 2_256 | disallow } | Specifies the Matrix Multiply Accelerator (MMA)
revision on the device to be used. For a specific C7000 silicon
version, the setting of --mma_version may be the MMA version that
corresponds to the silicon version (which is the default) or
disallow . Specifying an MMA version that does
not match the silicon version is prohibited and causes an error.
The compiler places appropriate MMA build attributes in object files it generates. |
|
Object files specify that the MMA is not used (UNUSED) if either the --mma_version=disallow option was used to disable use of the MMA or if the code in the application performs no actions that could make use of the MMA. | ||
MMA build attributes ensure that linking is disallowed for object files that use incompatible versions of the MMA. Versions 1, 2, and 2_256 of the MMA are all incompatible with each other. Object files with the MMA version set to UNUSED may be linked with files that use any MMA version (but not more than one version). For more details, see the C7000 EABI Technical Reference Guide (SPRUIG4). | ||
--pending_instantiations=# | Specify the number of template instantiations that may be in progress at any given time. Use 0 to specify an unlimited number. | |
--ramfunc={on|off} | If set to on, indicates that each function will be run from RAM. Functions will be placed in RAM and optimized for RAM execution. Equivalent to specifying __attribute__((ram_func)) on all functions in the translation unit. If set to off, only functions with the ramfunc function attribute are treated this way. See Section 5.13.2. | |
--silicon_version=num | Selects the target CPU version. See Section 3.3.5. | |
--silicon_errata_i2117 | The --silicon_errata_i2117 compiler option generates code that automatically works around silicon errata i2117 on devices with the C7100 CPU core. MMA performance may be negatively impacted by the use of this option in edge cases. This option is off by default. | |
--silicon_errata_i2376={on|off} | The --silicon_errata_i2376=on compiler option generates code that automatically works around silicon errata i2376 on devices with the C7504 CPU core. Performance should not be significantly affected by this workaround. This option is on by default if the --silicon_version=7504 compiler option (or the -mv7504 alias) is used. To turn off use of this workaround, use --silicon_errata_i2376=off. Turning off this workaround is not recommended; it is only intended to be turned off by advanced users in specific situations. |