我是韩国的研究生,对编译期间消除mov
指令的优化感兴趣。
特别是在ARM ISA中,我观察到mov指令用于处理堆栈操作(push
或pop
)和过程调用的PC地址处理。
在编译期间,可以使用高优化级别消除mov
指令,但ARM体系结构中的mov
指令用于处理过程调用。因此,我认为与注册间数据复制的一般mov指令不同,它们无法被删除。
在编译期间是否可以删除过程调用的这些mov
指令?有谁知道这些概念或来源?
我找不到这样的信息......
2017年修改.10。24。
当我使用gcc编译器构建源代码时,我发现仍有mov
个指令处理stack
指针和frame
指针。
简而言之,我想知道具体的情况,mov
指令永远不会被编译器优化或某些东西消除。我建议必须有这种情况。