![]() ZBasic Language Reference
150
ZBasic Microcontrollers
--no-analyze-stack-use
When this option is specified, the compiler will not perform an analysis of the tasks in your application to
determine the minimum stack size required. Consequently, you must make your own determination of the
proper task stack sizes by whatever means is appropriate.
--no-code
This option causes the compiler to omit the code generation step. By implication, no map file will be
generated either. This may be useful if all you want is a syntax check.
--no-map
This option causes the compiler to omit map file generation.
--objects
This option enables object-oriented extensions, procedure overloading and namespaces.
--optimize=<optimization-type>[,<optimization-type>...]
This option enables or disables specific types of optimizations. In most cases, youll want to use the
default optimization settings. This option is provides for unusual circumstances where more control is
needed over the optimizations performed. The optimization types are described in the table below. To
disable an optimization type, add the prefix no- to the optimization type, e.g. no-strength-
reduction. All optimization can be turned off using -optimize=no-optimize.
Optimization Type
Description
constant-folding
Expressions involving constants may be evaluated at compile-time.
Note, particularly, that some System Library function invocations
having parameters known to be constant may be replaced by the
equivalent value. In some cases the same strategy may be applied to
user-defined functions.
constant-propagation
The use of expressions involving variables known to be constant may
be replaced with the constant value.
expression-order
Expressions may be rearranged to facilitate additional optimizations.
Such rearrangement will never be performed across parenthetical
boundaries if the option preserve-parens is specified.
inline
Small subroutines and functions may be generated in-line instead of
generating a routine invocation.
optimize
Refers to all affirmative optimization types collectively. The only
optimization type not included in this group is preserve-parens.
preserve-parens
The presence of this options restricts the use of expression
optimizations to parenthetical boundaries.
strength-reduction
Reduction-in-strength optimizations may be performed, e.g.
multiplication by a power of two replaced by left shift.
string-pooling
Code size is reduced by detecting identical strings. Each string
appears just once in Program Memory but may be referred to in
multiple places.
unreachable-code
Code that cannot possibly be executed may be eliminated.
unreferenced-code
Routines that are not used are not included in the generated code.
unreferenced-vars
Variables that are not referenced or are eliminated by optimization
may not be allocated space.
use-identities
Expression complexity may be reduced by applying algebraic or
logical identities. For example, i * j can be replaced by i if j is
known to have the value 1.
|