工具/软件:TI C/C++编译器
我们希望了解有关 TI ARM 优化 C/C++编译器 v18.1.4.LTS 的以下已知问题的更多信息。
供参考、我们将在编译器中使用以下参数:
"c:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl -mv7R5 --code_state=32 --float_support=VFPv3D16 --define=_TMS570LC43x_ -g -c99 --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi_prelisting_proc-comp_with_listing"。 (加上几个--include_paths、--defines 和--preproc_dependency。)
(请注意、我们在 CCS 中指定了"off"的优化级别、我认为它通过指定-g 参数而不指定--opt_level 参数来实现。)
CodeGen-4304 "未对齐访问(在某些处理器变体上、并非在所有处理器变体上)时出现运行时故障":
我看到这件事附带了一个测试用例、但没有进一步的分析。 这似乎不是用户做了一些错误、导致了未对齐访问的情况、而是编译器或库出现了某种问题。 哪些情况会触发此问题?
SDSCM00051484 "编译器不尊重 C99指定初始化程序中的部分覆盖":
我们在代码中使用 C99指定的初始化程序。 此处容易受到哪种类型的指定初始化使用的影响?
SDSCM00047077 "最终目的短接时、错误地将双常量减少为浮点":
此范围有多大? 当"最终目标"是 char 时、是否也会发生这种情况? int / long 或 long long 目标是否安全? 在"瞄准"较短或有时只是浮动时、是否总是将双常量减少到浮点? 优化是否会影响这一点? 编译器是否有任何其他情况将双精度运算减少到单精度运算(C 标准要求的正常操作除外)?
此外,我们希望看到这一问题得到解决。 我们理解、就可能对执行代码产生的影响而言、将严重性标记为较小是合理的、但对于我们来说、跟踪和分析可能易受此问题影响的代码是一个重要问题、这是一个过程方面的问题。
SDSCM00050131 "将非常量初始化程序视为静态作用域变量的本地结构":
我很感激18.1.0.LTS 中将其固定、但我们将设备编译为18.1.4.LTS。 此问题是否因是否启用了优化而产生影响?
我的解释是、禁用优化后、以下两个问题不是问题。 您可以确认吗?
- CodeGen-5527 "本地结构初始化被错误地优化离开"
- CodeGen-5032 "在阵列上循环、之前重复使用标量温度随机播放阵列、可能会产生不正确的结果"
-thx