Note: Information in this post applies to MPIDE, which has been deprecated. The recommended IDE for chipKIT core is now Arduino IDE or UECIDE. MPIDE still offers support for legacy code. For more information about MPIDE, please visit the legacy Install Page.
This is a fork of the compiler from about October 2010. So it's ahead of the Microchip MPLAB C32 v1.12 release, but behind the upcoming C32 v2.00 release. Basically it's similar to C32 v1.12, but updated to GCC 4.5.1. Also, the default linker scripts are modified to work with the chipKIT bootloader. There are no optimization restrictions in this build, but it will likely be updated less often than the official MPLAB C32 compiler.
Source code: https://github.com/chipKIT32/chipKIT-cxx
Currently, MPIDE is configured to call the compiler with the -O2 optimization option. The -O2 set of optimization usually results in a nice balance between code size and speed. However, there are some instances where you want to sacrifice code size (use more FLASH memory) in order to get more speed. Luckily, Rick has introduced features in MPIDE that makes changing the default compiler options easy to change.
To change the optimization level:
Optimization levels
It also performs further optimizations designed to reduce code size.
For example:
pic32.compiler.c.flags=-O3::-c::-mno-smart-io::-ffunction-sections::-fdata-sections
pic32.compiler.cpp.flags=-O3::-c::-mno-smart-io::-ffunction-sections::-fdata-sections
If you really want aggressive performance for your sketch, you could also add the -funroll-loops option. Note that this option almost always increases code size but it may or may not increase performance.
For example:
pic32.compiler.c.flags=-O3::-funroll-loops::-c::-mno-smart-io::-ffunction-sections::-fdata-sections
pic32.compiler.cpp.flags=-O3::-funroll-loops::-c::-mno-smart-io::-ffunction-sections::-fdata-sections