SW006012 Microchip Technology, SW006012 Datasheet - Page 53

C COMPILER FOR DSPIC30F FAMILY

SW006012

Manufacturer Part Number
SW006012
Description
C COMPILER FOR DSPIC30F FAMILY
Manufacturer
Microchip Technology
Type
MPLAB® C30 Compilerr
Series
PIC24 & DsPICr
Datasheets

Specifications of SW006012

Supported Families
PIC24, DsPIC30F And DsPIC33F
Core Architecture
PIC, DsPIC
Kit Contents
Software And Docs
Mcu Supported Families
PIC24 MCUs And DsPIC DSCs
Tool Type
Compiler
Processor Series
PIC24, dsPIC
Lead Free Status / RoHS Status
Not applicable / Not applicable
For Use With/related Products
dsPIC30F
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
© 2007 Microchip Technology Inc.
TABLE 3-8:
The following options control specific optimizations. The -O2 option turns on all of
these optimizations except -funroll-loops, -funroll-all-loops and
-fstrict-aliasing.
You can use the following flags in the rare cases when “fine-tuning” of optimizations to
be performed is desired.
TABLE 3-9:
-O2
-O3
-Os
-falign-functions
-falign-functions=n
-falign-labels
-falign-labels=n
-falign-loops
-falign-loops=n
-fcaller-saves
Option
Option
GENERAL OPTIMIZATION OPTIONS (CONTINUED)
SPECIFIC OPTIMIZATION OPTIONS
Using MPLAB C30 C Compiler
Optimize even more. MPLAB® C30 performs nearly all
supported optimizations that do not involve a space-speed
trade-off. -O2 turns on all optional optimizations except for
loop unrolling (-funroll-loops), function inlining
(-finline-functions), and strict aliasing optimizations
(-fstrict-aliasing). It also turns on force copy of
memory operands (-fforce-mem) and Frame Pointer elimi-
nation (-fomit-frame-pointer). As compared to -O, this
option increases both compilation time and the performance of
the generated code.
Optimize yet more. -O3 turns on all optimizations specified by
-O2 and also turns on the inline-functions option.
Optimize for size. -Os enables all -O2 optimizations that do
not typically increase code size. It also performs further
optimizations designed to reduce code size.
Align the start of functions to the next power-of-two greater
than n, skipping up to n bytes. For instance,
-falign-functions=32 aligns functions to the next
32-byte boundary, but -falign-functions=24 would align
to the next 32-byte boundary only if this can be done by
skipping 23 bytes or less.
-fno-align-functions and -falign-functions=1 are
equivalent and mean that functions will not be aligned.
The assembler only supports this flag when n is a power of
two; so n is rounded up. If n is not specified, use a
machine-dependent default.
Align all branch targets to a power-of-two boundary, skipping
up to n bytes like -falign-functions. This option can
easily make code slower, because it must insert dummy
operations for when the branch target is reached in the usual
flow of the code.
If -falign-loops or -falign-jumps are applicable and
are greater than this value, then their values are used instead.
If n is not specified, use a machine-dependent default which is
very likely to be 1, meaning no alignment.
Align loops to a power-of-two boundary, skipping up to n bytes
like -falign-functions. The hope is that the loop will be
executed many times, which will make up for any execution of
the dummy operations.
If n is not specified, use a machine-dependent default.
Enable values to be allocated in registers that will be
clobbered by function calls, by emitting extra instructions to
save and restore the registers around such calls. Such
allocation is done only when it seems to result in better code
than would otherwise be produced.
Definition
Definition
DS51284F-page 47

Related parts for SW006012