编译器优化

高层优化
过程内联。用函数体替换函数调用,用调用实参替换过程参数。
通过循环变换减少循环开销;改善存储器访问;更有效使用硬件资源
局部和全局优化
局部优化:作用于单个基本块
全局优化:作用于多个基本块
全局寄存器分配:分配代码区域的变量给寄存器,性能关键
公用子表达式消除/常数传播/复制传播/无用内存写消除和强度消弱
编译器优化程度

C和JAVA对比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Makefile可以用于优化编译器的参数和选项,以提高代码的执行效率和性能。通过在Makefile中设置编译器优化选项,可以让编译器在编译代码时进行一些优化,以生成更高效的机器代码。 以下是一些常用的编译器优化选项: 1. -O0:关闭所有优化选项,生成未优化的代码。 2. -O1:启用基本优化选项,包括删除未使用的代码和常量折叠。 3. -O2:启用更多的优化选项,包括循环展开和内联函数。 4. -O3:启用更高级的优化选项,包括向量化和函数内部优化。 5. -Os:优化代码大小,以减小生成的可执行文件的大小。 6. -Ofast:启用所有的优化选项,包括一些可能会影响代码正确性的选项。 在Makefile中,可以使用变量来设置编译器优化选项。例如,可以使用`CFLAGS`变量来设置C语言编译器的选项,使用`CXXFLAGS`变量来设置C++语言编译器的选项。下面是一个示例: ```makefile CFLAGS = -O2 -Wall CXXFLAGS = -O3 -std=c++11 target: source.c gcc $(CFLAGS) -o target source.c target_cpp: source.cpp g++ $(CXXFLAGS) -o target_cpp source.cpp ``` 在上面的示例中,`CFLAGS`变量设置了C语言编译器优化选项为`-O2 -Wall`,`CXXFLAGS`变量设置了C++语言编译器优化选项为`-O3 -std=c++11`。然后,在编译目标文件时,使用相应的变量来传递编译器选项。 通过在Makefile中设置编译器优化选项,可以根据具体的需求来优化代码的执行效率和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值