Commit 45dbce1b by Nathan Froyd Committed by Nathan Froyd

re PR target/4828 (can't install gcc for h8300-hms target)

	PR bootstrap/4828
	Revert:
	2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>

	* function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
	FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
	(pass_instantiate_virtual_regs): Require PROP_cfglayout.
	* passes.c (init_optimization_passes): Move
	pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.

From-SVN: r171447
parent 8d4c5ac6
2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
PR bootstrap/4828
Revert:
2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
* function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
(pass_instantiate_virtual_regs): Require PROP_cfglayout.
* passes.c (init_optimization_passes): Move
pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2011-03-25 Kai Tietz <ktietz@redhat.com> 2011-03-25 Kai Tietz <ktietz@redhat.com>
* c-typeck.c (comptypes_internal): Replace target * c-typeck.c (comptypes_internal): Replace target
......
...@@ -1883,7 +1883,7 @@ instantiate_decls (tree fndecl) ...@@ -1883,7 +1883,7 @@ instantiate_decls (tree fndecl)
static unsigned int static unsigned int
instantiate_virtual_regs (void) instantiate_virtual_regs (void)
{ {
basic_block bb; rtx insn;
/* Compute the offsets to use for this function. */ /* Compute the offsets to use for this function. */
in_arg_offset = FIRST_PARM_OFFSET (current_function_decl); in_arg_offset = FIRST_PARM_OFFSET (current_function_decl);
...@@ -1901,40 +1901,33 @@ instantiate_virtual_regs (void) ...@@ -1901,40 +1901,33 @@ instantiate_virtual_regs (void)
/* Scan through all the insns, instantiating every virtual register still /* Scan through all the insns, instantiating every virtual register still
present. */ present. */
FOR_EACH_BB (bb) for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
{ if (INSN_P (insn))
rtx insn, curr; {
/* These patterns in the instruction stream can never be recognized.
FOR_BB_INSNS_SAFE (bb, insn, curr) Fortunately, they shouldn't contain virtual registers either. */
{ if (GET_CODE (PATTERN (insn)) == USE
if (INSN_P (insn)) || GET_CODE (PATTERN (insn)) == CLOBBER
{ || GET_CODE (PATTERN (insn)) == ADDR_VEC
/* These patterns in the instruction stream can never be recognized. || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC
Fortunately, they shouldn't contain virtual registers either. */ || GET_CODE (PATTERN (insn)) == ASM_INPUT)
if (GET_CODE (PATTERN (insn)) == USE continue;
|| GET_CODE (PATTERN (insn)) == CLOBBER else if (DEBUG_INSN_P (insn))
|| GET_CODE (PATTERN (insn)) == ADDR_VEC for_each_rtx (&INSN_VAR_LOCATION (insn),
|| GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC instantiate_virtual_regs_in_rtx, NULL);
|| GET_CODE (PATTERN (insn)) == ASM_INPUT) else
continue; instantiate_virtual_regs_in_insn (insn);
else if (DEBUG_INSN_P (insn))
for_each_rtx (&INSN_VAR_LOCATION (insn),
instantiate_virtual_regs_in_rtx, NULL);
else
instantiate_virtual_regs_in_insn (insn);
if (INSN_DELETED_P (insn)) if (INSN_DELETED_P (insn))
continue; continue;
for_each_rtx (&REG_NOTES (insn), instantiate_virtual_regs_in_rtx, NULL); for_each_rtx (&REG_NOTES (insn), instantiate_virtual_regs_in_rtx, NULL);
/* Instantiate any virtual registers in CALL_INSN_FUNCTION_USAGE. */ /* Instantiate any virtual registers in CALL_INSN_FUNCTION_USAGE. */
if (CALL_P (insn)) if (CALL_P (insn))
for_each_rtx (&CALL_INSN_FUNCTION_USAGE (insn), for_each_rtx (&CALL_INSN_FUNCTION_USAGE (insn),
instantiate_virtual_regs_in_rtx, NULL); instantiate_virtual_regs_in_rtx, NULL);
} }
}
}
/* Instantiate the virtual registers in the DECLs for debugging purposes. */ /* Instantiate the virtual registers in the DECLs for debugging purposes. */
instantiate_decls (current_function_decl); instantiate_decls (current_function_decl);
...@@ -1970,7 +1963,7 @@ struct rtl_opt_pass pass_instantiate_virtual_regs = ...@@ -1970,7 +1963,7 @@ struct rtl_opt_pass pass_instantiate_virtual_regs =
NULL, /* next */ NULL, /* next */
0, /* static_pass_number */ 0, /* static_pass_number */
TV_NONE, /* tv_id */ TV_NONE, /* tv_id */
PROP_cfglayout, /* properties_required */ 0, /* properties_required */
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
......
...@@ -956,8 +956,8 @@ init_optimization_passes (void) ...@@ -956,8 +956,8 @@ init_optimization_passes (void)
NEXT_PASS (pass_rtl_eh); NEXT_PASS (pass_rtl_eh);
NEXT_PASS (pass_initial_value_sets); NEXT_PASS (pass_initial_value_sets);
NEXT_PASS (pass_unshare_all_rtl); NEXT_PASS (pass_unshare_all_rtl);
NEXT_PASS (pass_into_cfg_layout_mode);
NEXT_PASS (pass_instantiate_virtual_regs); NEXT_PASS (pass_instantiate_virtual_regs);
NEXT_PASS (pass_into_cfg_layout_mode);
NEXT_PASS (pass_jump2); NEXT_PASS (pass_jump2);
NEXT_PASS (pass_lower_subreg); NEXT_PASS (pass_lower_subreg);
NEXT_PASS (pass_df_initialize_opt); NEXT_PASS (pass_df_initialize_opt);
......
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