Opt Tool
Opt is the LLVM Optimizer and analyzer tool that is run on LLVM IR to optimize the IR or produce an analysis about it. We saw in the first chapter a very basic introduction to the opt tool, and how to use it to run analysis and transformation passes. In this section, we will see what else the opt tool does. We must note that opt is a developer tool and all the optimizations that it provides can be invoked from the frontend as well.
With the opt tool, we can specify the level of optimization that we need, which means we can specify the optimization levels from O0
, O1
, O2
, to O3
(O0
being the least optimized code and O3
being the most optimized code). Apart from these, there is also an optimization level Os
or Oz
, which deals with space optimization. The syntax to invoke one of these optimizations is:
$ opt -Ox -S input.ll
Here, x represents the optimization level, which can have a value from 0 to 3 or s or z. These optimization levels are similar to what Clang frontend specifies....