Keeping track of pointers during optimization is difficult and in some cases impossible. Using pointers inhibits most memory optimization (such as dead store elimination and store motion).
Using the #pragma disjoint preprocessor directive to list identifiers that do not share the same physical storage can improve the runtime performance of optimized code.
Also see assert for information on applying aliasing assertions to pointers in your compilation unit.
Writing Optimized Code... Overview Variables Functions Function Arguments Expressions Critical Loops Conversions Arithmetic Conversions Inlined Components