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.

[参考译文] 编译器/MSP430FR6820:优化、消除局部公共表达式

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/948154/compiler-msp430fr6820-optimization-eliminating-local-common-expressions

器件型号:MSP430FR6820

工具/软件:TI C/C++编译器

大家好、团队、

我们正在进行代码优化。 当前使用的是-O0优化级别(第55页、 SLAU132R)、但由于我们对存储器的限制、我们可能需要更改为-O1级别。

该级别包含"消除本地常用表达式"优化。

问题、是否有其他可用说明、此特定优化的实际作用是什么(示例?)?  我们是否应该害怕功能不一致等?

谢谢你

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

    请在 MSP430编译器手册中搜索 标题为 "数据流优化"的子章节。  短语消除局部公共表达式是指在基本块中执行公共子表达式消除。   

    例如,类似这样的东西...

    /*类似 C 的伪代码*/
    
    a = b + c;
    //几行之后,在同一循环内部或 if block */
    d = b + c; 

    (笑声) 优化到...

    temp = b + c;
    a = temp;
    /*几行之后*/
    d = temp; 

    [引用 user="Bart"]我们是否应该害怕函数不一致等?

    任何优化的第一条规则是、它必须计算与原始源代码相同的结果。

    谢谢、此致、

    乔治