Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 ユーザーズマニュアル

製品コード
SW006021-1
ページ / 518
C Language Features
 2012 Microchip Technology Inc.
DS52053B-page 209
Variables assigned a value before being read are not cleared or initialized by the 
runtime startup code. Only non-auto variables are considered and if they 
are assigned a value before other code can read their value, they are treated 
as being persistent, see Section 5.4.8.1 “Persistent Type Qualifier”
All persistent objects are not cleared by the runtime startup code, so this 
optimization will speed execution of the program startup.
Dereferencing pointers with only target can be replaced with direct access of the 
target object. This applies to data and function pointers.
As C-level optimizations are performed before debug information is produced, they 
tend to have less impact on debugging information. However, if a variable is located in 
a register IDEs, such as MPLAB IDE, may indicate incorrect values in their Watch view. 
This is due to a limitation in the file format used to pass debug information to the IDE 
(which is currently COFF). Check the assembly list file to see if registers are using in 
the routine being debugged.
The assembly-level optimizations are described in Section 6.5 “Assembly-Level 
Optimizations”
.