ARM上C代码的复杂性

时间:2017-03-06 15:10:45

标签: c arm workload

我正在尝试在ARM设备上运行我的代码。到目前为止它还在运行,我还有一个测量复杂性的工具。现在我有许多标准函数用于执行数学运算,例如除法,乘法,加法等。

如果我把这些函数写成例如,它会更容易(即不那么复杂)。

"qadd %0, %1, %4;"

nans
如果值在相应的寄存器中,

将是此操作的arm代码。我只是想知道在ARM代码中编写所有内容是否真的会降低复杂性。 此外,这对条件(如If和Else)的行为如何。

谢谢。

2 个答案:

答案 0 :(得分:1)

让编译器处理它,直到你发现瓶颈。

请注意,QADD是饱和算术,并且与您显示的C代码具有不同的行为。

答案 1 :(得分:-1)

代码复杂性分析工具通常仅适用于C代码。大多数此类工具将无法在包含内联汇编的代码上正常运行 - 确定函数的cyclomatic complexity需要一个工具来确定通过函数的所有代码流路径,这对于汇编比C代码要困难得多。如果给出了值,则对于包含任何分支的内联汇编可能不正确。

从实际角度来看,内联汇编应该被视为具有无限复杂度。循环复杂性旨在衡量读取和调试代码的难度;任何内联汇编的使用都会使代码难以使用。