From 390c1c3b1d03e5710de5c3b5819b0dddc0ae9fbf Mon Sep 17 00:00:00 2001 From: hjl Date: Sat, 11 Apr 2009 00:43:33 +0000 Subject: [PATCH] 2009-04-10 Paolo Bonzini PR tree-optimization/39701 * doc/invoke.texi (Optimization Options): Document change in meaning and initialization of -fdelete-null-pointer-checks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145948 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/doc/invoke.texi | 23 ++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c61b4cd..24e0f46 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-04-10 Paolo Bonzini + + 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 PR middle-end/39701 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index e87de62..a09ce75 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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. - -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 +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. + +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 -- 2.7.4