OSDN Git Service

2009-04-10 Paolo Bonzini <bonzini@gnu.org>
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 11 Apr 2009 00:43:33 +0000 (00:43 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 11 Apr 2009 00:43:33 +0000 (00:43 +0000)
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
gcc/doc/invoke.texi

index c61b4cd..24e0f46 100644 (file)
@@ -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
index e87de62..a09ce75 100644 (file)
@@ -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