Mercurial > hg > CbC > CbC_gcc
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 | |