This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ARM-CGT:使用-mllvm -align-all-functions=2编译器选项

Guru**** 656470 points
Other Parts Discussed in Thread: ARM-CGT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1080160/arm-cgt-use-of--mllvm--align-all-functions-2-compiler-option

部件号:ART-CGT

你(们)好
我 想启用“mlvm-align-all-functions=2”编译器选项以减少孔数。 我将其用于 MCU-plus-SDK-AM243X 中提供的示例

MCU+ SDK 提供了两种构建示例的方法:Makefile 和 CCS 项目。 我发现,启用上述选项对这些选项的行为有所不同。 当我为 CCS 项目启用它时,我会看到以下警告。 当我为基于 makefile 的生成启用它时,我看不到此警告。

tiarmclang:警告:编译期间未使用的参数:'-mllvm -align-all-functions=2'[-Wunused - command-line-argum]

我确实看到 CCS 生成的二进制文件的内存消耗量与 makefile 的内存消耗量相差0.2 KB。

您能否解释当为 CCS 项目启用选项时为什么会出现此警告?

此致
达瓦尔·坎德拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    达瓦尔,您好!

    请您分享更多信息吗?

    • 您使用的是哪种版本的 AM243x MCU+SDK?
    • TI clang 编译器的哪个版本?
    • SDK 中的哪一个示例?
    • 您能否准确展示如何为 make 文件和 CCS 构建版本添加编译器选项?

    此致,
    弗兰克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    [引用 userid="16636" url=~ë/support/icls/arm-based 微处理器-组/基于 ARM 的微处理器/f/基于 ARM 的微控制器- forum/1080160/arm-CGT 使用- mllvm-align-all-functions-2-编译器选项/3999115#3999115“AM243x”的版本?]

    08_02_00_12

    [引用 userid="16636" url="~/support/icles/arm-based 微处理器-组/基于 ARM 的微处理器/f/基于 ARM 的微控制器- forum/1080160/arm-Cgt 使用- mllvm-align-all-functions-2-编译器选项/3999115#3999115] TI 的哪个版本?

    1.3.0.LTS

    [引用 userid="16636" url="~/support/icles/arm-based 微处理器-组/基于 ARM 的微处理器/f/基于 ARM 的微控制器- forum/1080160/arm-Cgt 使用- mlvm-align-all-functions-2-编译器选项/3999115#3999115来自 SDK 的以下哪一个示例?]

    示例\INDUSTRIAL_COMMS\EtherNetIP_adapter_demo

    [引用 userid="16636" url=~ë/support/icles/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1080160/arm-Cgt 使用- mlvm-align-all-functions-2编译器选项/3999115#3999115],您可以使用哪个版本的文件和哪个版本来创建 CCS?
    • CCS:在“项目属性”->“臂编译器”->“编辑标记”中添加此选项
    • Makefile:在 makefile 的“CFLAGS_COMMON :=”中添加标志

    此致
    达瓦尔·坎德拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="428510" url=~ë/support/icles/arm-based 微处理器组/基于 ARM 的微处理器/f/arm-based 微处理器- forum/1080160/arm-Cgt 使用-mlvm-align-all-functions-2-编译器选项/3999622#3999622>在项目中添加标记[引用项目名称]-“编辑标记”-“编辑”选项”

    使用 CCS 11.1和 TI clang 1.3.LTS,我尝试在 Arm Compiler (臂编译器)下添加-mlvm -align-all-Functions=2 -> Advanced Options (高级选项)-> Miscellaneous (其他)-> Miscellaneous C source specific flags (C 源特定的杂项标志)和 Miscellaneous C++ source specific flags (其他 C++源

    查看链接的可执行文件时,文本的大小已经减小。

    设置上述标志会导致 只编译 C 或 C++源文件时,-mlvm -align-all-functions=2选项传递给 clang。

    最初尝试在  “杂项”标志下添加-mlvm -align-all-functions=2时,选项在链接期间也被传递到 clang,而在链接期间报告了以下内容:

    tiarmclang:警告:编译期间未使用的参数:'-mllvm -align-all-functions=2'[-wunused -命令行自变量]

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    达瓦尔,您好!

    我在<SDK>/examples/industrial_comms/EtherNetIP_adapter_demo/MII/am243x-EVM-r5fs0-0_FreeRTOS/ti-arm-clang 中选择了该示例。

    我能够使用发行版本配置重现您的结果:

    • 将选项添加到 CFLAGS_COMMON 时,未发出生成文件的警告。
    • 针对 CCS Build adding 选项发出的警告,如您所述。 警告由链接器发出。

    对于 CCS 版本,当我添加切斯特描述的选项时,链接程序不会发出警告。

    [引用 userid="428510" url="~ë/support/icls/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1080160/arm-Cgt 使用-mlvm-align-all-functions-2-编译器选项"],在二进制文件和二进制文件的消耗量之间确实存在0.2kb[。]

    对我来说,区别是~1.5 KB。 您认为这是个问题吗?

    此致,
    弗兰克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    达瓦尔,您好!

    我找不到任何'-mllvm -align-all-functions=2'的文档。 请您向我提供有关此选项的一些文档吗?

    谢谢,此致,
    弗兰克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好
    我在 TI clang 文档中找不到它。

    这里有一个简短的解释: https://easyperf.net/blog/2025年18月01日 /代码_对齐_选项_in_lvm#align-all-functions

    此致
    达瓦尔·坎德拉  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    达瓦尔,您好!

    非常感谢大家分享这些文档。

    由于警告问题已解决,我现在将关闭此线程。 如果需要其他信息,请告诉我。

    此致,
    弗兰克