re PR middle-end/39701 (Revision 145846 caused many test failures)
2009-04-10 Paolo Bonzini <bonzini@gnu.org> PR tree-optimization/39701 * doc/invoke.texi (Optimization Options): Document change in meaning and initialization of -fdelete-null-pointer-checks. From-SVN: r145948
This commit is contained in:
parent
1f54468443
commit
567a90f59c
@ -1,3 +1,9 @@
|
||||
2009-04-10 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
PR tree-optimization/39701
|
||||
* doc/invoke.texi (Optimization Options): Document change in
|
||||
meaning and initialization of -fdelete-null-pointer-checks.
|
||||
|
||||
2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR middle-end/39701
|
||||
|
@ -5888,17 +5888,22 @@ Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
|
||||
|
||||
@item -fdelete-null-pointer-checks
|
||||
@opindex fdelete-null-pointer-checks
|
||||
Use global dataflow analysis to identify and eliminate useless checks
|
||||
for null pointers. The compiler assumes that dereferencing a null
|
||||
pointer would have halted the program. If a pointer is checked after
|
||||
it has already been dereferenced, it cannot be null.
|
||||
Assume that programs cannot safely dereference null pointers, and that
|
||||
no code or data element resides there. This enables simple constant
|
||||
folding optimizations at all optimization levels. In addition, other
|
||||
optimization passes in GCC use this flag to control global dataflow
|
||||
analyses that eliminate useless checks for null pointers; these assume
|
||||
that if a pointer is checked after it has already been dereferenced,
|
||||
it cannot be null.
|
||||
|
||||
In some environments, this assumption is not true, and programs can
|
||||
safely dereference null pointers. Use
|
||||
@option{-fno-delete-null-pointer-checks} to disable this optimization
|
||||
Note however that in some environments this assumption is not true.
|
||||
Use @option{-fno-delete-null-pointer-checks} to disable this optimization
|
||||
for programs which depend on that behavior.
|
||||
|
||||
Enabled by default.
|
||||
Some targets, especially embedded ones, disable this option at all levels.
|
||||
Otherwise it is enabled at all levels: @option{-O0}, @option{-O1},
|
||||
@option{-O2}, @option{-O3}, @option{-Os}. Passes that use the information
|
||||
are enabled independently at different optimization levels.
|
||||
|
||||
@item -fexpensive-optimizations
|
||||
@opindex fexpensive-optimizations
|
||||
|
Loading…
Reference in New Issue
Block a user