aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorBin Cheng <bin.cheng@arm.com>2012-10-19 05:42:24 +0000
committerBin Cheng <amker@gcc.gnu.org>2012-10-19 05:42:24 +0000
commitb11f0116d6e5e89dca5b1bfd56ba54fda3e05bf7 (patch)
tree9423fd10c44761618c568365bb200032573cfdf9 /gcc/doc
parent8cba9a053644b2bfcbe64d644d01cf697b51b9c2 (diff)
downloadgcc-b11f0116d6e5e89dca5b1bfd56ba54fda3e05bf7.zip
gcc-b11f0116d6e5e89dca5b1bfd56ba54fda3e05bf7.tar.gz
gcc-b11f0116d6e5e89dca5b1bfd56ba54fda3e05bf7.tar.bz2
common.opt (flag_ira_hoist_pressure): New.
gcc/ChangeLog * common.opt (flag_ira_hoist_pressure): New. * doc/invoke.texi (-fira-hoist-pressure): Describe. * ira-costs.c (ira_set_pseudo_classes): New parameter. * ira.h: Update copyright dates. (ira_set_pseudo_classes): Update prototype. * haifa-sched.c (sched_init): Update call. * ira.c (ira): Update call. * regmove.c: Update copyright dates. (regmove_optimize): Update call. * loop-invariant.c: Update copyright dates. (move_loop_invariants): Update call. * gcse.c: (struct bb_data): New structure. (BB_DATA): New macro. (curr_bb, curr_reg_pressure): New static variables. (should_hoist_expr_to_dom): Rename from hoist_expr_reaches_here_p. Change parameter expr_index to expr. New parameters pressure_class, nregs and hoisted_bbs. Use reg pressure to determine the distance expr can be hoisted. (hoist_code): Use reg pressure to direct the hoist process. (get_regno_pressure_class, get_pressure_class_and_nregs) (change_pressure, calculate_bb_reg_pressure): New. (one_code_hoisting_pass): Calculate register pressure. Allocate and free data. gcc/testsuite/ChangeLog * testsuite/gcc.dg/hoist-register-pressure.c: New test. From-SVN: r192604
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f8c9230..a66dff1 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -372,7 +372,7 @@ Objective-C and Objective-C++ Dialects}.
-finline-small-functions -fipa-cp -fipa-cp-clone @gol
-fipa-pta -fipa-profile -fipa-pure-const -fipa-reference @gol
-fira-algorithm=@var{algorithm} @gol
--fira-region=@var{region} @gol
+-fira-region=@var{region} -fira-hoist-pressure @gol
-fira-loop-pressure -fno-ira-share-save-slots @gol
-fno-ira-share-spill-slots -fira-verbose=@var{n} @gol
-fivopts -fkeep-inline-functions -fkeep-static-consts @gol
@@ -6996,6 +6996,14 @@ This typically results in the smallest code size, and is enabled by default for
@end table
+@item -fira-hoist-pressure
+@opindex fira-hoist-pressure
+Use IRA to evaluate register pressure in the code hoisting pass for
+decisions to hoist expressions. This option usually results in smaller
+code, but it can slow the compiler down.
+
+This option is enabled at level @option{-Os} for all targets.
+
@item -fira-loop-pressure
@opindex fira-loop-pressure
Use IRA to evaluate register pressure in loops for decisions to move