Commit 05b432db by Jan Hubicka Committed by Jan Hubicka

i386.md (float_truncate splitter, [...]): Add reload_completted; fix operand predicate.


	* i386.md (float_truncate splitter, and to mov splitters): Add
	reload_completted; fix operand predicate.

	* haifa-sched.c (sched_init): Do not split insns.
	* toplev.c (rest_of_compilation): Call split_all_insns before
	sched1 pass; simplify condition of post-reload splitter;
	call split_all_insn before sched2 pass.

From-SVN: r43575
parent f4655693
Tue Jun 26 12:40:12 CEST 2001 Jan Hubicka <jh@suse.cz>
* i386.md (float_truncate splitter, and to mov splitters): Add
reload_completed; fix operand predicate.
* haifa-sched.c (sched_init): Do not split insns.
* toplev.c (rest_of_compilation): Call split_all_insns before
sched1 pass; simplify condition of post-reload splitter;
call split_all_insn before sched2 pass.
2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
* diagnostic.h (diagnostic_prefixing_rule_t): New enum type.
......
......@@ -4410,7 +4410,8 @@
(float_truncate:SF
(match_operand:DF 1 "nonimmediate_operand" "")))
(clobber (match_operand 2 "" ""))]
"TARGET_80387 && !FP_REG_P (operands[0]) && !FP_REG_P (operands[1])"
"TARGET_80387 && reload_completed
&& !FP_REG_P (operands[0]) && !FP_REG_P (operands[1])"
[(set (match_dup 0) (float_truncate:SF (match_dup 1)))]
"")
......@@ -8310,7 +8311,7 @@
(set_attr "mode" "SI")])
(define_split
[(set (match_operand 0 "ext_register_operand" "")
[(set (match_operand 0 "register_operand" "")
(and (match_dup 0)
(const_int -65536)))
(clobber (reg:CC 17))]
......@@ -8323,7 +8324,7 @@
(and (match_dup 0)
(const_int -256)))
(clobber (reg:CC 17))]
"(optimize_size || !TARGET_PARTIAL_REG_STALL)"
"(optimize_size || !TARGET_PARTIAL_REG_STALL) && reload_completed"
[(set (strict_low_part (match_dup 1)) (const_int 0))]
"operands[1] = gen_lowpart (QImode, operands[0]);")
......@@ -8332,7 +8333,7 @@
(and (match_dup 0)
(const_int -65281)))
(clobber (reg:CC 17))]
"(optimize_size || !TARGET_PARTIAL_REG_STALL)"
"(optimize_size || !TARGET_PARTIAL_REG_STALL) && reload_completed"
[(parallel [(set (zero_extract:SI (match_dup 0)
(const_int 8)
(const_int 8))
......
......@@ -1906,8 +1906,6 @@ sched_init (dump_file)
/* Initialize issue_rate. */
issue_rate = ISSUE_RATE;
split_all_insns (1);
/* We use LUID 0 for the fake insn (UID 0) which holds dependencies for
pseudos which do not cross calls. */
old_max_uid = get_max_uid () + 1;
......
......@@ -3410,13 +3410,16 @@ rest_of_compilation (decl)
timevar_pop (TV_GCSE);
#endif
timevar_push (TV_SCHED);
split_all_insns (1);
#ifdef INSN_SCHEDULING
/* Print function header into sched dump now
because doing the sched analysis makes some of the dump. */
if (optimize > 0 && flag_schedule_insns)
{
timevar_push (TV_SCHED);
open_dump_file (DFI_sched, decl);
/* Do control and data sched analysis,
......@@ -3425,15 +3428,15 @@ rest_of_compilation (decl)
schedule_insns (rtl_dump_file);
close_dump_file (DFI_sched, print_rtl_with_bb, insns);
timevar_pop (TV_SCHED);
ggc_collect ();
/* Register lifetime information was updated as part of verifying
the schedule. */
register_life_up_to_date = 1;
}
#endif
timevar_pop (TV_SCHED);
ggc_collect ();
/* Determine if the current function is a leaf before running reload
since this can impact optimizations done by the prologue and
......@@ -3510,14 +3513,8 @@ rest_of_compilation (decl)
}
/* If optimizing, then go ahead and split insns now since we are about
to recompute flow information anyway. Since we can't split insns after
reload, do the splitting unconditionally here to avoid gcc from losing
REG_DEAD notes. */
#ifdef STACK_REGS
if (1)
#else
to recompute flow information anyway. */
if (optimize > 0)
#endif
{
int old_labelnum = max_label_num ();
......@@ -3619,6 +3616,8 @@ rest_of_compilation (decl)
/* Do control and data sched analysis again,
and write some more of the results to dump file. */
split_all_insns (1);
schedule_insns (rtl_dump_file);
close_dump_file (DFI_sched2, print_rtl_with_bb, insns);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment