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.

o3优化下自动inline应如何操作?

请问inline的自动内联问题,按照ti的文档,选择o3优化,并设置auto_inline的size为某个数比如50或100,可以将size小于此值的函数自动内联处理,但经过实际试验,发现并没有被自动内联处理?  请问具体应该如何操作,谢谢?

  • 楼主,能将您的问题描述的详细点么?

    例如在哪个文档?

    用的是哪个函数?

    谢谢!

  • ti文档spru514d第3.6小节(61页)有关于Automatic Inline Expansion的介绍;我写个小函数,比如

    Uint16 i;
    Uint16 test()
    {
      return i;
    }

    将这个函数放在另一个c文件,然后在主函数里调用这个函数,是用28335芯片在ccs3.3上测试的,使用o3优化并设置auto_inline的size为100、50、0,发现汇编指令里仍然有 LCR test     ,说明编译器对小函数并没有自动inline处理。

    因为我现在不在公司,不好意思测试截图没法提供。我现在就是想达到文档上所说的这种效果,即使用o3优化的自动inline功能,请问具体应如何操作,size应设为多大?谢谢!

  • 你用的是CCS3,还是CCS4?首先要在build options/properties中选-O3,然后在设置-oi=n(代表函数长度)。

    通常需要被inline的函数和调用它的函数在同一个.c或.cpp文件中,不能在不同的.c或.cpp文件通过.h文件来关联。

  • 我用的ccs3.3,你说的这些我都设置了,不知道你们有没有实际验证过这个功能。

    您的意思是说被inline的函数A和调用它的函数在必须同一个.c或.cpp文件中才能实现o3优化时对这个A函数自动inline处理吗?