comparison gcc/init-regs.c @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children 04ced10e8804
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
1 /* Initialization of uninitialized regs. 1 /* Initialization of uninitialized regs.
2 Copyright (C) 2007, 2008 Free Software Foundation, Inc. 2 Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
3 3
4 This file is part of GCC. 4 This file is part of GCC.
5 5
6 GCC is free software; you can redistribute it and/or modify it under 6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free 7 the terms of the GNU General Public License as published by the Free
68 68
69 FOR_BB_INSNS (bb, insn) 69 FOR_BB_INSNS (bb, insn)
70 { 70 {
71 unsigned int uid = INSN_UID (insn); 71 unsigned int uid = INSN_UID (insn);
72 df_ref *use_rec; 72 df_ref *use_rec;
73 if (!INSN_P (insn)) 73 if (!NONDEBUG_INSN_P (insn))
74 continue; 74 continue;
75 75
76 for (use_rec = DF_INSN_UID_USES (uid); *use_rec; use_rec++) 76 for (use_rec = DF_INSN_UID_USES (uid); *use_rec; use_rec++)
77 { 77 {
78 df_ref use = *use_rec; 78 df_ref use = *use_rec;
97 && (!bitmap_bit_p (ur, regno))) 97 && (!bitmap_bit_p (ur, regno)))
98 { 98 {
99 rtx move_insn; 99 rtx move_insn;
100 rtx reg = DF_REF_REAL_REG (use); 100 rtx reg = DF_REF_REAL_REG (use);
101 101
102 bitmap_set_bit (already_genned, regno); 102 bitmap_set_bit (already_genned, regno);
103 103
104 start_sequence (); 104 start_sequence ();
105 emit_move_insn (reg, CONST0_RTX (GET_MODE (reg))); 105 emit_move_insn (reg, CONST0_RTX (GET_MODE (reg)));
106 move_insn = get_insns (); 106 move_insn = get_insns ();
107 end_sequence (); 107 end_sequence ();
108 emit_insn_before (move_insn, insn); 108 emit_insn_before (move_insn, insn);
109 if (dump_file) 109 if (dump_file)
110 fprintf (dump_file, 110 fprintf (dump_file,
111 "adding initialization in %s of reg %d at in block %d for insn %d.\n", 111 "adding initialization in %s of reg %d at in block %d for insn %d.\n",
112 current_function_name (), regno, bb->index, uid); 112 current_function_name (), regno, bb->index, uid);
113 } 113 }
114 } 114 }
115 } 115 }
116 } 116 }
117 117
118 if (optimize == 1) 118 if (optimize == 1)
119 { 119 {
120 if (dump_file) 120 if (dump_file)
121 df_dump (dump_file); 121 df_dump (dump_file);
122 df_remove_problem (df_live); 122 df_remove_problem (df_live);
123 } 123 }
124 124
125 BITMAP_FREE (already_genned); 125 BITMAP_FREE (already_genned);
146 gate_initialize_regs, /* gate */ 146 gate_initialize_regs, /* gate */
147 rest_of_handle_initialize_regs, /* execute */ 147 rest_of_handle_initialize_regs, /* execute */
148 NULL, /* sub */ 148 NULL, /* sub */
149 NULL, /* next */ 149 NULL, /* next */
150 0, /* static_pass_number */ 150 0, /* static_pass_number */
151 0, /* tv_id */ 151 TV_NONE, /* tv_id */
152 0, /* properties_required */ 152 0, /* properties_required */
153 0, /* properties_provided */ 153 0, /* properties_provided */
154 0, /* properties_destroyed */ 154 0, /* properties_destroyed */
155 0, /* todo_flags_start */ 155 0, /* todo_flags_start */
156 TODO_dump_func | 156 TODO_dump_func |