summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1998-04-27 06:05:55 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1998-04-27 06:05:55 +0000
commitf5e86f0545b38e6c9d65ea878d697c1130f8ef7b (patch)
treec1efc0b7c5cb03c3e212ef650a53d511aa84eec4 /gcc
parent1241c8adde0137282fe291de6570eabd91ca42f9 (diff)
downloadgcc-f5e86f0545b38e6c9d65ea878d697c1130f8ef7b.tar.gz
Make args to jump_optimize symbolic
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19421 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/rtl.h5
-rw-r--r--gcc/toplev.c22
3 files changed, 29 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 66316242ce0..ce90d349861 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+Mon Apr 27 08:55:23 1998 Michael Meissner <meissner@cygnus.com>
+
+ * rtl.h (JUMP_{CROSS_JUMP,NOOP_MOVES,AFTER_REGSCAN}): New macros
+ for calling jump_optimize.
+
+ * toplev.c (rest_of_compilation): Call jump_optimize using JUMP_*
+ macros, rather than 0/1's.
+
Sun Apr 26 23:19:10 1998 Richard Henderson <rth@cygnus.com>
* alpha.h (CONST_COSTS): Zero is always free.
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 76b15654c80..60958954819 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1141,6 +1141,11 @@ extern int can_reverse_comparison_p PROTO ((rtx, rtx));
extern void delete_for_peephole PROTO ((rtx, rtx));
extern int condjump_in_parallel_p PROTO ((rtx));
+/* Flags for jump_optimize() */
+#define JUMP_CROSS_JUMP 1
+#define JUMP_NOOP_MOVES 1
+#define JUMP_AFTER_REGSCAN 1
+
/* In emit-rtl.c. */
extern int max_reg_num PROTO ((void));
extern int max_label_num PROTO ((void));
diff --git a/gcc/toplev.c b/gcc/toplev.c
index a4674c6a27a..5494db36dce 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3074,7 +3074,8 @@ rest_of_compilation (decl)
int saved_optimize = optimize;
optimize = 0;
find_exception_handler_labels ();
- jump_optimize (get_insns(), 0, 0, 0);
+ jump_optimize (get_insns(), !JUMP_CROSS_JUMP, !JUMP_NOOP_MOVES,
+ !JUMP_AFTER_REGSCAN);
optimize = saved_optimize;
}
@@ -3208,7 +3209,8 @@ rest_of_compilation (decl)
are initialized and to compute whether control can drop off the end
of the function. */
TIMEVAR (jump_time, reg_scan (insns, max_reg_num (), 0));
- TIMEVAR (jump_time, jump_optimize (insns, 0, 0, 1));
+ TIMEVAR (jump_time, jump_optimize (insns, !JUMP_CROSS_JUMP, !JUMP_NOOP_MOVES,
+ JUMP_AFTER_REGSCAN));
/* Now is when we stop if -fsyntax-only and -Wreturn-type. */
if (rtl_dump_and_exit || flag_syntax_only || DECL_DEFER_OUTPUT (decl))
@@ -3240,7 +3242,9 @@ rest_of_compilation (decl)
TIMEVAR (cse_time, delete_trivially_dead_insns (insns, max_reg_num ()));
if (tem || optimize > 1)
- TIMEVAR (jump_time, jump_optimize (insns, 0, 0, 0));
+ TIMEVAR (jump_time, jump_optimize (insns, !JUMP_CROSS_JUMP,
+ !JUMP_NOOP_MOVES,
+ !JUMP_AFTER_REGSCAN));
/* Dump rtl code after cse, if we are doing that. */
@@ -3303,13 +3307,17 @@ rest_of_compilation (decl)
max_reg_num so we must rerun reg_scan afterwards.
??? Rework to not call reg_scan so often. */
TIMEVAR (jump_time, reg_scan (insns, max_reg_num (), 0));
- TIMEVAR (jump_time, jump_optimize (insns, 0, 0, 1));
+ TIMEVAR (jump_time, jump_optimize (insns, !JUMP_CROSS_JUMP,
+ !JUMP_NOOP_MOVES,
+ JUMP_AFTER_REGSCAN));
TIMEVAR (cse2_time, reg_scan (insns, max_reg_num (), 0));
TIMEVAR (cse2_time, tem = cse_main (insns, max_reg_num (),
1, rtl_dump_file));
if (tem)
- TIMEVAR (jump_time, jump_optimize (insns, 0, 0, 0));
+ TIMEVAR (jump_time, jump_optimize (insns, !JUMP_CROSS_JUMP,
+ !JUMP_NOOP_MOVES,
+ !JUMP_AFTER_REGSCAN));
}
if (flag_thread_jumps)
@@ -3530,7 +3538,9 @@ rest_of_compilation (decl)
if (optimize > 0)
{
- TIMEVAR (jump_time, jump_optimize (insns, 1, 1, 0));
+ TIMEVAR (jump_time, jump_optimize (insns, JUMP_CROSS_JUMP,
+ JUMP_NOOP_MOVES,
+ !JUMP_AFTER_REGSCAN));
/* Dump rtl code after jump, if we are doing that. */