SDCC Manual
next up previous contents index
 

3.2.8 Optimization Options

  • [--nogcse] Will not do global subexpression elimination, this option may be used when the compiler creates undesirably large stack/data spaces to store compiler temporaries (spill locations, sloc). A warning message will be generated when this happens and the compiler will indicate the number of extra bytes it allocated. It is recommended that this option NOT be used, #pragma nogcse can be used to turn off global subexpression elimination for a given function only.
  • [--noinvariant] Will not do loop invariant optimizations, this may be turned off for reasons explained for the previous option. For more details of loop optimizations performed see Loop Invariants in section 8.1.4. It is recommended that this option NOT be used, #pragma noinvariant can be used to turn off invariant optimizations for a given function only.
  • [--noinduction] Will not do loop induction optimizations, see section strength reduction for more details. It is recommended that this option is NOT used, #pragma noinduction can be used to turn off induction optimizations for a given function only.
  • [--nojtbound] Will not generate boundary condition check when switch statements are implemented using jump-tables. See section 8.1.7 Switch Statements for more details. It is recommended that this option is NOT used, #pragma nojtbound can be used to turn off boundary checking for jump tables for a given function only.
  • [--noloopreverse] Will not do loop reversal optimization.
  • [--nolabelopt] Will not optimize labels (makes the dumpfiles more readable).
  • [--no-xinit-opt] Will not memcpy initialized data from code space into xdata space. This saves a few bytes in code space if you don't have initialized data.
  • [--nooverlay] The compiler will not overlay parameters and local variables of any function, see section Parameters and local variables for more details.
  • [--no-peep] Disable peep-hole optimization with built-in rules.
  • [--peep-file <filename>] This option can be used to use additional rules to be used by the peep hole optimizer. See section 8.1.13 Peep Hole optimizations for details on how to write these rules.
  • [--peep-asm] Pass the inline assembler code through the peep hole optimizer. This can cause unexpected changes to inline assembler code, please go through the peephole optimizer rules defined in the source file tree '<target>/peeph.def' before using this option.
  • [--opt-code-speed] The compiler will optimize code generation towards fast code, possibly at the expense of code size.
  • [--opt-code-size] The compiler will optimize code generation towards compact code, possibly at the expense of code speed.



next up previous contents index
Next: 3.2.9 Other Options Up: 3.2 Command Line Options Previous: 3.2.7 GBZ80 Options   Contents   Index
2009-10-11