Datasheet
C and C++ Compilers
ARM DUI 0067D Copyright © 1999-2001 ARM Limited. All rights reserved. 2-25
while (expression) body;
as:
if (expression) {
do body;
while (expression);
}
If you specify neither
-Otime
or
-Ospace
, the compiler uses
-Ospace
. You
can compile time-critical parts of your code with
-Otime
, and the rest with
-Ospace
. You must not specify both
-Otime
and
-Ospace
in the same
compiler invocation.
-Ono_inline
This option disables inlining of functions. Calls to inline functions are not
expanded inline. You can use this option to help debug inline functions.
-Oinline
This option enables the compiler to inline functions. This is the default.
The compiler inlines functions when it is sensible to do so:
• Automatically, for optimization level
O2
unless the
-Ono_autoinline
option is specified.
• When the function is qualified as an inline function, for example
with the
__inline
keyword in C or the
inline
keyword in C++. This
applies for all optimization levels. Functions qualified as inline
functions are more likely to be inlined, but the qualifier is only a
hint to the compiler. See Function keywords on page 3-6.
The compiler changes its criteria for inlining functions depending on
whether you select
-Ospace
or
-Otime
. Selecting
-Otime
increases the
number of functions that are inlined.
Note
Setting breakpoints in ROM images
When you set a breakpoint on an inline function, the ARM debuggers
attempt to set a breakpoint on each inlined instance of that function. If
you are using Multi-ICE
®
or other hardware to debug an image in ROM,
and the number of inline instances is greater than the number of available
hardware breakpoints, the debugger cannot set the additional breakpoints
and reports an error.
-Ono_autoinline
This option disables automatic inlining. This is the default for
optimization levels
-O1
and
-O0
if
-Oinline
is enabled.