clang 和 llvm opt 中可用的优化列表

List of optimizations available in clang and llvm opt

可以使用 gcc --help=optimizers 获取 GCC/G++ 中可用的优化器列表。合法值和参数范围也在params.def中定义。 是否也有这样的命令和 params.def 文件可用于 clang?

1- 对于 Clang 使用:

clang -OX -mllvm -debug-pass=Arguments foo.c

clang -OX -mllvm -debug-pass=Structure foo.c

其中 X 可以是 Os,O1,O2,O3 and O4(-O4 等同于 -O3,除了它执行 LTO(link 时间优化)当从源文件编译的目标文件发出LLVM IR 而不是目标代码)

您将有两组 Pass Arguments,其中第一组是 global kernel 传球,第二组是 function pass

2- 对于 Opt 使用:

llvm-as < /dev/null | opt -OX -disable-output -debug-pass=Arguments

其中 X 可以是 Os,O1,O2 and O3