aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2011-01-15 00:19:08 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2011-01-15 00:19:08 +0100
commit05842ff57c6eb899ffb7bfd6624634f5aa4df878 (patch)
tree59421812ee885d513e8c87c7fb099f042a10672d /gcc/doc
parentf65cf2b706151e0310518eef48bab95cf8155c3c (diff)
downloadgcc-05842ff57c6eb899ffb7bfd6624634f5aa4df878.zip
gcc-05842ff57c6eb899ffb7bfd6624634f5aa4df878.tar.gz
gcc-05842ff57c6eb899ffb7bfd6624634f5aa4df878.tar.bz2
common.opt (fdevirtualize): New flag.
2011-01-15 Martin Jambor <mjambor@suse.cz> * common.opt (fdevirtualize): New flag. * doc/invoke.texi (Option Summary): Document it. * opts.c (default_options_table): Add devirtualize flag. * ipa-prop.c (detect_type_change): Return immediately if devirtualize flag is not set. (detect_type_change_ssa): Likewise. (compute_known_type_jump_func): Likewise. (ipa_analyze_virtual_call_uses): Likewise. From-SVN: r168826
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 0a1625f..c7187f2 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -340,8 +340,8 @@ Objective-C and Objective-C++ Dialects}.
-fcprop-registers -fcrossjumping @gol
-fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules @gol
-fcx-limited-range @gol
--fdata-sections -fdce -fdce @gol
--fdelayed-branch -fdelete-null-pointer-checks -fdse -fdse @gol
+-fdata-sections -fdce -fdce -fdelayed-branch @gol
+-fdelete-null-pointer-checks -fdse -fdevirtualize -fdse @gol
-fearly-inlining -fipa-sra -fexpensive-optimizations -ffast-math @gol
-ffinite-math-only -ffloat-store -fexcess-precision=@var{style} @gol
-fforward-propagate -ffp-contract=@var{style} -ffunction-sections @gol
@@ -5918,6 +5918,7 @@ also turns on the following optimization flags:
-fcrossjumping @gol
-fcse-follow-jumps -fcse-skip-blocks @gol
-fdelete-null-pointer-checks @gol
+-fdevirtualize @gol
-fexpensive-optimizations @gol
-fgcse -fgcse-lm @gol
-finline-small-functions @gol
@@ -6421,6 +6422,14 @@ 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 -fdevirtualize
+@opindex fdevirtualize
+Attempt to convert calls to virtual functions to direct calls. This
+is done both within a procedure and interprocedurally as part of
+indirect inlining (@code{-findirect-inlining}) and interprocedural constant
+propagation (@option{-fipa-cp}).
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fexpensive-optimizations
@opindex fexpensive-optimizations
Perform a number of minor optimizations that are relatively expensive.