Method: LLVM::PassBuilder#o!
- Defined in:
- lib/llvm/pass_builder.rb
#o!(opt_level = '0', options = {}) ⇒ Object
–O0 - Optimization level 0. Similar to clang -O0. Use -passes=‘default<O0>’ for the new PM –O1 - Optimization level 1. Similar to clang -O1. Use -passes=‘default<O1>’ for the new PM –O2 - Optimization level 2. Similar to clang -O2. Use -passes=‘default<O2>’ for the new PM –O3 - Optimization level 3. Similar to clang -O3. Use -passes=‘default<O3>’ for the new PM –Os - Like -O2 but size-conscious. Similar to clang -Os. Use -passes=‘default<Os>’ for the new PM –Oz - Like -O2 but optimize for code size above all else. Similar to clang -Oz. Use -passes=‘default<Oz>’ for the new PM
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/llvm/pass_builder.rb', line 45 def o!(opt_level = '0', = {}) opt_level = opt_level.to_s = OPT_PASSES[opt_level] if .nil? return add_pass("default<O#{opt_level}>") end if [:disable_inline] = .gsub('devirt<4>(inline,', 'devirt<4>(') end if [:disable_always_inline] = .gsub('always-inline,', '') end add_pass() end |