1 |
684 |
jeremybenn |
2007-06-07 Kenneth Zadeck
|
2 |
|
|
|
3 |
|
|
* emit-rtl.c (set_insn_deleted): Changed NOTE_LINE_NUMBER to
|
4 |
|
|
NOTE_KIND.
|
5 |
|
|
(emit_note_after): Fixed merge glitch.
|
6 |
|
|
* combine.c (try_combine): Changed NOTE_LINE_NUMBER to
|
7 |
|
|
NOTE_KIND.
|
8 |
|
|
* reg-stack.c (convert_regs_1): Fixed merge glitch.
|
9 |
|
|
* config/rs6000/rs6000.c (no_global_regs_above): Fixed merge typo.
|
10 |
|
|
(rs6000_emit_prologue): Fixed merge glitch.
|
11 |
|
|
|
12 |
|
|
2007-06-06 Kenneth Zadeck
|
13 |
|
|
|
14 |
|
|
* regrename.c (do_replace): Removed ifdefed out code.
|
15 |
|
|
* fwprop.c: Fixed copyright.
|
16 |
|
|
* testsuite/Changelog.dataflow: Merged entry into
|
17 |
|
|
testsuite/Changelog. Deleted file.
|
18 |
|
|
* global.c: Fixed comments.
|
19 |
|
|
* recog.c (confirm_change_group): Fixed comments.
|
20 |
|
|
(peephole2_optimize): Removed ifdefed out code.
|
21 |
|
|
* gcse.c (try_replace_reg): Removed redundant changing and
|
22 |
|
|
rescanning of notes.
|
23 |
|
|
* rtl.h (SET_REGNO): Replaced brackets.
|
24 |
|
|
* stack-ptr-mod.c: Changed copyright years.
|
25 |
|
|
|
26 |
|
|
2007-06-06 Seongbae Park
|
27 |
|
|
|
28 |
|
|
* config/ia64/ia64.c (ia64_frame_info): Restored the comment
|
29 |
|
|
for the structure above. Removed left-over dead code from debugging.
|
30 |
|
|
(ia64_compute_frame_size): Comment cleanup.
|
31 |
|
|
(ia64_expand_prologue): Style fix. Debugging information header.
|
32 |
|
|
(ia64_init_expanders): Added a comment.
|
33 |
|
|
* config/ia64/ia64.h (ia64_init_expanders): Declaration moved
|
34 |
|
|
to ia64-protos.h
|
35 |
|
|
* config/ia64/ia64-protos.h (ia64_init_expanders): Declaration
|
36 |
|
|
moved from ia64.h
|
37 |
|
|
|
38 |
|
|
2007-06-06 Kenneth Zadeck
|
39 |
|
|
|
40 |
|
|
* doc/rtl.text: Fixed spelling.
|
41 |
|
|
* dse.c (store_info, read_info, insn_info, bb_info, group_info,
|
42 |
|
|
deferred_change): Fixed formatting.
|
43 |
|
|
(step0): Renamed to dse_step0.
|
44 |
|
|
(step1): Renamed to dse_step1.
|
45 |
|
|
(step2_init): Renamed to dse_step2_init.
|
46 |
|
|
(step2_nospill): Renamed to dse_step2_nospill.
|
47 |
|
|
(step2_spill): Renamed to dse_step2_spill.
|
48 |
|
|
(step3_scan): Renamed to dse_step3_scan.
|
49 |
|
|
(step3_exit_block_scan): Renamed to dse_step3_exit_block_scan.
|
50 |
|
|
(step3): Renamed to dse_step3.
|
51 |
|
|
(step4_nospill): Renamed to dse_step4_nospill.
|
52 |
|
|
(step4_spill): Renamed to dse_step4_spill.
|
53 |
|
|
(step4): Renamed to dse_step4.
|
54 |
|
|
(step5_nospill): Renamed to dse_step5_nospill.
|
55 |
|
|
(step5_spill): Renamed to dse_step5_spill.
|
56 |
|
|
(step6): Renamed to dse_step6.
|
57 |
|
|
(rest_of_handle_dse): Updated names of functions.
|
58 |
|
|
* emit_rtl.c (verify_rtx_sharing, copy_rtx_if_shared_1,
|
59 |
|
|
copy_insn_1): Now calls shared_const_p.
|
60 |
|
|
* cselib.c (expand_loc, cselib_expand_value_rtx): Fixed comments.
|
61 |
|
|
(cselib_expand_value_rtx): Now calls shared_const_p.
|
62 |
|
|
* rtl.c (shared_const_p): New function.
|
63 |
|
|
(copy_rtx): Now calls shared_const_p.
|
64 |
|
|
* rtl.h (shared_const_p): New function.
|
65 |
|
|
|
66 |
|
|
2007-06-06 Kenneth Zadeck
|
67 |
|
|
|
68 |
|
|
* combine.c (find_single_use_1): Fixed comment and changed 0 to NULL.
|
69 |
|
|
(find_single_use): Removed comment.
|
70 |
|
|
(delete_noop_move): Removed unnecessary continue and removed
|
71 |
|
|
nnoops counter. Function now does not return anything.
|
72 |
|
|
|
73 |
|
|
2007-05-31 Kenneth Zadeck
|
74 |
|
|
|
75 |
|
|
* bitmap.c (bitmap_elt_copy): Fixed comment.
|
76 |
|
|
* cfganal.c (inverted_post_order_compute): Fixed comment and
|
77 |
|
|
formatting of test.
|
78 |
|
|
* basic_block.h: Removed include rtl.h.
|
79 |
|
|
(enum bb_flags): Renumbered.
|
80 |
|
|
(FOR_EACH_BB_IN_REGION, FOR_EACH_BB_REVERSE_IN_REGION): Removed.
|
81 |
|
|
(FOR_BB_INSNS_SAFE, FOR_BB_INSNS_REVERSE_SAFE): Fixed formatting.
|
82 |
|
|
|
83 |
|
|
2007-05-30 Kenneth Zadeck
|
84 |
|
|
|
85 |
|
|
* auto-inc-dec.c: Updated copyright date.
|
86 |
|
|
(enum form, set_inc_state, dump_inc_insn, move_dead_notes,
|
87 |
|
|
insert_move_insn_before, attempt_change, try_merge, find_address,
|
88 |
|
|
find_mem): Reformatted.
|
89 |
|
|
(reverse_inc, find_address): Fixed spelling.
|
90 |
|
|
(attempt_change, try_merge): Add default case.
|
91 |
|
|
* basic-block.h: Updated copyright date.
|
92 |
|
|
* bitmap.c: Updated copyright date.
|
93 |
|
|
* bitmap.h: Updated copyright date.
|
94 |
|
|
* cfganal.c: Updated copyright date.
|
95 |
|
|
* cfg.c: Updated copyright date.
|
96 |
|
|
* cfghooks.h: Updated copyright date.
|
97 |
|
|
* cfglayout.c: Updated copyright date.
|
98 |
|
|
* cfgloop.c: Updated copyright date.
|
99 |
|
|
* cfgloop.h: Updated copyright date.
|
100 |
|
|
* cfgrtl.c: Updated copyright date.
|
101 |
|
|
* combine.c: Updated copyright date.
|
102 |
|
|
* combine-stack-adj.c: Updated copyright date.
|
103 |
|
|
* config/arc/arc.c: Updated copyright date.
|
104 |
|
|
* config/arm/arm.c: (use_return_insn,
|
105 |
|
|
arm_compute_save_reg0_reg12_mask, arm_get_frame_offsets,
|
106 |
|
|
arm_save_coproc_regs): Fixed formatting.
|
107 |
|
|
* config/bfin/bfin.c: Updated copyright date.
|
108 |
|
|
* config/c4x/c4x.c: Updated copyright date.
|
109 |
|
|
* config/c4x/c4x.h: Updated copyright date.
|
110 |
|
|
* config/cris/cris.c: Updated copyright date.
|
111 |
|
|
* config/crx/crx.c: Updated copyright date.
|
112 |
|
|
* config/crx/crx.h: Updated copyright date.
|
113 |
|
|
* config/darwin.c: Updated copyright date.
|
114 |
|
|
* config/frv/frv.c: Updated copyright date.
|
115 |
|
|
* config/h8300/h8300.c: Updated copyright date.
|
116 |
|
|
* config/h8300/h8300.md: Updated copyright date.
|
117 |
|
|
* config/ia64/ia64.h: Updated copyright date.
|
118 |
|
|
* config/iq2000/iq2000.c: Updated copyright date.
|
119 |
|
|
* config/iq2000/iq2000.h: Updated copyright date.
|
120 |
|
|
* config/m32c/m32c.c: Updated copyright date.
|
121 |
|
|
* config/m68hc11/m68hc11.c: Updated copyright date.
|
122 |
|
|
* config/m68k/m68k.c: Updated copyright date.
|
123 |
|
|
* config/mips/mips.c: Updated copyright date.
|
124 |
|
|
* config/mips/mips.md: Updated copyright date.
|
125 |
|
|
* config/mmix/mmix.c: Updated copyright date.
|
126 |
|
|
* config/mn10300/mn10300.c: Updated copyright date.
|
127 |
|
|
* config/mt/mt.c: Updated copyright date.
|
128 |
|
|
(mt_print_operand_simple_address, mt_print_operand): Fixed formatting.
|
129 |
|
|
* config/mt/mt.h: Updated copyright date and fixed formatting.
|
130 |
|
|
* config/pa/pa.c: Updated copyright date.
|
131 |
|
|
* config/pa/pa.h: Updated copyright date.
|
132 |
|
|
* config/pdp11/pdp11.c: Updated copyright date.
|
133 |
|
|
* config/pdp11/pdp11.h: Updated copyright date.
|
134 |
|
|
* config/rs6000/predicates.md: Updated copyright date.
|
135 |
|
|
* config/s390/s390.c: Updated copyright date.
|
136 |
|
|
* config/score/score-mdaux.c: Updated copyright date.
|
137 |
|
|
* config/sh/sh.c: Updated copyright date.
|
138 |
|
|
* config/sh/sh.md: Updated copyright date.
|
139 |
|
|
* config/sparc/sparc.c: Updated copyright date.
|
140 |
|
|
* config/stormy16/stormy16.c: Updated copyright date.
|
141 |
|
|
* config/v850/v850.c: Updated copyright date.
|
142 |
|
|
* config/vax/vax.c: Updated copyright date.
|
143 |
|
|
* cselib.c: Updated copyright date.
|
144 |
|
|
(expand_loc): Fixed formatting.
|
145 |
|
|
* cselib.h: Updated copyright date.
|
146 |
|
|
* dbgcnt.c: Updated copyright date.
|
147 |
|
|
* dbgcnt.def: Updated copyright date.
|
148 |
|
|
* dbgcnt.h: Updated copyright date.
|
149 |
|
|
* dce.c: Updated copyright date.
|
150 |
|
|
(fast_dce): Fixed formatting.
|
151 |
|
|
* dce.h: Updated copyright date.
|
152 |
|
|
* ddg.c: Updated copyright date.
|
153 |
|
|
* ddg.h: Updated copyright date.
|
154 |
|
|
* df-core.c: Updated copyright date.
|
155 |
|
|
* df.h: Updated copyright date and fixed formatting.
|
156 |
|
|
* doc/cfg.texi: Updated copyright date.
|
157 |
|
|
* doc/rtl.texi: Updated copyright date.
|
158 |
|
|
* dominance.c: Updated copyright date.
|
159 |
|
|
* function.h: Updated copyright date.
|
160 |
|
|
* fwprop.c: Updated copyright date.
|
161 |
|
|
* global.c: Updated copyright date.
|
162 |
|
|
* integrate.c: Updated copyright date.
|
163 |
|
|
* local-alloc.c: Updated copyright date.
|
164 |
|
|
* loop-init.c: Updated copyright date.
|
165 |
|
|
* loop-invariant.c: Updated copyright date.
|
166 |
|
|
* loop-iv.c: Updated copyright date.
|
167 |
|
|
* optabs.h: Updated copyright date.
|
168 |
|
|
* output.h: Updated copyright date.
|
169 |
|
|
* postreload.c: Updated copyright date.
|
170 |
|
|
* postreload-gcse.c: Updated copyright date.
|
171 |
|
|
* recog.h: Updated copyright date.
|
172 |
|
|
* regmove.c: Updated copyright date.
|
173 |
|
|
* reg-notes.def: Updated copyright date.
|
174 |
|
|
* regrename.c: Updated copyright date.
|
175 |
|
|
* reg-stack.c: Updated copyright date.
|
176 |
|
|
* reload.c: Updated copyright date.
|
177 |
|
|
* reorg.c: Updated copyright date.
|
178 |
|
|
* resource.c: Updated copyright date.
|
179 |
|
|
* resource.h: Updated copyright date.
|
180 |
|
|
* rtl-factoring.c: Updated copyright date.
|
181 |
|
|
* sbitmap.c: Updated copyright date.
|
182 |
|
|
* sbitmap.h: Updated copyright date.
|
183 |
|
|
* sched-deps.c: Updated copyright date.
|
184 |
|
|
* sched-ebb.c: Updated copyright date.
|
185 |
|
|
* sched-int.h: Updated copyright date.
|
186 |
|
|
* sched-rgn.c: Updated copyright date.
|
187 |
|
|
* sched-vis.c: Updated copyright date.
|
188 |
|
|
* see.c: Updated copyright date.
|
189 |
|
|
(see_handle_relevant_uses): Fixed formatting.
|
190 |
|
|
* stack-ptr-mod.c: Updated copyright date.
|
191 |
|
|
* struct-equiv.c: Updated copyright date.
|
192 |
|
|
* tracer.c: Updated copyright date.
|
193 |
|
|
* web.c: Updated copyright date.
|
194 |
|
|
|
195 |
|
|
2007-05-30 Kenneth Zadeck
|
196 |
|
|
|
197 |
|
|
* auto-inc-dec.c (mem_insn.mem_pat): Renamed mem_loc.
|
198 |
|
|
(attempt_change): Fixed comments and renamed new_addr_pat to new_addr.
|
199 |
|
|
(try_merge, attempt_change, find_address, find_mem): Renamed
|
200 |
|
|
mem_pat to mem_loc.
|
201 |
|
|
|
202 |
|
|
2007-05-27 Kenneth Zadeck
|
203 |
|
|
|
204 |
|
|
* df-core.c (df_hybrid_search_forward, df_hybrid_search_backward
|
205 |
|
|
df_iterative_dataflow): Removed.
|
206 |
|
|
* df.h (df_iterative_dataflow): Removed.
|
207 |
|
|
|
208 |
|
|
2007-05-27 Kenneth Zadeck
|
209 |
|
|
|
210 |
|
|
* dse.c (replace_inc_dec, delete_dead_store_insn, scan_insn,
|
211 |
|
|
dse_record_singleton_alias_set, dse_confluence_0,
|
212 |
|
|
dse_confluence_n, step4, step5_nospill, step5_spill,
|
213 |
|
|
rest_of_handle_dse, pass_rtl_dse1, pass_rtl_dse2): Removed code
|
214 |
|
|
to allow dse to run on trunk in front of flow.c
|
215 |
|
|
(problem): Removed.
|
216 |
|
|
|
217 |
|
|
2007-05-26 Kaz Kojima
|
218 |
|
|
|
219 |
|
|
* bt-load.c: Include recog.h.
|
220 |
|
|
(move_btr_def): Use validate_replace_rtx instead of replace_rtx.
|
221 |
|
|
|
222 |
|
|
2007-05-25 Steven Bosscher
|
223 |
|
|
|
224 |
|
|
* emit-rtl.c (try_split): Remove unnecessary setting/resetting
|
225 |
|
|
of the USED flags of TRIAL.
|
226 |
|
|
|
227 |
|
|
2007-05-25 Kenneth Zadeck
|
228 |
|
|
|
229 |
|
|
* dse.c (insn_info.stack_read, group_info.frame_related): New
|
230 |
|
|
variable.
|
231 |
|
|
(get_group_info): Initialize frame_related.
|
232 |
|
|
(scan_insn, scan_reads_nospill): Remove frame_related stores from
|
233 |
|
|
consideration for const functions.
|
234 |
|
|
(step1, step2_init, step3_exit_block_scan): Use frame_related field.
|
235 |
|
|
(step3_scan, step5_nospill): Change parameters to scan_reads_nospill.
|
236 |
|
|
|
237 |
|
|
2007-05-25 Ian Lance Taylor
|
238 |
|
|
|
239 |
|
|
* reload1.c (mark_home_live_1): New static function, broken out of
|
240 |
|
|
mark_home_live.
|
241 |
|
|
(mark_home_live): Call mark_home_live_1.
|
242 |
|
|
(scan_paradoxical_subregs): Call mark_home_live_1.
|
243 |
|
|
|
244 |
|
|
2007-05-24 Andrew Pinski
|
245 |
|
|
|
246 |
|
|
* config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
|
247 |
|
|
(umulsi3_highpart): Likewise.
|
248 |
|
|
|
249 |
|
|
2007-05-24 Eric Christopher
|
250 |
|
|
|
251 |
|
|
* config/mips/mips.c (mips_save_reg_p): Use df_regs_ever_live_p.
|
252 |
|
|
(mips_output_mi_thunk): Use SET_REGNO.
|
253 |
|
|
|
254 |
|
|
2007-05-23 Kaz Kojima
|
255 |
|
|
|
256 |
|
|
* config/sh/sh.c (sh_expand_prologue): Fix typo.
|
257 |
|
|
|
258 |
|
|
2007-05-23 Paolo Bonzini
|
259 |
|
|
|
260 |
|
|
* emit-rtl.c [!HAVE_blockage]: Provide a gen_blockage routine here.
|
261 |
|
|
* rtl.h (gen_blockage): Add prototype.
|
262 |
|
|
|
263 |
|
|
* cse.c (last_bb_reg_used_in, reg_used_in_multiple_bb): Remove.
|
264 |
|
|
(mark_reg_use_bb): Remove.
|
265 |
|
|
(cse_main): Remove the initialization of reg_used_in_multiple_bb
|
266 |
|
|
and last_bb_reg_used_in, and the insn walk that calls mark_reg_use_bb.
|
267 |
|
|
(cse_ebb_live_in, cse_ebb_live_out): New.
|
268 |
|
|
(cse_extended_basic_block): Set them.
|
269 |
|
|
(make_regs_eqv): Use them.
|
270 |
|
|
|
271 |
|
|
2007-05-23 Kenneth Zadeck
|
272 |
|
|
|
273 |
|
|
* df-scan.c (df_get_regular_block_artificial_uses): Set the
|
274 |
|
|
HARD_FRAME_POINTER not the FRAME_POINTER after reload. Set both
|
275 |
|
|
the HARD_FRAME_POINTER and the FRAME_POINTER before reload.
|
276 |
|
|
* dse.c (const_or_frame_p): Removed unnecessary test.
|
277 |
|
|
* config/s390/s390.c (s390_emit_prologue): Removed REG_MAYBE_DEAD
|
278 |
|
|
notes.
|
279 |
|
|
* config/spu/spu.c (frame_emit_add_imm, spu_expand_prologue): Ditto.
|
280 |
|
|
* config/i386/i386.c (ix86_expand_prologue): Ditto.
|
281 |
|
|
* config/sh/sh.c (sh_expand_prologue): Ditto.
|
282 |
|
|
* config/sh/sh.md (define_expand): Ditto.
|
283 |
|
|
* config/iq2000/iq2000.c (iq2000_expand_prologue): Ditto.
|
284 |
|
|
* config/mn10300/mn10300.c (expand_prologue): Ditto.
|
285 |
|
|
* config/ia64/ia64.c (spill_restore_mem, ia64_expand_prologue): Ditto.
|
286 |
|
|
* config/m68k/m68k.c (m68k_expand_prologue): Ditto.
|
287 |
|
|
* config/rs6000/rs6000.c (rs6000_maybe_dead): Removed.
|
288 |
|
|
(rs6000_emit_load_toc_table, rs6000_emit_prologue): Removed calls
|
289 |
|
|
to rs6000_maybe_dead.
|
290 |
|
|
* config/bfin/bfin.c (expand_interrupt_handler_prologue,
|
291 |
|
|
bfin_load_pic_reg): Removed REG_MAYBE_DEAD notes.
|
292 |
|
|
* reg-notes.def (MAYBE_DEAD): Removed.
|
293 |
|
|
* dce.c (deletable_insn_p): Removed test of RTX_FRAME_RELATED_P.
|
294 |
|
|
|
295 |
|
|
2007-05-21 Kenneth Zadeck
|
296 |
|
|
|
297 |
|
|
* dbgcnt.def: Fixed comment.
|
298 |
|
|
* df-scan.c (df_get_regular_block_artificial_uses): Added frame
|
299 |
|
|
pointer after reload if frame_pointer_needed.
|
300 |
|
|
* df.h (df_simulate_defs, df_simulate_uses): Made public.
|
301 |
|
|
* df-problems.c (df_simulate_defs, df_simulate_uses): Made public.
|
302 |
|
|
* dce.c (deletable_insn_p): Only allow frame-related insns to be
|
303 |
|
|
deleted if there is a REG_MAYBE_DEAD note.
|
304 |
|
|
(dce_process_block): Now uses df_simulate_defs and
|
305 |
|
|
df_simulate_uses.
|
306 |
|
|
|
307 |
|
|
2007-05-20 Kenneth Zadeck
|
308 |
|
|
|
309 |
|
|
* cfg.c (dump_bb_info): Fixed dump formatting problem.
|
310 |
|
|
* dse.c (const_or_frame_p): New function.
|
311 |
|
|
(canon_address): Fixed dump info and now callse const_or_frame_p
|
312 |
|
|
rather than rtx_varies_p. Also do simplification inside cselib.
|
313 |
|
|
(record_store): Fixed dump info.
|
314 |
|
|
* cselib.c (expand_loc): Fixed dump info.
|
315 |
|
|
(cselib_expand_value_rtx): Fixed dump info and now call
|
316 |
|
|
simplify_rtx on results of expansion.
|
317 |
|
|
|
318 |
|
|
2007-05-17 Kenneth Zadeck
|
319 |
|
|
|
320 |
|
|
* ifcvt.c (dead_or_predictable): Replaced insn dfa with new df
|
321 |
|
|
routines.
|
322 |
|
|
* recog.c (peephole2_optimize): Replaced
|
323 |
|
|
df_lr_simulate_artificial_refs_at_end and df_lr_simulate_one_insn
|
324 |
|
|
with df_simulate_artificial_refs_at_end and
|
325 |
|
|
df_simulate_one_insn_backwards.
|
326 |
|
|
* rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
|
327 |
|
|
Ditto.
|
328 |
|
|
* df.h (df_lr_simulate_artificial_refs_at_end,
|
329 |
|
|
df_lr_simulate_one_insn): Removed.
|
330 |
|
|
(df_simulate_find_defs, df_simulate_artificial_refs_at_top,
|
331 |
|
|
df_simulate_one_insn_forwards, df_simulate_artificial_refs_at_end,
|
332 |
|
|
df_simulate_one_insn_backwards): Added.
|
333 |
|
|
* df-problems.c (df_lr_bb_local_compute): Removed unnecessary
|
334 |
|
|
tests.
|
335 |
|
|
(df_lr_simulate_artificial_refs_at_end, df_lr_simulate_one_insn):
|
336 |
|
|
Removed.
|
337 |
|
|
(df_simulate_find_defs, df_simulate_defs, df_simulate_uses,
|
338 |
|
|
df_simulate_fixup_sets, df_simulate_artificial_refs_at_top,
|
339 |
|
|
df_simulate_one_insn_forwards, df_simulate_artificial_refs_at_end,
|
340 |
|
|
df_simulate_one_insn_backwards): Added.
|
341 |
|
|
|
342 |
|
|
2007-05-16 Seongbae Park
|
343 |
|
|
|
344 |
|
|
* ifcvt.c (dead_or_predicable): Update test_live as well as test_set.
|
345 |
|
|
(if_convert): New parameter RECOMPUTE_DOMINANCE.
|
346 |
|
|
(rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
|
347 |
|
|
rest_of_handle_if_after_reload): New parameter to if_convert.
|
348 |
|
|
|
349 |
|
|
2007-05-16 Kenneth Zadeck
|
350 |
|
|
|
351 |
|
|
* regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
|
352 |
|
|
regstat_compute_calls_crossed): Added time variable TV_REG_STATS.
|
353 |
|
|
* timevar.def (TV_REG_STATS): Added.
|
354 |
|
|
(TV_DF_RI): Deleted.
|
355 |
|
|
* df-problems.c (df_print_bb_index): Added identifer for eh blocks.
|
356 |
|
|
* dce.c (deletable_insn_p): Added code to not delete
|
357 |
|
|
RTX_FRAME_RELATED_P insns.
|
358 |
|
|
(dce_process_block): Removed insns_deleted and added code to reset
|
359 |
|
|
live set before confluence function.
|
360 |
|
|
(rest_of_handle_fast_dce): Added code to turn off df's version of dce if
|
361 |
|
|
flag_dce is not set and added DF_NO_INSN_RESCAN to flags that are cleared.
|
362 |
|
|
|
363 |
|
|
2007-05-10 Roman Zippel
|
364 |
|
|
|
365 |
|
|
* config/m68k/m68k.c: include df.h.
|
366 |
|
|
(m68k_output_mi_thunk): use SET_REGNO.
|
367 |
|
|
|
368 |
|
|
2007-05-09 Kaz Kojima
|
369 |
|
|
|
370 |
|
|
* df-core.c (df_get_bb_dirty): Return false if df_live is null.
|
371 |
|
|
|
372 |
|
|
2007-05-09 Kaz Kojima
|
373 |
|
|
|
374 |
|
|
* config/sh/sh.c (r0_life_regions): New variable.
|
375 |
|
|
(find_r0_life_regions): New static function.
|
376 |
|
|
(sh_md_init_global): Call find_r0_life_regions when
|
377 |
|
|
reload_completed isn't set.
|
378 |
|
|
(R0_MAX_LIVE_LENGTH): Remove.
|
379 |
|
|
(high__pressure): Return 1 if r0_life_regions is over
|
380 |
|
|
the given threshold.
|
381 |
|
|
|
382 |
|
|
2007-05-08 Kenneth Zadeck
|
383 |
|
|
|
384 |
|
|
* regrename.c (regrename_optimize): Renamed df_ri_add_problem to
|
385 |
|
|
df_note_add_problem.
|
386 |
|
|
* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Ditto.
|
387 |
|
|
* sched_ebb.c (schedule_ebbs): Renamed df_ri_add_problem to
|
388 |
|
|
df_note_add_problem. Added call to regstat_compute_calls_crossed
|
389 |
|
|
and regstat_free_calls_crossed and deleted call to
|
390 |
|
|
allocate_reg_life_data.
|
391 |
|
|
* regstat.c (regstat_init_n_sets_and_refs,
|
392 |
|
|
regstat_free_n_sets_and_refs, regstat_bb_compute_ri,
|
393 |
|
|
regstat_compute_ri, regstat_free_ri,
|
394 |
|
|
regstat_bb_compute_calls_crossed, regstat_compute_calls_crossed,
|
395 |
|
|
regstat_free_calls_crossed): New functions.
|
396 |
|
|
* final.c (rest_of_handle_final): Removed call to free_reg_info.
|
397 |
|
|
* cfg.c (dump_reg_info): Many changes to accomodate new
|
398 |
|
|
implementation of REG_BASIC_BLOCK, REG_N_SETS, REG_N_DEATHS,
|
399 |
|
|
REG_N_CALLS_CROSSED.
|
400 |
|
|
* toplev.c (finalize): Removed call to free_reg_info.
|
401 |
|
|
* regs.h (REG_BASIC_BLOCK, REG_N_SETS, REG_N_REFS, REG_N_DEATHS,
|
402 |
|
|
REG_N_CALLS_CROSSED, REG_FREQ, REG_N_THROWING_CALLS_CROSSED,
|
403 |
|
|
REG_LIVE_LENGTH, REG_BASIC_BLOCK): Changed implementation.
|
404 |
|
|
(allocate_reg_life_data, allocate_reg_info, clear_reg_info_regno):
|
405 |
|
|
Removed.
|
406 |
|
|
* mode-switching.c (optimize_mode_switching): Removed call to
|
407 |
|
|
df_ri_add_problem.
|
408 |
|
|
* modulo-sched.c (sms_schedule): Renamed df_ri_add_problem to
|
409 |
|
|
df_note_add_problem. Added call to regstat_compute_calls_crossed
|
410 |
|
|
and regstat_free_calls_crossed
|
411 |
|
|
(rest_of_handle_sms): Deleted call to allocate_reg_info.
|
412 |
|
|
* global.c (compute_regsets): Moved all dataflow to local_alloc.
|
413 |
|
|
(rest_of_handle_global_alloc): Call regstat_free_n_sets_and_refs
|
414 |
|
|
and regstat_free_ri.
|
415 |
|
|
* ifcvt.c (dead_or_predicable, if_convert): Removed calls to
|
416 |
|
|
allocate_reg_info.
|
417 |
|
|
* timevar.def (TV_DF_NOTE): New timevar.
|
418 |
|
|
* regmove.c (copy_src_to_dest, regmove_optimize, fixup_match_1):
|
419 |
|
|
Changed calls to REG_N_SETS that changed the value to
|
420 |
|
|
INC_REG_N_SETS.
|
421 |
|
|
(regmove_optimize): Moved calls that compute df and register info
|
422 |
|
|
to after early out for flag_non_call_exceptions. Added calls to
|
423 |
|
|
regstat_init_n_sets_and_refs, regstat_compute_ri,
|
424 |
|
|
regstat_free_n_sets_and_refs and regstat_free_ri.
|
425 |
|
|
* local_alloc (local_alloc, equiv_init_movable_p): Added
|
426 |
|
|
NUM_FIXED_BLOCKS to tests for REG_BASIC_BLOCK.
|
427 |
|
|
(update_equiv_regs): Added code to update bitvectors when certain
|
428 |
|
|
local allocations are done. Changed REG_N_SETS to
|
429 |
|
|
DF_REG_DEF_COUNT. Added NUM_FIXED_BLOCKS to tests for
|
430 |
|
|
REG_BASIC_BLOCK.
|
431 |
|
|
(rest_of_handle_local_alloc): Moved computation of UREC from
|
432 |
|
|
global to here.
|
433 |
|
|
* function.c (regno_clobbered_at_setjmp): Added to test to see if
|
434 |
|
|
regno was valid. Moved function size test higher in call
|
435 |
|
|
heirarchy.
|
436 |
|
|
(setjmp_args_warning): Added tests to early out of check if
|
437 |
|
|
function is small or there are no setjmps.
|
438 |
|
|
* df.h (DF_RI, df_ri, DF_RI_LIFE, DF_RI_SETJMP, df_ri_add_problem,
|
439 |
|
|
df_ri_get_setjmp_crosses): Deleted.
|
440 |
|
|
(DF_NOTE, df_note, df_note_add_problem): Added.
|
441 |
|
|
* gcse (gcse_main): Removed computation of RI information and
|
442 |
|
|
removed calls to allocate_reg_info.
|
443 |
|
|
* init-regs.c (initialize_uninitialized_regs): Removed call to
|
444 |
|
|
allocate_reg_life_data.
|
445 |
|
|
* regclass.c (reg_info_data, reg_info_head, reg_pref_buffer,
|
446 |
|
|
allocate_reg_life_data, allocate_reg_info, clear_reg_info_regno):
|
447 |
|
|
Deleted.
|
448 |
|
|
(scan_one_insn): Changed some calls to REG_N_SETS and REG_N_REFS
|
449 |
|
|
to INC_REG_N_SETS and INC_REG_N_REFS.
|
450 |
|
|
(regclass): Allocate register information locally.
|
451 |
|
|
(free_reg_info): Changed the structures freed.
|
452 |
|
|
(reg_scan): Removed call to allocate_reg_info and changed call to
|
453 |
|
|
REG_N_SETS to DF_REG_DEF_COUNT.
|
454 |
|
|
* combine (try_combine, remove_death, distribute_notes): Removed
|
455 |
|
|
computation of REG_N_DEATHS. Changed some references to
|
456 |
|
|
REG_N_SETS to INC_REG_N_SETS.
|
457 |
|
|
(rest_of_handle_combine): Replaced call to df_ri_add_problem with
|
458 |
|
|
call to df_note_add_problem, and added call to
|
459 |
|
|
regstat_init_n_sets_and_refs and regstat_free_n_sets_and_refs.
|
460 |
|
|
* bb-reorder (rest_of_handle_partition_blocks): Removed call to
|
461 |
|
|
allocate_reg_life_data.
|
462 |
|
|
* df-problems.c (reg_n_info, df_ri_problem_p, df_ri_problem_data,
|
463 |
|
|
df_ri_alloc, df_ri_start_dump, df_ri_get_setjmp_crosses): Removed.
|
464 |
|
|
(print_note): Renamed df_print_note.
|
465 |
|
|
(df_kill_notes): Added parameters to save notes rather than just
|
466 |
|
|
let them die and remake them.
|
467 |
|
|
(df_set_note): New function.
|
468 |
|
|
(df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
|
469 |
|
|
df_create_unused_note, df_ri_bb_compute, df_ri_compute,
|
470 |
|
|
df_ri_free): Removed ri information computations.
|
471 |
|
|
(df_ri_bb_compute): Renamed to df_note_bb_compute.
|
472 |
|
|
(df_ri_compute): Renamed to df_note_compute.
|
473 |
|
|
(df_ri_free): Renamed to df_note_free.
|
474 |
|
|
(problem_RI): Renamed to problem_NOTE
|
475 |
|
|
(df_ri_add_problem): Renamed to df_note_add_problem.
|
476 |
|
|
* (reg-stack.c): Changed call to df_ri_add_problem to
|
477 |
|
|
df_note_add_problem.
|
478 |
|
|
* combine-stack-adj.c (rest_of_handle_stack_adjustments): Ditto.
|
479 |
|
|
* (Makefile.in): Added regstat.o.
|
480 |
|
|
* sched-rgn.c (schedule_insns): Changed call to df_ri_add_problem to
|
481 |
|
|
df_note_add_problem. Added calls to regstat_compute_calls_crossed
|
482 |
|
|
and regstat_free_calls_crossed.
|
483 |
|
|
* basic_block.h (REG_BLOCK_UNKNOWN, REG_BLOCK_GLOBAL,
|
484 |
|
|
REG_BASIC_BLOCK): Moved to regs.h.
|
485 |
|
|
* config/sparc/sparc.c (sparc_check_64): Changed REG_N_SETS to
|
486 |
|
|
DF_REG_DEF_COUNT.
|
487 |
|
|
* config/sh/sh.c (flow_dependent_p_1): Ditto.
|
488 |
|
|
(sh_md_init): Removed useless attempt to measure pressure on R0.
|
489 |
|
|
* config/m68k/m68k.c (m68k_output_mi_thunk): Removed call to
|
490 |
|
|
allocate_reg_info.
|
491 |
|
|
* reload1.c (delete_output_reload): Added NUM_FIXED_BLOCKS to
|
492 |
|
|
tests for REG_BASIC_BLOCK.
|
493 |
|
|
|
494 |
|
|
2007-05-07 Seongbae Park
|
495 |
|
|
|
496 |
|
|
* dse.c (add_wild_read): Do not remove read_info_t
|
497 |
|
|
that has non-zero alias_set.
|
498 |
|
|
(canon_address): Remove unused parameter for_read and bb_info.
|
499 |
|
|
Remove the unused code path, and update the dump message.
|
500 |
|
|
(record_store): Accomodate canon_address signature change.
|
501 |
|
|
(check_mem_read_rtx): Don't bail out early for wild_read.
|
502 |
|
|
(check_mem_read_rtx): Accomodate canon_address signature change.
|
503 |
|
|
(scan_insn): Move call insn handling after note_uses.
|
504 |
|
|
|
505 |
|
|
2007-05-05 Ramana Radhakrishnan
|
506 |
|
|
Serge Belyshev
|
507 |
|
|
Kenneth Zadeck
|
508 |
|
|
|
509 |
|
|
* combine.c (recog_for_combine): Keep unused notes from being
|
510 |
|
|
generated for scratch registers.
|
511 |
|
|
* config/alpha/alpha.c: Add include for df.h.
|
512 |
|
|
|
513 |
|
|
|
514 |
|
|
2007-05-01 Kenneth Zadeck
|
515 |
|
|
|
516 |
|
|
Do not delete regnotes when recreating them.
|
517 |
|
|
* df-problems.c (df_kill_notes): Store notes into new parameters
|
518 |
|
|
rather than killing them.
|
519 |
|
|
(df_set_note): New function.
|
520 |
|
|
(df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
|
521 |
|
|
df_create_unused_note, df_ri_bb_compute): Call df_set_note to
|
522 |
|
|
create new notes.
|
523 |
|
|
|
524 |
|
|
2007-04-30 Seongbae Park
|
525 |
|
|
|
526 |
|
|
* df-scan.c (df_reorganize_refs_by_reg_by_insn):
|
527 |
|
|
Scan artificial defs and uses as well.
|
528 |
|
|
* passes.c (init_optimization_passes):
|
529 |
|
|
Move pass_stack_ptr_mod from after pass_inc_dec.
|
530 |
|
|
|
531 |
|
|
2007-04-29 Steven Bosscher
|
532 |
|
|
|
533 |
|
|
Small cleanups without any semantics changes:
|
534 |
|
|
* df-scan.c (df_ref_record): Fix small style typo.
|
535 |
|
|
* df-core.c (df_hybrid_search_forward): Cleanup redundant loads.
|
536 |
|
|
(df_hybrid_search_backward): Likewise.
|
537 |
|
|
(df_worklist_dataflow): Check DIR against DF_NONE instead of 0.
|
538 |
|
|
|
539 |
|
|
Small speedups:
|
540 |
|
|
* haifa-sched.c (move_block_after_check): Mark df solutions dirty
|
541 |
|
|
here, instead of...
|
542 |
|
|
(move_succs): ...here.
|
543 |
|
|
* df-core.c (df_analyze): Only verify POSTORDER_INVERTED if
|
544 |
|
|
checking is enabled.
|
545 |
|
|
|
546 |
|
|
Fix Java bootstrap on ia64
|
547 |
|
|
* emit-rtl.c (try_split): Unshare RTL sequences produced by splitters.
|
548 |
|
|
|
549 |
|
|
2007-04-27 Kenneth Zadeck
|
550 |
|
|
|
551 |
|
|
* timevar.def (TV_DF_UR): Removed.
|
552 |
|
|
* df-scan.c (df_scan_alloc): Change pool size.
|
553 |
|
|
* df-core.c (df_finish_pass, rest_of_handle_df_initialize,
|
554 |
|
|
df_get_bb_dirty, df_verify): Merged df_ur and df_live problems
|
555 |
|
|
into df_live.
|
556 |
|
|
* global.c (compute_regsets, rest_of_handle_global_alloc): Ditto.
|
557 |
|
|
* df.h (DF_UR, DF_UR_BB_INFO, DF_UR_IN, DF_UR_OUT, df_ur,
|
558 |
|
|
df_ur_get_bb_info): Removed.
|
559 |
|
|
(df_ur_bb_info): Merged df_ur and df_live problems
|
560 |
|
|
into df_live.
|
561 |
|
|
* init-regs.c (initialize_uninitialized_regs): Changed DF_UR_IN to
|
562 |
|
|
DF_LIVE_IN.
|
563 |
|
|
* df_problems.c (df_ur_problem_data): Renamed to
|
564 |
|
|
df_live_problem_data.
|
565 |
|
|
(df_ur_set_bb_info): Renamed to df_live_set_bb_info.
|
566 |
|
|
(df_ur_free_bb_info): Renamed to df_live_free_bb_info.
|
567 |
|
|
(df_ur_alloc): Renamed to df_live_alloc.
|
568 |
|
|
(df_ur_reset): Renamed to df_live_reset.
|
569 |
|
|
(df_ur_bb_local_compute): Renamed to df_live_bb_local_compute.
|
570 |
|
|
(df_ur_local_compute): Renamed to df_live_local_compute.
|
571 |
|
|
(df_ur_init): Renamed to df_live_init.
|
572 |
|
|
(df_ur_confluence_n): Renamed to df_live_confluence_n.
|
573 |
|
|
(df_ur_transfer_function): Renamed to df_live_transfer_function.
|
574 |
|
|
(df_ur_local_finalize): Removed.
|
575 |
|
|
(df_ur_free): Renamed to df_live_free.
|
576 |
|
|
(df_ur_top_dump): Renamed to df_live_top_dump.
|
577 |
|
|
(df_ur_bottom_dump): Renamed to df_live_bottom_dump.
|
578 |
|
|
(df_ur_verify_solution_start): Renamed to
|
579 |
|
|
df_live_verify_solution_start.
|
580 |
|
|
(df_ur_verify_solution_end): Renamed to
|
581 |
|
|
df_live_verify_solution_end.
|
582 |
|
|
(problem_UR): Renamed to problem_LIVE.
|
583 |
|
|
(df_ur_add_problem): Renamed to df_live_add_problem.
|
584 |
|
|
(df_ur_verify_transfer_functions): Renamed to
|
585 |
|
|
df_live_verify_transfer_functions.
|
586 |
|
|
(df_live_set_bb_info, df_live_free_bb_info, df_live_alloc,
|
587 |
|
|
df_live_free, df_live_top_dump, df_live_bottom_dump,
|
588 |
|
|
df_live_add_problem): Deleted.
|
589 |
|
|
(df_chain_fully_remove_problem): Changed pool alloc block size.
|
590 |
|
|
* dce.c (dce_marked_bitmap_obstack): Removed.
|
591 |
|
|
(marked_insn_p, mark_insn, init_dce, end_ud_dce, fini_dce,
|
592 |
|
|
fast_dce): Changed marked to be sbitmap rather than bitmap.
|
593 |
|
|
* alloc_pool.c (create_alloc_pool, pool_alloc, pool_free): Split
|
594 |
|
|
free_list into virgin_free_list and returned_free_list.
|
595 |
|
|
* alloc_pool.h (free_list): Split into virgin_free_list and
|
596 |
|
|
returned_free_list.
|
597 |
|
|
(virgin_elts_remaining): New variable.
|
598 |
|
|
|
599 |
|
|
2007-04-26 Kenneth Zadeck
|
600 |
|
|
|
601 |
|
|
* df-core.c (df_remove_problem): Allow df_ur and df_live
|
602 |
|
|
problems to be removed.
|
603 |
|
|
* global.c (compute_regsets): Remove df_ur and df_live when
|
604 |
|
|
adding df_urec.
|
605 |
|
|
(rest_of_handle_global_alloc): Add back df_ur and df_live when
|
606 |
|
|
removing df_urec.
|
607 |
|
|
* timevar.def (TV_DF_UD): Renamed to TV_DF_UR.
|
608 |
|
|
* function.c (thread_prologue_and_epilogue_insns): Removed
|
609 |
|
|
call to df_analyze.
|
610 |
|
|
* df-problems.c (problem_UR): Added remove function and renamed TV.
|
611 |
|
|
(problem_LIVE): Added remove function.
|
612 |
|
|
|
613 |
|
|
|
614 |
|
|
2007-04-26 Seongbae Park
|
615 |
|
|
|
616 |
|
|
* tree-pass.h: Declaration for new pass.
|
617 |
|
|
* passes.c (init_optimization_passes): New pass.
|
618 |
|
|
* dce.c (prescan_insns_for_dce): Pass new param "fast" through.
|
619 |
|
|
(mark_artificial_uses, mark_reg_dependencies): New functions
|
620 |
|
|
- resurrected from the old svn revision.
|
621 |
|
|
(end_ud_dce, rest_of_handle_ud_dce, gate_ud_dce): New function.
|
622 |
|
|
(pass_ud_rtl_dce): New pass.
|
623 |
|
|
(fast_dce): New parameter for prescan_insns_for_dce.
|
624 |
|
|
|
625 |
|
|
2007-04-24 Seongbae Park
|
626 |
|
|
|
627 |
|
|
* final.c (leaf_renumber_regs_insn): Use SET_REGNO().
|
628 |
|
|
* df-scan.c (df_insn_refs_collect): Handle non-local gotos.
|
629 |
|
|
* sparc.c: New include of df.h.
|
630 |
|
|
* dce.c (prescan_insns_for_dce): Call mark_libcall for all insns
|
631 |
|
|
with with REG_LIBCALL_ID.
|
632 |
|
|
|
633 |
|
|
2007-04-23 Steven Bosscher
|
634 |
|
|
Kenneth Zadeck
|
635 |
|
|
|
636 |
|
|
* df-scan.c (problem_SCAN): Add time variable.
|
637 |
|
|
(df_refs_add_to_chains): Delete the refs vectors before
|
638 |
|
|
allocating new ones.
|
639 |
|
|
* df-core.c (df_analyze_problem): Push and pop problem specific
|
640 |
|
|
time vectors.
|
641 |
|
|
* timevar.def (TV_DF_SCAN, TV_DF_RU, TV_DF_RD, TV_DF_LR, TV_DF_UD,
|
642 |
|
|
TV_DF_LIVE, TV_DF_UREC, TV_DF_CHAIN, TV_DF_RI): New problem
|
643 |
|
|
specific time vars.
|
644 |
|
|
* dse.c (positions_needed): Changed to be bitmask from sbitmap.
|
645 |
|
|
(store_info.rhs): New field.
|
646 |
|
|
(free_store_info, step6): Changed positions_needed to be bitmask
|
647 |
|
|
from sbitmap.
|
648 |
|
|
(read_info.begin, read_info.end): Changed to be int.
|
649 |
|
|
(deferred_change): New struct.
|
650 |
|
|
(deferred_change_pool): New variable.
|
651 |
|
|
(step0): Initialize deferred_change_pool.
|
652 |
|
|
(canon_address): Added parameter to cselib_expand_value_rtx and
|
653 |
|
|
improved debugging.
|
654 |
|
|
(clear_rhs_from_active_local_stores, replace_read): New function.
|
655 |
|
|
(record_store, check_mem_read_rtx): Added code to invalidate
|
656 |
|
|
store_info.rhs. Changed positions_needed to be bitmask from
|
657 |
|
|
sbitmap.
|
658 |
|
|
(step1): Added code to process deferred_change_list.
|
659 |
|
|
(rest_of_handle_dse): Added deferred rescanning.
|
660 |
|
|
* df.h (df_problem.tv_id): New timevar for each problem.
|
661 |
|
|
* cselib.c (expand_loc, cselib_expand_value_rtx): Added code to
|
662 |
|
|
limit the amount of recursion allowed when expanding addresses.
|
663 |
|
|
* cselib.h (cselib_expand_value_rtx): Added max recursion
|
664 |
|
|
parameter.
|
665 |
|
|
* rtl.h (rhs_regno): Renamed tree to x.
|
666 |
|
|
* df-problems.c (df_problem problem_RU, df_problem problem_RD,
|
667 |
|
|
problem_LR, problem_UR, problem_LIVE, problem_UREC, problem_CHAIN,
|
668 |
|
|
problem_RI) Added timevar.
|
669 |
|
|
(df_live_local_finalize): Only update solution if dirty.
|
670 |
|
|
* Makefile.in (dse.o): Added dependencies.
|
671 |
|
|
|
672 |
|
|
2007-04-23 Ian Lance Taylor
|
673 |
|
|
|
674 |
|
|
* lower-subreg.c (resolve_reg_notes): Discard REG_DEAD and
|
675 |
|
|
REG_UNUSED notes for split registers.
|
676 |
|
|
(decompose_multiword_subregs): Remove life_blocks.
|
677 |
|
|
|
678 |
|
|
2007-04-22 Steven Bosscher
|
679 |
|
|
|
680 |
|
|
* df.h (df_bitmap_obstack): Declare.
|
681 |
|
|
|
682 |
|
|
* df-scan.c (df_scan_problem_data): Add new bitmap obstacks for
|
683 |
|
|
regsets and insns/notes to be rescanned.
|
684 |
|
|
(df_scan_free_internal): Free the new bitmap obstacks.
|
685 |
|
|
(df_scan_alloc): Initialize the new bitmap obstacks, and use them.
|
686 |
|
|
(df_scan_free): Set df->blocks_to_analyze to NULL after freeing it.
|
687 |
|
|
(df_insn_rescan_all): Put temporary bitmaps on df_bitmap_obstack.
|
688 |
|
|
(df_process_deferred_rescans): Likewise.
|
689 |
|
|
(df_get_call_refs): Likewise.
|
690 |
|
|
(df_update_entry_block_defs): Likewise. Put entry_block_defs on
|
691 |
|
|
the regsets bitmap obstack.
|
692 |
|
|
(df_record_exit_block_uses): Changed like df_record_exit_block_uses.
|
693 |
|
|
(df_entry_block_bitmap_verify): Put temporary bitmaps on df_bitmap_obstack.
|
694 |
|
|
(df_exit_block_bitmap_verify): Likewise.
|
695 |
|
|
(df_scan_verify): Likewise.
|
696 |
|
|
|
697 |
|
|
* df-core.c (df_bitmap_obstack): Declare.
|
698 |
|
|
(rest_of_handle_df_initialize): Initialize it.
|
699 |
|
|
(rest_of_handle_df_finish): Release it.
|
700 |
|
|
(df_set_blocks, df_worklist_dataflow, df_analyze,
|
701 |
|
|
df_compact_blocks): Use it.
|
702 |
|
|
|
703 |
|
|
* df-problems.c (df_set_seen): Use df_bitmap_obstack for seen_in_block
|
704 |
|
|
and seen_in_insn.
|
705 |
|
|
(df_ri_compute): Likewise for bitmaps allocated for the RI problem.
|
706 |
|
|
|
707 |
|
|
For the RU and RD problems, introduce per-problem bitmap obstacks:
|
708 |
|
|
(df_r[ud]_problem_data): Add a per-problem bitmap
|
709 |
|
|
obstack.
|
710 |
|
|
(df_r[ud]_alloc): Initialize and use them per df problem.
|
711 |
|
|
(df_r[ud]_confluence_n, df_r[ud]_transfer_function): Use them.
|
712 |
|
|
(df_r[ud]_free): Release them.
|
713 |
|
|
|
714 |
|
|
* dce.c (dce_marked_bitmap_obstack, dce_blocks_bitmap_obstack,
|
715 |
|
|
dce_tmp_bitmap_obstack): New bitmap obstacks.
|
716 |
|
|
(init_dce): Initialize them. Use dce_marked_bitmap_obstack for
|
717 |
|
|
the bitmap of marked insns.
|
718 |
|
|
(end_fast_dce): Renamed to...
|
719 |
|
|
(fini_dce): ...this. Release the new bitmap obstacks.
|
720 |
|
|
(dce_process_block): Allocate local_live on dce_tmp_bitmap_obstack.
|
721 |
|
|
(fast_dce): Allocate basic block bitmaps on dce_blocks_bitmap_obstack.
|
722 |
|
|
(rest_of_handle_fast_dce): Call fini_dce, and clear df_in_progress.
|
723 |
|
|
(run_fast_df_dce): Likewise.
|
724 |
|
|
|
725 |
|
|
2007-04-21 Andrew Pinski
|
726 |
|
|
|
727 |
|
|
* config/spu/spu.c (fsmbi_const_p): Replace flow2_completed with
|
728 |
|
|
epilogue_completed.
|
729 |
|
|
|
730 |
|
|
2007-04-16 Steven Bosscher
|
731 |
|
|
|
732 |
|
|
* fwprop.c (forward_propagate_into): If multiple sets
|
733 |
|
|
return.
|
734 |
|
|
|
735 |
|
|
2007-04-16 Kenneth Zadeck
|
736 |
|
|
|
737 |
|
|
* df-scan.c (df_ref_create, df_reg_chain_unlink,
|
738 |
|
|
df_install_refs): Use df->analyze_subset.
|
739 |
|
|
(df_reorganize_refs_by_reg_by_reg, df_reorganize_refs_by_reg_by_insn):
|
740 |
|
|
New functions.
|
741 |
|
|
(df_reorganize_refs_by_reg): Split into
|
742 |
|
|
df_reorganize_refs_by_reg_by_reg,
|
743 |
|
|
df_reorganize_refs_by_reg_by_insn.
|
744 |
|
|
(df_add_refs_to_table): Do not add hardware_regs if not asked for.
|
745 |
|
|
(df_reorganize_refs_by_insn): Move call to count_refs.
|
746 |
|
|
(df_maybe_reorganize_def_refs, df_maybe_reorganize_use_refs):
|
747 |
|
|
Remove code to modify df->total_size.
|
748 |
|
|
* df-core.c (df_set_blocks): Set df->analyze_subset.
|
749 |
|
|
(df_finish_pass): Clear df->analyze->subset.
|
750 |
|
|
(df_analyze): Use df->analyze_subset.
|
751 |
|
|
(df_dump_start): Remove total_size from dump.
|
752 |
|
|
* df.h (DF_RI_NO_UPDATE, DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE):
|
753 |
|
|
Removed.
|
754 |
|
|
(df.analyze_subset): New field. * df-problems.c (df_ri_alloc,
|
755 |
|
|
df_ri_compute): Removed DF_RI_NO_UPDATE.
|
756 |
|
|
|
757 |
|
|
|
758 |
|
|
2007-04-12 Steven Bosscher
|
759 |
|
|
Kenneth Zadeck
|
760 |
|
|
|
761 |
|
|
* cse.c (cse_insn): Do not emit barriers.
|
762 |
|
|
* dse.c (store_info.address): Renamed to mem_addr.
|
763 |
|
|
(canon_address): Removed address_out parameter.
|
764 |
|
|
(record_store): Removed address var and compute mem and
|
765 |
|
|
mem_address differently.
|
766 |
|
|
(check_mem_read_rtx): Removed address and changed parameters to
|
767 |
|
|
canon_true_dependence.
|
768 |
|
|
* cselib.c (cselib_expand_value_rtx): Do not translate
|
769 |
|
|
FRAME_POINTER_REGNUM and HARD_FRAME_POINTER_REGNUM.
|
770 |
|
|
|
771 |
|
|
2007-04-11 Steven Bosscher
|
772 |
|
|
|
773 |
|
|
* gcse.c (hash_scan_set): Make sure that INSN has only one
|
774 |
|
|
SET in its PATTERN before making SRC anticipatable.
|
775 |
|
|
* cfglayout.c (fixup_reorder_chain): Fix merge error, don't
|
776 |
|
|
call compact_blocks here.
|
777 |
|
|
|
778 |
|
|
2007-04-09 Kenneth Zadeck
|
779 |
|
|
|
780 |
|
|
* df-core.c (add_problem): Keep the problem sorted in
|
781 |
|
|
problems_in_order.
|
782 |
|
|
* global.c (compute_regsets): Recompute register information.
|
783 |
|
|
|
784 |
|
|
2007-04-08 Kenneth Zadeck
|
785 |
|
|
|
786 |
|
|
* optabs.h (maybe_encapsulate_block): Made public.
|
787 |
|
|
* optabs.c (maybe_encapsulate_block): Ditto.
|
788 |
|
|
(emit_no_conflict_block, emit_libcall_block): Remove
|
789 |
|
|
REG_LIBCALL_ID when deleteing REG_RETVAL and REG_LIBCALL
|
790 |
|
|
notes.
|
791 |
|
|
* reload1.c (reload): Ditto.
|
792 |
|
|
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
|
793 |
|
|
Use maybe_encapsulate_block to add libcall notes.
|
794 |
|
|
|
795 |
|
|
2007-04-07 Kenneth Zadeck
|
796 |
|
|
|
797 |
|
|
* dse.c (clear_alias_set_lookup): New function.
|
798 |
|
|
(store_info.is_set): New field.
|
799 |
|
|
(replace_inc_dec, delete_dead_store_insn): Added more ifdefs so
|
800 |
|
|
dse could be tested on mainline.
|
801 |
|
|
(canon_address): Moved lookup of alias_set info to subroutine and
|
802 |
|
|
added better logging. Added code to detect if address contains an
|
803 |
|
|
AND and if so, escape.
|
804 |
|
|
(record_store, check_mem_read_rtx): White space cleanup. Added
|
805 |
|
|
code to skip store_info's for clobbers when comparing with
|
806 |
|
|
previous insn stores. We also mark store_info's as to whether
|
807 |
|
|
they are set or clobber based.
|
808 |
|
|
(scan_insn): Only add insn to active_stores_list if it has exactly
|
809 |
|
|
one store.
|
810 |
|
|
(step1): Add code to remove a store to the frame that goes dead at
|
811 |
|
|
the end of a function if there is a non overlaping block mode read
|
812 |
|
|
from the stack. The global algorithm cannot do this because it
|
813 |
|
|
takes a more conservative view of block mode reads.
|
814 |
|
|
(dse_confluence_0, dse_confluence_n, dse_transfer_function,
|
815 |
|
|
step5_spill, pass_rtl_dse2): Add ifdefs so this can be tested on
|
816 |
|
|
mainline.
|
817 |
|
|
(step5_nospill): Ignore clobbers and only look at the set to
|
818 |
|
|
decide if an insn can be deleted.
|
819 |
|
|
* init_regs.c: Whitespace.
|
820 |
|
|
* cselib.c (cselib_expand_value_rtx): Fixed comment and changed to
|
821 |
|
|
use proper macro.
|
822 |
|
|
|
823 |
|
|
2007-04-06 Paolo Bonzini
|
824 |
|
|
|
825 |
|
|
* bitmap.c (bitmap_set_range): New.
|
826 |
|
|
(bitmap_clear_range): Small optimization.
|
827 |
|
|
* bitmap.h (bitmap_set_range): New.
|
828 |
|
|
* df-problems.c (df_ref_bitmap): Remove.
|
829 |
|
|
(struct df_rd_problem_data, df_ru_problem_data): Remove related
|
830 |
|
|
data structures.
|
831 |
|
|
(df_ru_alloc, df_rd_alloc): Don't allocate them.
|
832 |
|
|
(df_ru_free, df_rd_free): Don't free them.
|
833 |
|
|
(df_ru_bb_local_compute_process_def, df_ru_local_compute,
|
834 |
|
|
df_rd_bb_local_compute_process_def, df_rd_local_compute):
|
835 |
|
|
Use bitmap_set_range and bitmap_clear_range instead of df_ref_bitmap.
|
836 |
|
|
|
837 |
|
|
2007-04-05 Kenneth Zadeck
|
838 |
|
|
|
839 |
|
|
* sbitmap.c (sbitmap_empty_p): New function.
|
840 |
|
|
* sbitmap.h (sbitmap_empty_p): New function.
|
841 |
|
|
* dbgcnt.def (dse): New counter and sorted the others.
|
842 |
|
|
* df-core.c (df_worklist_dataflow): Made init_fun optional.
|
843 |
|
|
* cse.c (cse_main): Do dce at start of pass.
|
844 |
|
|
* timevar.def (TV_DSE3): Deleted.
|
845 |
|
|
* dse.c: New pass.
|
846 |
|
|
* dse.h: New file for dse pass.
|
847 |
|
|
* gcse.c (gcse_main): Set up the register info.
|
848 |
|
|
* alias.c (clear_reg_alias_info): Removed dead function.
|
849 |
|
|
* rtl.h (clear_reg_alias_info): Removed dead function.
|
850 |
|
|
* cselib.c (cselib_discard_hook): Added cselib val parameter.
|
851 |
|
|
(discard_useless_values): Added hook call here.
|
852 |
|
|
(remove_useless_values): Removed hook call from here.
|
853 |
|
|
(expand_loc, cselib_expand_value_rtx): New function.
|
854 |
|
|
(cselib_finish): Clear hook.
|
855 |
|
|
* cselib.h (cselib_discard_hook): Added cselib val parameter.
|
856 |
|
|
(expand_loc, cselib_expand_value_rtx): New function.
|
857 |
|
|
* common.opt (flag_flow_dce, new-dce): Removed flag.
|
858 |
|
|
(flag_dce, flag_dse): New flags.
|
859 |
|
|
* Makefile.in (dse.o): New pass.
|
860 |
|
|
* passes.c (init_iptimization_passes): Removed dse after combine.
|
861 |
|
|
Renamed dse3 to dse2.
|
862 |
|
|
* dce.c (delete_unmarked_insns): Renamed new_dce to dce.
|
863 |
|
|
(end_dce, mark_artificial_uses, mark_reg_dependencies,
|
864 |
|
|
invariant_store_base_eq, invariant_store_base_hash, value_store_base_eq,
|
865 |
|
|
value_store_base_hash, store_base_del, rs_init, rs_confluence,
|
866 |
|
|
rs_transfer_function, init_invariant_store_group,
|
867 |
|
|
init_value_store_group, empty_store_group, end_store_group,
|
868 |
|
|
init_rs_dflow, end_rs_dflow, init_unmarked_stores,
|
869 |
|
|
end_unmarked_stores, init_dse, end_dse, dump_stores,
|
870 |
|
|
split_address, add_store_offset, record_store, record_stores,
|
871 |
|
|
store_offset_compare, store_base_local,
|
872 |
|
|
invariant_store_base_local, value_store_base_local,
|
873 |
|
|
value_store_base_useless, remove_useless_values,
|
874 |
|
|
store_base_global, finish_max_in_luid,
|
875 |
|
|
calculate_reaching_stores, frame_stores_escape_p,
|
876 |
|
|
store_base_prune_needed, mark_escaping_stores,
|
877 |
|
|
insn_might_read_mem_rtx, insn_might_read_mem_use,
|
878 |
|
|
insn_might_read_mem_p, mark_dependent_stores,
|
879 |
|
|
prescan_insns_for_dse, rest_of_handle_dse, gate_dse): Deleted functions
|
880 |
|
|
as part of new dse pass in separate file.
|
881 |
|
|
* reload1.c (alter_reg): Added calls to register spill slots
|
882 |
|
|
with dse.
|
883 |
|
|
|
884 |
|
|
2007-04-05 Peter Bergner
|
885 |
|
|
|
886 |
|
|
* config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
|
887 |
|
|
PRE_MODIFY for TDmode.
|
888 |
|
|
|
889 |
|
|
2007-04-04 Kenneth Zadeck
|
890 |
|
|
|
891 |
|
|
* cfg.c (dump_reg_info): Added check to lower max if new regs
|
892 |
|
|
were added.
|
893 |
|
|
* init-regs.c (initialize_uninitialized_regs): Changed code to
|
894 |
|
|
insert move right before uninitized insn.
|
895 |
|
|
|
896 |
|
|
2007-04-03 Paolo Bonzini
|
897 |
|
|
|
898 |
|
|
* df-problems.c (df_chain_create_bb): Plug leak.
|
899 |
|
|
|
900 |
|
|
* df-problems.c (df_chain_alloc): Fix typo.
|
901 |
|
|
|
902 |
|
|
2007-04-03 Paolo Bonzini
|
903 |
|
|
|
904 |
|
|
* dce.c (dce_process_block): Copy into DF_LR_IN.
|
905 |
|
|
* df-problems.c (df_lr_free_bb_info): Support bb_info->in
|
906 |
|
|
being the same bitmap as bb_info->top.
|
907 |
|
|
(df_lr_alloc): The adef and ause fields must be either
|
908 |
|
|
both NULL or both non-NULL. Initialize bb_info->top
|
909 |
|
|
to bb_info->in.
|
910 |
|
|
(df_lr_bb_local_compute): Allocate adef, ause, top together.
|
911 |
|
|
(df_lr_transfer_function): Simplify according to above
|
912 |
|
|
assumptions.
|
913 |
|
|
(df_lr_free): Zero out bb_info->top instead of freeing it
|
914 |
|
|
if it is the same as bb_info->in.
|
915 |
|
|
|
916 |
|
|
2007-04-01 Kenneth Zadeck
|
917 |
|
|
|
918 |
|
|
* config/ia64/ia64.c (emit_predicate_relation_info): Changed
|
919 |
|
|
DF_LIVE_IN to df_get_live_in.
|
920 |
|
|
|
921 |
|
|
2007-03-29 Paolo Bonzini
|
922 |
|
|
|
923 |
|
|
* bitmap.c (bitmap_elt_copy, bitmap_elt_ior): New.
|
924 |
|
|
(bitmap_ior, bitmap_ior_into): Use them.
|
925 |
|
|
(bitmap_and_compl): Use them, return whether DST changed.
|
926 |
|
|
(bitmap_ior_and_compl): Rewrite.
|
927 |
|
|
* bitmap.h (bitmap_and_compl): Return a bool.
|
928 |
|
|
|
929 |
|
|
* Makefile.in (alias.o): Fix dependencies.
|
930 |
|
|
* alias.c (find_base_value, init_alias_analysis): Use
|
931 |
|
|
DF_REG_DEF_COUNT. Include df.h.
|
932 |
|
|
* cfg.c (dump_reg_info): Don't fail if reg_info not initialized.
|
933 |
|
|
* cse.c (cse_main): Assume dataflow initialized. Call reg_scan.
|
934 |
|
|
* gcse.c (gcse_main): Call df_analyze, remove call to reg_scan.
|
935 |
|
|
* local-alloc.c (rest_of_handle_local_alloc): Call allocate_reg_info
|
936 |
|
|
earlier.
|
937 |
|
|
* passes.c (init_optimization_passes): Initialize dataflow before CSE.
|
938 |
|
|
|
939 |
|
|
* global.c (n_reg_sets): Remove.
|
940 |
|
|
(reg_sets): Change to a VEC.
|
941 |
|
|
(mark_reg_store): Push onto reg_sets.
|
942 |
|
|
(global_conflicts): Assert reg_sets is empty, pop values out of it.
|
943 |
|
|
Don't allocate it nor free it here.
|
944 |
|
|
(global_alloc): Allocate reg_sets if necessary.
|
945 |
|
|
|
946 |
|
|
* see.c (rest_of_handle_see): Don't call reg_scan.
|
947 |
|
|
* tracer.c (rest_of_handle_tracer): Likewise.
|
948 |
|
|
* cfgcleanup.c (rest_of_handle_jump2): Likewise.
|
949 |
|
|
* bb-reorder.c (fix_edges_for_rarely_executed_code): Likewise.
|
950 |
|
|
* loop-init.c (rtl_loop_done): Likewise.
|
951 |
|
|
* ifcvt.c (rest_of_handle_if_conversion): Likewise.
|
952 |
|
|
* mode-switching.c (optimize_mode_switching): Remove useless
|
953 |
|
|
allocate_reg_info.
|
954 |
|
|
* lower-subreg.c (decompose_register): Don't call clear_reg_info_regno.
|
955 |
|
|
(decompose_multiword_subregs): Don't call reg_scan_update.
|
956 |
|
|
* web.c (rest_of_handle_web): Delete.
|
957 |
|
|
(pass_web): Use web_main as pass routine.
|
958 |
|
|
|
959 |
|
|
* regclass.c (max_parallel, max_set_parallel): Remove.
|
960 |
|
|
(reg_scan): Don't set them.
|
961 |
|
|
(reg_scan_update): Delete.
|
962 |
|
|
(reg_scan_mark_refs): Remove last parameter.
|
963 |
|
|
|
964 |
|
|
* rtl.h (max_parallel): Remove.
|
965 |
|
|
|
966 |
|
|
2007-03-29 Paolo Bonzini
|
967 |
|
|
|
968 |
|
|
* df-core.c (pass_df_finish): Restore.
|
969 |
|
|
(pass_df_finish_opt, pass_df_finish_no_opt): Remove.
|
970 |
|
|
* tree-pass.h (pass_df_finish): Restore.
|
971 |
|
|
(pass_df_finish_opt, pass_df_finish_no_opt): Remove.
|
972 |
|
|
* passes.c (init_optimizations_passes): Remove pass_df_finish_no_opt.
|
973 |
|
|
Rename pass_df_finish_opt to pass_df_finish.
|
974 |
|
|
* reg-stack.c: Mostly evert previous commit.
|
975 |
|
|
|
976 |
|
|
2007-03-28 Kenneth Zadeck
|
977 |
|
|
|
978 |
|
|
* tree-pass.h (pass_df_initialize, pass_df_finish): Deleted.
|
979 |
|
|
(pass_df_initialize_opt, pass_df_initialize_no_opt,
|
980 |
|
|
pass_stack_regs_run, pass_df_finish_opt, pass_df_finish_no_opt):
|
981 |
|
|
Added.
|
982 |
|
|
* df-core.c (df_finish_pass): Made ur and live problems condition
|
983 |
|
|
on optimization.
|
984 |
|
|
(pass_df_initialize): Renamed to pass_df_initialize_opt.
|
985 |
|
|
(pass_df_initialize_no_opt): New pass.
|
986 |
|
|
(gate_opt, gate_no_opt): New functions.
|
987 |
|
|
(pass_df_finish): Renamed to pass_df_finish_opt.
|
988 |
|
|
(pass_df_finish_no_opt): New pass.
|
989 |
|
|
* mode-switching.c (optimize_mode_switching): Changed references
|
990 |
|
|
of DF_LIVE_IN to df_get_live_in.
|
991 |
|
|
* global.c (compute_regsets): Only add urec problem when
|
992 |
|
|
optimizing.
|
993 |
|
|
* function.c (regno_clobbered_at_setjmp): Changed references
|
994 |
|
|
of DF_LIVE_OUT to df_get_live_out.
|
995 |
|
|
* regclass.c (regclass_init): Only call df_compute_regs_ever_live
|
996 |
|
|
if optimizing.
|
997 |
|
|
* stack-ptr-mod.c (notice_stack_pointer_modification): Only call
|
998 |
|
|
df_update_exit_block_uses if optimizing.
|
999 |
|
|
* df-problems.c (df_get_live_in, df_get_live_out): Return df_live
|
1000 |
|
|
sets if they are there.
|
1001 |
|
|
* reg-stack.c (rest_of_handle_stack_regs_run):
|
1002 |
|
|
Added new pass that just runs subpasses.
|
1003 |
|
|
* passes.c (init_optimization_passes): Added passes to turn on df
|
1004 |
|
|
at only some parts of the compilation for -O0. Moved
|
1005 |
|
|
pass_split_before_regstack and pass_stack_regs into a subpass of
|
1006 |
|
|
the stack regs pass.
|
1007 |
|
|
|
1008 |
|
|
2007-03-28 Paolo Bonzini
|
1009 |
|
|
|
1010 |
|
|
* df.h (df_ru_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
|
1011 |
|
|
df_ur_get_bb_info, df_live_get_bb_info, df_urec_get_bb_info):
|
1012 |
|
|
New inlines.
|
1013 |
|
|
* df-scan.c (df_scan_get_bb_info, df_get_artificial_uses,
|
1014 |
|
|
df_get_artificial_defs): Delete.
|
1015 |
|
|
* df-problems.c (df_ru_get_bb_info, df_rd_get_bb_info,
|
1016 |
|
|
df_lr_get_bb_info, df_ur_get_bb_info, df_live_get_bb_info,
|
1017 |
|
|
df_urec_get_bb_info): Delete.
|
1018 |
|
|
|
1019 |
|
|
2007-03-20 Seongbae Park
|
1020 |
|
|
|
1021 |
|
|
* combine.c (setup_incoming_promotions): Fix a bad merge
|
1022 |
|
|
- use the argument FIRST instead of recomputing it.
|
1023 |
|
|
|
1024 |
|
|
2007-03-16 Paolo Bonzini
|
1025 |
|
|
|
1026 |
|
|
* tracer.c (tracer): Work around pr19340.c failure by cleaning up
|
1027 |
|
|
CFG outside cfglayout mode. Proper fix will be brought in by
|
1028 |
|
|
next mainline merge.
|
1029 |
|
|
|
1030 |
|
|
2007-03-16 Paolo Bonzini
|
1031 |
|
|
|
1032 |
|
|
PR rtl-optimization/31025
|
1033 |
|
|
* df.h (df_get_live_out): New prototype.
|
1034 |
|
|
* df-problems.c (df_get_live_out): New.
|
1035 |
|
|
(df_ri_bb_compute): Use it.
|
1036 |
|
|
|
1037 |
|
|
2007-03-13 Seongbae Park
|
1038 |
|
|
|
1039 |
|
|
* tree-pass.h (pass_subregs_of_mode_finish): New pass declaration.
|
1040 |
|
|
* regclass.c (record_subregs_of_mode): Made static, and
|
1041 |
|
|
moved before init_subregs_of_mode to compile.
|
1042 |
|
|
(cannot_change_mode_set_regs, invalid_mode_change_p): Added assertion.
|
1043 |
|
|
(finish_subregs_of_mode): New function.
|
1044 |
|
|
(pass_subregs_of_mode_finish): New pass.
|
1045 |
|
|
* rtl.h (record_subregs_of_mode): Removed.
|
1046 |
|
|
* combine.c (gen_lowpart_for_combine): Removed calls to
|
1047 |
|
|
record_subregs_of_mode.
|
1048 |
|
|
* passes.c (init_optimization_passes): Moved pass_subregs_of_mode_init
|
1049 |
|
|
just before local_alloc. New pass pass_subregs_of_mode_finish
|
1050 |
|
|
after global_alloc.
|
1051 |
|
|
|
1052 |
|
|
2007-03-09 Richard Earnshaw
|
1053 |
|
|
|
1054 |
|
|
* arm.c: Include df.h.
|
1055 |
|
|
|
1056 |
|
|
2007-03-06 Steven Bosscher
|
1057 |
|
|
|
1058 |
|
|
* fwprop.c (try_fwprop_subst): Remove redundant df_notes_rescan.
|
1059 |
|
|
* see.c (rest_of_handle_see): Run a fast dce. Don't run cleanup_cfg.
|
1060 |
|
|
* tracer.c (tracer): Clean up the cfg when still in cfglayout mode.
|
1061 |
|
|
* postreload-gcse.c (rest_of_handle_gcse2): Don't run
|
1062 |
|
|
delete_trivially_dead_insns, this pass cleans up after itself already.
|
1063 |
|
|
* df-scan.c (df_insn_rescan): Fix typo.
|
1064 |
|
|
* cse.c (rest_of_handle_cse): Don't use CLEANUP_EXPENSIVE.
|
1065 |
|
|
(rest_of_handle_cse2): Likewise. Don't call delete_dead_jumptables.
|
1066 |
|
|
* web.c (rest_of_handle_web): Don't run delete_trivially_dead_insns.
|
1067 |
|
|
Also don't clean up the CFG, this pass does not transform the CFG.
|
1068 |
|
|
* loop-init.c (rtl_loop_done): Don't run delete_trivially_dead_insns.
|
1069 |
|
|
Don't use CLEANUP_EXPENSIVE.
|
1070 |
|
|
* ifcvt.c (rest_of_handle_if_conversion): Don't use CLEANUP_EXPENSIVE.
|
1071 |
|
|
* gcse.c (rest_of_handle_jump_bypass): Only remove unreachable basic
|
1072 |
|
|
blocks before the pass. No need for a reg_scan. Rebuild jump labels
|
1073 |
|
|
after delete_trivially_dead_insns. Don't use CLEANUP_EXPENSIVE.
|
1074 |
|
|
(rest_of_handle_gcse): Rebuild jump labels after
|
1075 |
|
|
delete_trivially_dead_insns. Don't call delete_dead_jumptables.
|
1076 |
|
|
Don't use CLEANUP_EXPENSIVE.
|
1077 |
|
|
* cfgcleanup.c (cleanup_cfg): Move delete_dead_jumptables call out of
|
1078 |
|
|
the loop.
|
1079 |
|
|
* combine.c (rest_of_handle_combine): Account cleanup_cfg to TV_JUMP.
|
1080 |
|
|
Don't use CLEANUP_EXPENSIVE. Don't run delete_trivially_dead_insns.
|
1081 |
|
|
* bb-reorder.c (rest_of_handle_reorder_blocks): Don't use
|
1082 |
|
|
CLEANUP_EXPENSIVE. Resurrect CLEANUP_CROSSJUMP here.
|
1083 |
|
|
|
1084 |
|
|
2007-03-06 Paolo Bonzini
|
1085 |
|
|
|
1086 |
|
|
* cse.c (validate_canon_reg): Don't do anything if *XLOC is NULL.
|
1087 |
|
|
Assert it is only called with insn != 0 and it never resets
|
1088 |
|
|
something non-NULL to NULL. Always use validate_change.
|
1089 |
|
|
(cse_insn): Always call canon_reg with an INSN except when it
|
1090 |
|
|
is used on a REG. When processing notes, first canonicalize,
|
1091 |
|
|
then fold, and call df_notes_rescan.
|
1092 |
|
|
(cse_process_notes): Rename to cse_process_notes_1, add CHANGED
|
1093 |
|
|
parameter.
|
1094 |
|
|
(cse_process_notes_1): Wrapper around cse_process_notes to set
|
1095 |
|
|
the CHANGED parameter.
|
1096 |
|
|
(cse_extended_basic_block): Adjust call to cse_process_notes
|
1097 |
|
|
and use result to call df_notes_rescan.
|
1098 |
|
|
(cse_main): Set deferred insn rescanning flag, don't rescan on exit.
|
1099 |
|
|
(pass_cse2): Add TODO_df_finish.
|
1100 |
|
|
* gcse.c (pass_gcse): Likewise.
|
1101 |
|
|
|
1102 |
|
|
2007-03-04 Roman Zippel
|
1103 |
|
|
|
1104 |
|
|
* regclass.c (scan_one_insn): Call df_insn_rescan after breaking
|
1105 |
|
|
out constant parameter.
|
1106 |
|
|
|
1107 |
|
|
2007-03-04 Roman Zippel
|
1108 |
|
|
|
1109 |
|
|
* df-scan.c (df_grow_ref_info): Also add bitmap_addend to size.
|
1110 |
|
|
|
1111 |
|
|
2007-02-25 Ulrich Weigand
|
1112 |
|
|
|
1113 |
|
|
Backport from mainline:
|
1114 |
|
|
* reload.c (find_reloads_address_1): Handle PLUS expressions resulting
|
1115 |
|
|
from register elimination as PRE_MODIFY / POST_MODIFY increments.
|
1116 |
|
|
Do not attempt to handle MEM inside auto-inc expressions.
|
1117 |
|
|
* reload1.c (eliminate_regs_1): Do not attempt to handle elimination
|
1118 |
|
|
of a register modified by an auto-inc expression. However, do handle
|
1119 |
|
|
elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
|
1120 |
|
|
(elimination_effects): Prohibit elimination of a register modified
|
1121 |
|
|
by an auto-inc expression. Disable register elimination rules whose
|
1122 |
|
|
target register is modified by an auto-inc expression with variable
|
1123 |
|
|
increment.
|
1124 |
|
|
|
1125 |
|
|
2007-02-25 Ulrich Weigand
|
1126 |
|
|
|
1127 |
|
|
Revert:
|
1128 |
|
|
2006-07-01 Daniel Berlin
|
1129 |
|
|
David Edelsohn
|
1130 |
|
|
Kenneth Zadeck
|
1131 |
|
|
reload1.c (eliminate_regs_1, elimination_effects): Added cases for
|
1132 |
|
|
PRE/POST_MODIFY.
|
1133 |
|
|
|
1134 |
|
|
2007-02-22 Seongbae Park
|
1135 |
|
|
|
1136 |
|
|
* global.c (reg_becomes_live): Mark registers not live
|
1137 |
|
|
after CLOBBER.
|
1138 |
|
|
|
1139 |
|
|
2007-02-22 Paolo Bonzini
|
1140 |
|
|
|
1141 |
|
|
* combine.c (set_nonzero_bits_and_sign_copies, reg_nonzero_bits_for_combine,
|
1142 |
|
|
reg_num_sign_bit_copies_for_combine, get_last_value): Look at DF_LR to
|
1143 |
|
|
check if a register is uninitialized.
|
1144 |
|
|
|
1145 |
|
|
2007-02-21 Paolo Bonzini
|
1146 |
|
|
|
1147 |
|
|
* combine.c (uid_cuid, max_uid_cuid): Remove.
|
1148 |
|
|
(INSN_CUID): Replace throughout with DF_INSN_LUID.
|
1149 |
|
|
(last_call_cuid): Rename to last_call_luid.
|
1150 |
|
|
(subst_low_cuid): Rename to subst_low_luid.
|
1151 |
|
|
(last_insn_cost): Rename to max_uid_known.
|
1152 |
|
|
(uid_log_links): New.
|
1153 |
|
|
(INSN_COST, LOG_LINKS): New.
|
1154 |
|
|
(combine_validate_cost): Use INSN_COST instead of accessing
|
1155 |
|
|
uid_insn_cost.
|
1156 |
|
|
(create_log_links, clear_log_links): Move before combine_instructions.
|
1157 |
|
|
(combine_instructions): Don't compute cuids. Allocate uid_log_links.
|
1158 |
|
|
Call create_log_links and clear_log_links here. Only initialize
|
1159 |
|
|
data structures for insns within a basic block. Use INSN_COST
|
1160 |
|
|
instead of accessing uid_insn_cost. Reset last_call_luid and
|
1161 |
|
|
mem_last_set once for every basic block. Update label_tick on every
|
1162 |
|
|
basic block, reset label_tick_ebb_start on every label.
|
1163 |
|
|
(can_combine_p, try_combine, reg_nonzero_bits_for_combine,
|
1164 |
|
|
reg_num_sign_bit_copies_for_combine, record_value_for_reg,
|
1165 |
|
|
record_dead_and_set_regs_1, record_dead_and_set_regs,
|
1166 |
|
|
get_last_value_validate, get_last_value, use_crosses_set_p,
|
1167 |
|
|
move_deaths, distribute_notes, distribute_links): Rename stuff
|
1168 |
|
|
as indicated above. In tests for LUIDs, check that we refer to
|
1169 |
|
|
the same label_tick too. In tests for label ticks, check that
|
1170 |
|
|
they are > label_tick_ebb_start.
|
1171 |
|
|
(rest_of_handle_combine): Don't create/clear loglinks here.
|
1172 |
|
|
|
1173 |
|
|
* gengtype.c (adjust_field_rtx_def): Adjust index of JUMP_LABEL.
|
1174 |
|
|
* caller-save.c (init_caller_save): Adjust creation of INSNs.
|
1175 |
|
|
* rtl.def (CODE_LABEL): Adjust comment.
|
1176 |
|
|
(INSN, JUMP_INSN, CALL_INSN, BARRIER): Remove penultimate field.
|
1177 |
|
|
* emit-rtl.c (unshare_all_rtl_again, verify_rtl_sharing,
|
1178 |
|
|
unshare_all_rtl_in_chain, make_insn_raw, make_jump_insn_raw,
|
1179 |
|
|
make_call_insn_raw): Remove references to LOG_LINKS.
|
1180 |
|
|
* rtl.h (LOG_LINKS): Remove.
|
1181 |
|
|
(REG_NOTES, CALL_INSN_FUNCTION_USAGE, JUMP_LABEL): Shift index
|
1182 |
|
|
down by one.
|
1183 |
|
|
|
1184 |
|
|
* regs.h (struct reg_info_def): Remove first_uid and last_uid.
|
1185 |
|
|
(REGNO_FIRST_UID, REGNO_LAST_UID): Remove.
|
1186 |
|
|
* cse.c (cse_basic_block_start, cse_basic_block_end, uid_cuid,
|
1187 |
|
|
max_uid, INSN_CUID): Remove.
|
1188 |
|
|
(struct cse_basic_block_data): Remove low_cuid and high_cuid.
|
1189 |
|
|
(reg_used_in_multiple_bb, reg_used_in_bb): New.
|
1190 |
|
|
(make_regs_eqv): Test reg_used_in_multiple_bb instead of cuids.
|
1191 |
|
|
(cse_prescan_path): Remove low_cuid and high_cuid.
|
1192 |
|
|
(mark_reg_use_bb): New.
|
1193 |
|
|
(cse_main): Replace computation of cuids with initialization of
|
1194 |
|
|
reg_used_in_multiple_bb. Remove references to deleted variables.
|
1195 |
|
|
* regmove.c (copy_src_to_dest): Don't update REGNO_FIRST_UID and
|
1196 |
|
|
REGNO_LAST_UID.
|
1197 |
|
|
* regclass.c (reg_scan_mark_refs): Remove penultimate argument.
|
1198 |
|
|
Don't track REGNO_FIRST_UID and REGNO_LAST_UID.
|
1199 |
|
|
(reg_scan, reg_scan_update): Remove penultimate argument to
|
1200 |
|
|
reg_scan_mark_refs.
|
1201 |
|
|
|
1202 |
|
|
2007-02-20 Seongbae Park
|
1203 |
|
|
|
1204 |
|
|
* sched-ebb.c (schedule_ebbs): Clear DF_LR_RUN_DCE flag
|
1205 |
|
|
after df_analyze.
|
1206 |
|
|
|
1207 |
|
|
2007-02-20 Kenneth Zadeck
|
1208 |
|
|
|
1209 |
|
|
* fwprop.c (forward_propagate_into): Removed call to
|
1210 |
|
|
df_recompute_luids.
|
1211 |
|
|
* see.c (see_free_data_structures): Ditto.
|
1212 |
|
|
* loop-iv.c (iv_analysis_loop_init): Ditto.
|
1213 |
|
|
* dce.c (prescan_insns_for_dse): Ditto.
|
1214 |
|
|
* auto-inc-dec.c (merge_in_block): Moved call to
|
1215 |
|
|
df_recompute_luids so that it only happens on subsequent passes of
|
1216 |
|
|
block.
|
1217 |
|
|
* df-scan.c (df_grow_insn_info): Made public.
|
1218 |
|
|
* df.h (df_grow_insn_info): Made public.
|
1219 |
|
|
* df-core.c: Fixed comments.
|
1220 |
|
|
* df-problems.c (df_ur_bb_local_compute): Reversed order of
|
1221 |
|
|
processing insns. Removed usage of seen_in_block and
|
1222 |
|
|
seen_in_insn. Update luid.
|
1223 |
|
|
(df_ur_local_compute, df_ur_verify_transfer_functions): Added call
|
1224 |
|
|
to df_grow_insn_info and deleted calls to df_set_seen, df_unset_seen.
|
1225 |
|
|
|
1226 |
|
|
2007-02-16 Paolo Bonzini
|
1227 |
|
|
|
1228 |
|
|
* combine.c (INSN_CUID): Always look up uid_cuid.
|
1229 |
|
|
(insn_cuid): Delete.
|
1230 |
|
|
* sched-deps.c (sched_analyze): Don't free LOG_LINKS here.
|
1231 |
|
|
* sched-int.h (struct dep_list): Don't mention LOG_LINKS in comment.
|
1232 |
|
|
|
1233 |
|
|
2007-02-15 Paolo Bonzini
|
1234 |
|
|
|
1235 |
|
|
* config/sh/sh.c (sh_reorg): Don't look at LOG_LINKS.
|
1236 |
|
|
|
1237 |
|
|
2007-02-15 Paolo Bonzini
|
1238 |
|
|
|
1239 |
|
|
* combine.c (find_single_use): Don't check for reload flags.
|
1240 |
|
|
|
1241 |
|
|
2007-02-15 Paolo Bonzini
|
1242 |
|
|
|
1243 |
|
|
Merge from mainline.
|
1244 |
|
|
|
1245 |
|
|
2007-02-15 Paolo Bonzini
|
1246 |
|
|
|
1247 |
|
|
* caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
|
1248 |
|
|
|
1249 |
|
|
2007-02-13 Seongbae Park
|
1250 |
|
|
|
1251 |
|
|
Merge from mainline.
|
1252 |
|
|
|
1253 |
|
|
2007-02-13 Seongbae Park
|
1254 |
|
|
|
1255 |
|
|
* bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
|
1256 |
|
|
Ensure dst->current is valid.
|
1257 |
|
|
|
1258 |
|
|
2007-02-13 Kenneth Zadeck
|
1259 |
|
|
|
1260 |
|
|
* lower-subregs.c (resolve_reg_notes): Added code to call
|
1261 |
|
|
df_notes_rescan when REG_EQUAL notes are changed.
|
1262 |
|
|
|
1263 |
|
|
2007-02-12 Kenneth Zadeck
|
1264 |
|
|
|
1265 |
|
|
* global.c (compute_regsets): Removed first two parameters.
|
1266 |
|
|
Converted asm_clobbered to regs_asm_clobbered.
|
1267 |
|
|
(global_alloc): Removed bad merged call to make_accurate_live_analysis.
|
1268 |
|
|
(global_alloc, rest_of_handle_global_alloc): Removed first two
|
1269 |
|
|
parameters from compute_regsets.
|
1270 |
|
|
|
1271 |
|
|
2007-02-06 Kenneth Zadeck
|
1272 |
|
|
|
1273 |
|
|
* ifcvt.c (noce_process_if_block): Removed unnecessary insn deletes.
|
1274 |
|
|
(dead_or_predictable): Removed incorrect bit vector operation.
|
1275 |
|
|
* lower-subregs (simple_move_operand, resolve_clobber): Change from mainline.
|
1276 |
|
|
(resolve_clobber): Added df_insn_rescan of clobber.
|
1277 |
|
|
(decompose_multiword_subregs): Added df setup and removed debugging.
|
1278 |
|
|
(pass_lower_subreg2): Added df cleanup.
|
1279 |
|
|
* Makefile.in (lower-subregs.o): Added df.h dependence.
|
1280 |
|
|
|
1281 |
|
|
2007-02-03 Kaz Kojima
|
1282 |
|
|
|
1283 |
|
|
* config/sh/sh.c (sh_expand_prologue): Remove unneeded brackets.
|
1284 |
|
|
(sh_expand_epilogue): Add blockage insn when not
|
1285 |
|
|
frame_pointer_needed.
|
1286 |
|
|
(sh_output_mi_thunk): Don't use flow analysis here.
|
1287 |
|
|
* config/sh/sh.md (UNSPEC_EH_RETURN): Remove.
|
1288 |
|
|
(UNSPECV_EH_RETURN): New macro.
|
1289 |
|
|
(sibcall_valuei): New.
|
1290 |
|
|
(sibcall_valuei_pcrel, sibcall_value_pcrel): Likewise.
|
1291 |
|
|
(sibcall_value_compact, sibcall_value_media): Likewise.
|
1292 |
|
|
(sibcall_value): Use new sibcall_value* patterns.
|
1293 |
|
|
(eh_set_ra_si): Use unspec_volatile and UNSPECV_EH_RETURN.
|
1294 |
|
|
(eh_set_ra_di, eh_set_ra_di+1): Likewise.
|
1295 |
|
|
|
1296 |
|
|
2007-02-03 Kaz Kojima
|
1297 |
|
|
|
1298 |
|
|
* mode-switching.c (create_pre_exit): Skip CLOBBER of pseudo
|
1299 |
|
|
register for the result when not optimizing.
|
1300 |
|
|
(optimize_mode_switching): Move df_ri_add_problem and df_analyze
|
1301 |
|
|
calls after create_pre_exit call.
|
1302 |
|
|
|
1303 |
|
|
2007-02-03 Kaz Kojima
|
1304 |
|
|
|
1305 |
|
|
* modulo-sched.c (sms_schedule): Call df_ri_add_problem
|
1306 |
|
|
with DF_RI_LIFE.
|
1307 |
|
|
|
1308 |
|
|
2007-02-03 Kaz Kojima
|
1309 |
|
|
|
1310 |
|
|
* df-scan.c (df_get_entry_block_def_set): Use struct_value_rtx
|
1311 |
|
|
hook instead of TARGET_STRUCT_VALUE_RTX.
|
1312 |
|
|
|
1313 |
|
|
2007-02-03 Kaz Kojima
|
1314 |
|
|
|
1315 |
|
|
* passes.c (init_optimization_passes): Move df_finish after
|
1316 |
|
|
delay_slots.
|
1317 |
|
|
|
1318 |
|
|
2007-01-02 Kenneth Zadeck
|
1319 |
|
|
|
1320 |
|
|
* optabs.c (emit_no_conflict_block): Removed redundant code to
|
1321 |
|
|
number libcalls.
|
1322 |
|
|
* tree-pass.h (pass_initialize_subregs): Renamed to
|
1323 |
|
|
pass_initialize_regs.
|
1324 |
|
|
* passes.c (init_optimization_passes): Ditto.
|
1325 |
|
|
* builtins.c (expand_builtin_setjmp_receiver): Changed
|
1326 |
|
|
gen_rtx_ASM_INPUT to gen_blockage.
|
1327 |
|
|
* function.c (expand_function_end): Ditto.
|
1328 |
|
|
* stmt.c (gen_non_local_got_receiver): Ditto.
|
1329 |
|
|
* config/i386.md (blockage): Don't take an operand.
|
1330 |
|
|
(prologue_use): New.
|
1331 |
|
|
* config/i386.c (ix86_expand_prologue): Don't build a blockage
|
1332 |
|
|
insn with an operand. If the PIC reg is used, use a prologue_use
|
1333 |
|
|
insn to protect it from being removed.
|
1334 |
|
|
* df-scan.c (df_get_entry_block_def_set): Generate ref for
|
1335 |
|
|
INCOMING_RETURN_ADDR_RTX after reload_completed.
|
1336 |
|
|
* df-core.c (df_ref_debug): Fixed formatting.
|
1337 |
|
|
* init-regs.c: Renamed from subregs_init.c and changed to
|
1338 |
|
|
initialize all fully uninitialized registers.
|
1339 |
|
|
* bt-load.c (compute_defs_uses_and_gen): Changed check for
|
1340 |
|
|
ASM_INPUT to UNSPEC_VOLATILE.
|
1341 |
|
|
* df-problems.c (df_set_unused_notes_for_mw,
|
1342 |
|
|
df_set_dead_notes_for_mw, df_ri_bb_compute): Cleaned up reg_notes
|
1343 |
|
|
debugging info.
|
1344 |
|
|
(df_set_dead_notes_for_mw): Added do_not_gen to test of all notes
|
1345 |
|
|
dead.
|
1346 |
|
|
* Makefile.in (subregs-init.*): Renamed to init-regs.*.
|
1347 |
|
|
* config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue):
|
1348 |
|
|
Removed code to generate explicit uses of LR_REGNUM from prologue.
|
1349 |
|
|
* config/arm/arm.h (EPILOGUE_USES): Made LR_REGNUM unconditionally
|
1350 |
|
|
added.
|
1351 |
|
|
* dce.c (deletable_insn_p): Made clobbers always live for use-def
|
1352 |
|
|
based dce.
|
1353 |
|
|
(prescan_insns_for_dce, prescan_insns_for_dse): Added fast
|
1354 |
|
|
parameter to deletable_insn_p.
|
1355 |
|
|
(run_fast_df_dce): Temporarily turn off DF_DEFER_INSN_RESCAN
|
1356 |
|
|
during this subphase.
|
1357 |
|
|
|
1358 |
|
|
|
1359 |
|
|
2007-02-01 Seongbae Park
|
1360 |
|
|
|
1361 |
|
|
* df-scan.c (df_sort_and_compress_refs):
|
1362 |
|
|
Style fix.
|
1363 |
|
|
(df_sort_and_compress_mws):
|
1364 |
|
|
Style fix. Fix missing & in parameters for df_mw_compare call.
|
1365 |
|
|
|
1366 |
|
|
2007-02-01 Seongbae Park
|
1367 |
|
|
|
1368 |
|
|
* df-scan.c (df_swap_refs): New function.
|
1369 |
|
|
(df_sort_and_compress_refs, df_sort_and_compress_mws):
|
1370 |
|
|
Avoid qsort call overhead if the array has only 2 elements
|
1371 |
|
|
or if it's already sorted.
|
1372 |
|
|
|
1373 |
|
|
2007-01-17 Eric Christopher
|
1374 |
|
|
|
1375 |
|
|
* config/mips/mips.c (mips_output_function_epilogue): Use SET_REGNO
|
1376 |
|
|
instead of REGNO.
|
1377 |
|
|
(mips_output_mi_thunk): Ditto.
|
1378 |
|
|
|
1379 |
|
|
2007-01-17 Eric Christopher
|
1380 |
|
|
|
1381 |
|
|
* reorg.c (fill_simple_delay_slots): Fix prototype.
|
1382 |
|
|
|
1383 |
|
|
2007-01-15 Andreas Krebbel
|
1384 |
|
|
|
1385 |
|
|
* regmove.c: (fixup_match_1): Call df_notes_rescan after
|
1386 |
|
|
changing insn notes.
|
1387 |
|
|
|
1388 |
|
|
2007-01-15 Andreas Krebbel
|
1389 |
|
|
|
1390 |
|
|
* config/s390/s390.c: Include df.h.
|
1391 |
|
|
(s390_emit_prologue): Call df_insn_rescan when annotating constant
|
1392 |
|
|
pool references.
|
1393 |
|
|
|
1394 |
|
|
2007-01-15 Andreas Krebbel
|
1395 |
|
|
|
1396 |
|
|
* rtl.h (split_all_insns_noflow): Add prototype.
|
1397 |
|
|
* recog.c (split_all_insns_noflow): Remove static.
|
1398 |
|
|
|
1399 |
|
|
2007-01-14 Kenneth Zadeck
|
1400 |
|
|
* fwprop.c (update_df): Only rescan if insn has really changed.
|
1401 |
|
|
(try_fwprop_subst): Removed call to df_set_bb_dirty.
|
1402 |
|
|
(fwprop_init): Added new parameter to df_maybe_reorganize_use_refs.
|
1403 |
|
|
* df-scan.c (df_scan_alloc): Removed calls to df_grow_ref_info.
|
1404 |
|
|
(df_scan_blocks, df_ref_create, df_reg_chain_unlink,
|
1405 |
|
|
df_maybe_reorganize_use_refs, df_maybe_reorganize_def_refs,
|
1406 |
|
|
df_install_ref, df_install_refs, df_refs_add_to_chains): Changed
|
1407 |
|
|
to support new modes adding refs to the df.ref_info.refs.
|
1408 |
|
|
(df_reg_chain_unlink, df_install_ref, df_ref_create_structure,
|
1409 |
|
|
df_hard_reg_used_p): Changed DF_REGS_EVER_LIVE to
|
1410 |
|
|
DF_HARD_REG_LIVE.
|
1411 |
|
|
(df_ref_remove, df_ref_create): Added call to dirty the block when
|
1412 |
|
|
a ref is changed manually.
|
1413 |
|
|
(df_insn_rescan, df_notes_rescan): Added bb param to
|
1414 |
|
|
df_refs_add_to_chains.
|
1415 |
|
|
(df_reorganize_refs): Renamed to df_reorganize_refs_by_reg.
|
1416 |
|
|
(df_count_refs, df_add_refs_to_table,
|
1417 |
|
|
df_reorganize_refs_by_insn_bb, df_reorganize_refs_by_insn,
|
1418 |
|
|
df_hard_reg_used_count): New functions.
|
1419 |
|
|
(df_drop_organized_tables): Removed.
|
1420 |
|
|
* df_core.c (df_set_blocks, df_finish_pass): Changed
|
1421 |
|
|
to support new modes adding refs to the df.ref_info.refs.
|
1422 |
|
|
* df.h (df_ref_flags.DF_REGS_EVER_LIVE): Renamed to
|
1423 |
|
|
DF_HARD_REG_LIVE.
|
1424 |
|
|
(df_ref_order): New Enum.
|
1425 |
|
|
(df_ref_info.{refs_organized_alone, refs_organized_with_eq_uses,
|
1426 |
|
|
add_refs_inline}): Replaced with df_ref_info.ref_order.
|
1427 |
|
|
(DF_REG_EVER_LIVE_P): Removed macro.
|
1428 |
|
|
* df-problems.c (df_ru_local_compute): Added parm to
|
1429 |
|
|
df_maybe_reorganize_use_refs.
|
1430 |
|
|
(df_rd_local_compute): Added parm to
|
1431 |
|
|
df_maybe_reorganize_def_refs.
|
1432 |
|
|
|
1433 |
|
|
2007-01-12 Kenneth Zadeck
|
1434 |
|
|
* df-scan.c (df_collection_rec): New structure.
|
1435 |
|
|
(df_chains): Deleted structure.
|
1436 |
|
|
(DEBUG_DF_RESCAN): Removed conditional compilation of rescanning.
|
1437 |
|
|
(df_scan_start_block): Added ifdefed out code that prints the
|
1438 |
|
|
scanning of insns.
|
1439 |
|
|
|
1440 |
|
|
(df_ref_create, df_get_artificial_defs, df_get_artificial_uses,
|
1441 |
|
|
df_reg_chain_unlink, df_ref_remove, df_ref_chain_delete_du_chain,
|
1442 |
|
|
df_ref_chain_delete, df_mw_hardreg_chain_delete, df_insn_rescan,
|
1443 |
|
|
df_ref_chain_change_bb, df_insn_change_bb,
|
1444 |
|
|
df_ref_change_reg_with_loc_1, df_mw_hardreg_chain_delete_eq_uses,
|
1445 |
|
|
df_notes_rescan, df_refs_add_to_chains, df_ref_create_structure,
|
1446 |
|
|
df_ref_record, df_def_record_1, df_defs_record, df_uses_record,
|
1447 |
|
|
df_get_conditional_uses, df_insn_refs_collect, df_recompute_luids,
|
1448 |
|
|
df_bb_refs_collect, df_entry_block_defs_collect,
|
1449 |
|
|
df_update_entry_block_defs, df_exit_block_uses_collect,
|
1450 |
|
|
df_record_exit_block_uses, df_update_exit_block_uses,
|
1451 |
|
|
df_compute_regs_ever_live, df_reg_chain_mark,
|
1452 |
|
|
df_reg_chain_verify_unmarked, df_insn_refs_verify, df_bb_verify,
|
1453 |
|
|
df_scan_verify): Changed to use vector rep for refs.
|
1454 |
|
|
(df_get_call_refs) Ditto plus fixed bug where clobber ref was
|
1455 |
|
|
generated for same ref as result of call.
|
1456 |
|
|
(df_reg_chain_create, df_ref_unlink, df_ref_chain_find_ref,
|
1457 |
|
|
df_ref_chain_find_ref_by_regno, df_ref_chain_append,
|
1458 |
|
|
df_ref_find_chains, df_ref_add_to_chains, df_insn_refs_record,
|
1459 |
|
|
df_ref_chain_verify_and_unmark, df_ref_chain_free, df_ref_verify,
|
1460 |
|
|
df_mw_hardreg_find_hardreg): Deleted function.
|
1461 |
|
|
(df_ref_compress_rec, df_free_collection_rec, df_ref_compare,
|
1462 |
|
|
df_sort_and_compress_refs, df_mw_compare, df_sort_and_compress_mws
|
1463 |
|
|
df_canonize_collection_rec, df_install_ref, df_install_refs,
|
1464 |
|
|
df_refs_verify, df_mws_verify): New function.
|
1465 |
|
|
(df_ref_is_equal): Renamed to df_ref_equal_p and changed to use
|
1466 |
|
|
vector rep for refs.
|
1467 |
|
|
(df_mw_is_equal): Renamed to df_mw_equal_p and changed to use
|
1468 |
|
|
vector rep for refs.
|
1469 |
|
|
* df.h (df_ref_flags.(DF_REF_MW_HARDREG_GROUP, DF_REF_REF_MARKER):
|
1470 |
|
|
Removed.
|
1471 |
|
|
(df_ref_flags.(DF_REF_REG_MARKER, DF_REGS_EVER_LIVE)): Renumbered.
|
1472 |
|
|
(df_mw_hardreg.(loc, start_regno, end_regno, mw_order)): New
|
1473 |
|
|
fields.
|
1474 |
|
|
(df_insn_info.(defs, uses, eq_uses, mw_hardregs): Made into arrays
|
1475 |
|
|
of pointers.
|
1476 |
|
|
(df_scan_bb_info.(artificial_defs, artificial_uses): Ditto.
|
1477 |
|
|
(df_ref.ref_order): New field.
|
1478 |
|
|
(df_ref.next): Removed.
|
1479 |
|
|
(df.ref_order): New field.
|
1480 |
|
|
(DF_REF_REF_MARK, DF_REF_REF_UNMARK, DF_REF_IS_REF_MARKED,
|
1481 |
|
|
DF_REF_NEXT_REF): Removed macro.
|
1482 |
|
|
(DF_REF_ORDER): New macro.
|
1483 |
|
|
* df-core.c (df_bb_regno_last_use_find, df_bb_regno_last_use_find,
|
1484 |
|
|
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
|
1485 |
|
|
df_insn_regno_def_p, df_find_def, df_find_use, df_refs_chain_dump,
|
1486 |
|
|
df_mws_dump, df_insn_uid_debug, df_insn_debug): Ditto.
|
1487 |
|
|
* fwprop.c (update_df): Do not call df_insn_rescan unless insn has
|
1488 |
|
|
changed.
|
1489 |
|
|
(local_ref_killed_between_p, all_uses_available_at,
|
1490 |
|
|
find_occurrence, update_df): Changed to use
|
1491 |
|
|
vector rep for refs.
|
1492 |
|
|
* see.c (see_handle_relevant_refs, see_update_relevancy,
|
1493 |
|
|
see_propagate_extensions_to_uses): Ditto.
|
1494 |
|
|
* auto-inc-dec.c (find_inc, merge_in_block): Ditto.
|
1495 |
|
|
* web.c (union_defs, web_main): Ditto.
|
1496 |
|
|
* global.c (compute_regs_asm_clobbered): Ditto.
|
1497 |
|
|
* ifcvt.c (dead_or_predicable): Ditto.
|
1498 |
|
|
* loop-invariant.c (find_defs, check_dependency,
|
1499 |
|
|
find_invariant_insn): Ditto.
|
1500 |
|
|
* combine.c (create_log_links): Ditto.
|
1501 |
|
|
* df-problems.c (df_ru_alloc, df_ru_bb_local_compute_process_def,
|
1502 |
|
|
df_ru_bb_local_compute_process_use, df_rd_alloc,
|
1503 |
|
|
df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
|
1504 |
|
|
df_lr_simulate_artificial_refs_at_end, df_lr_simulate_one_insn,
|
1505 |
|
|
df_ur_bb_local_compute, df_urec_bb_local_compute,
|
1506 |
|
|
df_urec_bb_local_compute, df_chain_remove_problem,
|
1507 |
|
|
df_chain_remove_problem, df_chain_reset,
|
1508 |
|
|
df_chain_create_bb_process_use, df_chain_create_bb,
|
1509 |
|
|
df_chain_top_dump, df_chain_top_dump, df_chain_bottom_dump,
|
1510 |
|
|
df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
|
1511 |
|
|
df_ri_bb_compute): Ditto.
|
1512 |
|
|
* dce.c (delete_corresponding_reg_eq_notes, mark_artificial_uses,
|
1513 |
|
|
mark_reg_dependencies, dce_process_block): Ditto.
|
1514 |
|
|
|
1515 |
|
|
|
1516 |
|
|
|
1517 |
|
|
2007-01-10 Seongbae Park
|
1518 |
|
|
* df-core.c (df_worklist_propagate_backward,
|
1519 |
|
|
df_worklist_dataflow)): More comments.
|
1520 |
|
|
(df_iterative_dataflow): Whitespace fixup.
|
1521 |
|
|
* cfganal.c (inverted_post_order_compute):
|
1522 |
|
|
More comments and rename a local variable DEST to PRED.
|
1523 |
|
|
(df_find_deadend): More comments. Use gcc_unreachable().
|
1524 |
|
|
|
1525 |
|
|
2007-01-09 Seongbae Park
|
1526 |
|
|
* df-core.c (rest_of_handle_df_initialize): Allocate and free new
|
1527 |
|
|
fields struct dataflow::{postorder_inverted,n_blocks_inverted}.
|
1528 |
|
|
(df_hybrid_search_forward, df_hybrid_search_backward): Pass visited,
|
1529 |
|
|
pending, considered as parameters instead of fields of struct df.
|
1530 |
|
|
(df_worklist_propagate_forward, df_worklist_propagate_backward,
|
1531 |
|
|
df_worklist_dataflow): New functions.
|
1532 |
|
|
(df_iterative_dataflow): Remove visited, pending, considered
|
1533 |
|
|
fields from struct dataflow.
|
1534 |
|
|
(df_analyze): Allocate and free new fields
|
1535 |
|
|
df::{postorder_inverted,n_blocks_inverted}.
|
1536 |
|
|
(df_get_n_blocks, df_get_postorder): Make them return
|
1537 |
|
|
different values depending on the direction of the dataflow problem.
|
1538 |
|
|
(df_simple_dataflow): Renamed from df_simple_iterative_dataflow.
|
1539 |
|
|
Call df_worklist_dataflow instead of df_iterative_dataflow.
|
1540 |
|
|
* cfganal.c (dfs_find_deadend, inverted_post_order_compute):
|
1541 |
|
|
New functions.
|
1542 |
|
|
* df.h (struct dataflow): Remove fields visited, pending, considered.
|
1543 |
|
|
Add new fields postorder_inverted, n_blocks_inverted.
|
1544 |
|
|
(df_get_nblocks, df_get_postorder): Prototype change.
|
1545 |
|
|
(df_simple_dataflow): Renamed from df_simple_iterative_dataflow.
|
1546 |
|
|
(df_worklist_dataflow): New function prototype.
|
1547 |
|
|
* df-problems.c: Use df_worklist_dataflow instead of
|
1548 |
|
|
df_iterative_dataflow for solver.
|
1549 |
|
|
* basic-block.h (inverted_post_order_compute): New function prototype.
|
1550 |
|
|
* dce.c (dce_process_block): Pass extra parameter to df_get_n_blocks
|
1551 |
|
|
and df_get_postorder.
|
1552 |
|
|
(calculate_reaching_stores): Call df_simple_dataflow,
|
1553 |
|
|
renamed from df_simple_iterative_dataflow.
|
1554 |
|
|
|
1555 |
|
|
|
1556 |
|
|
2007-01-05 Kenneth Zadeck
|
1557 |
|
|
* see.c (see_update_defs_relevancy): Type fixed.
|
1558 |
|
|
* df-scan.c (df_reg_chain_unlink, df_ref_verify): Made tolerant of
|
1559 |
|
|
refs table not being there.
|
1560 |
|
|
(df_drop_organized_tables): New function.
|
1561 |
|
|
* df-core.c (df_finish_pass): Drop refs tables after each pass.
|
1562 |
|
|
* web.c (web_main): Reorganized access to not use ref tables and
|
1563 |
|
|
go in order of insns.
|
1564 |
|
|
* df.h (df_drop_organized_tables): New function.
|
1565 |
|
|
* df-problems.c (df_chain_start_dump): Deleted function.
|
1566 |
|
|
(df_chain_top_dump, df_chain_bottom_dump): New functions.
|
1567 |
|
|
|
1568 |
|
|
2007-01-03 Kenneth Zadeck
|
1569 |
|
|
* see.c (see_initialize_data_structures): Does not use
|
1570 |
|
|
DF_USES_TABLE_SIZE or DF_DEFS_TABLE_SIZE.
|
1571 |
|
|
(see_handle_relevant_defs, see_handle_relevant_uses): Removed
|
1572 |
|
|
outer loop. Now a subrouting of see_handle_relevant_refs.
|
1573 |
|
|
(see_handle_relevant_refs, see_update_relevancy): New functions
|
1574 |
|
|
that now loops over insns.
|
1575 |
|
|
(see_update_uses_relevancy, see_update_defs_relevancy): Removed
|
1576 |
|
|
outer loop. Now a subroutine of see_update_relevancy.
|
1577 |
|
|
(see_analyze_one_def): Removed unnecessary tests.
|
1578 |
|
|
(see_propagate_extensions_to_uses): Now iterates over insns and
|
1579 |
|
|
calls see_handle_relevant_refs and see_update_relevancy.
|
1580 |
|
|
* df-scan.c (df_reg_chain_unlink, df_insn_delete): Added code to
|
1581 |
|
|
skip the chain field of refs if the chain problem is not active.
|
1582 |
|
|
(df_scan_verify): Moved verification of the
|
1583 |
|
|
out_of_date_transfer_functions fields into the problem verifiers.
|
1584 |
|
|
* df-core.c (df_set_blocks): More logging.
|
1585 |
|
|
(df_finish_pass): Moved around when recanning is done.
|
1586 |
|
|
(rest_of_handle_df_initialize): Moved creation of
|
1587 |
|
|
handles out_of_date_transfer_functions to the problems.
|
1588 |
|
|
(df_set_bb_dirty, df_clear_bb_dirty, df_compact_blocks): Now
|
1589 |
|
|
handles out_of_date_transfer_functions in any problem.
|
1590 |
|
|
* df.h: Added comments.
|
1591 |
|
|
* df-problems.c (df_lr_add_problem, df_ur_add_problem,
|
1592 |
|
|
df_chain_add_problem): Allocates out_of_date_transfer_functions.
|
1593 |
|
|
(df_lr_verify_transfer_functions,
|
1594 |
|
|
df_ur_verify_transfer_functions): Now verifies
|
1595 |
|
|
out_of_date_transfer_functions.
|
1596 |
|
|
(df_chain_remove_problem): Tears down problem by looping over
|
1597 |
|
|
insns.
|
1598 |
|
|
(df_chain_fully_remove_problem, df_chain_free): Frees
|
1599 |
|
|
out_of_date_transfer_functions.
|
1600 |
|
|
(df_chain_create_bb): Sets out_of_date_transfer_functions.
|
1601 |
|
|
|
1602 |
|
|
|
1603 |
|
|
2007-01-02 Kenneth Zadeck
|
1604 |
|
|
* df-scan.c (df_reg_chain_create, df_reg_chain_unlink,
|
1605 |
|
|
df_ref_create_structure, df_hard_reg_used_p): Added code to
|
1606 |
|
|
process df->hard_regs_live_count.
|
1607 |
|
|
(df_ref_is_record_live, df_reg_chain_find_ref): Deleted.
|
1608 |
|
|
(df_refs_add_to_chains): Removed ifdefed code.
|
1609 |
|
|
(df_compute_regs_ever_live): Fixed "&" vs "&&" problem.
|
1610 |
|
|
* df-core (rest_of_handle_df_initialize,
|
1611 |
|
|
rest_of_handle_df_finish): Added code to
|
1612 |
|
|
process df->hard_regs_live_count.
|
1613 |
|
|
* global.c (global_alloc): Repositioned use of urec problem.
|
1614 |
|
|
(build_insn_chain): Changed use of DF_RA_LIVE_TOP to df_get_live_top.
|
1615 |
|
|
(rest_of_handle_global_alloc): Removed call to df_analyze for no
|
1616 |
|
|
optimize case.
|
1617 |
|
|
* local-alloc.c (update_equiv_regs): Added calls to
|
1618 |
|
|
df_notes_rescan where eq notes are hacked.
|
1619 |
|
|
(block_alloc): Changed DF_RA_LIVE_TOP to DF_LR_TOP.
|
1620 |
|
|
(rest_of_handle_local_alloc): Removed addition of urec problem.
|
1621 |
|
|
* function.c (regno_clobbered_at_setjmp): Changed df_get_live_out
|
1622 |
|
|
to DF_LIVE_OUT.
|
1623 |
|
|
* (df_ref_flags.DF_REGS_EVER_LIVE): New flag.
|
1624 |
|
|
(df.hard_regs_live_count): New bitmap.
|
1625 |
|
|
(DF_LR_TOP, DF_REG_EVER_LIVE_P): New macro.
|
1626 |
|
|
(df_get_live_out): Removed.
|
1627 |
|
|
(df_get_live_top): Added.
|
1628 |
|
|
* df-problems.c (df_get_live_in): Does not look at DF_LIVE.
|
1629 |
|
|
(df_get_live_out): Deleted.
|
1630 |
|
|
(df_get_live_top): Added.
|
1631 |
|
|
* config/sh/sh.c (calc_live_regs): Changed regs_ever_live to
|
1632 |
|
|
df_regs_ever_live_p.
|
1633 |
|
|
* config/mn10300/mn10300.c (fp_regs_to_save): Ditto.
|
1634 |
|
|
* reload1.c (reload): Corrected the set of bitmaps to modify after
|
1635 |
|
|
reloading.
|
1636 |
|
|
|
1637 |
|
|
|
1638 |
|
|
2007-01-01 Eric Christopher
|
1639 |
|
|
|
1640 |
|
|
* config/darwin.c: Include df.h.
|
1641 |
|
|
(machopic_legitimize_pic_address): Use
|
1642 |
|
|
df_set_regs_ever_live.
|
1643 |
|
|
|
1644 |
|
|
2006-12-28 Kenneth Zadeck
|
1645 |
|
|
* regs.h: (regs_ever_live, regs_asm_clobbered): Removed.
|
1646 |
|
|
* final.c (regs_ever_live, regs_asm_clobbered): Removed.
|
1647 |
|
|
(only_leaf_regs_used, leaf_renumber_regs_insn): Encapsulated
|
1648 |
|
|
references to regs_ever_live.
|
1649 |
|
|
* global.c (insn_contains_asm_1, insn_contains_asm,
|
1650 |
|
|
compute_regs_asm_clobbered): New functions.
|
1651 |
|
|
(global_alloc): Added call to compute_regs_asm_clobbered and
|
1652 |
|
|
encapsulated references to regs_ever_live.
|
1653 |
|
|
(dump_global_regs): Encapsulated references to regs_ever_live.
|
1654 |
|
|
(rest_of_handle_global_alloc): Changed call to df_scan_alloc.
|
1655 |
|
|
* regrename.c (regrename_optimize, regrename_optimize): Encapsulated
|
1656 |
|
|
references to regs_ever_live.
|
1657 |
|
|
* recog.c (peep2_find_free_register): Ditto.
|
1658 |
|
|
* rtl-factoring (recompute_gain_for_pattern_seq,
|
1659 |
|
|
abstract_best_seq): Ditto.
|
1660 |
|
|
* bt-load.c (move_btr_def, migrate_btr_defs): Ditto.
|
1661 |
|
|
* reg_stack.c (reg_to_stack): Ditto.
|
1662 |
|
|
* config/alpha/alpha.c (alpha_ra_ever_killed, alpha_sa_mask,
|
1663 |
|
|
alpha_sa_size): Ditto.
|
1664 |
|
|
* config/frv/frv.c (frv_stack_info, frv_function_prologue): Ditto.
|
1665 |
|
|
* config/s390/390.c (legitimize_pic_address,
|
1666 |
|
|
legitimize_tls_address, find_unused_clobbered_reg,
|
1667 |
|
|
s390_regs_ever_clobbered, s390_register_info,
|
1668 |
|
|
s390_init_frame_layout, s390_update_frame_layout,
|
1669 |
|
|
s390_emit_prologue): Ditto.
|
1670 |
|
|
* config/m32c/m32.c (need_to_save): Ditto.
|
1671 |
|
|
* config/spu/spu.c (spu_split_immediate): Ditto.
|
1672 |
|
|
* config/sparc/sparc.c (sparc_compute_frame_size,
|
1673 |
|
|
sparc_output_scratch_registers, save_or_restore_regs,
|
1674 |
|
|
order_regs_for_local_alloc): Ditto.
|
1675 |
|
|
* config/m32r/m32r.c (MUST_SAVE_FRAME_POINTER,
|
1676 |
|
|
MUST_SAVE_RETURN_ADDR, m32r_hard_regno_rename_ok): Ditto.
|
1677 |
|
|
* config/i386/i386.h (ix86_current_function_calls_tls_descriptor):
|
1678 |
|
|
Ditto.
|
1679 |
|
|
* config/i386/i386.c (ix86_select_alt_pic_regnum, ix86_save_reg,
|
1680 |
|
|
ix86_expand_prologue, legitimize_pic_address,
|
1681 |
|
|
legitimize_tls_address): Ditto.
|
1682 |
|
|
* config/sh/sh.c (calc_live_regs, sh_media_register_for_return,
|
1683 |
|
|
sh_expand_prologue, sh_hard_regno_rename_ok): Ditto.
|
1684 |
|
|
* config/pdp11/pdp11.c (pdp11_output_function_prologue,
|
1685 |
|
|
pdp11_output_function_epilogue): Ditto.
|
1686 |
|
|
* config/pdp11/pdp11.h (may_call_alloca): Ditto.
|
1687 |
|
|
* config/avr/avr.c (avr_regs_to_save, sequent_regs_live,
|
1688 |
|
|
avr_peep2_scratch_safe): Ditto.
|
1689 |
|
|
* config/crx/crx.h (HARD_REGNO_RENAME_OK): Ditto.
|
1690 |
|
|
* config/crx/crx.c (crx_compute_save_regs): Ditto.
|
1691 |
|
|
* config/c4x/c4x.c (c4x_isr_reg_used_p, c4x_expand_prologue,
|
1692 |
|
|
c4x_null_epilogue_p): Ditto.
|
1693 |
|
|
* config/c4x/c4x.h (reg_class): Ditto.
|
1694 |
|
|
* config/stormy16/stormy16.c (REG_NEEDS_SAVE): Ditto.
|
1695 |
|
|
* config/fr30/fr30.c (MUST_SAVE_FRAME_POINTER,
|
1696 |
|
|
MUST_SAVE_RETURN_POINTER): Ditto.
|
1697 |
|
|
* config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset,
|
1698 |
|
|
m68hc11_total_frame_size, expand_prologue): Ditto.
|
1699 |
|
|
* config/cris/cris.c (cris_reg_saved_in_regsave_area,
|
1700 |
|
|
cris_return_addr_rtx): Ditto.
|
1701 |
|
|
* config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Ditto.
|
1702 |
|
|
* config/iq2000/iq2000.c (iq2000_can_use_return_insn): Ditto.
|
1703 |
|
|
* config/mt/mt.c (mt_compute_frame_size): Ditto.
|
1704 |
|
|
* config/mt/mt.h (save_direction): Ditto.
|
1705 |
|
|
* config/mn10300/mn10300.c (REG_SAVE_BYTES, can_use_return_insn,
|
1706 |
|
|
mn10300_get_live_callee_saved_regs, expand_prologue,
|
1707 |
|
|
initial_offset): Ditto.
|
1708 |
|
|
* config/ia64/ia64.c (find_gr_spill, ia64_compute_frame_size):
|
1709 |
|
|
Ditto.
|
1710 |
|
|
* config/m68k/m68k.c (m68k_save_reg, m68k_hard_regno_rename_ok):
|
1711 |
|
|
Ditto.
|
1712 |
|
|
* config/rs6000/rs6000.c (rs6000_got_register, first_reg_to_save,
|
1713 |
|
|
first_fp_reg_to_save, first_altivec_reg_to_save,
|
1714 |
|
|
compute_vrsave_mask, rs6000_stack_info, create_TOC_reference,
|
1715 |
|
|
rs6000_emit_prologue): Ditto.
|
1716 |
|
|
* config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): Ditto.
|
1717 |
|
|
* config/arc/arc.c (MUST_SAVE_REGISTER, MUST_SAVE_RETURN_ADDR):
|
1718 |
|
|
Ditto.
|
1719 |
|
|
* config/mcore/mcore.c (calc_live_regs): Ditto.
|
1720 |
|
|
* config/score/score-mdaux.c (score_save_reg_p): Ditto.
|
1721 |
|
|
* config/arm/arm.c (use_return_insn, thumb_find_work_register,
|
1722 |
|
|
arm_compute_save_reg0_reg12_mask, arm_compute_save_reg_mask,
|
1723 |
|
|
arm_get_vfp_saved_size, arm_output_epilogue, thumb_force_lr_save,
|
1724 |
|
|
arm_get_frame_offsets, arm_expand_prologue, thumb_far_jump_used_p,
|
1725 |
|
|
thumb_unexpanded_epilogue, thumb_expand_epilogue): Ditto.
|
1726 |
|
|
* config/arm/arm.h (HARD_REGNO_RENAME_OK): Ditto.
|
1727 |
|
|
* config/pa/pa.c (compute_frame_size, pa_output_function_prologue,
|
1728 |
|
|
hppa_expand_prologue, hppa_expand_epilogue,
|
1729 |
|
|
hppa_can_use_return_insn_p, output_lbranch): Ditto.
|
1730 |
|
|
* config/pa/pa.h (HARD_REGNO_RENAME_OK): Ditto.
|
1731 |
|
|
* config/mips/mips.c (mips_global_pointer, mips_save_reg_p,
|
1732 |
|
|
mips_can_use_return_insn, build_mips16_call_stub): Ditto.
|
1733 |
|
|
* config/vax/vax.c (vax_output_function_prologue): Ditto.
|
1734 |
|
|
* config/v850/v850.c (substitute_ep_register,
|
1735 |
|
|
compute_register_save_size): Ditto.
|
1736 |
|
|
* config/h8300/h8300.c (byte_reg, h8300_hard_regno_rename_ok):
|
1737 |
|
|
Ditto.
|
1738 |
|
|
* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS,
|
1739 |
|
|
mmix_initial_elimination_offset, mmix_reorg,
|
1740 |
|
|
mmix_use_simple_return, mmix_expand_prologue,
|
1741 |
|
|
mmix_expand_epilogue): Ditto.
|
1742 |
|
|
* config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
|
1743 |
|
|
n_regs_saved_by_prologue, expand_interrupt_handler_prologue,
|
1744 |
|
|
expand_interrupt_handler_epilogue, bfin_hard_regno_rename_ok):
|
1745 |
|
|
Ditto.
|
1746 |
|
|
* reload1.c (reload, mark_home_live, spill_hard_reg,
|
1747 |
|
|
finish_spills): Ditto.
|
1748 |
|
|
* df-scan.c (regs_ever_live): Added as local var.
|
1749 |
|
|
(df_scan_free_internal): Delete bitmap.
|
1750 |
|
|
(df_scan_free_bb_info): Inlined code from removed df_bb_delete.
|
1751 |
|
|
(df_scan_alloc): Removed blocks_to_rescan param and reference to
|
1752 |
|
|
out_of_date_transfer_functions and added insns_to_notes_rescan.
|
1753 |
|
|
(df_scan_free): Removed reference to
|
1754 |
|
|
out_of_date_transfer_functions.
|
1755 |
|
|
(df_scan_start_dump, df_scan_start_block): Added ";;" in front of
|
1756 |
|
|
debugging lines.
|
1757 |
|
|
(problem_SCAN): Added extra null fields.
|
1758 |
|
|
(df_scan_blocks): Added code to set entry and exit blocks as
|
1759 |
|
|
dirty.
|
1760 |
|
|
(df_insn_delete): Added basic block parameter and support for
|
1761 |
|
|
insns_to_notes_rescan.
|
1762 |
|
|
(df_bb_delete): Removed.
|
1763 |
|
|
(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans,
|
1764 |
|
|
df_notes_rescan): Added support for insns_to_notes_rescan.
|
1765 |
|
|
(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
|
1766 |
|
|
Added extra parameter to df_insn_delete.
|
1767 |
|
|
(df_process_deferred_rescans): Added support to fixup entry and
|
1768 |
|
|
exit blocks if regs_ever_live changes.
|
1769 |
|
|
(df_insn_change_bb): Added debugging.
|
1770 |
|
|
(df_ref_change_reg_with_loc_1): Added code to dirty the block.
|
1771 |
|
|
(df_insn_contains_asm_1, df_insn_contains_asm): Function moved to
|
1772 |
|
|
global.c.
|
1773 |
|
|
(df_insn_refs_record): Removed code to set insn_contains_asm.
|
1774 |
|
|
(df_bb_refs_record): Now sets itself dirty.
|
1775 |
|
|
(df_get_entry_block_def_set, df_get_exit_block_use_set):
|
1776 |
|
|
Encapsulated references to regs_ever_live.
|
1777 |
|
|
(df_update_entry_block_defs, df_update_exit_block_uses): Added
|
1778 |
|
|
finer grained control on dirtying the block.
|
1779 |
|
|
(df_regs_ever_live_p, df_set_regs_ever_live): New functions.
|
1780 |
|
|
(df_compute_regs_ever_live): New reset parameter.
|
1781 |
|
|
(df_verify_blocks): Renamed to df_scan_verify and added more
|
1782 |
|
|
checking code.
|
1783 |
|
|
* df-core.c (df_add_problem): Initialized solutions_dirty.
|
1784 |
|
|
(df_finish_pass): Added calls to verify transfer functions.
|
1785 |
|
|
(rest_of_handle_df_initialize): Added more initialization for
|
1786 |
|
|
persistent structures.
|
1787 |
|
|
* (df_hybrid_search_forward, df_hybrid_search_backward,
|
1788 |
|
|
df_iterative_dataflow, df_analyze_problem): Removed single_pass parameter.
|
1789 |
|
|
(df_analyze_problem): Added checking for results of dataflow.
|
1790 |
|
|
(df_analyze): Added more debugging and removed changing
|
1791 |
|
|
out_of_date_transfer functions.
|
1792 |
|
|
(df_get_bb_dirty, df_set_bb_dirty, df_compact_blocks): Supports
|
1793 |
|
|
each problem having it own incremental
|
1794 |
|
|
status bits.
|
1795 |
|
|
(df_clear_bb_dirty, df_verify, df_compute_cfg_image,
|
1796 |
|
|
df_check_cfg_clean, df_set_clean_cfg): New function.
|
1797 |
|
|
(df_compact_blocks, df_bb_replace): More debugging.
|
1798 |
|
|
*df.h (df_alloc_function, df_local_compute_function): Removed
|
1799 |
|
|
blocks_to_scan parameter.
|
1800 |
|
|
(df_dataflow_function): Removed single_pass parameter.
|
1801 |
|
|
(df_verify_solution_start, df_verify_solution_end): New function
|
1802 |
|
|
types.
|
1803 |
|
|
(dataflow.out_of_date_transfer_functions,
|
1804 |
|
|
dataflow.solutions_dirty): Moved from df structure so each problem
|
1805 |
|
|
could have its own copy.
|
1806 |
|
|
(df_insn_info.contains_asm, DF_INSN_CONTAINS_ASM): Functionality
|
1807 |
|
|
moved into global.c.
|
1808 |
|
|
(df.solutions.dirty, out_of_date_transfer_functions): Moved to
|
1809 |
|
|
struct dataflow.
|
1810 |
|
|
(df.redo_entry_and_exit, df.insns_to_notes_rescan): New fields.
|
1811 |
|
|
(DF_DEBUG_CFG): Flag to control code to check if cfg modifications
|
1812 |
|
|
are being reported to df.
|
1813 |
|
|
* df-problems.c (df_print_bb_index, df_lr_top_dump,
|
1814 |
|
|
df_lr_bottom_dump, df_ur_top_dump, df_ur_bottom_dump): Cleanup
|
1815 |
|
|
more dump info.
|
1816 |
|
|
(df_ru_alloc, df_ru_local_compute, df_rd_alloc,
|
1817 |
|
|
df_rd_local_compute, df_lr_alloc, df_lr_local_compute,
|
1818 |
|
|
df_ur_alloc, df_ur_local_compute, df_live_alloc, df_urec_alloc,
|
1819 |
|
|
df_urec_local_compute, df_chain_alloc, df_ri_alloc,
|
1820 |
|
|
df_ri_compute): Removed blocks_to_rescan parameter.
|
1821 |
|
|
(problem_RU, problem_RD, problem_LR, problem_UR, problem_LIVE,
|
1822 |
|
|
problem_UREC, problem_RI): Added two new fields.
|
1823 |
|
|
(df_lr_problem_data, df_ur_problem_data): New data structure to
|
1824 |
|
|
support checking of dataflow solutions.
|
1825 |
|
|
(df_lr_alloc, df_lr_local_compute, df_ur_alloc,
|
1826 |
|
|
df_ur_local_compute, df_ur_free): Now processes only out of date blocks.
|
1827 |
|
|
(df_lr_reset, df_lr_verify_solution_start,
|
1828 |
|
|
df_lr_verify_solution_end, df_lr_verify_transfer_functions,
|
1829 |
|
|
df_ur_reset, df_ur_local_finalize, df_ur_verify_solution_start,
|
1830 |
|
|
df_ur_verify_solution_end, df_ur_verify_transfer_functions): New function.
|
1831 |
|
|
(df_lr_bb_local_compute, df_lr_local_compute): Moved asm scanning to global.c.
|
1832 |
|
|
(df_lr_local_finalize, df_lr_free, df_live_local_finalize): Added
|
1833 |
|
|
code to support incremental checking of dataflow solution.
|
1834 |
|
|
* passes.c (pass_free_cfg): Moved to before machine_reorg.
|
1835 |
|
|
* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
|
1836 |
|
|
cfg_layout_merge_blocks): Changed df_delete_basic_blocks to
|
1837 |
|
|
df_bb_delete.
|
1838 |
|
|
(update_bb_for_insn): Changed df_insn_rescan to df_insn_change_bb.
|
1839 |
|
|
(force_nonfallthru_and_redirect): Added call to
|
1840 |
|
|
df_mark_solutions_dirty.
|
1841 |
|
|
* dce.c (dce_process_block): Added more checking code and made the
|
1842 |
|
|
code closer to the functionality in df_lr.
|
1843 |
|
|
(fast_dce): Now skips entry and exit blocks. Deleted last parm to
|
1844 |
|
|
df_analyze_problem and removed changed bitmap.
|
1845 |
|
|
* fwprop.c (update_df, try_fwprop_subst): Added calls to df_set_bb_dirty.
|
1846 |
|
|
* cfg.c (connect_src, connect_dest, disconnect_src,
|
1847 |
|
|
disconnect_dest): Added calls to df_mark_solutions_dirty.
|
1848 |
|
|
* haifa-sched.c (move_succs): Ditto.
|
1849 |
|
|
* ifcvt.c (find_cond_trap): Moved calls to df_set_bb_dirty to
|
1850 |
|
|
before deletion of basic block.
|
1851 |
|
|
* emit-rtl.c (set_insn_deleted, remove_insn): Added basic block
|
1852 |
|
|
parm.
|
1853 |
|
|
* regclass.c (regclass_init): Added reset parm to df_compute_res_ever_live.
|
1854 |
|
|
|
1855 |
|
|
|
1856 |
|
|
2006-12-28 Kenneth Zadeck
|
1857 |
|
|
* local_alloc.c (rest_of_handle_local_alloc): changed
|
1858 |
|
|
extra_warnings to warn_clobbered.
|
1859 |
|
|
|
1860 |
|
|
2006-12-25 Kenneth Zadeck
|
1861 |
|
|
* dce.c (delete_corresponding_reg_eq_notes): Added comment.
|
1862 |
|
|
(delete_unmarked_insns): Added code to delete noop moves
|
1863 |
|
|
inside of libcalls. Changed to used delete_insn_and_edges.
|
1864 |
|
|
|
1865 |
|
|
2006-12-22 Andrew Pinski
|
1866 |
|
|
|
1867 |
|
|
* config/spu/spu.c (immediate_load_p): Change usage of
|
1868 |
|
|
flow2_completed over to epilogue_completed.
|
1869 |
|
|
|
1870 |
|
|
2006-12-22 Kenneth Zadeck
|
1871 |
|
|
|
1872 |
|
|
* df-problems.c (df_ru_start_dump, df_ru_top_dump,
|
1873 |
|
|
df_ru_bottom_dump, df_rd_start_dump, df_rd_top_dump,
|
1874 |
|
|
df_rd_bottom_dump, df_lr_top_dump, df_lr_bottom_dump,
|
1875 |
|
|
df_ur_top_dump, df_ur_bottom_dump, df_live_top_dump,
|
1876 |
|
|
df_urec_top_dump, df_urec_bottom_dump, df_chain_start_dump,
|
1877 |
|
|
df_ri_start_dump): Added ";; " to the beginning of dataflow
|
1878 |
|
|
information put in dump files.
|
1879 |
|
|
* dce.c (marked_libcalls, delete_unmarked_insns): Removed.
|
1880 |
|
|
(prescan_insns_for_dce, mark_libcall, dce_process_block,
|
1881 |
|
|
prescan_insns_for_dse): Replaced libcall marking mechanism.
|
1882 |
|
|
(init_dce, end_dce, end_fast_dce, run_fast_df_dce): Removed
|
1883 |
|
|
marked_libcalls.
|
1884 |
|
|
|
1885 |
|
|
2006-12-16 Kenneth Zadeck
|
1886 |
|
|
|
1887 |
|
|
* regrename.c (mrege_overlapping_regs): Removed df parameter
|
1888 |
|
|
and changed calls to df_ routines to support new incremental
|
1889 |
|
|
scanning.
|
1890 |
|
|
* sched_ebb (schedule_ebbs): Removed return value and changed
|
1891 |
|
|
calls to df_ routines to support new incremental scanning.
|
1892 |
|
|
* fwprop.c (local_ref_killed_between_p, use_killed_between,
|
1893 |
|
|
all_uses_available_at, update_df, try_fwprop_subst, fwprop,
|
1894 |
|
|
fwprop_addr): Removed df parameter and changed calls to df_
|
1895 |
|
|
routines to support new incremental scanning.
|
1896 |
|
|
(gate_fwprop, gate_fwprop_addr): Reenabled pass.
|
1897 |
|
|
* doc/cfg.texi: Updated liveness info documentation.
|
1898 |
|
|
* doc/rtl.texi: Updated liveness info documentation.
|
1899 |
|
|
* see.c (see_initialize_data_structures, see_emit_use_extension,
|
1900 |
|
|
see_commit_changes, see_analyze_merged_def_local_prop,
|
1901 |
|
|
see_analyze_use_local_prop, see_set_prop_merged_def,
|
1902 |
|
|
see_set_prop_unmerged_use, see_store_reference_and_extension,
|
1903 |
|
|
see_handle_relevant_defs, see_handle_relevant_uses,
|
1904 |
|
|
see_update_uses_relevancy, see_propagate_extensions_to_uses,
|
1905 |
|
|
pass_see): Removed df parameter and changed calls to df_ routines
|
1906 |
|
|
to support new incremental scanning.
|
1907 |
|
|
* postreload.c (reload_cse_simplify_operands): Changed REGNO to
|
1908 |
|
|
SET_REGNO.
|
1909 |
|
|
(reload_combine): Removed df parameter and changed calls to df_
|
1910 |
|
|
routines to support new incremental scanning.
|
1911 |
|
|
* tree.h (generate_setjmp_warnings): Removed df parameter.
|
1912 |
|
|
* reload.c (push_reload, find_dummy_reload): Removed df parameter
|
1913 |
|
|
and changed calls to df_ routines to support new incremental
|
1914 |
|
|
scanning.
|
1915 |
|
|
* tree-pass.h (pass_df_initialize, pass_df_finish): New passes.
|
1916 |
|
|
* rtlanal.c (remove_note): Call df_notes_rescan if the
|
1917 |
|
|
REG_EQUAL/EQUIV notes change.
|
1918 |
|
|
* ddg.c (add_deps_for_def, add_deps_for_use,
|
1919 |
|
|
add_inter_loop_mem_dep): Removed df parameter and changed calls to
|
1920 |
|
|
df_ routines to support new incremental scanning.
|
1921 |
|
|
* ddg.h (struct df) Removed.
|
1922 |
|
|
* final.c (cleanup_subreg_operands): Added call df_insn_rescan if
|
1923 |
|
|
insn changes.
|
1924 |
|
|
(walk_alter_subreg): Added changed parameter to track changes.
|
1925 |
|
|
(output_address): Added changed parameter to walk_alter_subreg.
|
1926 |
|
|
* cfg.c (compact_blocks, dump_bb_info): Removed df parameter to df_
|
1927 |
|
|
calls.
|
1928 |
|
|
* auto_inc_dec.c (attempt_changed): Moved call to
|
1929 |
|
|
df_recompute_luids so that it is only called when moves are added.
|
1930 |
|
|
(find_inc, merge_in_block, rest_of_handle_auto_inc_dec): Removed
|
1931 |
|
|
df parameter and changed calls to df_ routines to support new
|
1932 |
|
|
incremental scanning.
|
1933 |
|
|
(merge_in_block): Added call to df_recompute_luids.
|
1934 |
|
|
* reorg.c (delete_from_delay_slot, relax_delay_slots): Added basic
|
1935 |
|
|
block parm to add_insn_after.
|
1936 |
|
|
(fill_simple_delay_slots, fill_slots_from_thread,
|
1937 |
|
|
fill_eager_delay_slots, make_return_insns, dbr_schedule): Removed
|
1938 |
|
|
df parameter and changed calls to df_ routines to support new
|
1939 |
|
|
incremental scanning.
|
1940 |
|
|
* df-scan.c (struct df_reg_chains): Removed.
|
1941 |
|
|
(df_scan_free_internal, df_scan_free_internal,
|
1942 |
|
|
df_scan_free_bb_info, df_scan_alloc, df_scan_free,
|
1943 |
|
|
df_scan_start_dump, df_scan_add_problem, df_grow_reg_info,
|
1944 |
|
|
df_check_and_grow_ref_info, df_grow_insn_info, df_scan_blocks,
|
1945 |
|
|
df_ref_create, df_scan_alloc, df_scan_start_block,
|
1946 |
|
|
df_scan_add_problem, df_grow_reg_info, df_check_and_grow_ref_info,
|
1947 |
|
|
df_grow_insn_info, df_scan_blocks, df_ref_create,
|
1948 |
|
|
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
|
1949 |
|
|
df_ref_remove, df_insn_create_insn_record,
|
1950 |
|
|
df_ref_chain_delete_du_chain, df_ref_chain_delete, df_insn_delete,
|
1951 |
|
|
df_bb_delete, df_insn_rescan, df_reorganize_refs,
|
1952 |
|
|
df_insn_change_bb, df_maybe_reorganize_use_refs,
|
1953 |
|
|
df_maybe_reorganize_def_refs, df_reg_chain_find_ref,
|
1954 |
|
|
df_ref_find_chains, df_ref_add_to_chains, df_refs_add_to_chains,
|
1955 |
|
|
df_ref_create_structure, df_ref_record, df_def_record_1,
|
1956 |
|
|
df_defs_record, df_uses_record, df_get_conditional_uses,
|
1957 |
|
|
df_get_call_refs, df_get_call_refs, df_insn_refs_collect,
|
1958 |
|
|
df_insn_refs_record, df_recompute_luids, df_bb_refs_collect,
|
1959 |
|
|
df_bb_refs_record, df_bb_refs_record, df_mark_reg,
|
1960 |
|
|
df_get_entry_block_def_set, df_entry_block_defs_collect,
|
1961 |
|
|
df_record_entry_block_defs, df_update_entry_block_defs,
|
1962 |
|
|
df_exit_block_uses_collect, df_record_exit_block_uses,
|
1963 |
|
|
df_update_exit_block_uses, df_compute_regs_ever_live,
|
1964 |
|
|
df_reg_chain_unmark, df_ref_chain_free, df_ref_verify,
|
1965 |
|
|
df_ref_verify, df_insn_refs_verify, df_bb_verify,
|
1966 |
|
|
df_exit_block_bitmap_verify, df_entry_block_bitmap_verify,
|
1967 |
|
|
df_verify_blocks): Removed df and dflow parameters and changed
|
1968 |
|
|
calls to df_ routines to support new incremental scanning.
|
1969 |
|
|
(df_ref_chain_unmark): Renamed to df_ref_chain_verify_and_unmark.
|
1970 |
|
|
(df_scan_get_bb_info, df_scan_set_bb_info): Made tolerant of
|
1971 |
|
|
missing basic block info.
|
1972 |
|
|
(df_insn_rescan_all, df_process_deferred_rescans,
|
1973 |
|
|
df_ref_chain_find_ref_by_regno, df_ref_change_reg_with_loc_1,
|
1974 |
|
|
df_ref_change_reg_with_loc,
|
1975 |
|
|
df_mw_hardreg_chain_delete_eq_uses, df_notes_rescan,
|
1976 |
|
|
df_update_entry_exit_and_calls, df_hard_reg_used_p,
|
1977 |
|
|
df_mw_hardreg_find_hardreg): New function.
|
1978 |
|
|
(df_ref_is_pointer_equal, df_bb_refs_verify): Deleted function.
|
1979 |
|
|
* haifa_sched.c (move_insn): Removed df parameter and changed calls to
|
1980 |
|
|
df_ routines to support new incremental scanning.
|
1981 |
|
|
* df-core.c (df_init): Deleted function.
|
1982 |
|
|
(df): New static instance of dataflow.
|
1983 |
|
|
(df_add_problem, df_remove_problem, df_set_flags, df_clear_flags,
|
1984 |
|
|
df_set_blocks, df_delete_basic_block, df_hybrid_search_forward,
|
1985 |
|
|
df_hybrid_search_backward, df_iterative_dataflow,
|
1986 |
|
|
df_analyze_problem, df_analyze, df_get_n_blocks, df_get_postorder,
|
1987 |
|
|
df_mark_solutions_dirty, df_get_bb_dirty, df_set_bb_dirty,
|
1988 |
|
|
df_compact_blocks, df_bb_replace, df_bb_regno_last_use_find,
|
1989 |
|
|
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
|
1990 |
|
|
df_insn_regno_def_p, df_find_def, df_reg_defined, df_find_use,
|
1991 |
|
|
df_reg_used, df_dump, df_dump_start, df_dump_top, df_dump_bottom,
|
1992 |
|
|
df_regs_chain_dump, df_insn_uid_debug, df_insn_debug,
|
1993 |
|
|
df_insn_debug_regno, df_regno_debug, debug_df_insn, debug_df_reg,
|
1994 |
|
|
debug_df_defno, debug_df_useno): Removed df parameter and
|
1995 |
|
|
changed calls to df_ routines to support new incremental scanning.
|
1996 |
|
|
(df_finish1): Deleted function.
|
1997 |
|
|
(df_remove_problem, df_finish_pass, rest_of_handle_df_initialize,
|
1998 |
|
|
rest_of_handle_df_finish): New function.
|
1999 |
|
|
(pass_df_finish, pass_df_initialize): New passes.
|
2000 |
|
|
* mode-switching.c (optimize_mode_switching): Removed df parameter and
|
2001 |
|
|
changed calls to df_ routines to support new incremental scanning.
|
2002 |
|
|
* modulo-sched.c (sms_schedule): Removed df parameter and
|
2003 |
|
|
changed calls to df_ routines to support new incremental scanning.
|
2004 |
|
|
(add_insn_before): Added extra parameter to add_insn_before.
|
2005 |
|
|
* caller-save.c (init_caller_save): Changed REGNO to SET_REGNO.
|
2006 |
|
|
* cse.c (cse_main): Disabled incremental df update during this
|
2007 |
|
|
pass.
|
2008 |
|
|
* web.c (union_defs, replace_ref, web_main, pass_web): Removed df
|
2009 |
|
|
parameter and changed calls to df_ routines to support new
|
2010 |
|
|
incremental scanning.
|
2011 |
|
|
* loop-init.c (rtl_unroll_and_peel_loops,
|
2012 |
|
|
pass_rtl_move_loop_invariants): Removed df parameter and changed
|
2013 |
|
|
calls to df_ routines to support new incremental scanning.
|
2014 |
|
|
* global.c (global_alloc, global_conflicts, retry_global_alloc,
|
2015 |
|
|
mark_elimination, build_insn_chain, rest_of_handle_global_alloc):
|
2016 |
|
|
Removed df parameter and changed calls to df_ routines to support
|
2017 |
|
|
new incremental scanning.
|
2018 |
|
|
* ifcvt.c (, find_if_header, find_if_case_1, find_if_case_2,
|
2019 |
|
|
dead_or_predicable, if_convert, pass_rtl_ifcvt,
|
2020 |
|
|
pass_if_after_combine, pass_if_after_reload): Removed df parameter
|
2021 |
|
|
and changed calls to df_ routines to support new incremental
|
2022 |
|
|
scanning.
|
2023 |
|
|
* expr.c (init_expr_once): Changed REGNO to SET_REGNO.
|
2024 |
|
|
* recog.c (peephole2_optimize, pass_split_all_insn): Removed df
|
2025 |
|
|
parameter and changed calls to df_ routines to support new
|
2026 |
|
|
incremental scanning.
|
2027 |
|
|
* regmove.c (mark_flags_life_zones, optimize_reg_copy_2,
|
2028 |
|
|
regmove_optimize, rest_of_handle_stack_adjustments): Removed df
|
2029 |
|
|
parameter and changed calls to df_ routines to support new
|
2030 |
|
|
incremental scanning.
|
2031 |
|
|
* local-alloc.c (block_alloc, rest_of_handle_local_alloc): Removed df
|
2032 |
|
|
parameter and changed calls to df_ routines to support new
|
2033 |
|
|
incremental scanning.
|
2034 |
|
|
* function.c (regno_clobbered_at_setjmp, setjmp_vars_warning,
|
2035 |
|
|
setjmp_args_warning, generate_setjmp_warnings,
|
2036 |
|
|
keep_stack_depressed, thread_prologue_and_epilogue_insns,
|
2037 |
|
|
epilogue_done, rest_of_handle_thread_prologue_and_epilogue): Removed df
|
2038 |
|
|
parameter and changed calls to df_ routines to support new
|
2039 |
|
|
incremental scanning.
|
2040 |
|
|
* function.h (df): Deleted variable.
|
2041 |
|
|
* df.h (DF_RU, DF_RD, DF_LR, DF_UR, DF_LIVE): Renumbered to put
|
2042 |
|
|
permanent problems before optional problems.
|
2043 |
|
|
(DF_FIRST_OPTIONAL_PROBLEM): New symbol.
|
2044 |
|
|
(df_ref_flags.DF_REF_REF_MARKER, df_ref_flags.DF_REF_REG_MARKER): New flag.
|
2045 |
|
|
(df_ref_flags.DF_REF_ARTIFICIAL, df_ref_flags.DF_REF_MARKER):
|
2046 |
|
|
Deleted flag.
|
2047 |
|
|
(df_alloc_function, df_reset_function, df_free_bb_function,
|
2048 |
|
|
df_local_compute_function, df_init_function, df_dataflow_function,
|
2049 |
|
|
df_confluence_function_0, df_confluence_function_n,
|
2050 |
|
|
df_transfer_function, df_finalizer_function, df_free_function,
|
2051 |
|
|
df_remove_problem_function, df_dump_problem_function,
|
2052 |
|
|
df_dump_bb_problem_function, DF_SCAN_BB_INFO, DF_RU_BB_INFO,
|
2053 |
|
|
DF_RD_BB_INFO, DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_BB_INFO,
|
2054 |
|
|
DF_LIVE_IN, DF_LIVE_OUT, DF_RA_LIVE_IN, DF_RA_LIVE_OUT,
|
2055 |
|
|
DF_RA_LIVE_TOP, DF_LR_IN, DF_LR_OUT, DF_UR_IN, DF_UR_OUT,
|
2056 |
|
|
DF_DEFS_GET, DF_DEFS_SET, DF_DEFS_COUNT, DF_DEFS_BEGIN,
|
2057 |
|
|
DF_USES_GET, DF_USES_SET, DF_USES_COUNT, DF_USES_BEGIN,
|
2058 |
|
|
DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_CHAIN, DF_REG_DEF_COUNT,
|
2059 |
|
|
DF_REG_USE_GET, DF_REG_USE_CHAIN, DF_REG_USE_COUNT,
|
2060 |
|
|
DF_REG_EQ_USE_GET, DF_REG_EQ_USE_CHAIN, DF_REG_EQ_USE_COUNT,
|
2061 |
|
|
DF_REGNO_FIRST_DEF, DF_REGNO_LAST_USE, DF_REGNO_FIRST_DEF,
|
2062 |
|
|
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
|
2063 |
|
|
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
|
2064 |
|
|
DF_INSN_EQ_USES, DF_INSN_UID_GET, DF_INSN_UID_SAFE_GET,
|
2065 |
|
|
DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
|
2066 |
|
|
DF_INSN_UID_EQ_USES, DF_INSN_UID_MWS): Removed df or dflow
|
2067 |
|
|
parameter and changed calls to df_ routines to support new
|
2068 |
|
|
incremental scanning.
|
2069 |
|
|
(DF_DEFS_SIZE, DF_USES_SIZE): Renamed to DF_DEFS_TABLE_SIZE and
|
2070 |
|
|
DF_USES_TABLE_SIZE.
|
2071 |
|
|
(DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE, df_scan, df_ru, df_rd,
|
2072 |
|
|
df_lr, df_ur, df_live, df_urec, df_chain, df_ri,
|
2073 |
|
|
DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE): New macros.
|
2074 |
|
|
(dataflow.df): Removed field.
|
2075 |
|
|
(df_ref_info.bitmap_size): Split into df_ref_info.table_size and
|
2076 |
|
|
df_ref_info.total_size.
|
2077 |
|
|
(dataflow.local_flags, df_insn_info.insn,
|
2078 |
|
|
df_changeable_flags.DF_DEFER_INSN_RESCAN, df_ref_info.count,
|
2079 |
|
|
df.insns_to_rescan, df.insns_to_delete): New field.
|
2080 |
|
|
(df_permanent_flags): Split into df_chain_flags and df_ri_flags.
|
2081 |
|
|
* gcse (try_replace_reg, adjust_libcall_notes,
|
2082 |
|
|
update_ld_motion_stores): Removed df
|
2083 |
|
|
parameter and changed calls to df_ routines to support new
|
2084 |
|
|
incremental scanning.
|
2085 |
|
|
(insert_insn_end_basic_block, insert_insn_start_basic_block):
|
2086 |
|
|
Added bb parameter to emit_insn_before_noloc.
|
2087 |
|
|
* rtl-factoring.c (match_seqs, collect_pattern_seqs,
|
2088 |
|
|
collect_pattern_seqs, clear_regs_live_in_seq,
|
2089 |
|
|
recompute_gain_for_pattern_seq,, recompute_gain,
|
2090 |
|
|
split_blocks_after_seqs, split_pattern_seq, erase_matching_seqs,
|
2091 |
|
|
abstract_best_seq, rtl_seqabstr): Removed df parameter and changed
|
2092 |
|
|
calls to df_ routines to support new incremental scanning.
|
2093 |
|
|
* expmed.c (init_expmed): Changed REGNO to SET_REGNO.
|
2094 |
|
|
* bt-load.c (, compute_defs_uses_and_gen, build_btr_def_use_webs,
|
2095 |
|
|
migrate_btr_defs, branch_target_load_optimize,
|
2096 |
|
|
pass_branch_target_load_optimize1,
|
2097 |
|
|
pass_branch_target_load_optimize1): Removed df parameter and changed
|
2098 |
|
|
calls to df_ routines to support new incremental scanning.
|
2099 |
|
|
* emit-rtl.c (add_insn_after, add_insn_before,
|
2100 |
|
|
emit_insn_before_noloc, emit_insn_after_1,
|
2101 |
|
|
emit_insn_after_noloc): Added basic block parameter and threaded
|
2102 |
|
|
it to subcalls.
|
2103 |
|
|
(emit_jump_insn_before_noloc,
|
2104 |
|
|
emit_call_insn_before_noloc, emit_barrier_before,
|
2105 |
|
|
emit_label_before, emit_note_before, emit_call_insn_after_noloc,
|
2106 |
|
|
emit_jump_insn_after_noloc, emit_label_after, emit_note_after,
|
2107 |
|
|
emit_insn_after_setloc, emit_insn_before_setloc): Add NULL basic
|
2108 |
|
|
block parameter to certain subcalls.
|
2109 |
|
|
(set_unique_reg_note): Now calls df_notes_rescan if REG_EQUAL or
|
2110 |
|
|
REG_EQUIV notes change.
|
2111 |
|
|
* loop-invariant.c (check_invariant_table_size,
|
2112 |
|
|
hash_invariant_expr_1, invariant_expr_equal_p, find_defs,
|
2113 |
|
|
check_dependencies, record_uses, find_invariants_to_move,
|
2114 |
|
|
move_invariant_reg, fail, free_inv_motion_data,
|
2115 |
|
|
move_loop_invariants): Removed df parameter and changed
|
2116 |
|
|
calls to df_ routines to support new incremental scanning.
|
2117 |
|
|
* subregs_init (initialize_uninitialized_subregs): Removed df
|
2118 |
|
|
parameter and changed calls to df_ routines to support new
|
2119 |
|
|
incremental scanning.
|
2120 |
|
|
* loop-iv.c (iv_current_loop_df): Deleted function.
|
2121 |
|
|
(check_iv_ref_table_size, clear_iv_info, iv_analysis_loop_init,
|
2122 |
|
|
latch_dominating_def, iv_get_reaching_def, iv_get_reaching_def,
|
2123 |
|
|
iv_analyze, iv_analyze_result, biv_p, iv_analysis_done): Removed df
|
2124 |
|
|
parameter and changed calls to df_ routines to support new
|
2125 |
|
|
incremental scanning.
|
2126 |
|
|
* regclass.c (regclass_init): Insert call to recalculate the
|
2127 |
|
|
effects of changing regs_ever_live.
|
2128 |
|
|
(init_reg_autoinc): Changed REGNO to SET_REGNO.
|
2129 |
|
|
* rtl.h (REGNO): Changed so that it cannot appear on lhs.
|
2130 |
|
|
(SET_REGNO): New macro.
|
2131 |
|
|
(rhs_regno): New function.
|
2132 |
|
|
(basic_block): New forward declaration.
|
2133 |
|
|
* integrate.c (allocate_initial_values): Changed REGNO to
|
2134 |
|
|
SET_REGNO and removed df parameter and changed calls to df_
|
2135 |
|
|
routines to support new incremental scanning.
|
2136 |
|
|
* combine.c (set_nonzero_bits_and_sign_copies, subst,
|
2137 |
|
|
reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
|
2138 |
|
|
get_last_value_validate, get_last_value, reg_dead_at_p,
|
2139 |
|
|
create_log_links, create_log_links, rest_of_handle_combine,
|
2140 |
|
|
pass_combine): Removed df parameter and changed calls to df_
|
2141 |
|
|
routines to support new incremental scanning.
|
2142 |
|
|
* stack-ptr-mod.c (notice_stack_pointer_modification): Removed df
|
2143 |
|
|
parameter and changed calls to df_ routines to support new
|
2144 |
|
|
incremental scanning.
|
2145 |
|
|
* resource.c (mark_target_live_regs): Removed df
|
2146 |
|
|
parameter and changed calls to df_ routines to support new
|
2147 |
|
|
incremental scanning.
|
2148 |
|
|
* resource.h (mark_target_live_regs): Removed df
|
2149 |
|
|
parameter and changed calls to df_ routines to support new
|
2150 |
|
|
incremental scanning.
|
2151 |
|
|
* cfgloop.h (iv_current_loop_df): Removed.
|
2152 |
|
|
* df-problems.c (df_get_live_in, df_get_live_out,
|
2153 |
|
|
df_ru_get_bb_info, df_ru_set_bb_info, df_ru_free_bb_info,
|
2154 |
|
|
df_ru_alloc, df_ru_bb_local_compute_process_def,
|
2155 |
|
|
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
|
2156 |
|
|
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
|
2157 |
|
|
df_ru_transfer_function, df_ru_free, df_ru_start_dump,
|
2158 |
|
|
df_ru_top_dump, df_ru_bottom_dump, df_ru_add_problem,
|
2159 |
|
|
df_rd_get_bb_info, df_rd_set_bb_info, df_rd_free_bb_info,
|
2160 |
|
|
df_rd_alloc, df_rd_bb_local_compute_process_def,
|
2161 |
|
|
df_rd_bb_local_compute, df_rd_local_compute, df_rd_init_solution,
|
2162 |
|
|
df_rd_confluence_n, df_rd_transfer_function, df_rd_free,
|
2163 |
|
|
df_rd_start_dump, df_rd_top_dump, df_rd_bottom_dump,
|
2164 |
|
|
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
|
2165 |
|
|
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
|
2166 |
|
|
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
|
2167 |
|
|
df_lr_confluence_n, df_lr_transfer_function, df_lr_local_finalize,
|
2168 |
|
|
df_lr_free, df_lr_simulate_artificial_refs_at_end,
|
2169 |
|
|
df_lr_simulate_one_insn, df_lr_top_dump, df_lr_bottom_dump,
|
2170 |
|
|
df_lr_add_problem, df_ur_get_bb_info, df_ur_set_bb_info,
|
2171 |
|
|
df_ur_free_bb_info, df_ur_alloc, df_ur_bb_local_compute,
|
2172 |
|
|
df_ur_local_compute, df_ur_init, df_ur_confluence_n,
|
2173 |
|
|
df_ur_transfer_function, df_ur_free, df_ur_top_dump,
|
2174 |
|
|
df_ur_bottom_dump, df_ur_add_problem, df_live_get_bb_info,
|
2175 |
|
|
df_live_set_bb_info, df_live_free_bb_info, df_live_alloc,
|
2176 |
|
|
df_live_local_finalize, df_live_free, df_live_top_dump,
|
2177 |
|
|
df_live_add_problem, df_urec_get_bb_info, df_urec_set_bb_info,
|
2178 |
|
|
df_urec_free_bb_info, df_urec_alloc, df_urec_bb_local_compute,
|
2179 |
|
|
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
|
2180 |
|
|
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
|
2181 |
|
|
df_urec_top_dump, df_urec_bottom_dump, df_urec_add_problem,
|
2182 |
|
|
df_chain_create, df_chain_unlink, df_chain_copy,
|
2183 |
|
|
df_chain_remove_problem, df_chain_alloc, df_chain_reset,
|
2184 |
|
|
df_chain_create_bb_process_use, df_chain_create_bb,
|
2185 |
|
|
df_chain_finalize, df_chain_free, df_chain_start_dump,
|
2186 |
|
|
df_chain_add_problem, df_ri_alloc, df_kill_notes,
|
2187 |
|
|
df_set_dead_notes_for_mw, df_set_unused_notes_for_mw,
|
2188 |
|
|
df_create_unused_note, df_ri_bb_compute, df_ri_compute,
|
2189 |
|
|
df_ri_free, df_ri_start_dump, df_ri_add_problem,
|
2190 |
|
|
df_ri_get_setjmp_crosses): Removed df and dflow parameters and
|
2191 |
|
|
changed calls to df_ routines to support new incremental scanning.
|
2192 |
|
|
(df_chain_unlink_1, df_chain_fully_remove_problem): New function.
|
2193 |
|
|
* reg-stack.c (reg_to_stack): Removed df parameter and changed
|
2194 |
|
|
calls to df_ routines to support new incremental scanning.
|
2195 |
|
|
* Makefile.in (rtlanal.o, expr.o, expmed.o, cse.o, gcse.o,
|
2196 |
|
|
regclass.o, caller-save.o, stack-ptr-mod.o, final.o): Added df.h.
|
2197 |
|
|
(reorg.o): Deleted df.h.
|
2198 |
|
|
* sched-rgn.c (check_live_1, update_live_1, schedule_insns):
|
2199 |
|
|
Removed df parameter and changed calls to df_ routines to support
|
2200 |
|
|
new incremental scanning.
|
2201 |
|
|
* basic-block.h (forward for basic_block): Moved to rtl.h.
|
2202 |
|
|
* passes.c (pass_df_initialize, pass_df_finish): New passes.
|
2203 |
|
|
(execute_todo): Changed TODO_df_finish.
|
2204 |
|
|
* struct-equiv.c (insns_match_p, struct_equiv_init): Removed df
|
2205 |
|
|
parameter and changed calls to df_ routines to support new
|
2206 |
|
|
incremental scanning.
|
2207 |
|
|
* config/frv/frv.c (frv_function_prologue, frv_int_to_acc):
|
2208 |
|
|
Changed REGNO to SET_REGNO.
|
2209 |
|
|
(frv_reorder_packet): Added null basic block parm to
|
2210 |
|
|
add_insn_before.
|
2211 |
|
|
* config/i386/i386.c (ix86_eax_live_at_start_p): Removed df
|
2212 |
|
|
parameter and changed calls to df_ routines to support new
|
2213 |
|
|
incremental scanning.
|
2214 |
|
|
(ix86_expand_prologue, ix86_output_function_epilogue):
|
2215 |
|
|
Changed REGNO to SET_REGNO.
|
2216 |
|
|
* config/ia64/ia64.c (emit_predicate_relation_info, ia64_reorg):
|
2217 |
|
|
Removed df parameter and changed calls to df_ routines to support
|
2218 |
|
|
new incremental scanning.
|
2219 |
|
|
* config/mips/mips.c (mips_expand_prologue): Changed REGNO to
|
2220 |
|
|
SET_REGNO.
|
2221 |
|
|
* cfgrtl.c (commit_one_edge_insertion, rtl_dump_bb,
|
2222 |
|
|
print_rtl_with_bb, cfg_layout_merge_blocks,
|
2223 |
|
|
insert_insn_end_bb_new): Added bb parameter to insn insert calls.
|
2224 |
|
|
* dce.c (prescan_insns_for_dce): Removed fast parameter.
|
2225 |
|
|
(init_dce, end_dce, mark_artificial_uses, mark_reg_dependencies,
|
2226 |
|
|
end_fast_dce, dce_process_block, fast_dce, run_fast_df_dce,
|
2227 |
|
|
rs_init, rs_confluence, rs_transfer_function, dump_stores,
|
2228 |
|
|
record_store, mark_dependent_stores, prescan_insns_for_dse,
|
2229 |
|
|
rest_of_handle_dse): Removed df parameter and changed calls to df_
|
2230 |
|
|
routines to support new incremental scanning.
|
2231 |
|
|
(rest_of_handle_dce, gate_dce, run_dce, pass_rtl_dce): Deleted.
|
2232 |
|
|
(delete_corresponding_reg_equal_notes): Renamed to
|
2233 |
|
|
delete_corresponding_reg_eq_notes and made to process both kinds
|
2234 |
|
|
of notes.
|
2235 |
|
|
(delete_unmarked_insns): Changed call to
|
2236 |
|
|
delete_corresponding_reg_eq_notes.
|
2237 |
|
|
* dce.h (run_fast_df_dce): Removed df parameter.
|
2238 |
|
|
* reload1.c (compute_use_by_pseudos, reload): Removed df parameter
|
2239 |
|
|
and changed calls to df_ routines to support new incremental
|
2240 |
|
|
scanning.
|
2241 |
|
|
(alter_reg): Changed REGNO to SET_REGNO.
|
2242 |
|
|
|
2243 |
|
|
|
2244 |
|
|
2006-12-07 David Edelsohn
|
2245 |
|
|
|
2246 |
|
|
* config/rs6000/predicates.md (lwa_operand): Allow PRE_MODIFY
|
2247 |
|
|
indexed address.
|
2248 |
|
|
* config/rs6000/rs6000-protos.h (legitimate_indexed_address_p):
|
2249 |
|
|
Declare.
|
2250 |
|
|
* config/rs6000/rs6000.c (legitimate_indexed_address_p): Remove
|
2251 |
|
|
static.
|
2252 |
|
|
|
2253 |
|
|
2006-12-07 David Edelsohn
|
2254 |
|
|
|
2255 |
|
|
* config/rs6000/predicates.md (lwa_operand): Exclude PRE_MODIFY
|
2256 |
|
|
addresses.
|
2257 |
|
|
|
2258 |
|
|
2006-12-01 Seongbae Park
|
2259 |
|
|
|
2260 |
|
|
* dbgcnt.def: New counters
|
2261 |
|
|
* postreload-gcse.c (delete_redundant_insns_1): New
|
2262 |
|
|
debug counter point.
|
2263 |
|
|
* postreload.c (reload_cse_move2add, gate_handle_postreload):
|
2264 |
|
|
New debug counter point.
|
2265 |
|
|
* auto-inc-dec.c (move_notes): Removed.
|
2266 |
|
|
(move_dead_notes): New function.
|
2267 |
|
|
(attempt_change): Call move_dead_notes(). Add missing dependency check.
|
2268 |
|
|
* haifa-sched.c (schedule_block): New debug counter point.
|
2269 |
|
|
* cse.c (delete_trivially_dead_insns): New debug counter point.
|
2270 |
|
|
* gcse.c (pre_delete): New debug counter point.
|
2271 |
|
|
* Makefile.in: Adding dependency on DBGCNT_H.
|
2272 |
|
|
* sched-rgn.c (schedule_region): New debug counter point.
|
2273 |
|
|
* dce.c (delete_corresponding_reg_equal_notes): New function
|
2274 |
|
|
(delete_unmarked_insns): Call delete_corresponding_reg_equal_notes.
|
2275 |
|
|
|
2276 |
|
|
|
2277 |
|
|
2006-11-28 Seongbae Park
|
2278 |
|
|
|
2279 |
|
|
* dbgcnt.def: Updated comments. Added new counters.
|
2280 |
|
|
* auto-inc-dec.c (try_merge): Debug counter.
|
2281 |
|
|
* global.c (global_conflicts): Use DF_RA_LIVE_TOP() instead of
|
2282 |
|
|
df_urec_get_live_at_top().
|
2283 |
|
|
* dbgcnt.c (count, limit): Use dbgcnt.def.
|
2284 |
|
|
(dbg_cnt_is_enabled): New function.
|
2285 |
|
|
(dbg_cnt): Use dbg_cnt_is_enabled().
|
2286 |
|
|
* local-alloc.c (block_alloc): Use DF_RA_LIVE_TOP instead of LIVE_IN.
|
2287 |
|
|
Add a debug counter.
|
2288 |
|
|
* df.h (DF_RA_LIVE_TOP): New Macro. Remove df_urec_get_live_at_top.
|
2289 |
|
|
(struct df_rd_bb_info): Added new fields ADEF, AUSE and TOP.
|
2290 |
|
|
(struct df_urec_bb_info): Added new field TOP.
|
2291 |
|
|
* loop-iv.c (iv_analyze_def): Added REG_P check.
|
2292 |
|
|
* df-problems.c (df_lr_free_bb_info): Free new fields AUSE, ADEF and
|
2293 |
|
|
TOP.
|
2294 |
|
|
(df_lr_alloc): Allocate new fields TOP, ADEF, AUSE.
|
2295 |
|
|
(df_lr_bb_local_compute): Compute ADEF and AUSE.
|
2296 |
|
|
(df_lr_transfer_function): Compute TOP, and then IN based on TOP, ADEF
|
2297 |
|
|
and AUSE.
|
2298 |
|
|
(df_lr_free): Free new fields AUSE, ADEF and TOP.
|
2299 |
|
|
(df_ur_bb_local_compute): Partial/conditional defs don't hide
|
2300 |
|
|
earlier defs.
|
2301 |
|
|
(df_urec_alloc): Allocate new field TOP.
|
2302 |
|
|
(df_urec_local_finalize): Calculate TOP as well as IN.
|
2303 |
|
|
(df_urec_free): Free new field TOP.
|
2304 |
|
|
(df_urec_get_live_at_top): Removed.
|
2305 |
|
|
* Makefile.in (auto-inc-dec.o, local-alloc.o, sched-rgn.o,
|
2306 |
|
|
sched-ebb.o, recog.o): Added dependency on DBGCNT_H.
|
2307 |
|
|
* sched-rgn.c (schedule_insns, gate_handle_sched, gate_handle_sched2):
|
2308 |
|
|
Added debug counter.
|
2309 |
|
|
* config/ia64/ia64.c (enum ia64_frame_regs): New enum.
|
2310 |
|
|
(struct ia64_frame_info): Changed register fields to use an array
|
2311 |
|
|
index by enum.
|
2312 |
|
|
(emitted_frame_related_regs): New static variable.
|
2313 |
|
|
(reg_emitted, get_reg, is_emitted): New function.
|
2314 |
|
|
(ia64_reload_gp): Use new enum.
|
2315 |
|
|
(find_gr_spill): Added a new param. Use emitted_frame_related_regs.
|
2316 |
|
|
(ia64_computea_frame_size, ia64_hard_regno_rename_ok,
|
2317 |
|
|
ia64_epilogue_uses):
|
2318 |
|
|
Use emitted_frame_related_regs.
|
2319 |
|
|
(ia64_expand_prologue): Extra deubg output. Use new enum.
|
2320 |
|
|
(ia64_expand_epilogue, ia64_direct_return, ia64_split_return_addr_rtx,
|
2321 |
|
|
ia64_output_function_prologue, ia64_output_function_epilogue,
|
2322 |
|
|
process_set):
|
2323 |
|
|
Use new enum.
|
2324 |
|
|
(ia64_init_expanders): New function.
|
2325 |
|
|
(ia64_reorg): New debug counter.
|
2326 |
|
|
* config/ia64/ia64.h (INIT_EXPANDERS): New call to
|
2327 |
|
|
ia64_init_expanders.
|
2328 |
|
|
|
2329 |
|
|
|
2330 |
|
|
|
2331 |
|
|
2006-11-18 Kenneth Zadeck
|
2332 |
|
|
|
2333 |
|
|
* tree-pass.h (print_current_pass, debug_pass): New functions.
|
2334 |
|
|
* passes.c (print_current_pass, debug_pass): New functions.
|
2335 |
|
|
(exec_todo): Changed call to df_verify_blocks.
|
2336 |
|
|
(current_pass): New variable.
|
2337 |
|
|
* auto-inc-dec.c (attempt_change): Removed redundant call to
|
2338 |
|
|
df_insn_rescan and added debugging.
|
2339 |
|
|
(find_inc): Added debugging and fixed post-inc/dec bug.
|
2340 |
|
|
(merge_in_block): Fixed post-inc/dec bug.
|
2341 |
|
|
* dbgcnt.c: Fixed comments.
|
2342 |
|
|
* dbgcnt.c: Fixed comments.
|
2343 |
|
|
* loop-init.c (rtl_unroll_and_peel_loops): Added debugging.
|
2344 |
|
|
* loop-invariant.c (find_defs): Added debugging.
|
2345 |
|
|
* loop-iv.c (iv_analysis_loop_init): Added debugging.
|
2346 |
|
|
* df-scan.c (df_ref): Added parameter to control the deletion of
|
2347 |
|
|
chains.
|
2348 |
|
|
(df_reg_chain_unlink): Take care not to delete non existent refs.
|
2349 |
|
|
(df_ref_remove): Changed call to df_reg_chain_unlink.
|
2350 |
|
|
(df_ref_chain_delete_du_chain, df_ref_chain_delete,
|
2351 |
|
|
df_mw_hardreg_chain_delete): New function
|
2352 |
|
|
(df_insn_delete): Now calls df_ref_chain_delete_du_chain,
|
2353 |
|
|
df_ref_chain_delete, df_mw_hardreg_chain_delete.
|
2354 |
|
|
(df_bb_delete): Now calls df_ref_chain_delete_du_chain,
|
2355 |
|
|
df_ref_chain_delete.
|
2356 |
|
|
(df_insn_rescan): Now supports DF_NO_INSN_RESCAN and added
|
2357 |
|
|
debugging.
|
2358 |
|
|
(df_ref_verify): Added code to ignore refs from notes in the table
|
2359 |
|
|
of refs.
|
2360 |
|
|
(df_bb_verify, df_exit_block_bitmap_verify,
|
2361 |
|
|
df_entry_block_bitmap_verify, df_verify_blocks): Made it possible
|
2362 |
|
|
to abort closer to source of problem.
|
2363 |
|
|
(df_verify_blocks): Removed dflow parameter. * df-core.c
|
2364 |
|
|
(df_insn_uid_debug, df_ref_debug): Fixed debugging. *
|
2365 |
|
|
df-problems.c (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
|
2366 |
|
|
df_ur_bb_info, df_live_bb_info, df_urec_bb_info): Made tolerant of
|
2367 |
|
|
newly added basic blocks.
|
2368 |
|
|
(df_chain_alloc): Tolerant of missing refs in structure.
|
2369 |
|
|
(df_chain_insn_reset, df_chain_bb_reset, df_chain_remove_problem):
|
2370 |
|
|
Deleted function.
|
2371 |
|
|
(df_chain_alloc): New function.
|
2372 |
|
|
(df_chain_reset): Now just calls df_chain_remove_problem.
|
2373 |
|
|
* df.h: (DF_NO_REGS_EVER_LIVE): New flag.
|
2374 |
|
|
|
2375 |
|
|
2006-11-17 Kenneth Zadeck
|
2376 |
|
|
|
2377 |
|
|
* fwprop.c Removed bad version.
|
2378 |
|
|
* tree-ssa-pre.c (init_pre): Added parameter to post_order_compute.
|
2379 |
|
|
|
2380 |
|
|
2006-11-15 Seongbae Park
|
2381 |
|
|
|
2382 |
|
|
* df-scan.c (df_insn_refs_collect): Code cleanup
|
2383 |
|
|
for COND_EXEC handling.
|
2384 |
|
|
(df_need_static_chain_reg): New function.
|
2385 |
|
|
(df_get_entry_block_def_set): Check and add the static chain register.
|
2386 |
|
|
* ifcvt.c (if_convert): Don't ignore the return value
|
2387 |
|
|
of find_if_header.
|
2388 |
|
|
|
2389 |
|
|
|
2390 |
|
|
2006-11-14 Seongbae Park
|
2391 |
|
|
|
2392 |
|
|
* function.c (thread_prologue_and_epilogue_insns):
|
2393 |
|
|
Update regs_ever_live during df scanning.
|
2394 |
|
|
|
2395 |
|
|
2006-11-14 Seongbae Park
|
2396 |
|
|
|
2397 |
|
|
* dbgcnt.c, dbgcnt.h: Added missing copyright notice. Now uses
|
2398 |
|
|
dbgcnt.def for the list of counters.
|
2399 |
|
|
* Makefile.in: Add missing dbgcnt.h header file dependencies.
|
2400 |
|
|
* dbgcnt.def: New file.
|
2401 |
|
|
|
2402 |
|
|
2006-11-14 Seongbae Park
|
2403 |
|
|
|
2404 |
|
|
* tree-tailcall.c (execute_tail_recursion): Added dbg_cnt().
|
2405 |
|
|
* df-scan.c (df_mw_hardreg_find_hardreg, df_get_conditional_uses,
|
2406 |
|
|
df_get_call_refs):
|
2407 |
|
|
New function.
|
2408 |
|
|
(df_refs_add_to_chains): Don't add duplicate mw_hardreg.
|
2409 |
|
|
(df_ins_refs_collect): Refactored to use df_get_conditional_uses
|
2410 |
|
|
and df_get_call_refs.
|
2411 |
|
|
(df_insn_refs_verify): Find the matching mw_hardreg.
|
2412 |
|
|
* dbgcnt.c (dbg_cnt_process_opt): Fix a bug handling multiple
|
2413 |
|
|
counters. Add a new debug counter tail_call.
|
2414 |
|
|
* dbgcnt.h (enum debug_counter): Added a new counter tail_call.
|
2415 |
|
|
* calls.c (expand_call): Check dbg_cnt(tail_call).
|
2416 |
|
|
* df_problems.c (df_create_unused_note, df_ri_bb_compute):
|
2417 |
|
|
Handle NULL LOC case.
|
2418 |
|
|
* dce.c (init_dce): Add a debug dump.
|
2419 |
|
|
|
2420 |
|
|
|
2421 |
|
|
2006-11-14 Paolo Bonzini
|
2422 |
|
|
|
2423 |
|
|
Merge from mainline:
|
2424 |
|
|
|
2425 |
|
|
2006-11-14 Paolo Bonzini
|
2426 |
|
|
|
2427 |
|
|
PR rtl-optimization/29798
|
2428 |
|
|
|
2429 |
|
|
* fwprop.c (use_killed_between): Check that DEF_INSN dominates
|
2430 |
|
|
TARGET_INSN before any other check.
|
2431 |
|
|
(fwprop_init): Always calculate dominators.
|
2432 |
|
|
(fwprop_done): Always free them.
|
2433 |
|
|
|
2434 |
|
|
2006-11-13 Seongbae Park
|
2435 |
|
|
Kenneth Zadeck
|
2436 |
|
|
|
2437 |
|
|
* tree-pass.h (TODO_df_verify_scan): New flag.
|
2438 |
|
|
* auto-inc-def.c (find_inc): Added code to check for case where
|
2439 |
|
|
output of inc is not overwritten by mem to be combined.
|
2440 |
|
|
* df-scan.c (df_scan_set_bb_info): Now increases the size of the
|
2441 |
|
|
array if necessary.
|
2442 |
|
|
(df_scan_blocks): Added flag to avoid recomputing regs_ever_live.
|
2443 |
|
|
(df_insn_rescan): Fixed missing case for rescanning.
|
2444 |
|
|
(df_insn_refs_collect): Special case for sibling calls. Changed
|
2445 |
|
|
to not set up loc field with address of regno_reg_rtx element.
|
2446 |
|
|
(df_entry_block_defs_collect, df_exit_block_uses_collect,
|
2447 |
|
|
df_bb_refs_collect): Changed to not set up loc field with address
|
2448 |
|
|
of regno_reg_rtx element.
|
2449 |
|
|
(df_bb_refs_record): Removed dflow parameter and added scan_insn
|
2450 |
|
|
parameter. Changed call to df_bb_refs_record.
|
2451 |
|
|
(df_compute_regs_ever_live): New function.
|
2452 |
|
|
(df_reg_chain_unmark): Made to accept NULL blocks parameter.
|
2453 |
|
|
(df_ref_chain_unmark): New function.
|
2454 |
|
|
(df_ref_verify): Added abort_if_fail parameter.
|
2455 |
|
|
(df_insn_refs_verify): Added abort_if_fail and return_refs
|
2456 |
|
|
parameter and changed function to return bool. Added code to
|
2457 |
|
|
unmark chains.
|
2458 |
|
|
(df_bb_refs_verify): Added abort_if_fail parameter and now returns
|
2459 |
|
|
nothing.
|
2460 |
|
|
(df_bb_verify): Changed to expect subroutines to abort.
|
2461 |
|
|
(df_verify_blocks): Now accepts NULL blocks parameter.
|
2462 |
|
|
* ifcvt.c (if_convert): Added more to dump_files.
|
2463 |
|
|
* (pass_rtl_ifcvt, pass_if_after_combine, pass_if_after_reload):
|
2464 |
|
|
added TODO_df_verify_scan.
|
2465 |
|
|
* opts.c (command_handle_option): New flag OPT_fdbg_cnt_
|
2466 |
|
|
* recog.c (confirm_change_group): Fixed updating of df scanning.
|
2467 |
|
|
* function.c (thread_prologue_and_epilogue_insns):
|
2468 |
|
|
Pass DF_NO_REGS_EVER_LIVE in df_init, and
|
2469 |
|
|
call df_compute_regs_ever_live after prologue is generated.
|
2470 |
|
|
* df.h (enum df_ref_flags): Added DF_REF_ARTIFICIAL.
|
2471 |
|
|
(enum df_changeable_flags): Added DF_NO_REGS_EVER_LIVE.
|
2472 |
|
|
(DF_REF_IS_ARTIFICIAL): Added checking for the flag DF_REF_ARTIFICIAL.
|
2473 |
|
|
* cfgcleanup.c: Fixed typo in comment.
|
2474 |
|
|
* common.opt: New flag -fdbg-cnt=
|
2475 |
|
|
* combine.c (try_combine): Added calls to keep df_scanning up to
|
2476 |
|
|
date.
|
2477 |
|
|
(pass_combine): Added TODO_df_verify_scan.
|
2478 |
|
|
* Makefile.in: New gcc object file dbgcnt.o
|
2479 |
|
|
* passes.c (execute_todo): Added support for TODO_df_verify_scan.
|
2480 |
|
|
* config/ia64/ia64.c (ia64_split_return_addr_rtx): Finalize
|
2481 |
|
|
the frame layout early.
|
2482 |
|
|
(ia64_expand_prologue): Pass DF_NO_REGS_EVER_LIVE to df_init().
|
2483 |
|
|
* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
|
2484 |
|
|
cfg_layout_merge_blocks): Added debugging.
|
2485 |
|
|
* dbgcnt.c, dbgcnt.h: New files
|
2486 |
|
|
* dce.c (delete_unmarked_insns): Use dbg_cnt.
|
2487 |
|
|
(delete_insn_p): Do not delete unspecs.
|
2488 |
|
|
|
2489 |
|
|
2006-11-10 Seongbae Park
|
2490 |
|
|
|
2491 |
|
|
* fwprop.c (forward_propagate_into): Use DF_REF_IS_ARTIFICIAL()
|
2492 |
|
|
instead of DF_REF_ARTIFICIAL flag.
|
2493 |
|
|
* df-scan.c (df_ref_record, df_def_record_1): Remove record_live
|
2494 |
|
|
(df_get_exit_block_use_set, df_get_entry_block_def_set):
|
2495 |
|
|
Renamed from df_get_{exit_block_uses,entry_block_defs}.
|
2496 |
|
|
(df_compute_regs_ever_live, df_ref_chain_change_bb,
|
2497 |
|
|
df_ref_is_record_live, df_reg_chain_unmark, df_ref_chain_free):
|
2498 |
|
|
New functions.
|
2499 |
|
|
(df_reg_chains): New structure
|
2500 |
|
|
(df_ref_add_to_chains):
|
2501 |
|
|
(df_scan_blocks): Add call to df_compute_regs_ever_live().
|
2502 |
|
|
(df_ref_create): Remove record_live, and replace DF_REF_ARTIFICIAL
|
2503 |
|
|
flag use with DF_REF_IS_ARTIFICIAL () macro.
|
2504 |
|
|
(df_insn_rescan): Avoid marking blocks dirty if nothing changed.
|
2505 |
|
|
(df_insn_change_bb): Refactored to use df_ref_change_bb.
|
2506 |
|
|
(df_ref_is_equal): Now ignores DF_REF_MARKER flag.
|
2507 |
|
|
(df_ref_chain_find_ref, df_reg_chain_find_reg): Fix the order of
|
2508 |
|
|
parameters to the evaluation function.
|
2509 |
|
|
(df_ref_find_chains): Avoid early evaluation of certain fields.
|
2510 |
|
|
(df_ref_add_to_chains): Remove update to regs_ever_live.
|
2511 |
|
|
(df_refs_add_to_chains): Use DF_REF_NEXT_REF macro.
|
2512 |
|
|
(df_ref_record): Remove DF_REF_RECORD_LIVE.
|
2513 |
|
|
(df_insn_refs_record): Now takes the reference list to be added as
|
2514 |
|
|
an argument.
|
2515 |
|
|
(df_bb_refs_record): Handles entry and exit block cases.
|
2516 |
|
|
(df_bb_refs_collect): Removed DF_REF_ARTIFICIAL.
|
2517 |
|
|
(df_refs_record): Scan entry and exit blocks first.
|
2518 |
|
|
(df_ref_verify): Takes reg_chain cache as an argument,
|
2519 |
|
|
verifies hardreg chain.
|
2520 |
|
|
(df_exit_block_bitmap_verify): Renamed from df_exit_block_verify
|
2521 |
|
|
(df_entry-block_bitmap_verify): Renamed from df_entry_block_verify
|
2522 |
|
|
(df_verify_blocks): Implement regchain cache. Assert immediately
|
2523 |
|
|
when verification fails in any subfunctions.
|
2524 |
|
|
* df.h (enum df_ref_flags): Remove DF_REF_ARTIFICIAL and renumber the
|
2525 |
|
|
enum.
|
2526 |
|
|
(DF_REF_IS_ARTIFICIAL, DF_REF_MARK, DF_REF_UNMARK, DF_REF_IS_MARKED,
|
2527 |
|
|
DF_INSN_UID_SAFE_GET): New macros:
|
2528 |
|
|
|
2529 |
|
|
|
2530 |
|
|
2006-11-08 Kenneth Zadeck
|
2531 |
|
|
|
2532 |
|
|
* auto-inc-dec.c (attempt_change): Added code to properly maintain
|
2533 |
|
|
reg_next_inc_use when inc insns are deleted.
|
2534 |
|
|
(merge_in_block): Added debugging and changed to skip deleted
|
2535 |
|
|
instructions.
|
2536 |
|
|
(scan_dflow): Removed variable.
|
2537 |
|
|
* df-scan.c (df_scan_alloc): Always processes entire function.
|
2538 |
|
|
(df_scan_free): Removed df->blocks_to_scan.
|
2539 |
|
|
(df_scan_blocks): Removed blocks_parameter. Now scan entire
|
2540 |
|
|
function.
|
2541 |
|
|
(df_insn_rescan, df_insn_change_bb): Renamed df_mark_bb_dirty to
|
2542 |
|
|
df_set_bb_dirty.
|
2543 |
|
|
* df.h (blocks_to_scan): Removed variable.
|
2544 |
|
|
* df-core.c (df_analyze): Add call to df_scan_alloc. Removed
|
2545 |
|
|
df->blocks_to_scan.
|
2546 |
|
|
(df_get_bb_dirty): New function.
|
2547 |
|
|
(df_mark_bb_dirty): Renamed to df_set_bb_dirty.
|
2548 |
|
|
(df_compact_blocks): Removed df->blocks_to_scan.
|
2549 |
|
|
(df_bb_replace): Added check to make sure there was no block at
|
2550 |
|
|
old_index and fixed updating bugs.
|
2551 |
|
|
* ifcvt.c (cond_exec_process_if_block,
|
2552 |
|
|
noce_process_if_block, cond_move_process_if_block,
|
2553 |
|
|
process_if_block, merge_if_block, find_if_header,
|
2554 |
|
|
find_cond_trap, find_if_case_1, find_if_case_2, if_convert):
|
2555 |
|
|
Removed modified variable.
|
2556 |
|
|
(find_if_header, find_cond_trap, find_if_case_1, find_if_case_2,
|
2557 |
|
|
if_convert): Replaced BB_DIRTY with df_set_bb_dirty and
|
2558 |
|
|
df_get_bb_dirty.
|
2559 |
|
|
* recog.c (confirm_change_group): Ditto.
|
2560 |
|
|
* emit_rtl (remove_insn,, reorder_insns, emit_insn_after_1): Ditto.
|
2561 |
|
|
* cfgcleanup.c (try_forward_edges, try_crossjump_to_edge,
|
2562 |
|
|
merge_blocks_move_predecessor_nojumps, try_crossjump_bb): Ditto.
|
2563 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
2564 |
|
|
* cfgrtl.c (rtl_split_block, rtl_redirect_edge_and_branch,
|
2565 |
|
|
rtl_redirect_edge_and_branch_force, purge_dead_edges,
|
2566 |
|
|
cfg_layout_redirect_edge_and_branch): Ditto.
|
2567 |
|
|
* basic_block.h (BB_DIRTY): Removed.
|
2568 |
|
|
|
2569 |
|
|
|
2570 |
|
|
2006-11-07 Kenneth Zadeck
|
2571 |
|
|
|
2572 |
|
|
* cfg.c (compact_blocks): Make df aware when blocks are moved around.
|
2573 |
|
|
* auto-inc-dec.c (attempt_change): Removed explicit df updating.
|
2574 |
|
|
* ifcvt.c (cond_exec_process_if_block,
|
2575 |
|
|
noce_mem_write_may_trap_or_fault_p, noce_process_if_block,
|
2576 |
|
|
cond_move_process_if_block, process_if_block, find_if_header):
|
2577 |
|
|
Removed unused df parameter.
|
2578 |
|
|
(merge_if_block, find_cond_trap, find_if_case_1, find_if_case_2):
|
2579 |
|
|
Removed explicit df updating.
|
2580 |
|
|
(if_convert): Rearranged calls to df.
|
2581 |
|
|
(struct tree_opt_pass pass_rtl_ifcvt, pass_if_after_combine,
|
2582 |
|
|
pass_if_after_reload): Added TODO_verify_flow.
|
2583 |
|
|
* recog.c (delete_insn_chain_and_flow): Deleted function.
|
2584 |
|
|
(peephole2_optimize): Removed unused dataflow problem and variable
|
2585 |
|
|
and delete explicit df updating calls.
|
2586 |
|
|
(pass_split_before_sched2): Added TODO_verify_flow.
|
2587 |
|
|
* emit_rtl (add_insn_after, add_insn_before, remove_insn,
|
2588 |
|
|
reorder_insns, emit_insn_after_1): Added explicit updating of df.
|
2589 |
|
|
(set_insn_deleted): New function.
|
2590 |
|
|
* loop_invariant.c (invariant_table_size, invariant_table): New
|
2591 |
|
|
variables.
|
2592 |
|
|
(check_invariant_table_size): New function.
|
2593 |
|
|
(invariant_for_use, find_defs, check_dependency,
|
2594 |
|
|
find_invariant_insn, free_inv_motion_data, move_loop_invariants):
|
2595 |
|
|
Replaced DF_REF_DATA with invariant_table.
|
2596 |
|
|
* loop-iv.c (clean_slate, iv_ref_table_size, iv_ref_table): New
|
2597 |
|
|
variables.
|
2598 |
|
|
(check_iv_ref_table_size): New function.
|
2599 |
|
|
(clear_iv_info, iv_analysis_loop_init, record_iv, iv_analyze_def,
|
2600 |
|
|
iv_analysis_done): Replaced DF_REF_DATA with iv_ref_table.
|
2601 |
|
|
* cfglayout.c (fixup_reorder_chain): Now uses compact_blocks.
|
2602 |
|
|
* rtl.h (SET_INSN_DELETED): now calls set_insn_deleted.
|
2603 |
|
|
* Makefile.in: (emit-rtl.o): Now dependent on df.h.
|
2604 |
|
|
* sched-rgn.c (pass_sched, pass_sched2): Added TODO_verify_flow.
|
2605 |
|
|
* cfgrtl.c (rtl_delete_block, update_bb_for_insn,
|
2606 |
|
|
rtl_merge_blocks, try_redirect_by_replacing_jump,
|
2607 |
|
|
cfg_layout_merge_blocks): Added explicit updating of df.
|
2608 |
|
|
* dce.c (delete_unmarked_insns): Removed df_delete parameter and
|
2609 |
|
|
explicit updating of df info.
|
2610 |
|
|
(rest_of_handle_dce, rest_of_handle_dse): Added call to
|
2611 |
|
|
df_remove_problem.
|
2612 |
|
|
(fast_dce, fast_dce, rest_of_handle_fast_dce, run_fast_df_dce):
|
2613 |
|
|
Removed df_delete parameter.
|
2614 |
|
|
* df-scan.c (df_scan_free_bb_info): Changed call.
|
2615 |
|
|
(df_scan_alloc, df_scan_free): Added setting of out_of_date_transfer_functions.
|
2616 |
|
|
(df_problem problem_SCAN): Added problem removal function.
|
2617 |
|
|
(df_scan_blocks): Added calls to df_refs_delete and df_bb_delete.
|
2618 |
|
|
(df_insn_create_insn_record): Added call to df_grow_insn_info.
|
2619 |
|
|
(df_insn_refs_delete): Renamed to df_insn_delete and removed dflow
|
2620 |
|
|
parameter.
|
2621 |
|
|
(df_bb_refs_delete): Renamed to df_bb_delete and removed dflow
|
2622 |
|
|
parameter.
|
2623 |
|
|
(df_refs_delete): Deleted.
|
2624 |
|
|
(df_insn_rescan, df_insn_change_bb): New function.
|
2625 |
|
|
(df_ref_create_structure): Removed DF_REF_DATA.
|
2626 |
|
|
* df-core.c (df_add_problem): Changed to use new form of problem
|
2627 |
|
|
dependency.
|
2628 |
|
|
(df_remove_problem): New function.
|
2629 |
|
|
(df_set_blocks): Does a better job of updating the proper blocks.
|
2630 |
|
|
(df_delete_basic_block): Removed df parameter and checks to see if
|
2631 |
|
|
block already had infomation.
|
2632 |
|
|
(df_get_bb_info): Returns NULL if no info was there.
|
2633 |
|
|
(df_set_bb_info): Checks to make sure problem block information.
|
2634 |
|
|
(df_mark_solutions_dirty, df_mark_bb_dirty, df_compact_blocks,
|
2635 |
|
|
df_bb_replace): New functions.
|
2636 |
|
|
* df.h (df_remove_problem_function): New typedef.
|
2637 |
|
|
(df_dependent_problem_function): Deleted typedef.
|
2638 |
|
|
(df_problem): Added remove_problem_fun and dependent_problem and
|
2639 |
|
|
deleted dependent_problem_fun.
|
2640 |
|
|
(df_ref.data): Removed.
|
2641 |
|
|
(df.out_of_date_transfer_functions, df.solutions_dirty): New
|
2642 |
|
|
variables.
|
2643 |
|
|
(DF_REF_DATA): Deleted macro.
|
2644 |
|
|
* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
|
2645 |
|
|
problem_LIVE, problem_UREC, problem_CHAIN, problem_RI): Added
|
2646 |
|
|
problem removal function and changed dependent_function.
|
2647 |
|
|
|
2648 |
|
|
2006-11-04 Kenneth Zadeck
|
2649 |
|
|
|
2650 |
|
|
* df-scan.c (df_scan_start_dump): Changed print routine to print
|
2651 |
|
|
hard register names.
|
2652 |
|
|
* df-core.c (df_print_regset): New function.
|
2653 |
|
|
* global.c (global_alloc): Do not recompute register infomation
|
2654 |
|
|
when recomputing dataflow.
|
2655 |
|
|
* df.h (DF_RI_NO_UPDATE): New flag.
|
2656 |
|
|
* df-problems.c (df_lr_top_dump, df_lr_bottom_dump,
|
2657 |
|
|
df_ur_top_dump, df_ur_bottom_dump, df_live_top_dump,
|
2658 |
|
|
df_live_bottom_dump, df_urec_top_dump, df_urec_bottom_dump):
|
2659 |
|
|
Changed to use df_print_regset.
|
2660 |
|
|
(df_ri_alloc, df_ri_compute): Changed to not update if
|
2661 |
|
|
DF_RI_NO_UPDATE flag.
|
2662 |
|
|
* cfgrtl.c (print_rtl_with_bb): Changed to print preds and
|
2663 |
|
|
successor blocks in dump file.
|
2664 |
|
|
|
2665 |
|
|
2006-11-03 Seongbae Park
|
2666 |
|
|
|
2667 |
|
|
* global.c (global_conflicts): Use df_urec_get_live_at_top ()
|
2668 |
|
|
instead of DF_RA_LIVE_IN ().
|
2669 |
|
|
* function.h: Add a declaration for current_function_assembler_name().
|
2670 |
|
|
* function.c (current_function_assembler_name): New function.
|
2671 |
|
|
(thread_prologue_and_epilogue_insns): Insert rtx_USE when profiling.
|
2672 |
|
|
* df.h (DF_REF_FLAGS_CLEAR): New macro.
|
2673 |
|
|
(df_urec_get_live_at_top): New function declaration.
|
2674 |
|
|
* df-problems.c (df_urec_get_live_at_top): New function.
|
2675 |
|
|
|
2676 |
|
|
2006-10-28 Seongbae Park
|
2677 |
|
|
|
2678 |
|
|
* df.h (df_rescan_blocks): Renamed to df_scan_blocks.
|
2679 |
|
|
* df-core.c (df_analyze): Use df_scan_blocks() instead.
|
2680 |
|
|
* ifcvt.c (if_convert): Use df_scan_blocks() instead.
|
2681 |
|
|
* df-scan.c
|
2682 |
|
|
(df_ref_record, df_def_record_1, df_defs_record, df_uses_record):
|
2683 |
|
|
They are made side-effect free.
|
2684 |
|
|
(df_ref_find_chains, df_ref_add_to_chains, df_refs_add_to_chains,
|
2685 |
|
|
df_ref_is_equal, df_ref_chain_find_ref, df_reg_chain_find_ref,
|
2686 |
|
|
df_scan_start_block, df_check_and_grow_ref_info,
|
2687 |
|
|
df_insn_refs_collect, df_bb_refs_collect,
|
2688 |
|
|
df_get_entry_block_defs, df_get_exit_block_uses,
|
2689 |
|
|
df_ref_verify, df_refs_verified, df_ref_chain_verify,
|
2690 |
|
|
df_reg_chain_clear_verified, df_bb_refs_verify,
|
2691 |
|
|
df_exit_block_verify, df_entry_block_verify, df_verify_blocks):
|
2692 |
|
|
New functions.
|
2693 |
|
|
(df_ref_create_structure): Initializes the fields
|
2694 |
|
|
of df_ref and does not connect it to various chains.
|
2695 |
|
|
(df_insn_refs_record, df_bb_refs_record, df_record_entry_block_defs,
|
2696 |
|
|
df_record_exit_block_uses, df_refs_record):
|
2697 |
|
|
Separate side-effects (adding chains and updating regs_ever_live)
|
2698 |
|
|
from traversing and finding the refs in the insn/basic block.
|
2699 |
|
|
(df_ref_create): Separate calls for creating the ref and add it
|
2700 |
|
|
to the chains.
|
2701 |
|
|
|
2702 |
|
|
2006-10-24 Paolo Bonzini
|
2703 |
|
|
|
2704 |
|
|
* ddg.c (add_deps_for_def, add_deps_for_use): Use accessor macros.
|
2705 |
|
|
* df.h (DF_REF_STRIPPED, DF_SUBREGS): Remove.
|
2706 |
|
|
* df-core.c: Don't document scanning flags.
|
2707 |
|
|
* df-scan.c (df_ref_record): Always behave as if DF_SUBREGS was set.
|
2708 |
|
|
* df-problems.c (df_lr_bb_local_compute): Strip SUBREGs with
|
2709 |
|
|
DF_REF_REAL_REG.
|
2710 |
|
|
(df_chain_start_dump): Don't dump DF_REF_STRIPPED.
|
2711 |
|
|
(df_create_unused_note, df_ri_bb_compute): Don't "inline"
|
2712 |
|
|
DF_REF_REAL_LOC.
|
2713 |
|
|
* fwprop.c (fwprop_init): Do not pass DF_SUBREGS.
|
2714 |
|
|
* loop-invariant.c (record_use): Don't strip SUBREGs.
|
2715 |
|
|
(record_uses): Do it here with DF_REF_REAL_LOC.
|
2716 |
|
|
* loop-iv.c (iv_analyze_def): Only allow REGs. Replace previous
|
2717 |
|
|
way to check for SUBREGs with an assertion.
|
2718 |
|
|
|
2719 |
|
|
2006-10-19 Kenneth Zadeck
|
2720 |
|
|
|
2721 |
|
|
* sched-ebb.c (schedule_ebbs): Changed flags to df_init.
|
2722 |
|
|
* fwprop.c (use_killed_between): Changed to use proper macros.
|
2723 |
|
|
(All_uses_available_at, try_fwprop_subst): Added support for
|
2724 |
|
|
separated reg_equiv/equal df_refs.
|
2725 |
|
|
(fwprop_init): Changed flags to df_init.
|
2726 |
|
|
(fwprop, fwprop_addr): Changed call to df_reorganize_refs to
|
2727 |
|
|
df_maybe_reorganize_use_refs.
|
2728 |
|
|
* see.c (see_initialize_data_structures): Changed flags to
|
2729 |
|
|
df_init.
|
2730 |
|
|
* ddg.c (build_inter_loop_deps): Now skips refs with
|
2731 |
|
|
reg_equal/equiv notes.
|
2732 |
|
|
* modulo-sched.c (sms_schedule): Changed flags to df_init.
|
2733 |
|
|
* web.c (union_defs): Added support for separated reg_equiv/equal
|
2734 |
|
|
df_refs.
|
2735 |
|
|
(web_main): Changed flags to df_init and changed call to
|
2736 |
|
|
df_reorganize_refs to df_maybe_reorganize_(use|def)_refs.
|
2737 |
|
|
* loop_invariant.c (check_dependency): New function split out from
|
2738 |
|
|
check_dependencies.
|
2739 |
|
|
(record_uses): Added support for separated reg_equiv/equal
|
2740 |
|
|
df_refs.
|
2741 |
|
|
(move_loop_invariants): Changed flags to df_init.
|
2742 |
|
|
* loop-iv.c (iv_analysis_loop_init): Changed flags to df_init.
|
2743 |
|
|
(latch_dominating_def): Changed to use proper macros.
|
2744 |
|
|
* combine.c (create_log_links): Ditto.
|
2745 |
|
|
* sched-rgn.c (schedule_insns): Changed flags to df_init.
|
2746 |
|
|
* dce.c (dce_process_block): Changed to use proper macros.
|
2747 |
|
|
* df.h (df_insn_info.eq_uses): New field.
|
2748 |
|
|
(DF_EQUIV_NOTES): Deleted permanent_flag.
|
2749 |
|
|
(DF_EQ_NOTES): New changeable_flag.
|
2750 |
|
|
(df_ref_info.regs_size, df_ref_info.regs_inited): Moved to df
|
2751 |
|
|
structure.
|
2752 |
|
|
(df.def_regs, df.use_regs, df.eq_use_regs): New fields.
|
2753 |
|
|
(df_ref_info.begin): Moved from df_reg_info.
|
2754 |
|
|
(DF_DEFS_COUNT, DF_DEFS_BEGIN, DF_DEFS_COUNT, DF_DEFS_BEGIN,
|
2755 |
|
|
DF_REG_EQ_USE_GET, DF_REG_EQ_USE_CHAIN, DF_REG_EQ_USE_COUNT): New
|
2756 |
|
|
macros.
|
2757 |
|
|
(DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_CHAIN, DF_REG_DEF_COUNT,
|
2758 |
|
|
DF_REG_USE_GET, DF_REG_USE_CHAIN, DF_REG_USE_COUNT): Redefined.
|
2759 |
|
|
(df_reorganize_refs): Split into df_maybe_reorganize_use_refs and
|
2760 |
|
|
df_maybe_reorganize_def_refs.
|
2761 |
|
|
(df_ref_info.refs_organized): Split into refs_organized_alone and
|
2762 |
|
|
refs_organized_with_eq_uses.
|
2763 |
|
|
* df-problems.c (df_ru_bb_local_compute_process_def,
|
2764 |
|
|
df_ru_local_compute, df_ru_confluence_n, df_ru_transfer_function,
|
2765 |
|
|
df_ru_start_dump, df_rd_bb_local_compute_process_def,
|
2766 |
|
|
df_rd_local_compute, df_rd_confluence_n, df_rd_transfer_function,
|
2767 |
|
|
df_rd_start_dump, df_chain_alloc, df_chain_insn_reset,
|
2768 |
|
|
df_chain_create_bb_process_use, df_chain_create_bb,
|
2769 |
|
|
df_chain_start_dump): Changed to use proper macros.
|
2770 |
|
|
(df_ru_bb_local_compute, df_chain_insn_reset, df_chain_create_bb):
|
2771 |
|
|
Added support for separated reg_equiv/equal df_refs.
|
2772 |
|
|
(df_ru_local_compute, df_rd_local_compute, df_chain_alloc): Split
|
2773 |
|
|
into df_maybe_reorganize_use_refs and
|
2774 |
|
|
df_maybe_reorganize_def_refs.
|
2775 |
|
|
* df-scan.c (df_grow_reg_info, df_rescan_blocks, df_ref_create):
|
2776 |
|
|
Changed to process all data structures dependent on number of
|
2777 |
|
|
registers at once.
|
2778 |
|
|
(df_scan_free_internal, df_scan_alloc): Changed to process new
|
2779 |
|
|
data structures properly.
|
2780 |
|
|
(df_rescan_blocks): Split into refs_organized_alone and
|
2781 |
|
|
refs_organized_with_eq_uses.
|
2782 |
|
|
(df_reg_chain_unlink): Remove decrement of bitmap_size fields.
|
2783 |
|
|
(df_reg_chain_unlink, df_insn_refs_delete,
|
2784 |
|
|
df_ref_create_structure): Changed to use proper macros.
|
2785 |
|
|
(df_reg_chain_unlink, df_ref_remove, df_insn_refs_delete,
|
2786 |
|
|
df_reorganize_refs, df_ref_create_structure, df_insn_refs_record):
|
2787 |
|
|
Added support for separated reg_equiv/equal df_refs.
|
2788 |
|
|
(df_maybe_reorganize_use_refs, df_maybe_reorganize_def_refs): New
|
2789 |
|
|
functions.
|
2790 |
|
|
* df-core.c (df_bb_regno_last_use_find,
|
2791 |
|
|
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
|
2792 |
|
|
df_insn_regno_def_p, df_find_def, df_find_use, df_dump_start,
|
2793 |
|
|
df_regno_debug): Changed to use proper macros.
|
2794 |
|
|
(df_find_use, df_insn_uid_debug, df_insn_uid_debug,
|
2795 |
|
|
df_insn_debug_regno, df_insn_debug_regno): Added support for
|
2796 |
|
|
separated reg_equiv/equal df_refs.
|
2797 |
|
|
|
2798 |
|
|
|
2799 |
|
|
2006-10-18 Paolo Bonzini
|
2800 |
|
|
|
2801 |
|
|
* stack-ptr-mod.c (pass_stack_ptr_mod): Don't set pass name.
|
2802 |
|
|
* final.c (pass_no_new_pseudos): Don't set pass name.
|
2803 |
|
|
|
2804 |
|
|
* fwprop.c (all_uses_available_at): Use DF_REF_REG.
|
2805 |
|
|
(forward_propagate_into): Discard artificial defs/uses.
|
2806 |
|
|
(pass_rtl_fwprop_addr): Add TODO_df_finish.
|
2807 |
|
|
|
2808 |
|
|
2006-10-03 Richard Sandiford
|
2809 |
|
|
|
2810 |
|
|
* cselib.h (cselib_discard_hook): Declare.
|
2811 |
|
|
* cselib.c (cselib_discard_hook): New variable.
|
2812 |
|
|
(remove_useless_values): Call it before freeing useless values.
|
2813 |
|
|
* dce.c (base_address): New union.
|
2814 |
|
|
(store_base_info): Change the type of the base field from "rtx"
|
2815 |
|
|
to "union base_address".
|
2816 |
|
|
(local_invariant_stores, local_value_stores): New variables.
|
2817 |
|
|
(store_base_eq): Split into...
|
2818 |
|
|
(invariant_store_base_eq, value_store_base_eq): ...these new functions.
|
2819 |
|
|
(store_base_hash): Split into...
|
2820 |
|
|
(invariant_store_base_hash, value_store_base_hash): ...these
|
2821 |
|
|
new functions.
|
2822 |
|
|
(store_base_del): Fix formatting.
|
2823 |
|
|
(init_store_group): Split into...
|
2824 |
|
|
(init_invariant_store_group, init_value_store_group): ...these
|
2825 |
|
|
new functions.
|
2826 |
|
|
(init_dse): Use init_invariant_store_group instead of init_store_group.
|
2827 |
|
|
(get_canonical_address): Delete.
|
2828 |
|
|
(add_store_offset): Change the type of BASE from "rtx" to "union
|
2829 |
|
|
base_address *".
|
2830 |
|
|
(record_store): Remove the GROUP parameter. Don't call
|
2831 |
|
|
get_canonical_address. Store the base in a "union base_address" and
|
2832 |
|
|
add stores to either local_invariant_stores or local_value_stores.
|
2833 |
|
|
(record_stores): Remove the GROUP parameter and adjust the calls
|
2834 |
|
|
to record_store.
|
2835 |
|
|
(store_base_local): Add a parameter that indicates whether stores
|
2836 |
|
|
are invariant or cselib_vals.
|
2837 |
|
|
(invariant_store_base_local): New function.
|
2838 |
|
|
(value_store_base_local): Likewise.
|
2839 |
|
|
(value_store_base_useless): Likewise.
|
2840 |
|
|
(remove_useless_values): Likewise.
|
2841 |
|
|
(store_base_prune_needed): Adjust for store_base_info changes.
|
2842 |
|
|
(prescan_insns_for_dse): Remove the local group variable and use
|
2843 |
|
|
local_invariant_stores and local_value_stores instead. Adjust the
|
2844 |
|
|
call to record_stores. Use remove_useless_values as the
|
2845 |
|
|
cselib_discard_hook while processing a basic block.
|
2846 |
|
|
|
2847 |
|
|
2006-10-03 Maxim Kuvyrkov
|
2848 |
|
|
|
2849 |
|
|
* sched-ebb.c (ebb_head, ebb_tail, ebb_head_or_leaf_p): Removed.
|
2850 |
|
|
(begin_schedule_ready, schedule_ebb, ebb_head_or_leaf_p): Remove
|
2851 |
|
|
unnecessary argument, update all callers.
|
2852 |
|
|
(ebb_sched_info): Update initializer.
|
2853 |
|
|
(df): New static variable to keep dataflow info.
|
2854 |
|
|
(compute_jump_reg_dependencies): Use it instead of glat.
|
2855 |
|
|
* haifa-sched.c (glat_start, glat_end, glat_size, init_glat,
|
2856 |
|
|
init_glat1, free_glat): Removed.
|
2857 |
|
|
(generate_recovery_code, begin_speculative_block,
|
2858 |
|
|
add_to_speculative_block, init_before_recovery,
|
2859 |
|
|
create_recovery_block, create_check_block_twin,
|
2860 |
|
|
schedule_block, sched_init, add_block): Remove
|
2861 |
|
|
unnecessary argument, update all callers.
|
2862 |
|
|
* modulo-sched.c (sms_sched_info): Update initializer.
|
2863 |
|
|
(sms_schedule): Update call to sched_init ().
|
2864 |
|
|
* sched-int.h (struct sched_info): Remove unnecessary argument and
|
2865 |
|
|
update all callers of field 'begin_schedule_ready'. Remove field
|
2866 |
|
|
'region_head_or_leaf_p'.
|
2867 |
|
|
(glat_start, glat_end): Remove prototypes.
|
2868 |
|
|
(enum SCHED_FLAGS): Remove USE_GLAT, DETACH_LIFE_INFO. Use NEW_BBS
|
2869 |
|
|
instead.
|
2870 |
|
|
(schedule_block, sched_init, add_block, schedule_region): Update
|
2871 |
|
|
prototypes.
|
2872 |
|
|
* sched-rgn.c (df, not_in_df): New static variables.
|
2873 |
|
|
(check_live_1, update_live_1, add_block1): Use them instead of glat.
|
2874 |
|
|
(begin_schedule_read, schedule_region): Remove unnecessary argument,
|
2875 |
|
|
update all callers.
|
2876 |
|
|
(region_head_or_leaf_p): Remove.
|
2877 |
|
|
(region_sched_info): Update initializer.
|
2878 |
|
|
* config/ia64/ia64.c (set_sched_flags): Use NEW_BBS instead of
|
2879 |
|
|
DETACH_LIFE_INFO.
|
2880 |
|
|
|
2881 |
|
|
2006-10-01 Kenneth Zadeck
|
2882 |
|
|
|
2883 |
|
|
* df-scan.c (df_ref_record, df_insn_refs_record,
|
2884 |
|
|
df_bb_refs_record, df_refs_record, df_record_entry_block_defs):
|
2885 |
|
|
Removed DF_HARD_REGS flag.
|
2886 |
|
|
* df-core.c (comments): Ditto.
|
2887 |
|
|
* df.h (permanent_flags.DF_HARD_REFS): Removed.
|
2888 |
|
|
(changeable_flags.DF_NO_HARD_REGS): Added.
|
2889 |
|
|
* df-problems.c (df_rd_bb_local_compute_process_def,
|
2890 |
|
|
df_rd_bb_local_compute, df_chain_create_bb_process_use,
|
2891 |
|
|
df_chain_create_bb): Added support for DF_NO_HARD_REGS flag.
|
2892 |
|
|
* dce.c (init_dce): Removed DF_HARD_REFS flag.
|
2893 |
|
|
* reg_stack.c (reg_to_stack): Ditto.
|
2894 |
|
|
* sched_rgn.c (sched_insns): Ditto.
|
2895 |
|
|
* regrename.c (regrename_optimize): Ditto.
|
2896 |
|
|
* sched_ebb.c (schedule_ebbs): Ditto.
|
2897 |
|
|
* fwprop.c (fwprop_init): Ditto.
|
2898 |
|
|
* see.c (see_initialize_data_structures): Ditto.
|
2899 |
|
|
* auto_inc_dec.c (rest_of_handle_auto_inc_dec): Ditto.
|
2900 |
|
|
* mode-switching.c (optimize_mode_switching): Ditto.
|
2901 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
2902 |
|
|
* ifcvt.c (if_convert): Ditto.
|
2903 |
|
|
* recog.c (peephole2_optimize): Ditto.
|
2904 |
|
|
* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
|
2905 |
|
|
Ditto.
|
2906 |
|
|
* local_alloc.c (rest_of_handle_local_alloc): Ditto.
|
2907 |
|
|
* function.c (thread_prologue_and_epilogue_insns): Ditto.
|
2908 |
|
|
* rtl_factoring.c (rtl_sequabstr): Ditto.
|
2909 |
|
|
* bt_load.c (branch_target_load_optimize): Ditto.
|
2910 |
|
|
* loop_invariant.c (move_loop_invariants): Ditto.
|
2911 |
|
|
* subregs-init.c (initialize_uninitialized_subregs): Ditto.
|
2912 |
|
|
* loop-iv.c (iv_analysis_loop_init): Ditto.
|
2913 |
|
|
* combine.c (rest_of_handle_combine): Ditto.
|
2914 |
|
|
* web.c (web_main): Added DF_NO_HARD_REGS flag and changed loops
|
2915 |
|
|
to skip over hard regs.
|
2916 |
|
|
* reorg.c (dbr_schedule): Removed extra flags from
|
2917 |
|
|
df_*_add_problems calls.
|
2918 |
|
|
|
2919 |
|
|
2006-09-30 Kenneth Zadeck
|
2920 |
|
|
|
2921 |
|
|
* df-scan.c (problem_SCAN): Removed flags.
|
2922 |
|
|
(df_scan_add_problem): Ditto.
|
2923 |
|
|
(df_ref_record, df_insn_refs_record, df_bb_refs_record,
|
2924 |
|
|
df_refs_record, df_record_entry_block_defs,
|
2925 |
|
|
df_record_exit_block_uses ): Moved flags to df structure.
|
2926 |
|
|
* df-core.c (df_init): Added permanent_flags and changeable_flags.
|
2927 |
|
|
(df_add_problem): Removed flags parameter.
|
2928 |
|
|
(df_set_flags, df_clear_flags): Changed processing of flags. *
|
2929 |
|
|
df.h (df_dependent_problem_function, struct df_problem): Removed
|
2930 |
|
|
flags.
|
2931 |
|
|
(DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS, DF_DU_CHAIN,
|
2932 |
|
|
DF_UD_CHAIN, DF_RI_LIFE, DF_RI_SETJMP): Changed to be fields in
|
2933 |
|
|
df_permanent_flags.
|
2934 |
|
|
(DF_LR_RUN_DCE): Changed to be fields in df_changeable_flags.
|
2935 |
|
|
(df_init, df_add_problem, df_set_flags, df_clear_flags,
|
2936 |
|
|
df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
|
2937 |
|
|
df_ur_add_problem, df_live_add_problem, df_urec_add_problem,
|
2938 |
|
|
df_chain_add_problem, df_ri_add_problem, df_scan_add_problem):
|
2939 |
|
|
Changed flag parameters.
|
2940 |
|
|
* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
|
2941 |
|
|
problem_LIVE, problem_UREC, problem_CHAIN, problem_RI): Removed
|
2942 |
|
|
changeable flags field.
|
2943 |
|
|
(df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
|
2944 |
|
|
df_ur_add_problem, df_live_add_problem, df_urec_add_problem,
|
2945 |
|
|
df_chain_add_problem, df_ri_add_problem): Removed flags parameter.
|
2946 |
|
|
(df_lr_local_finalize, df_chain_alloc, df_chain_insn_reset,
|
2947 |
|
|
df_chain_bb_reset, df_chain_create_bb_process_use,
|
2948 |
|
|
df_chain_start_dump, df_ri_alloc, df_ri_bb_compute, df_ri_compute,
|
2949 |
|
|
df_ri_free): Changed location of flags.
|
2950 |
|
|
* dce.c (init_dce): Moved flags from df_*_add_problem to df_init.
|
2951 |
|
|
(fast_dce): Changed parameters to df_set_flags and df_clear_flags.
|
2952 |
|
|
* reg_stack.c (reg_to_stack): Moved flags from df_*_add_problem to df_init.
|
2953 |
|
|
* sched_rgn.c (sched_insns): Ditto.
|
2954 |
|
|
* regrename.c (regrename_optimize): Ditto.
|
2955 |
|
|
* sched_ebb.c (schedule_ebbs): Ditto.
|
2956 |
|
|
* fwprop.c (fwprop_init): Ditto.
|
2957 |
|
|
* see.c (see_initialize_data_structures): Ditto.
|
2958 |
|
|
* auto_inc_dec.c (rest_of_handle_auto_inc_dec): Ditto.
|
2959 |
|
|
* mode-switching.c (optimize_mode_switching): Ditto.
|
2960 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
2961 |
|
|
* web.c (web_main): Ditto.
|
2962 |
|
|
* ifcvt.c (if_convert): Ditto.
|
2963 |
|
|
* recog.c (peephole2_optimize): Ditto.
|
2964 |
|
|
* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
|
2965 |
|
|
Ditto.
|
2966 |
|
|
* local_alloc.c (rest_of_handle_local_alloc): Ditto.
|
2967 |
|
|
* function.c (thread_prologue_and_epilogue_insns): Ditto.
|
2968 |
|
|
* rtl_factoring.c (rtl_sequabstr): Ditto.
|
2969 |
|
|
* bt_load.c (branch_target_load_optimize): Ditto.
|
2970 |
|
|
* loop_invariant.c (move_loop_invariants): Ditto.
|
2971 |
|
|
* subregs-init.c (initialize_uninitialized_subregs): Ditto.
|
2972 |
|
|
* loop-iv.c (iv_analysis_loop_init): Ditto.
|
2973 |
|
|
* combine.c (rest_of_handle_combine): Ditto.
|
2974 |
|
|
|
2975 |
|
|
2006-08-04 Kenneth Zadeck
|
2976 |
|
|
|
2977 |
|
|
* tree-pass.h (pass_rtl_dse): Split into pass_rtl_dse1,
|
2978 |
|
|
pass_rtl_dse2, pass_rtl_dse3.
|
2979 |
|
|
* passes.c (init_optimization_passes): Ditto.
|
2980 |
|
|
* timevar.def (TV_DSE): Split into TV_DSE1, TV_DSE2, and TV_DSE3.
|
2981 |
|
|
(TV_THREAD_PROLOGUE_AND_EPILOGUE): Made text shorter to improve
|
2982 |
|
|
readability.
|
2983 |
|
|
* df.core.c (df_init, df_finish1, df_analyze_problem, df_analyze):
|
2984 |
|
|
Made postorder and instance variable of df.
|
2985 |
|
|
(df_finish1): Made tolerant of being passed NULL instance.
|
2986 |
|
|
(df_get_n_blocks, df_get_postorder): New functions.
|
2987 |
|
|
* cfganal (post_order_compute): Added delete_unreachable
|
2988 |
|
|
parameter and code to delete unreachable blocks.
|
2989 |
|
|
* local_alloc (rest_of_handle_local_alloc): Removed unnecessary
|
2990 |
|
|
call to delete_unreachable_blocks.
|
2991 |
|
|
* df.h (postorder, n_blocks): New instance variables.
|
2992 |
|
|
(df_get_n_blocks, df_get_postorder): New functions.
|
2993 |
|
|
* sched-rgn.c (extend_rgns): Added extra parameter to
|
2994 |
|
|
post_order_compute.
|
2995 |
|
|
* basic-block.h (post_order_compute): Ditto.
|
2996 |
|
|
* dce.c (fast_dce, init_rs_dflow): Now uses postorder and n_blocks from df.
|
2997 |
|
|
(pass_rtl_dse): Split into pass_rtl_dse1,
|
2998 |
|
|
pass_rtl_dse2, pass_rtl_dse3.
|
2999 |
|
|
* sched-ebb.c (schedule-ebbs): Added return value.
|
3000 |
|
|
* haifa-sched.c (add_block): Made df parameter unused and fixed
|
3001 |
|
|
incorrect assert.
|
3002 |
|
|
|
3003 |
|
|
2006-08-01 Kenneth Zadeck
|
3004 |
|
|
|
3005 |
|
|
* sched-ebb.c (sched_ebbs): Now returns the df instance created.
|
3006 |
|
|
* rtl.h (sched_ebbs): Ditto.
|
3007 |
|
|
* recog.c (split_all_insns): Made public again so it can be called
|
3008 |
|
|
from ia64.c
|
3009 |
|
|
* rtl.h (split_all_insns): Ditto.
|
3010 |
|
|
* df-problems.c (df_ri_compute): Removed call to non existent
|
3011 |
|
|
function.
|
3012 |
|
|
* config/ia64/ia64.c (emit_predicate_relation_info): Added df
|
3013 |
|
|
parameter and removed rotten ref to global instance.
|
3014 |
|
|
(ia64_reorg): Added local instance of df and removed calls to non
|
3015 |
|
|
existent flow.c.
|
3016 |
|
|
|
3017 |
|
|
2006-07-26 Kenneth Zadeck
|
3018 |
|
|
|
3019 |
|
|
* regrename.c (regrename_optimize): Renamed df_clrur to df_live
|
3020 |
|
|
and removed df_finish call.
|
3021 |
|
|
(pass_regrename): Added TODO_df_finish flag.
|
3022 |
|
|
* sched-ebb.c (schedule_ebbs): Renamed df_clrur to df_live
|
3023 |
|
|
and removed df_finish call.
|
3024 |
|
|
* fwprop.c (fwprop_done): Removed df_finish call.
|
3025 |
|
|
(pass_rtl_fwprop): Added TODO_df_finish flag.
|
3026 |
|
|
* see.c (see_commit_changes): Removed unnecessary set to df.
|
3027 |
|
|
* postreload.c (rest_of_handle_postreload): Removed df_finish call.
|
3028 |
|
|
(pass_postreload_cse): Added TODO_df_finish flag.
|
3029 |
|
|
* tree-pass.h (TODO_df_finish): Added.
|
3030 |
|
|
* cfg.c (dump_bb_info): Added flow info to dumps
|
3031 |
|
|
(dump_reg_info): New function.
|
3032 |
|
|
(dump_flow_info): Moved reg info printing to dump_reg_info.
|
3033 |
|
|
* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Renamed df_clrur to df_live
|
3034 |
|
|
and removed df_finish call.
|
3035 |
|
|
(pass_inc_dec): Added TODO_df_finish flag.
|
3036 |
|
|
* reorg.c (dbr_schedule): Renamed df_clrur to df_live
|
3037 |
|
|
and removed df_finish call.
|
3038 |
|
|
(pass_delay_slots): Added TODO_df_finish flag.
|
3039 |
|
|
* df-scan.c (df_scan_alloc): Added set to dflow->computed.
|
3040 |
|
|
(df_scan_dump): Renamed to df_scan_start_dump.
|
3041 |
|
|
(problem_SCAN): Updated for new dumpers.
|
3042 |
|
|
* haifa-sched.c (sched_finish): Removed df parameter and deleted
|
3043 |
|
|
call to df_finish.
|
3044 |
|
|
* df-core.c (ddf): Renamed to df_current_instance and made public.
|
3045 |
|
|
(df_init): Ditto and added check to make sure only one instance of
|
3046 |
|
|
df is alive at any point.
|
3047 |
|
|
(df_add_problem): Initialized dflow->computed.
|
3048 |
|
|
(df_analyze_problem): Set dflow->computed.
|
3049 |
|
|
(df_dump): Now calls new dumpers.
|
3050 |
|
|
(df_dump_start, df_dump_top, df_dump_bottom): New functions.
|
3051 |
|
|
(debug_df_insn, debug_df_reg, debug_df_regno, debug_df_defno,
|
3052 |
|
|
debug_df_useno): Renamed ddf to df_current_instance.
|
3053 |
|
|
* mode_switching (optimize_mode_switching): Renamed df_clrur to df_live
|
3054 |
|
|
and removed df_finish call.
|
3055 |
|
|
(pass_mode_switching): Added TODO_df_finish flag.
|
3056 |
|
|
* modulo-sched.c (sms_schedule): Removed calls to df_dump and df
|
3057 |
|
|
parameter from sched_finish.
|
3058 |
|
|
(pass_sms): Added TODO_df_finish flag.
|
3059 |
|
|
* web.c (web_main): Removed call to df_dump and df_finish.
|
3060 |
|
|
(pass_web): Added TODO_df_finish flag.
|
3061 |
|
|
* loop-init.c (pass_rtl_move_loop_init): Added TODO_df_finish
|
3062 |
|
|
flag.
|
3063 |
|
|
* global.c (global_alloc): Removed call to df_dump and debugging
|
3064 |
|
|
code.
|
3065 |
|
|
* ifcvt.c (if_convert): Renamed df_clrur to df_live
|
3066 |
|
|
and removed df_finish call.
|
3067 |
|
|
(pass_rtl_ifcvt, pass_if_after_combine, pass_if_after_reload):
|
3068 |
|
|
Added TODO_df_finish flag.
|
3069 |
|
|
* recog.c (peephole2_optimize): Renamed df_clrur to df_live and
|
3070 |
|
|
removed df_finish call.
|
3071 |
|
|
(pass_peephole2): Added TODO_df_finish flag.
|
3072 |
|
|
* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
|
3073 |
|
|
Renamed df_clrur to df_live and removed df_finish call.
|
3074 |
|
|
(pass_regmove, pass_stack_adjustments): Added TODO_df_finish flag.
|
3075 |
|
|
* function.c (epilogue_done): Removed df_finish call.
|
3076 |
|
|
(pass_thread_prologue): Added TODO_df_finish flag.
|
3077 |
|
|
* df.h (DF_CLRUR): Renamed to DF_LIVE.
|
3078 |
|
|
(df_dump_bb_problem_function): New function type.
|
3079 |
|
|
(df_problem.dump_fun): Deleted.
|
3080 |
|
|
(df_problem.dump_fun_start, df_problem.dump_fun_top,
|
3081 |
|
|
df_problem.dump_fun_bottom, problem_data.computed,
|
3082 |
|
|
df_current_instance): New fields.
|
3083 |
|
|
(DF_CLRUR_BB_INFO): Renamed to DF_LIVE_BB_INFO.
|
3084 |
|
|
(df_clrur_bb_info): Renamed to df_live_bb_info.
|
3085 |
|
|
(df_dump_start, df_dump_top, df_dump_bottom): New functions.
|
3086 |
|
|
* rtl-factoring (rtl_seqabstr): Renamed df_clrur to df_live
|
3087 |
|
|
and removed df_finish call.
|
3088 |
|
|
(pass_rtl_seqabstr): Added TODO_df_finish flag.
|
3089 |
|
|
* bt-load (branch_target_load_optimize): Renamed df_clrur to df_live
|
3090 |
|
|
and removed df_finish call.
|
3091 |
|
|
(pass_branch_target_load_optimize1,
|
3092 |
|
|
pass_branch_target_load_optimize2): Added TODO_df_finish flag.
|
3093 |
|
|
* loop-invariant.c (move_loop_invariants): Removed call to
|
3094 |
|
|
df_finish.
|
3095 |
|
|
* subregs-init.c (initialize_uninitialized_subregs): Renamed
|
3096 |
|
|
df_clrur to df_live and changed call to dg_get_live_in to
|
3097 |
|
|
DF_LIVE_IN.
|
3098 |
|
|
* rtl.h (dump_reg_info): New function.
|
3099 |
|
|
* sched-int.h (sched_finish): Removed df parameter.
|
3100 |
|
|
* combine.c (rest_of_handle_combine): Renamed df_clrur to df_live
|
3101 |
|
|
and removed df_finish call.
|
3102 |
|
|
(pass_combine): Added TODO_df_finish flag.
|
3103 |
|
|
* df-problems.c (df_get_live_in, df_get_live_out): Renamed
|
3104 |
|
|
DF_CLRUR to DF_LIVE.
|
3105 |
|
|
(df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_clrur_dump,
|
3106 |
|
|
df_urec_dump, df_ri_dump): Deleted function.
|
3107 |
|
|
(df_ru_start_dump, df_ru_top_dump, df_ru_bottom_dump,
|
3108 |
|
|
df_rd_start_dump, df_rd_top_dump, df_rd_bottom_dump,
|
3109 |
|
|
df_lr_start_dump, df_lr_top_dump, df_lr_bottom_dump,
|
3110 |
|
|
df_ur_start_dump, df_ur_top_dump, df_ur_bottom_dump,
|
3111 |
|
|
df_live_top_dump, df_live_bottom_dump, df_ri_start_dump,
|
3112 |
|
|
df_urec_top_dump, df_urec_bottom_dump): New function.
|
3113 |
|
|
(problem_RU, problem_RD, problem_LR, problem_UR, problem_UREC,
|
3114 |
|
|
problem_CHAIN, problem_RI): Replaced dump functions.
|
3115 |
|
|
(df_clrur_get_bb_info): Renamed to df_live_get_bb_info.
|
3116 |
|
|
(df_clrur_set_bb_info): Renamed to df_live_set_bb_info.
|
3117 |
|
|
(df_clrur_free_bb_info): Renamed to df_live_free_bb_info.
|
3118 |
|
|
(df_clrur_alloc): Renamed to df_live_alloc.
|
3119 |
|
|
(df_clrur_local_finalize): Renamed to df_live_local_finalize.
|
3120 |
|
|
(df_clrur_free): Renamed to df_clrur_free.
|
3121 |
|
|
(problem_CLRUR): Renamed to problem_LIVE and dump functions
|
3122 |
|
|
changed.
|
3123 |
|
|
(df_clrur_add_problem): Renamed to df_live_add_problem.
|
3124 |
|
|
(df_chains_dump): Renamed to df_chain_start_dump.
|
3125 |
|
|
(df_chain_add_problem, df_ri_alloc, df_ri_compute): Removed
|
3126 |
|
|
problem_data->computed.
|
3127 |
|
|
* Makefile.in (passes.o): Added DF_H.
|
3128 |
|
|
* sched-rgn.c (schedule_insns): Renamed df_clrur to df_live
|
3129 |
|
|
and removed df_finish call.
|
3130 |
|
|
(pass_sched, pass_sched2): Added TODO_df_finish flag.
|
3131 |
|
|
* passes.c (execute_todo): Added call to df_finish for
|
3132 |
|
|
TODO_df_finish flag.
|
3133 |
|
|
* cfgrtl.c (dump_regset_in, dump_regset_out): Deleted.
|
3134 |
|
|
(rtl_dump_bb, print_rtl_with_bb): Fixed to find and print df info.
|
3135 |
|
|
* dce.c (init_dce): Removed call to df_dump.
|
3136 |
|
|
(end_dce, end_fast_dce): Removed call df_finish and null out local
|
3137 |
|
|
df instance variable.
|
3138 |
|
|
(pass_rtl_dce, pass_fast_rtl_dce, pass_rtl_dse): Added
|
3139 |
|
|
TODO_df_finish flag.
|
3140 |
|
|
|
3141 |
|
|
|
3142 |
|
|
2006-07-23 Kenneth Zadeck
|
3143 |
|
|
|
3144 |
|
|
* tree-pass.h (pass_regclass_init, pass_no_new_pseudos,
|
3145 |
|
|
pass_split_before_sched2): Added.
|
3146 |
|
|
(pass_life, pass_remove_death_notes): Deleted.
|
3147 |
|
|
* rtlanal.c: Documentation.
|
3148 |
|
|
* stack-ptr-mod.c: Ditto.
|
3149 |
|
|
* output.h: Ditto.
|
3150 |
|
|
* function.c: Ditto.
|
3151 |
|
|
* caller-save.c: Ditto.
|
3152 |
|
|
* sched-deps.c: Ditto.
|
3153 |
|
|
* jump.c: Ditto.
|
3154 |
|
|
* alias.c: Ditto.
|
3155 |
|
|
* calls.c: Ditto.
|
3156 |
|
|
* cfgloop.c: Ditto.
|
3157 |
|
|
(establish_preds, flow_loops_find): Removed ref to cfun->max_loop_depth.
|
3158 |
|
|
* final.c: (rest_of_no_new_pseudos, pass_no_new_pseudos): Added.
|
3159 |
|
|
* cfg.c (dump_regset, debug_regset): Moved from flow.c.
|
3160 |
|
|
* regs.h (regs_may_share): Deleted.
|
3161 |
|
|
(allocate_reg_life_data): Added.
|
3162 |
|
|
* flow.c: Deleted.
|
3163 |
|
|
* global.c (reg_may_share): Deleted.
|
3164 |
|
|
(global_alloc): Removed support for regs_may_share.
|
3165 |
|
|
* ifcvt.c (rest_or_handel_if_conversion): Removed ref to
|
3166 |
|
|
clear_reg_deaths.
|
3167 |
|
|
* timevar.def (TV_FLOW): Removed.
|
3168 |
|
|
* recog.c (find_single_use, find_single_use_1): Moved to combine
|
3169 |
|
|
and made static.
|
3170 |
|
|
(split_all_insns, split_all_insns_noflow): Made static.
|
3171 |
|
|
(pass_split_before_regclass): Fixed tv_id.
|
3172 |
|
|
(gate_handle_split_before_sched2,
|
3173 |
|
|
rest_of_handle_split_before_sched2, pass_split_before_sched2): New.
|
3174 |
|
|
(pass_split_for_shorten_branches): Renamed and fixed tv_id.
|
3175 |
|
|
* recog.h (find_single_use): Removed.
|
3176 |
|
|
* regmove.c (find_use_as_address): Moved from flow and made
|
3177 |
|
|
static.
|
3178 |
|
|
* function.h (max_loop_depth): Removed.
|
3179 |
|
|
* cfgcleanup.c (delete_dead_jumptables): Moved from flow.c.
|
3180 |
|
|
* subregs-init.c (initialize_uninitialized_subregs): Added call to
|
3181 |
|
|
allocate_reg_life_data if new regs were added.
|
3182 |
|
|
* regclass.c (max_regno, reg_set_to_hard_reg_set,
|
3183 |
|
|
allocate_reg_life_data): Moved from flow.c.
|
3184 |
|
|
(regclass_init): Now static and returns unsigned int.
|
3185 |
|
|
(pass_regclass_init, find_subregs_of_mode): New.
|
3186 |
|
|
(init_subregs_of_mode): Now fills the hash table.
|
3187 |
|
|
* rtl.h (find_use_as_address, split_all_insns,
|
3188 |
|
|
split_all_insns_noflow, regclass_init): Deleted.
|
3189 |
|
|
* combine.c (find_single_use_1, find_single_use): Moved from recog
|
3190 |
|
|
and made static.
|
3191 |
|
|
(delete_noop_moves): Moved from flow.c and made static.
|
3192 |
|
|
(rest_of_handle_combine): Now runs dce as part of df_init.
|
3193 |
|
|
* df-problems.c (reg_n_info): Moved from flow.c.
|
3194 |
|
|
(df_ri_problem_data.computed): Added field.
|
3195 |
|
|
(print_note, df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
|
3196 |
|
|
df_create_unused_note, df_ri_bb_compute, df_ri_compute): Changed
|
3197 |
|
|
note printing to go to dump_file.
|
3198 |
|
|
(df_ri_alloc, df_ri_compute, df_ri_free, df_ri_dump): Added
|
3199 |
|
|
support for computed flag.
|
3200 |
|
|
* Makefile.in: (flow.c flow.o): Removed.
|
3201 |
|
|
* sched-rgn.c (check_dead_notes1, deaths_in_region): Removed.
|
3202 |
|
|
(init_regions, add_block1): Removed last of note counting code.
|
3203 |
|
|
(rest_of_handle_sched2): Moved call to split_all_insns to separate
|
3204 |
|
|
pass.
|
3205 |
|
|
* basic_block.h (first_insn_after_basic_block_note,
|
3206 |
|
|
update_life_extent, PROP_* flags, life_analysis, update_life_info
|
3207 |
|
|
update_life_info_in_dirty_blocks, count_or_remove_death_notes,
|
3208 |
|
|
propagate_block, clear_reg_deaths, propagate_block_info,
|
3209 |
|
|
propagate_one_insn, init_propagate_block_info,
|
3210 |
|
|
free_propagate_block_info): Removed.
|
3211 |
|
|
(CLEANUP_*): Renumbered.
|
3212 |
|
|
sched_vis.c: (print_exp): Added proper printing for PRE and
|
3213 |
|
|
POST_MODIFY.
|
3214 |
|
|
* passes.c (init_optimization_passes): Added pass_regclass_init,
|
3215 |
|
|
pass_no_new_pseudos, and pass_split_before_sched2. Deleted
|
3216 |
|
|
pass_life.
|
3217 |
|
|
* struct-equiv.c (struct_equiv_init): Removed dead conditional.
|
3218 |
|
|
* config/rs6000/rs6000.c (print_operand): More fixes for
|
3219 |
|
|
PRE_MODIFY.
|
3220 |
|
|
* config/rs6000/rs6000.md ("*movdf_hardfloat32",
|
3221 |
|
|
"*movdf_softfloat32"): Ditto.
|
3222 |
|
|
* cfgrtl (first_insn_after_basic_block_note): Moved from flow.c
|
3223 |
|
|
and made static.
|
3224 |
|
|
|
3225 |
|
|
|
3226 |
|
|
2006-07-16 Zdenek Dvorak
|
3227 |
|
|
Kenneth Zadeck
|
3228 |
|
|
|
3229 |
|
|
* regrename.c: Fixed comments.
|
3230 |
|
|
* see.c (rest_of_handle_see): Removed call to
|
3231 |
|
|
update_life_info_in_dirty_blocks.
|
3232 |
|
|
* tree-pass.h: (pass_clear_df, pass_reset_df): Removed.
|
3233 |
|
|
* passes.c (init_optimization_passes): Ditto.
|
3234 |
|
|
* cfghooks.c (split_block): Remove call to split_block_end.
|
3235 |
|
|
(merge_blocks): Removed call to merge_blocks_end.
|
3236 |
|
|
(duplicate_block): Removed call to duplicate_block_end.
|
3237 |
|
|
* cfghooks.h (split_block_end, merge_blocks_end,
|
3238 |
|
|
duplicate_block_end): Removed.
|
3239 |
|
|
* cfgrtl.c (rtl_split_block_end, rtl_merge_blocks_end): Removed.
|
3240 |
|
|
(rtl_create_basic_block, force_nonfallthru_and_redirect,
|
3241 |
|
|
rtl_split_edge, cfg_layout_merge_blocks, cfg_layout_split_edge):
|
3242 |
|
|
Removed old calls to incremental dataflow.
|
3243 |
|
|
(dump_regset_in, dump_regset_out): Removed call to dump_regset.
|
3244 |
|
|
(rtl_dump_bb, print_rtl_with_bb): Rearranged dataflow printing.
|
3245 |
|
|
* cfg.c (compact_blocks): Removed code to keep dataflow up to
|
3246 |
|
|
date.
|
3247 |
|
|
* flow.c (clear_log_links): Deleted
|
3248 |
|
|
(life_analysis, init_propagate_block_info): Removed PROP_LOG_LINKS.
|
3249 |
|
|
(update_life_info): Removed call to clear_log_links.
|
3250 |
|
|
(mark_set_1): Removed code to build log links.
|
3251 |
|
|
(clear_log_links): Deleted.
|
3252 |
|
|
* df-scan.c (df_uses_record): Added code to set
|
3253 |
|
|
DF_REF_PRE_POST_MODIFY.
|
3254 |
|
|
(df_insn_refs_record): Added code to set DF_REF_CALL_STACK_FRAME.
|
3255 |
|
|
* df-core.c (df_analyze_simple_change_some_blocks,
|
3256 |
|
|
df_analyze_simple_change_one_block, df_compact_blocks,
|
3257 |
|
|
df_bb_replace, reset_df, pass_reset_df, clear_df, pass_clear_df):
|
3258 |
|
|
Deleted.
|
3259 |
|
|
* recog.c (peephole2_optimize): Deleted some rotted code.
|
3260 |
|
|
* df.h (DF_REF_PRE_POST_MODIFY, DF_REF_CALL_STACK_USAGE): New
|
3261 |
|
|
Flags.
|
3262 |
|
|
(df_analyze_simple_change_some_blocks,
|
3263 |
|
|
df_analyze_simple_change_one_block, df_compact_blocks,
|
3264 |
|
|
df_bb_replace): Deleted.
|
3265 |
|
|
* bt-load (branch_target_load_optimize): Removed call to
|
3266 |
|
|
update_life_info.
|
3267 |
|
|
* cfgcleanup.c (thread_jump, try_forward_edges): Deleted mode
|
3268 |
|
|
parameter to thread_jump.
|
3269 |
|
|
(try_optimize_cfg, cleanup_cfg): Removed CLEANUP_UPDATE_LIFE.
|
3270 |
|
|
* cfglayout.c (cfg_layout_duplicate_bb_end): Deleted.
|
3271 |
|
|
* combine.c (combine_instructions): Removed call to
|
3272 |
|
|
update_life_info.
|
3273 |
|
|
(set_nonzero_bits_and_sign_copies, reg_nonzero_bits_for_combine,
|
3274 |
|
|
reg_num_sign_bit_copies_for_combine, get_last_value_validate,
|
3275 |
|
|
get_last_value, reg_dead_at_p): Changed to use local df instance.
|
3276 |
|
|
(create_log_links, clear_log_links): New function.
|
3277 |
|
|
(rest_of_handle_combine): Added new version of df, create and
|
3278 |
|
|
destroy log links locally.
|
3279 |
|
|
* bb-reorder.c (rest_of_handle_partition_blocks): Removed call to
|
3280 |
|
|
update_life_info.
|
3281 |
|
|
* basic-block.h (PROP_LOG_LINKS): Removed and renumbered other
|
3282 |
|
|
PROP_*.
|
3283 |
|
|
(CLEANUP_UPDATE_LIFE, CLEANUP_LOG_LINKS): Removed and renumbered
|
3284 |
|
|
other CLEANUP_*.
|
3285 |
|
|
* tree-cfg.c (tree_cfg_hooks): Removed fields.
|
3286 |
|
|
* struct-equiv.c (struct_equiv_init): Removed call to
|
3287 |
|
|
update_life_in_dirty_blocks.
|
3288 |
|
|
* dce.c (init_dce, end_dce, end_fast_dce): Removed code to service
|
3289 |
|
|
rtl_df.
|
3290 |
|
|
|
3291 |
|
|
2006-07-12 Kenneth Zadeck
|
3292 |
|
|
|
3293 |
|
|
* auto-inc-dec.c (parse_add_or_inc): Moved test to merge_in_block.
|
3294 |
|
|
(find_inc): Now returns success flag if transformation was made.
|
3295 |
|
|
(find_mem): Ditto.
|
3296 |
|
|
(merge_in_block): Restructed to loop if any merges were made.
|
3297 |
|
|
Added max_reg parameter. Added test from parse_add_or_inc.
|
3298 |
|
|
|
3299 |
|
|
2006-07-11 Kenneth Zadeck
|
3300 |
|
|
|
3301 |
|
|
* regrename.c (regrename_optimize): Changed df problem
|
3302 |
|
|
initialization.
|
3303 |
|
|
* sched-ebb.c (schedule_ebbs): Ditto.
|
3304 |
|
|
* reorg.c (dbr_schedule): Ditto.
|
3305 |
|
|
* mode-switching.c (optimize_mode_switching): Ditto.
|
3306 |
|
|
* ifcvt.c (if_convert): Ditto.
|
3307 |
|
|
* reorg.c (peephole2_optimize): Ditto.
|
3308 |
|
|
* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
|
3309 |
|
|
Ditto.
|
3310 |
|
|
* sched-rgn.c (schedule_insns): Ditto.
|
3311 |
|
|
* rtl-factoring.c (rtl_seqabstr): Ditto.
|
3312 |
|
|
* bt-load.c (branch_target_load_optimize): Ditto.
|
3313 |
|
|
* subregs-init.c (initialize_uninitialized_subregs): Ditto.
|
3314 |
|
|
* df-core.c (reset_df): Ditto.
|
3315 |
|
|
* flow.c (update_life_info, propagate_one_insn): Renamed UPWARD_LIVE
|
3316 |
|
|
to LR.
|
3317 |
|
|
(rest_of_handle_life): Changed df problem
|
3318 |
|
|
initialization.
|
3319 |
|
|
* function.c (keep_stack_depressed): Renamed UPWARD_LIVE to LR.
|
3320 |
|
|
* combine.c (set_nonzero_bits_and_sign_copies): Changed DF_LIVE_IN
|
3321 |
|
|
to DF_UR_IN or DF_LR_IN.
|
3322 |
|
|
(reg_nonzero_bits_for_combine,
|
3323 |
|
|
reg_num_sign_bit_copies_for_combine, get_last_value): Changed
|
3324 |
|
|
DF_LIVE_IN to DF_UR_IN.
|
3325 |
|
|
* reg-stack.c (reg_to_stack): Changed df problem
|
3326 |
|
|
initialization. Changed DF_LIVE_IN to DF_LR_IN. str
|
3327 |
|
|
* struct-equiv.c (struct_equiv_init): Renamed UPWARD_LIVE
|
3328 |
|
|
to LR.
|
3329 |
|
|
* dce.c (dce_process_block): Changed DF_UPWARD_LIVE_* to DF_LR_*.
|
3330 |
|
|
* df.h: (DF_CLRUR) Added symbol and renamed others in block.
|
3331 |
|
|
(DF_CLRUR_BB_INFO): New macro.
|
3332 |
|
|
(DF_LIVE_IN, DF_LIVE_OUT): Changed to use output of clrur problem.
|
3333 |
|
|
(DF_UPWARD_LIVE_IN): Renamed to DF_LR_IN.
|
3334 |
|
|
(DF_UPWARD_LIVE_OUT): Renamed to DF_LR_OUT.
|
3335 |
|
|
(df_clrur_bb_info): New structure.
|
3336 |
|
|
(df_clrur_add_problem, df_clrur_get_bb_info): New functions.
|
3337 |
|
|
* df-problems: (df_get_live_in, df_get_live_out,
|
3338 |
|
|
df_lr_simulate_artificial_refs_at_end): Reworked to
|
3339 |
|
|
to be consistent with new dataflow problems and naming.
|
3340 |
|
|
(df_ur_local_finalize): Deleted function.
|
3341 |
|
|
(df_problem problem_UR): Removed ref to df_ur_local_finalize.
|
3342 |
|
|
(df_clrur_get_bb_info, df_clrur_set_bb_info,
|
3343 |
|
|
df_clrur_free_bb_info, df_clrur_alloc, df_clrur_free,
|
3344 |
|
|
df_clrur_dump, df_clrur_add_problem): New functions.
|
3345 |
|
|
(df_problem problem_CLRUR): New datastructure.
|
3346 |
|
|
* auto-inc-dec.c (reg_next_inc_use): New Array.
|
3347 |
|
|
(attempt_change): Added inc_reg parm and boolean result. Move
|
3348 |
|
|
some tests to try_merge. Added processing for reg_next_inc_use.
|
3349 |
|
|
(try_merge): Added boolean result and some test moved from
|
3350 |
|
|
attempt_change and parse_add_or_inc.
|
3351 |
|
|
(parse_add_or_inc): Move test to try_merge. Improved debugging,
|
3352 |
|
|
and added code to support reg_next_inc_use. Added more
|
3353 |
|
|
correctness tests.
|
3354 |
|
|
(rest_of_handle_auto_inc_dec): Changed df problem initialization
|
3355 |
|
|
and added code to support reg_next_inc_use.
|
3356 |
|
|
|
3357 |
|
|
2006-07-05 Richard Sandiford
|
3358 |
|
|
|
3359 |
|
|
* passes.c (init_optimization_passes): Move the final RTL DSE pass
|
3360 |
|
|
after thread_prologue_and_epilogue.
|
3361 |
|
|
|
3362 |
|
|
2006-07-01 Daniel Berlin
|
3363 |
|
|
David Edelsohn
|
3364 |
|
|
Kenneth Zadeck
|
3365 |
|
|
|
3366 |
|
|
tree-pass.h (pass_inc_dec): New pass variable.
|
3367 |
|
|
auto-inc-dec.c: New file that contains pass to find auto-inc/dec
|
3368 |
|
|
instruction combinations.
|
3369 |
|
|
flow.c: Removed unused includes for execinfo.h and stdio.h.
|
3370 |
|
|
(init_propagate_block_info): Fixed missing comma typo.
|
3371 |
|
|
(attempt_auto_inc, try_pre_increment): Added code to abort if any
|
3372 |
|
|
auto-inc/dec insns are found by this pass.
|
3373 |
|
|
df-scan.c (df_defs_record): Added flags parameter.
|
3374 |
|
|
(df_insn_refs_record): Added code to check for conditional def.
|
3375 |
|
|
(df_recompute_luids): New function.
|
3376 |
|
|
df-core.c: Fixed comment.
|
3377 |
|
|
global.c (global_alloc): Moved misplaced debugging code.
|
3378 |
|
|
(global_conflicts): Added patch to fix the way auto-incs are
|
3379 |
|
|
accounted for in conflicts graph.
|
3380 |
|
|
timevar.def (TV_AUTO_INC_DEC): New variable.
|
3381 |
|
|
recog.c: Fixed comment.
|
3382 |
|
|
function.c: Fixed comment.
|
3383 |
|
|
df.h (DF_REF_CONDITIONAL): New flag.
|
3384 |
|
|
(df_recompute_luids): New function.
|
3385 |
|
|
gcse.c (extract_mentioned_regs_helper): Added PRE/POST_MODIFY
|
3386 |
|
|
cases.
|
3387 |
|
|
common.opt (fauto-inc-dec): New flag.
|
3388 |
|
|
rtl.h (AUTO_INC_DEC): Made this symbol dependent on
|
3389 |
|
|
HAVE_(PRE/POST)_MODIFY_(REG/DISP). Made other symbols dependent
|
3390 |
|
|
on AUTO_INC_DEC rather than components that defined AUTO_INC_DEC.
|
3391 |
|
|
df-problems.c (df_ru_bb_local_compute_process_def,
|
3392 |
|
|
df_lr_bb_local_compute, df_lr_simulate_artificial_refs_at_end,
|
3393 |
|
|
df_lr_simulate_one_insn, df_chain_create_bb,
|
3394 |
|
|
df_create_unused_note): Added DF_REF_CONDITIONAL to keep
|
3395 |
|
|
conditional defs from being added to kill sets.
|
3396 |
|
|
dce.c (dce_process_block): Ditto.
|
3397 |
|
|
Makefile.in (auto-inc-dec.c): New file.
|
3398 |
|
|
basic-block.h: Preparation to get rid of PROP_AUTO_INC flag.
|
3399 |
|
|
passes.c (init_optimization_passes): Added pass_inc_dec.
|
3400 |
|
|
config/rs6000/rs6000.c (rs6000_legitimate_address): Added code for
|
3401 |
|
|
PRE_MODIFY.
|
3402 |
|
|
(rs6000_mode_dependent_address, print_operand): Added case for pre_modify.
|
3403 |
|
|
config/rs6000/rs6000.h (HAVE_PRE_MODIFY_DISP,
|
3404 |
|
|
HAVE_PRE_MODIFY_REG): Added flags.
|
3405 |
|
|
reload1 (eliminate_regs_1, elimination_effects): Added cases for
|
3406 |
|
|
PRE/POST_MODIFY.
|
3407 |
|
|
|
3408 |
|
|
|
3409 |
|
|
|
3410 |
|
|
2006-05-27 Steven Bosscher
|
3411 |
|
|
|
3412 |
|
|
* reorg.c (dbr_schedule): Fix df_ur_add_problem calls.
|
3413 |
|
|
|
3414 |
|
|
2006-05-24 Kenneth Zadeck
|
3415 |
|
|
|
3416 |
|
|
* df-scan.c (df_scan_free_internal, df_grow_reg_info,
|
3417 |
|
|
df_reg_chain_unlink, df_ref_remove,
|
3418 |
|
|
df_insn_create_insn_record, df_insn_refs_delete,
|
3419 |
|
|
df_ref_create_structure, df_ref_record, df_mark_reg,
|
3420 |
|
|
df_record_entry_block_defs, df_record_exit_block_uses):
|
3421 |
|
|
Formatting fixes.
|
3422 |
|
|
(df_get_artificial_defs): Spelling fixes.
|
3423 |
|
|
(df_ref_record, df_def_record_1, df_uses_record):
|
3424 |
|
|
Fix the way that subregs are processed.
|
3425 |
|
|
(df_defs_record, df_def_record_1, df_insn_refs_record):
|
3426 |
|
|
Split DF_REF_CLOBBER into two cases.
|
3427 |
|
|
* df-core.c (df_analyze): Added comments
|
3428 |
|
|
(df_simple_iterative_dataflow): New function.
|
3429 |
|
|
(df_dump): Formatting fixes.
|
3430 |
|
|
* df.h (DF_REF_CLOBBER): Deleted.
|
3431 |
|
|
(DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New enums.
|
3432 |
|
|
(df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
|
3433 |
|
|
df_urec_bb_info): Added comments.
|
3434 |
|
|
(df_simple_iterative_dataflow): New function.
|
3435 |
|
|
* df-problems.c (df_print_bb_index, df_set_dead_notes_for_mw):
|
3436 |
|
|
Added comments.
|
3437 |
|
|
(df_ru_alloc, df_ru_local_compute, df_ru_confluence_n,
|
3438 |
|
|
df_ru_free, df_ru_dump, df_rd_alloc,
|
3439 |
|
|
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
|
3440 |
|
|
df_rd_local_compute, df_rd_confluence_n, df_rd_free,
|
3441 |
|
|
df_rd_dump, df_lr_bb_local_compute, df_lr_bb_local_compute,
|
3442 |
|
|
df_lr_local_compute, df_ur_alloc, df_ur_dump, df_urec_alloc,
|
3443 |
|
|
df_urec_bb_local_compute, df_urec_local_compute,
|
3444 |
|
|
df_urec_local_finalize, df_urec_dump, df_chain_create_bb,
|
3445 |
|
|
df_create_unused_note, df_ri_bb_compute): Formatting fixes.
|
3446 |
|
|
(df_ru_bb_local_compute_process_def): Do not clear gen set.
|
3447 |
|
|
(df_ru_bb_local_compute): Reorder processing insn.
|
3448 |
|
|
(df_ru_transfer_function): Fixed incorrect use of bitmaps.
|
3449 |
|
|
(df_ru_dump, df_rd_dump, df_chains_dump): Added debugging code.
|
3450 |
|
|
(df_lr_bb_local_compute, df_lr_simulate_one_insn,
|
3451 |
|
|
df_ur_bb_local_compute, df_chain_create_bb,
|
3452 |
|
|
df_create_unused_note, df_ri_bb_compute): Split
|
3453 |
|
|
DF_REF_CLOBBER into two cases.
|
3454 |
|
|
* ddg.c (add_deps_for_def): Changed to use ru info.
|
3455 |
|
|
* modulo-sched.c (sms_schedule): Added debugging.
|
3456 |
|
|
* dce.c (rs_dflow, df_problem reaching_stores_problem): Deleted.
|
3457 |
|
|
(init_rs_dflow, calculate_reaching_stores): Move dataflow to new
|
3458 |
|
|
df function.
|
3459 |
|
|
|
3460 |
|
|
2006-05-23 Kenneth Zadeck
|
3461 |
|
|
|
3462 |
|
|
* fwprop.c (local_ref_killed_between_p): Rearranged definition.
|
3463 |
|
|
|
3464 |
|
|
2006-05-23 Steven Bosscher
|
3465 |
|
|
|
3466 |
|
|
* rtlanal.c (find_occurrence): Move to fwprop.c.
|
3467 |
|
|
* rtl.h (find_occurrence): Remove prototype.
|
3468 |
|
|
* fwprop.c (can_simplify_addr): Fix check for frame based addresses.
|
3469 |
|
|
(should_replace_address): Update comment before this function.
|
3470 |
|
|
(local_ref_killed_between_p): Don't choque on NOTEs.
|
3471 |
|
|
(use_killed_between): Handle the exceptional case that a DEF does
|
3472 |
|
|
not dominate one of its uses.
|
3473 |
|
|
(varying_mem_p): Simplify return type.
|
3474 |
|
|
(all_uses_available_at): Clean up unnecessary single_set calls.
|
3475 |
|
|
(find_occurrence_callback, find_occurrence): New.
|
3476 |
|
|
(subst): Rename to try_fwprop_subst.
|
3477 |
|
|
(forward_propagate_subreg): Update caller.
|
3478 |
|
|
(forward_propagate_and_simplify): Likewise.
|
3479 |
|
|
(fwprop_init): Find loops before computing data flow info.
|
3480 |
|
|
(fwprop_done): Call cleanup_cfg without CLEANUP_PRE_LOOP. Free
|
3481 |
|
|
loop tree before cleanup_cfg.
|
3482 |
|
|
|
3483 |
|
|
2006-05-14 Kenneth Zadeck
|
3484 |
|
|
|
3485 |
|
|
* regclass.c (init_subregs_of_mode): Created dummy version
|
3486 |
|
|
when CANNOT_CHANGE_MODE_CLASS is undefined.
|
3487 |
|
|
|
3488 |
|
|
2006-05-13 Steven Bosscher
|
3489 |
|
|
|
3490 |
|
|
* df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
|
3491 |
|
|
information attached to non-INSNs such as NOTEs.
|
3492 |
|
|
(df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
|
3493 |
|
|
|
3494 |
|
|
2006-05-05 Kenneth Zadeck
|
3495 |
|
|
|
3496 |
|
|
* haifa-sched.c (glat_size): New variable.
|
3497 |
|
|
(sched-init, extend_bb): Properly initialized glat_start and
|
3498 |
|
|
glat_end.
|
3499 |
|
|
(free_glat): Fixed double free of bitmaps.
|
3500 |
|
|
* df-scan.c (df_scan_get_bb_info, df_scan_set_bb_info): Added
|
3501 |
|
|
assertions.
|
3502 |
|
|
* df-problems.c (df_ru_get_bb_info, df_ru_set_bb_info,
|
3503 |
|
|
df_rd_get_bb_info, df_rd_set_bb_info, df_lr_get_bb_info,
|
3504 |
|
|
df_lr_set_bb_info, df_ur_get_bb_info, df_ur_set_bb_info,
|
3505 |
|
|
df_urec_get_bb_info, df_urec_set_bb_info): Ditto.
|
3506 |
|
|
|
3507 |
|
|
2006-04-25 Kenneth Zadeck
|
3508 |
|
|
|
3509 |
|
|
* flow.c (rest_of_handle_life): Removed unnecessary code.
|
3510 |
|
|
* df-scan.c (df_scan_free_internal, df_scan_free): Fixed
|
3511 |
|
|
storage leak.
|
3512 |
|
|
* df-core.c (df_delete_basic_block): Removed dangling pointer.
|
3513 |
|
|
* mode-switching.c (optimize_move_switching): Moved creation of df
|
3514 |
|
|
instance to avoid storage leak.
|
3515 |
|
|
* ifcvt.c (if_convert): Fixed storage leak.
|
3516 |
|
|
* dce.c (mark_insn,
|
3517 |
|
|
rest_of_handle_dce): Removed old way of processing libcalls.
|
3518 |
|
|
(libcall_matches_p, mark_libcall_insns): Removed.
|
3519 |
|
|
(mark_libcall): New function.
|
3520 |
|
|
(mark_reg_dependencies, dce_process_block): New code to check for
|
3521 |
|
|
libcalls.
|
3522 |
|
|
(fast_dce): Fixed storage leak.
|
3523 |
|
|
|
3524 |
|
|
2006-04-24 Kenneth Zadeck
|
3525 |
|
|
|
3526 |
|
|
* sched-ebb.c (schedule_ebbs): Updated register lifetime info.
|
3527 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
3528 |
|
|
* sched-reg.c (schedule_insns): Ditto.
|
3529 |
|
|
* regmove.c (regmove-optimize): Ditto.
|
3530 |
|
|
* tree.h (setjmp_vars_warning, setjmp_args_warning): Removed.
|
3531 |
|
|
(generate_setjmp_warning): Added.
|
3532 |
|
|
* tree-pass.h (pass_subregs_of_mode_init): Added.
|
3533 |
|
|
* flow.c (life_analysis): Moved parts to other passes.
|
3534 |
|
|
(regno_clobbered_at_setjmp):Moved setjmp warning to local-alloc.
|
3535 |
|
|
(rest_of_handle_life): Ditto.
|
3536 |
|
|
* df-scan.c (df_ref_record): Reformatted comment.
|
3537 |
|
|
* ifcvt.c (rest_of_handle_if_conversion): Removed last bit of
|
3538 |
|
|
rtl_df scafolding.
|
3539 |
|
|
* local-alloc.c (local_alloc, no_equiv, block_alloc): Changed to
|
3540 |
|
|
use same instance of df as global_alloc,
|
3541 |
|
|
(rest_of_handle_local_alloc): Now also produces setjmp warnings.
|
3542 |
|
|
* function.c (regno_clobbered_at_setjmp): Moved from flow.
|
3543 |
|
|
(setjmp_vars_warning, setjmp_args_warning): Added parms to use
|
3544 |
|
|
passed in df instance.
|
3545 |
|
|
(generate_setjmp_warnings): New function.
|
3546 |
|
|
* df.h (DF_RI_SETJMP): New constant.
|
3547 |
|
|
(df_ri_get_setjmp_crosses): New function.
|
3548 |
|
|
* df-problems.c (df_ri_problem_data, setjmp_crosses): New
|
3549 |
|
|
variables.
|
3550 |
|
|
(df_ri_alloc, df_ri_bb_compute, df_ri_bb_compute, df_ri_compute):
|
3551 |
|
|
Changed variables live across setjmp computation.
|
3552 |
|
|
(df_ri_get_setjmp_crosses): New function.
|
3553 |
|
|
* regclass.c (init_subregs_of_mode): Changed return.
|
3554 |
|
|
(gate_subregs_of_mode_init, pass_subregs_of_mode_init): New.
|
3555 |
|
|
* rtl.h (init_subregs_of_mode): Removed.
|
3556 |
|
|
* integrate.c (allocate_initial_values): Removed incorrect parm
|
3557 |
|
|
attribute and changed instance of df used.
|
3558 |
|
|
* output.h (regno_clobbered_at_setjmp): Removed.
|
3559 |
|
|
* stack-ptr-mod.c: Fixed comment.
|
3560 |
|
|
* Makefile.in (regclass.o): Added tree-pass.h.
|
3561 |
|
|
* basic-block.h (safe_insert_insn_on_edge): Deleted.
|
3562 |
|
|
* passes.c (init_optimization_passes): Added
|
3563 |
|
|
pass_subregs_of_mode_init.
|
3564 |
|
|
* cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Deleted.
|
3565 |
|
|
* rtl-profile.c: Removed.
|
3566 |
|
|
|
3567 |
|
|
2006-04-21 Kenneth Zadeck
|
3568 |
|
|
|
3569 |
|
|
* tree-pass.h (pass_stack_ptr_mod, pass_initialize_subregs,
|
3570 |
|
|
pass_reset_df): New.
|
3571 |
|
|
* flow.c (notice_stack_pointer_modification_1,
|
3572 |
|
|
notice_stack_pointer_modification, find_regno_partial_param,
|
3573 |
|
|
find_regno_partial, initialize_uninitialized_subregs): Moved to
|
3574 |
|
|
separate passes in separate files.
|
3575 |
|
|
(life_analysis): Removed call to notice_stack_pointer_modification.
|
3576 |
|
|
(rest_of_handle_life): Removed call to initialize_uninitialized_subargs.
|
3577 |
|
|
* df-core.c (reset_df, pass_reset_df): New.
|
3578 |
|
|
* Makefile.in (stack-ptr-mod.o, subregs-init.o): New.
|
3579 |
|
|
* passes.c (pass_stack_ptr_mod, pass_initialize_subregs,
|
3580 |
|
|
pass_reset_df): New passes.
|
3581 |
|
|
* subregs-init.c: New file that contains separate pass for
|
3582 |
|
|
initialize_uninitialized_subargs.
|
3583 |
|
|
* stack-pointer-mod.c: New file that contains separate pass for
|
3584 |
|
|
notice_stack_pointer_modification.
|
3585 |
|
|
|
3586 |
|
|
2006-04-19 Kenneth Zadeck
|
3587 |
|
|
|
3588 |
|
|
* ifcvt.c (rest_of_handle_if_after_combine): Removed flow
|
3589 |
|
|
scaffolding.
|
3590 |
|
|
* passes.c (init_optimization_passes): Moved clear_df to after
|
3591 |
|
|
combine and changed two expensive dce passes into a dse and fast
|
3592 |
|
|
dce pass.
|
3593 |
|
|
|
3594 |
|
|
2006-04-18 Kenneth Zadeck
|
3595 |
|
|
|
3596 |
|
|
* mode-switching.c (optimize_mode_switching): Created local
|
3597 |
|
|
instance of df and removed references to flow.
|
3598 |
|
|
* regmove.c (mark_flags_life_zones, regmove_optimize): Ditto.
|
3599 |
|
|
* global.c (global_alloc, rest_of_handle_global_alloc): Reused
|
3600 |
|
|
instance of df created in local alloc.
|
3601 |
|
|
* local-alloc.c (rest_of_handle_local_alloc): Create instance of
|
3602 |
|
|
ra_df used by all register allocation.
|
3603 |
|
|
* bb-reorder.c (fix_crossing_conditional_branches): Removed code
|
3604 |
|
|
to keep dataflow up to date.
|
3605 |
|
|
* Makefile.in (bb-reorder.o): Removed ref to DF_H.
|
3606 |
|
|
* passes.c (init_optimization_passes): Meved clear_df to before
|
3607 |
|
|
partition_blocks.
|
3608 |
|
|
|
3609 |
|
|
2006-04-17 Kenneth Zadeck
|
3610 |
|
|
|
3611 |
|
|
* tree-pass.h (pass_recompute_reg_usage): Deleted. flow.c
|
3612 |
|
|
(pass_recompute_reg_usage, recompute_reg_usage): Deleted. *
|
3613 |
|
|
sched-ebb.c (begin_schedule_ready, schedule_ebb,
|
3614 |
|
|
begin_schedule_ready, schedule_ebb, schedule_block): Threaded
|
3615 |
|
|
local instance of df.
|
3616 |
|
|
(schedule_ebbs): Created local instance of df.
|
3617 |
|
|
* haifa-sched.c (schedule_block, sched_init, sched_finish,
|
3618 |
|
|
generate_recovery_code, begin_speculative_block,
|
3619 |
|
|
add_to_speculative_block, init_before_recovery,
|
3620 |
|
|
create_recovery_block, create_check_block_twin, init_glat,
|
3621 |
|
|
init_glat1): Threaded local instance of df.
|
3622 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
3623 |
|
|
(rest_of_handle_sms): Removed unnecessary update of flow info.
|
3624 |
|
|
* sched-int.h (df.h): Now includes this.
|
3625 |
|
|
(schedule_block, sched_init, sched_finish, add_block): Added df
|
3626 |
|
|
parm.
|
3627 |
|
|
* sched-rgn.c (begin_schedule_ready, schedule_region,
|
3628 |
|
|
schedule_insns): Threaded local instance of df.
|
3629 |
|
|
(schedule_insns): Removed unnecessary update of flow info.
|
3630 |
|
|
* Makefile.in (SCHED_INT_H): Added DF_H.
|
3631 |
|
|
(ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
|
3632 |
|
|
sched-ebb.o): Removed DF_H.
|
3633 |
|
|
* ddg.c (build_inter_loop_deps): Swapped parms.
|
3634 |
|
|
(create_ddg): Swapped parms for call.
|
3635 |
|
|
* passes.c (init_optimization_passes): Removed dce and
|
3636 |
|
|
recompute_reg_use pass and moved clear_df to before first
|
3637 |
|
|
schedulers.
|
3638 |
|
|
|
3639 |
|
|
2006-04-16 Kenneth Zadeck
|
3640 |
|
|
|
3641 |
|
|
* df.h (shared_df): Removed.
|
3642 |
|
|
(ra_df): New.
|
3643 |
|
|
* core.c (shared_df): Removed.
|
3644 |
|
|
(ra_df): New.
|
3645 |
|
|
* postreload.c (reload_combine): Changed to use ra_df.
|
3646 |
|
|
* reload.c (push_reload, find_dummy_reload): Ditto.
|
3647 |
|
|
* global.c (global_alloc, global_conflicts, mark_elimination,
|
3648 |
|
|
build_insn_chain, rest_of_handle_global_alloc): Ditto.
|
3649 |
|
|
* reload1.c (compute_use_by_pseudos, reload): Ditto.
|
3650 |
|
|
* local-alloc.c (local_alloc, block_alloc): Created local instance
|
3651 |
|
|
of df.
|
3652 |
|
|
* passes.c (init_optimization_passes): Moved clear_df to before
|
3653 |
|
|
register allocators.
|
3654 |
|
|
* tree-pass.h (pass_partition_blocks): Removed redundant
|
3655 |
|
|
copy.
|
3656 |
|
|
|
3657 |
|
|
2006-04-16 Kenneth Zadeck
|
3658 |
|
|
|
3659 |
|
|
* tree-pass.h (pass_reset_df_after_reload): Removed.
|
3660 |
|
|
* df-core.c (reset_df_after_reload, pass_reset_df_after_reload):
|
3661 |
|
|
Removed.
|
3662 |
|
|
* function.c (prologue_epilogue_df): New global.
|
3663 |
|
|
(rtx keep_stack_depressed, thread_prologue_and_epilogue_insns):
|
3664 |
|
|
Unthreaded local version of df and replaced with
|
3665 |
|
|
prologue_epilogue_df.
|
3666 |
|
|
* rtl.h (prologue_epilogue_df): New.
|
3667 |
|
|
* passes.c (init_optimization_passes): Removed all uses of flow
|
3668 |
|
|
after register allocation.
|
3669 |
|
|
* config/i386/i386.c (ix86_eax_live_at_start_p): Replaced use of
|
3670 |
|
|
flow with prologue_epilogue_df.
|
3671 |
|
|
|
3672 |
|
|
2006-04-15 Kenneth Zadeck
|
3673 |
|
|
|
3674 |
|
|
* tree-pass.h (pass_flow2): Renamed to
|
3675 |
|
|
pass_thread_prologue_and_epilogue.
|
3676 |
|
|
* passes.c (pass_flow2): Ditto.
|
3677 |
|
|
* final.c (rest_of_clean_state): Removed flow2_completed.
|
3678 |
|
|
* config/i386/i386.md: Ditto.
|
3679 |
|
|
* config/sh/sh.md: Ditto.
|
3680 |
|
|
* config/mips/mips.md: Ditto.
|
3681 |
|
|
* config/h8300/h8300.md: Ditto.
|
3682 |
|
|
* flow.c: Ditto.
|
3683 |
|
|
(rest_of_handle_flow2): Moved to function.c as
|
3684 |
|
|
rest_of_handle_thread_prologue_and_epilogue.
|
3685 |
|
|
* timevar.def (TV_FLOW2): Renamed to
|
3686 |
|
|
TV_THREAD_PROLOGUE_AND_EPILOGUE.
|
3687 |
|
|
* function.c (keep_stack_depressed): Added df parameter.
|
3688 |
|
|
(thread_prologue_and_epilogue_insns): Made local function and
|
3689 |
|
|
removed unused parameter. Added local instance of df.
|
3690 |
|
|
(rest_of_handle_thread_prologue_and_epilogue): New function
|
3691 |
|
|
renamed from flow.c.
|
3692 |
|
|
(pass_thread_prologue_and_epilogue): New pass.
|
3693 |
|
|
* rtl.h (flow2_completed, thread_prologue_and_epilogue_insns):
|
3694 |
|
|
Removed.
|
3695 |
|
|
* df-problems.c (df_ru_get_bb_info, df_rd_get_bb_info,
|
3696 |
|
|
df_lr_get_bb_info, df_ur_get_bb_info, df_urec_get_bb_info): Added
|
3697 |
|
|
check.
|
3698 |
|
|
* Makefile.in (function.o): Added timevar.h.
|
3699 |
|
|
|
3700 |
|
|
2006-04-13 Kenneth Zadeck
|
3701 |
|
|
|
3702 |
|
|
* rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq,
|
3703 |
|
|
recompute_gain_for_pattern_seq, clear_regs_live_in_seq,
|
3704 |
|
|
recompute_gain, split_blocks_after_seqs, split_pattern_seq,
|
3705 |
|
|
erase_matching_seqs, abstract_best_seq, rtl_seqabstr): Threaded
|
3706 |
|
|
local instance of df to replace all references to flow.
|
3707 |
|
|
(gate_rtl_seqabstr): Removed unnecessary calls.
|
3708 |
|
|
* passes.c (init_optimization_passes): Moved clear_df before
|
3709 |
|
|
rtl_seqabstr. Removed some expensive calls to dce.
|
3710 |
|
|
* tree-pass.h (pass_fast_rtl_dce): New.
|
3711 |
|
|
* regrename.c (gate_handle_regrename): Update call to pass.
|
3712 |
|
|
* sched-rgn.c (rest_of_handle_sched2): Remove outdated calls.
|
3713 |
|
|
|
3714 |
|
|
2006-04-13 Kenneth Zadeck
|
3715 |
|
|
|
3716 |
|
|
* regmove.c (rest_of_handle_stack_adjustments): Removed all
|
3717 |
|
|
references to flow.c and replaced with df.
|
3718 |
|
|
* passes.c (init_optimization_passes): Moved clear_df before
|
3719 |
|
|
pass_stack_adjustments.
|
3720 |
|
|
|
3721 |
|
|
2006-04-12 Kenneth Zadeck
|
3722 |
|
|
|
3723 |
|
|
* recog.c (delete_insn_chain_and_dflow): New function.
|
3724 |
|
|
(peephole2_optimize): Replaced all flow references with df. Added
|
3725 |
|
|
local instance of df.
|
3726 |
|
|
* passes.c (init_optimization_passes): Moved clear_df before peephole2.
|
3727 |
|
|
|
3728 |
|
|
2006-04-11 Kenneth Zadeck
|
3729 |
|
|
|
3730 |
|
|
* ifcvt.c (cond_exec_process_if_block, merge_if_block,
|
3731 |
|
|
noce_process_if_block, cond_move_process_if_block,
|
3732 |
|
|
process_if_block, find_if_header, find_cond_trap, find_if_case_1,
|
3733 |
|
|
find_if_case_2, dead_or_predicable): Threaded local copy of df
|
3734 |
|
|
thru the call stack.
|
3735 |
|
|
(merge_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
|
3736 |
|
|
dead_or_predicable): Added code to update df in place.
|
3737 |
|
|
(if_convert): Removed parameter concerned with correct dataflow
|
3738 |
|
|
info, it now always is. Created instance of df. Removed code to
|
3739 |
|
|
update old flow info.
|
3740 |
|
|
(rest_of_handle_if_after_reload): Removed unnecessary calls to
|
3741 |
|
|
cleanup_cfg.
|
3742 |
|
|
* passes.c (init_optimization_passes): Moved clear_df to before
|
3743 |
|
|
last ifconvert. Renamed pass_cprop to pass_cprop_hardreg.
|
3744 |
|
|
* regrename.c (rest_of_handle_cprop): Renamed pass_cprop to
|
3745 |
|
|
pass_cprop_hardreg.
|
3746 |
|
|
* tree-pass.h: Renamed cprop to cprop_hardreg.
|
3747 |
|
|
|
3748 |
|
|
2006-04-11 Kenneth Zadeck
|
3749 |
|
|
|
3750 |
|
|
* sched-ebb.c (schedule_ebbs): Removed code to update dataflow
|
3751 |
|
|
after scheduling and removed unused parm from
|
3752 |
|
|
reposition_prologue_and_epilogue_notes.
|
3753 |
|
|
* sched-rgn.c (schedule_insns): Ditto.
|
3754 |
|
|
(rest_of_handle_sched): Added temp hack to rebuild flow based dataflow
|
3755 |
|
|
until flow is permanently removed.
|
3756 |
|
|
* haifa-sched.c (init_glat): Modified to create glat from df info.
|
3757 |
|
|
(attach_life_info, attach_life_info1, check_reg_live): Removed.
|
3758 |
|
|
(free_glat): Now cleans up df.
|
3759 |
|
|
* modulo-sched.c (compute_jump_reg_dependencies): Removed df parm.
|
3760 |
|
|
* ifcvt.c (rest_of_handle_if_conversion): Added code to clean up
|
3761 |
|
|
flow based reg_deaths after first call to ifconvert.
|
3762 |
|
|
* function.c (reposition_prologue_and_epilogue_notes): Removed
|
3763 |
|
|
unused parm.
|
3764 |
|
|
* rtl.h (reposition_prologue_and_epilogue_notes): Ditto.
|
3765 |
|
|
* sched-int.h (check_reg_live): Removed.
|
3766 |
|
|
|
3767 |
|
|
2006-04-10 Kenneth Zadeck
|
3768 |
|
|
|
3769 |
|
|
* df-core.c (reset_df_after_reload, clear_df): Added return to
|
3770 |
|
|
make compatible with pass manager.
|
3771 |
|
|
* dce.c (rest_of_handle_dce, rest_of_handle_fast_dce,
|
3772 |
|
|
rest_of_handle_dse): Ditto.
|
3773 |
|
|
|
3774 |
|
|
2006-04-09 Kenneth Zadeck
|
3775 |
|
|
|
3776 |
|
|
* regrename.c (merge_overlapping_regs, regrename_optimize):
|
3777 |
|
|
Threaded private instance of df.
|
3778 |
|
|
(regrename_optimize): Created private instance of df, removed
|
3779 |
|
|
all references or flow.
|
3780 |
|
|
(copyprop_hardreg_forward): Removed all references to flow.
|
3781 |
|
|
(gate_handle_regrename): Split reg rename and cprop into separate
|
3782 |
|
|
passes.
|
3783 |
|
|
(gate_handle_cprop): New function.
|
3784 |
|
|
(pass_cprop): New pass structure.
|
3785 |
|
|
* tree-pass.h (pass_cprop): New pass structure.
|
3786 |
|
|
* passes.c (init_optimization_passes): Added cprop pass and
|
3787 |
|
|
moved clear_df pass closer to beginning.
|
3788 |
|
|
|
3789 |
|
|
2006-04-08 Kenneth Zadeck
|
3790 |
|
|
|
3791 |
|
|
* tree-pass.h (pass_split_after_reload, pass_branch_target_load_optimize1
|
3792 |
|
|
pass_branch_target_load_optimize2): Added.
|
3793 |
|
|
(pass_branch_target_load_optimize): Deleted.
|
3794 |
|
|
* flow.c (rest_of_handle_flow2): Split the calls to split_all_insns and
|
3795 |
|
|
branch_target_load_optimize into their own passes.
|
3796 |
|
|
* passes.c (init_optimization_passes): Ditto.
|
3797 |
|
|
(init_optimization_passes): Moved clear_df pass to before
|
3798 |
|
|
second branch_target_load_optimize pass.
|
3799 |
|
|
* bt-load (compute_defs_uses_and_gen, build_btr_def_use_webs,
|
3800 |
|
|
migrate_btr_defs): Threaded private copy of df into these functions.
|
3801 |
|
|
(branch_target_load_optimize): Made private and add local
|
3802 |
|
|
instance of df. Removed all references to flow.
|
3803 |
|
|
(rest_of_handle_branch_target_load_optimize1): New function.
|
3804 |
|
|
(rest_of_handle_branch_target_load_optimize): Renamed to
|
3805 |
|
|
rest_of_handle_branch_target_load_optimize2.
|
3806 |
|
|
rtl.h (branch_target_load_optimize): Removed.
|
3807 |
|
|
|
3808 |
|
|
2006-04-08 Kenneth Zadeck
|
3809 |
|
|
|
3810 |
|
|
* sched-ebb.c (init_ready_list, can_schedule_ready_p, new_ready,
|
3811 |
|
|
compute_jump_reg_dependencies, schedule_ebb, sched_analyze,
|
3812 |
|
|
schedule_block): Changed to pass instance of df.
|
3813 |
|
|
(compute_jump_reg_dependencies): Changed to use local instance
|
3814 |
|
|
of dataflow.
|
3815 |
|
|
* ddg.c (build_intra_loop_deps, sched_analyze,
|
3816 |
|
|
build_intra_loop_deps): Changed to pass instance of df.
|
3817 |
|
|
* ddg.h: added forward reference to struct df.
|
3818 |
|
|
* haifa-sched.c (schedule_insns, schedule_insn,
|
3819 |
|
|
schedule_block): Changed to pass instance of df.
|
3820 |
|
|
* modulo-sched (compute_jump_reg_dependencies): Ditto.
|
3821 |
|
|
(sms_schedule): Added call to do dce when stated.
|
3822 |
|
|
* sched-deps.c (sched_analyze_insn, sched_analyze):
|
3823 |
|
|
Changed to pass instance of df.
|
3824 |
|
|
* rtl.h (schedule_insns, schedule_ebbs): Ditto.
|
3825 |
|
|
* sched-int.h (init_ready_list, can_schedule_ready_p, new_ready,
|
3826 |
|
|
compute_jump_reg_dependencies, sched_analyze, schedule_block):
|
3827 |
|
|
Ditto.
|
3828 |
|
|
* sched-rgn.c (check_live_1, update_live_1, check_live,
|
3829 |
|
|
update_live, init_ready_list, can_schedule_ready_p, new_ready,
|
3830 |
|
|
compute_jump_reg_dependencies, compute_block_backward_dependences,
|
3831 |
|
|
schedule_region, schedule_insns): Ditto.
|
3832 |
|
|
(schedule_insns): Removed call to update_life_info when finished.
|
3833 |
|
|
(rest_of_handle_sched, rest_of_handle_sched2): Creates local
|
3834 |
|
|
instance of df.
|
3835 |
|
|
* passes.c (init_optimization_passes): moved clear_df pass
|
3836 |
|
|
earlier.
|
3837 |
|
|
* Makefile.in (df-core.o): Added except.h and dce.h
|
3838 |
|
|
(modulo-sched.o): Added DF_H.
|
3839 |
|
|
* recog.c (split_all_insns): Removed old code that was used to
|
3840 |
|
|
update dataflow.
|
3841 |
|
|
* reg-stack.c (rest_of_handle_stack_regs): Removed ifdefed out code.
|
3842 |
|
|
|
3843 |
|
|
2006-04-07 Kenneth Zadeck
|
3844 |
|
|
|
3845 |
|
|
* recog.c (split_all_insns): Removed parameter and code to
|
3846 |
|
|
update dataflow.
|
3847 |
|
|
* sched-rgn.c (rest_of_handle_sched2): Removed parm to
|
3848 |
|
|
split_all_insns.
|
3849 |
|
|
* flow.c (rest_of_handle_flow2): Ditto.
|
3850 |
|
|
(rest_of_handle_split_all_insns): Added call to update old
|
3851 |
|
|
dataflow after this pass.
|
3852 |
|
|
(rest_of_handle_split_after_reload,
|
3853 |
|
|
rest_of_handle_split_before_regstack): New function.
|
3854 |
|
|
(pass_split_after_reload): New structure.
|
3855 |
|
|
* rtl.h (split_all_insns): Removed param.
|
3856 |
|
|
* bb-reorder.c (rest_of_handle_reorder_blocks): Removed
|
3857 |
|
|
references to flow.
|
3858 |
|
|
* reg-stack.c (subst_stack_regs_pat): Removed unnecessary
|
3859 |
|
|
assertion.
|
3860 |
|
|
|
3861 |
|
|
2006-04-07 Daniel Berlin
|
3862 |
|
|
Kenneth Zadeck
|
3863 |
|
|
|
3864 |
|
|
* regoc.c (dbr_schedule): Added parm to call to df_lr_add_problem.
|
3865 |
|
|
* ifcvt.c (if_convert): Ditto.
|
3866 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
3867 |
|
|
* reg-stack.c (reg_to_stack): Ditto.
|
3868 |
|
|
* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
|
3869 |
|
|
(rest_of_handle_global_alloc): Removed call to df_set_state.
|
3870 |
|
|
* basic_block.h (clear_reg_deaths): New function.
|
3871 |
|
|
* flow.c: (clear_reg_deaths): New function.
|
3872 |
|
|
(rest_of_handle_life): Added parm to call to df_lr_add_problem and
|
3873 |
|
|
df_ur_add_problem.
|
3874 |
|
|
* df-scan.c (df_scan_free_internal): Added code to clear new
|
3875 |
|
|
bit vectors.
|
3876 |
|
|
(df_scan_alloc): Added extra parameter and code to initialize
|
3877 |
|
|
new bit vectors.
|
3878 |
|
|
(df_scan_dump): Added code to dump new bit vectors.
|
3879 |
|
|
(df_problem problem_SCAN): Added extra field.
|
3880 |
|
|
(df_scan_add_problem): Added flags parameter.
|
3881 |
|
|
(df_rescan_blocks): Added code to remove deleted blocks from
|
3882 |
|
|
bitmap and extra parm to call to df_scan_alloc.
|
3883 |
|
|
(df_insn_create_insn_record): Removed return value.
|
3884 |
|
|
(df_set_state): Removed function.
|
3885 |
|
|
(df_ref_record, df_bb_refs_record, df_record_entry_block_defs,
|
3886 |
|
|
df_record_exit_block_uses): Changed the way flags are processed.
|
3887 |
|
|
(df_bb_refs_record, df_refs_record, df_record_exit_block_uses):
|
3888 |
|
|
Restructured scanning to fixed hard regs so bitmaps could be
|
3889 |
|
|
recorded for later use.
|
3890 |
|
|
(df_has_eh_preds): Now public.
|
3891 |
|
|
* df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
|
3892 |
|
|
df_delete_basic_block): New function.
|
3893 |
|
|
(df_init): Changed location of flags.
|
3894 |
|
|
(df_add_problem): Added flags parameter and the way flags are
|
3895 |
|
|
processed.
|
3896 |
|
|
(df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
|
3897 |
|
|
debug_df_chain): Improved debugging output.
|
3898 |
|
|
(clear_df): Added call to clear_reg_deaths.
|
3899 |
|
|
* df.h: Some reordering to remove forward references.
|
3900 |
|
|
(dataflow.flags): New field.
|
3901 |
|
|
(df.flag): Deleted field.
|
3902 |
|
|
(df_alloc_function): Added additional bitmap parameter.
|
3903 |
|
|
(df_dependent_problem_function): New type.
|
3904 |
|
|
(df_problem.changeable_flags): New field.
|
3905 |
|
|
(df_ref_flags.DF_SCAN_INITIAL,
|
3906 |
|
|
DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
|
3907 |
|
|
(df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
|
3908 |
|
|
parameter.
|
3909 |
|
|
(df_add_problem, df_ru_add_problem, df_rd_add_problem,
|
3910 |
|
|
df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
|
3911 |
|
|
df_ri_add_problem, df_scan_add_problem): Added flags parameter.
|
3912 |
|
|
(df_set_state): Removed function.
|
3913 |
|
|
(df_set_flags, df_clear_flags, df_delete_basic_block, df_has_eh_preds) New functions.
|
3914 |
|
|
* df-problems.c (df_get_dependent_problem): Deleted function.
|
3915 |
|
|
(df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
|
3916 |
|
|
df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
|
3917 |
|
|
parameter.
|
3918 |
|
|
(df_ru_alloc, df_rd_alloc): Now resets all blocks.
|
3919 |
|
|
(df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
|
3920 |
|
|
df_chains_dump): Fixed crash if problem was never run.
|
3921 |
|
|
(df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
|
3922 |
|
|
df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
|
3923 |
|
|
df_ri_add_problem): Processes flags in uniform manner.
|
3924 |
|
|
(df_lr_bb_local_compute): Fixed case to account for return value
|
3925 |
|
|
correctly.
|
3926 |
|
|
(df_lr_bb_local_compute): Changed processing of exit block.
|
3927 |
|
|
(df_lr_transfer_function): Added hook to call dce.
|
3928 |
|
|
(df_lr_free): Added lr problem data.
|
3929 |
|
|
(df_set_notes_for_mw, df_reg_lifetime): Removed function.
|
3930 |
|
|
(df_lr_simulate_artificial_refs_at_end, df_lr_simulate_one_insn,
|
3931 |
|
|
df_kill_notes, df_set_unused_notes_for_mw, df_set_dead_notes_for_mw):
|
3932 |
|
|
New function.
|
3933 |
|
|
(df_ri_alloc, df_ri_bb_compute, df_create_unused_note,
|
3934 |
|
|
df_ri_bb_compute, df_ri_compute, df_ri_free, df_ri_add_problem):
|
3935 |
|
|
Added functionality to compute register information.
|
3936 |
|
|
dce.c (deletable_insn_p): Cannot delete PREFETCHes.
|
3937 |
|
|
(delete_unmarked_insns): Also delete noop moves as well as support for
|
3938 |
|
|
calling dce from df.
|
3939 |
|
|
(prescan_insns_for_dce, rest_of_handle_dce, end_fast_dce,
|
3940 |
|
|
dce_process_block, rest_of_handle_fast_dce,
|
3941 |
|
|
rest_of_handle_dse): Restructured to handle being directly called from
|
3942 |
|
|
df.
|
3943 |
|
|
|
3944 |
|
|
|
3945 |
|
|
2006-03-14 Kenneth Zadeck
|
3946 |
|
|
|
3947 |
|
|
* tree-pass.h: Added pass to clear other dataflow infomation out.
|
3948 |
|
|
* final.c (rest_of_handle_final, rest_of_clean_state): Cleared out
|
3949 |
|
|
references to df.
|
3950 |
|
|
(rest_of_clean_state) Added regstack_completed.
|
3951 |
|
|
* reorg.c (fill_simple_delay_slots, fill_slots_from_thread,
|
3952 |
|
|
fill_eager_delay_slots, make_return_insns): Added df parameter to function.
|
3953 |
|
|
(make_return_insns, dbr_schedule) Added df parameter to calls.
|
3954 |
|
|
* flow.c (update_life_info): Added glue code to df calls.
|
3955 |
|
|
* df-scan.c (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
|
3956 |
|
|
code to properly handle multiword hard registers.
|
3957 |
|
|
(df_ref_create_structure, df_ref_record): Added code to properly handle subregs.
|
3958 |
|
|
(df_ref_create_structure): Changed switching structure.
|
3959 |
|
|
(df_bb_refs_record): Fixed case where duplicate artificial refs
|
3960 |
|
|
were created.
|
3961 |
|
|
(df_record_entry_block_defs): Added code to make stack pointer
|
3962 |
|
|
live in entry block. Refined cases where frame pointer is needed.
|
3963 |
|
|
* df-core.c (df_mvs_dump, clear_df): New function.
|
3964 |
|
|
(pass_clear_df): New pass structure.
|
3965 |
|
|
(df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
|
3966 |
|
|
debug_df_chain): Improved debugging output.
|
3967 |
|
|
* df.h: Some reordering to remove forward reference.
|
3968 |
|
|
(df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL): New fields.
|
3969 |
|
|
(df_ref_flags.DF_REF_DIES_AFTER_THIS_USE): Removed.
|
3970 |
|
|
(df_mw_hardreg): New struct.
|
3971 |
|
|
(DF_INSN_UID_MWS): New macro.
|
3972 |
|
|
(df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
|
3973 |
|
|
parameter.
|
3974 |
|
|
* rtl.h (regstack_completed): New global var.
|
3975 |
|
|
* resource.c (mark_target_live_regs): Added passed in instance of
|
3976 |
|
|
df.
|
3977 |
|
|
* resource.h (mark_target_live_regs): Ditto.
|
3978 |
|
|
* df-problems.c (df_chain_dump): Removed df parameter.
|
3979 |
|
|
(df_ru_bb_local_compute_process_def,
|
3980 |
|
|
df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
|
3981 |
|
|
df_lr_bb_local_compute, df_chain_create_bb): Made subreg aware.
|
3982 |
|
|
(df_ru_bb_local_compute, df_rd_bb_local_compute,
|
3983 |
|
|
df_lr_bb_local_compute, df_lr_bb_local_compute,
|
3984 |
|
|
df_chain_create_bb): Cleanup to use proper macros.
|
3985 |
|
|
(df_ur_local_finalize, df_ur_local_finalize): Removed unnecessary
|
3986 |
|
|
code to fixup bitvectors.
|
3987 |
|
|
(df_ri_alloc): Cleared lifetime.
|
3988 |
|
|
(df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
|
3989 |
|
|
df_create_unused_note): New function.
|
3990 |
|
|
(df_ri_bb_compute, df_ri_compute): Added code to create/update
|
3991 |
|
|
REG_DEAD and REG_UNUSED notes.
|
3992 |
|
|
* reg-stack.c (regstack_completed): New variable.
|
3993 |
|
|
(reg_to_stack): Modified to use it's own instance of df.
|
3994 |
|
|
(rest_of_handle_stack_regs): Removed most cleanup code.
|
3995 |
|
|
* Makefile.in (reorg.o, RESOURCE_H): Added dependancy to df.h.
|
3996 |
|
|
(final.o): Removed dependency to df.h
|
3997 |
|
|
* passes.c (pass_magic_life): Removed.
|
3998 |
|
|
(pass_clear_df): Added.
|
3999 |
|
|
* dce.c (prescan_insns_for_dce, end_fast_dce): Now works if no instance of
|
4000 |
|
|
df is available.
|
4001 |
|
|
(dce_process_block): Made subreg aware.
|
4002 |
|
|
(rest_of_handle_fast_dce): Reset bitvectors when iterating.
|
4003 |
|
|
(prescan_insns_for_dse): Removed useless code.
|
4004 |
|
|
|
4005 |
|
|
2006-02-06 Daniel Berlin
|
4006 |
|
|
|
4007 |
|
|
* doc/rtl.texi: Document REG_LIBCALL_ID.
|
4008 |
|
|
* optabs.c (libcall_id): New variable.
|
4009 |
|
|
(emit_no_conflict_block): Use it to emit
|
4010 |
|
|
REG_LIBCALL_ID.
|
4011 |
|
|
(emit_libcall_block): Ditto.
|
4012 |
|
|
* combine.c (distribute_notes): Deal with
|
4013 |
|
|
REG_LIBCALL_ID.
|
4014 |
|
|
* reg-notes.def (LIBCALL_ID): New note.
|
4015 |
|
|
* dce.c (marked_libcalls): New variable.
|
4016 |
|
|
(in_libcall): Removed.
|
4017 |
|
|
(mark_insn): Mark which libcalls we need to fully mark.
|
4018 |
|
|
(mark_libcall_insns): New function.
|
4019 |
|
|
(end_dce): Free marked_libcalls.
|
4020 |
|
|
(init_dce): Allocate marked_libcalls.
|
4021 |
|
|
Call mark_libcall_insns.
|
4022 |
|
|
|
4023 |
|
|
2006-01-17 Kenneth Zadeck
|
4024 |
|
|
* df-core.c (df_iterative_dataflow): Added debugging assert.
|
4025 |
|
|
(df_insn_uid_debug): New debugging function.
|
4026 |
|
|
(df_insn_debug): Changed to used df_insn_uid_debug.
|
4027 |
|
|
(df_analyze_problem): Made public.
|
4028 |
|
|
* df.h (df_analyze_problem): Ditto.
|
4029 |
|
|
* cfgcleanup.c (cleanup_cfg): Now calls run_fsst_dce.
|
4030 |
|
|
* flow.c (update_life_info): Ditto.
|
4031 |
|
|
* dce.c (init_dce, mark_insn,
|
4032 |
|
|
mark_nonreg_stores, prescan_insns_for_dce): Added parameter so
|
4033 |
|
|
that they could be called from both handle_rest_of_dce and
|
4034 |
|
|
handle_rest_of_fast_dce.
|
4035 |
|
|
(marked_insn_p): Added code to be tolerant of artifical defs,
|
4036 |
|
|
which do not have insns.
|
4037 |
|
|
(mark_nonreg_stores_2): New function.
|
4038 |
|
|
(mark_artificial_uses, mark_reg_dependencies, store_base_local,
|
4039 |
|
|
mark_escaping_stores, mark_dependent_stores,
|
4040 |
|
|
prescan_insns_for_dse): Added parameter to mark_insn.
|
4041 |
|
|
(rest_of_handle_dce): Added parameter to prescan_insns_for_dce.
|
4042 |
|
|
(record_stores): Added parameter to mark_non_reg_stores.
|
4043 |
|
|
(dce_process_block, rest_of_handle_fast_dce, gate_fast_dce,
|
4044 |
|
|
run_fast_dce): New functions to do dce faster.
|
4045 |
|
|
(rest_of_handle_dse) Added parameter to init_dce.
|
4046 |
|
|
* dce.h (run_fast_dce): Added declaration.
|
4047 |
|
|
|
4048 |
|
|
2006-01-17 Kenneth Zadeck
|
4049 |
|
|
|
4050 |
|
|
* df-scan.c (df_hard_reg_init): Moved declaration of i outside macro.
|
4051 |
|
|
|
4052 |
|
|
2006-01-17 Ian Lance Taylor
|
4053 |
|
|
|
4054 |
|
|
* combine.c (combine_instructions): Pass instruction
|
4055 |
|
|
to note_stores and set_nonzero_bits_and_sign_copies.
|
4056 |
|
|
(set_nonzero_bits_and_sign_copies): We can't assume
|
4057 |
|
|
anything about non-zero bits for registers initialized with
|
4058 |
|
|
themselves if the register is not live on entry to the block.
|
4059 |
|
|
|
4060 |
|
|
|
4061 |
|
|
2005-01-17 Kenneth Zadeck
|
4062 |
|
|
|
4063 |
|
|
PR dataflow/25799
|
4064 |
|
|
* df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
|
4065 |
|
|
Corrected confluence operator to remove bits from op2 before oring
|
4066 |
|
|
with op1 rather than removing bits from op1.
|
4067 |
|
|
* (df_ru_transfer_function): Corrected test on wrong bitmap which
|
4068 |
|
|
caused infinite loop.
|
4069 |
|
|
|
4070 |
|
|
|
4071 |
|
|
2005-01-17 Kenneth Zadeck
|
4072 |
|
|
|
4073 |
|
|
* df-scan.c (df_scan_free_bb_info): Added basic block parameter to
|
4074 |
|
|
be able to clean out basic block when not necessary.
|
4075 |
|
|
(df_scan_free): Fixed to properly delete information if df is
|
4076 |
|
|
unused before calling df_finish.
|
4077 |
|
|
(df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
|
4078 |
|
|
df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
|
4079 |
|
|
or comment typos.
|
4080 |
|
|
(df_bb_refs_delete): New function.
|
4081 |
|
|
(df_refs_delete): Moved per block code to df_bb_refs_delete.
|
4082 |
|
|
* df-core.c (df_set_blocks): Added code to properly clean out
|
4083 |
|
|
unused blocks if they are not part of the blocks to consider.
|
4084 |
|
|
(df_compact_blocks): Added basic block parameter to free_bb_fun to
|
4085 |
|
|
be able to clean out basic block when not necessary
|
4086 |
|
|
* df.h (df_free_bb_function): Ditto.
|
4087 |
|
|
(df_bb_refs_delete): New function.
|
4088 |
|
|
* df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
|
4089 |
|
|
df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
|
4090 |
|
|
basic block parameter to be able to clean out basic block when not
|
4091 |
|
|
necessary.
|
4092 |
|
|
(df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
|
4093 |
|
|
(df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
|
4094 |
|
|
Fixed to properly delete information if df is unused before
|
4095 |
|
|
calling df_finish.
|
4096 |
|
|
|
4097 |
|
|
2006-01-06 Daniel Berlin
|
4098 |
|
|
Kenneth Zadeck
|
4099 |
|
|
|
4100 |
|
|
* df-scan.c (df_reg_use_gen, df_reg_def_gen): Removed.
|
4101 |
|
|
(df_insn_contains_asm_1): New function.
|
4102 |
|
|
(df_insn_contains_asm): Rewritten to use for_each_rtx.
|
4103 |
|
|
(df_insn_refs_record): Fixed call to df_insn_contains_asm and
|
4104 |
|
|
the way calls are processed.
|
4105 |
|
|
(df_insn_refs_record, df_bb_refs_record): Changed calls to not
|
4106 |
|
|
need df_reg_use_gen or df_reg_def_gen.
|
4107 |
|
|
* loop-invariant.c (free_inv_motion_data): Removed duplicated code typo.
|
4108 |
|
|
|
4109 |
|
|
2005-12-30 Kenneth Zadeck
|
4110 |
|
|
|
4111 |
|
|
* df-core.c (df_find_def, df_find_use): Added subreg aware code.
|
4112 |
|
|
(df_reg_defined, df_reg_used): New function.
|
4113 |
|
|
* df.h (df_reg_defined, df_reg_used): New function.
|
4114 |
|
|
* loop-invariant.c (struct invariant, hash_invariant_expr,
|
4115 |
|
|
eq_invariant_expr, find_or_insert_inv, find_or_insert_inv,
|
4116 |
|
|
find_identical_invariants, merge_identical_invariants,
|
4117 |
|
|
find_defs, create_new_invariant, check_dependencies,
|
4118 |
|
|
find_invariant_insn, find_invariants, get_inv_cost,
|
4119 |
|
|
best_gain_for_invariant, set_move_mark, move_invariants,
|
4120 |
|
|
free_inv_motion_data): Functions added from mainline patch.
|
4121 |
|
|
(invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
|
4122 |
|
|
check_dependencies, create_new_invariant, find_invariant_insn
|
4123 |
|
|
move_invariant_reg): Functions modified from mainline patch to be
|
4124 |
|
|
consistent with latest df.
|
4125 |
|
|
|
4126 |
|
|
2005-12-22 Paolo Bonzini
|
4127 |
|
|
|
4128 |
|
|
* df-scan.c (df_ref_unlink): Fix thinko when REF == CHAIN.
|
4129 |
|
|
|
4130 |
|
|
2005-12-22 Danny Berlin
|
4131 |
|
|
Richard Sandiford
|
4132 |
|
|
Kenneth Zadeck
|
4133 |
|
|
|
4134 |
|
|
* tree-pass.h: Added passes for new dce and dse.
|
4135 |
|
|
* flow.c (update_life_info, propagate_block): Added hooks to
|
4136 |
|
|
call new dead code elimination.
|
4137 |
|
|
* common.opt (flag_flow_dce, flag_new_dce): Ditto.
|
4138 |
|
|
* passes.c (init_optimization_passes): Ditto.
|
4139 |
|
|
* cfgcleanup.c (cleanup_cfg): Ditto.
|
4140 |
|
|
* timevar.def: New time vars for dce and dse.
|
4141 |
|
|
(propagate_block_delete_insn): Added debugging.
|
4142 |
|
|
* dce.c: New File containing dead code elimination and dead
|
4143 |
|
|
store elimination based on df.
|
4144 |
|
|
|
4145 |
|
|
2005-12-19 Kenneth Zadeck
|
4146 |
|
|
|
4147 |
|
|
* flow.c (update_life_info, count_or_remove_death_notes): Fixed
|
4148 |
|
|
latent bug that could happen if update_life_info was called with a
|
4149 |
|
|
blocks parameter and the call to cleanup_cfg actually deleted one
|
4150 |
|
|
of those blocks.
|
4151 |
|
|
* loop-invariant.c (move_loop_invariants): Fixed df
|
4152 |
|
|
initialization.
|
4153 |
|
|
* struct-equiv.c (struct_equiv_init): Made dataflow compatible with
|
4154 |
|
|
df.
|
4155 |
|
|
|
4156 |
|
|
|
4157 |
|
|
2005-12-18 Daniel Berlin
|
4158 |
|
|
Kenneth Zadeck
|
4159 |
|
|
|
4160 |
|
|
* fwprop.c (local_ref_killed_between_p): New Function.
|
4161 |
|
|
(use_killed_between, varying_mem_p, all_uses_available_at,
|
4162 |
|
|
update_df, subst, forward_propagate_subreg,
|
4163 |
|
|
forward_propagate_and_simplify, forward_propagate_into, fwprop,
|
4164 |
|
|
fwprop_addr): Changes to support modifications to df datastructures.
|
4165 |
|
|
* ddg.c (add_deps_for_def, add_deps_for_use, build_inter_loop_deps):
|
4166 |
|
|
Ditto.
|
4167 |
|
|
* flow.c (verify_local_live_at_start, update_life_info,
|
4168 |
|
|
update_life_info, initialize_uninitialized_subregs,
|
4169 |
|
|
propagate_one_insn, init_propagate_block_info,
|
4170 |
|
|
init_propagate_block_info, regno_clobbered_at_setjmp,
|
4171 |
|
|
rest_of_handle_life): Ditto.
|
4172 |
|
|
* modulo-sched.c (sms_schedule): Ditto.
|
4173 |
|
|
* web.c (union_defs, entry_register, web_main): Ditto.
|
4174 |
|
|
* global.c (global_alloc, global_conflicts, mark_elimination,
|
4175 |
|
|
build_insn_chain, rest_of_handle_global_alloc): Ditto.
|
4176 |
|
|
* ifcvt.c (find_if_case_1, if_convert): Ditto.
|
4177 |
|
|
* loop_invariant.c (find_defs, record_use, find_invariant_insn,
|
4178 |
|
|
find_invariants_to_move, move_invariant_reg, move_invariant_reg,
|
4179 |
|
|
free_inv_motion_data, move_loop_invariants):
|
4180 |
|
|
* bb-reorder.c (rest_of_handle_reorder_blocks): Ditto.
|
4181 |
|
|
* reg-stack.c (reg_to_stack): Ditto.
|
4182 |
|
|
* postreload.c (reload_combine): Changed set reference to
|
4183 |
|
|
reflect different dataflow problem.
|
4184 |
|
|
* reload.c (push_reload, find_dummy_reload): Ditto.
|
4185 |
|
|
* postreload.c (rest_of_handle_postreload): Fixed typo in comment.
|
4186 |
|
|
* tree-pass.h: Added pass_reset_df_after_reload.
|
4187 |
|
|
* df.c: Removed, rewritten as df-core.c, df-problems.c and df-scan.c.
|
4188 |
|
|
* df-scan.c: The scanning fuctions, once in df.c, completely
|
4189 |
|
|
rewritten so that they now fully model the functionality of
|
4190 |
|
|
register usage at the backend.
|
4191 |
|
|
* cfgrtl.c (dump_regset_in, dump_regset_out): New dataflow
|
4192 |
|
|
* print functions.
|
4193 |
|
|
(rtl_dump_bb, print_rtl_with_bb): Changed to use
|
4194 |
|
|
dump_regset_in, dump_regset_out).
|
4195 |
|
|
* sched_deps (sched_analyze_1): Changed to used renamed
|
4196 |
|
|
df_read_modify_subreg_p (was read_modify_subreg_p).
|
4197 |
|
|
(df_scan_free_internal, df_scan_get_bb_info,
|
4198 |
|
|
df_scan_set_bb_info, df_scan_free_bb_info, df_scan_alloc,
|
4199 |
|
|
df_scan_free, df_scan_dump, df_scan_add_problem,
|
4200 |
|
|
df_grow_reg_info, df_grow_ref_info, df_grow_insn_info,
|
4201 |
|
|
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
|
4202 |
|
|
df_get_artificial_uses, df_reg_chain_create, df_ref_unlink,
|
4203 |
|
|
df_reg_chain_unlink, df_ref_remove,
|
4204 |
|
|
df_insn_create_insn_record, df_insn_refs_delete,
|
4205 |
|
|
df_refs_delete, df_reorganize_refs, df_reg_use_gen,
|
4206 |
|
|
df_reg_def_gen, df_set_state, df_ref_create_structure,
|
4207 |
|
|
df_ref_record, df_read_modify_subreg_p, df_def_record_1,
|
4208 |
|
|
df_defs_record, df_uses_record, df_insn_contains_asm,
|
4209 |
|
|
df_insn_refs_record, df_bb_refs_record, df_refs_record,
|
4210 |
|
|
df_mark_reg, df_record_exit_block_uses, df_hard_reg_init): New functions.
|
4211 |
|
|
* df-core.c: The core dataflow solver and glue routines for
|
4212 |
|
|
rtl dataflow.
|
4213 |
|
|
(df_init, df_add_problem, df_set_blocks, df_finish,
|
4214 |
|
|
df_hybrid_search_forward, df_hybrid_search_backward,
|
4215 |
|
|
df_iterative_dataflow, df_prune_to_subcfg,
|
4216 |
|
|
df_analyze_problem, df_analyze, df_get_bb_info,
|
4217 |
|
|
df_set_bb_info, df_analyze_simple_change_some_blocks,
|
4218 |
|
|
df_analyze_simple_change_one_block, df_compact_blocks,
|
4219 |
|
|
df_bb_replace, df_bb_regno_last_use_find,
|
4220 |
|
|
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
|
4221 |
|
|
df_insn_regno_def_p, df_find_def, df_find_use, df_dump,
|
4222 |
|
|
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
|
4223 |
|
|
df_insn_debug_regno, df_regno_debug, df_ref_debug,
|
4224 |
|
|
debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref
|
4225 |
|
|
debug_df_defno, debug_df_useno, reset_df_after_reload): New functions.
|
4226 |
|
|
* df-problems.c: Seven concrete dataflow problems that use the scanning
|
4227 |
|
|
in df-scan.c and are solved by the engine in df-core.c.
|
4228 |
|
|
(df_get_dependent_problem, df_chain_create,
|
4229 |
|
|
df_chain_unlink, df_chain_copy, df_get_live_in,
|
4230 |
|
|
df_get_live_out, df_grow_bb_info, df_chain_dump,
|
4231 |
|
|
df_print_bb_index, df_ref_bitmap, df_set_seen,
|
4232 |
|
|
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
|
4233 |
|
|
df_ru_free_bb_info, df_ru_alloc,
|
4234 |
|
|
df_ru_bb_local_compute_process_def,
|
4235 |
|
|
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
|
4236 |
|
|
df_ru_local_compute, df_ru_init_solution,
|
4237 |
|
|
df_ru_confluence_n, df_ru_transfer_function, df_ru_free,
|
4238 |
|
|
df_ru_dump, df_ru_add_problem, df_rd_get_bb_info,
|
4239 |
|
|
df_rd_set_bb_info, df_rd_free_bb_info, df_rd_alloc,
|
4240 |
|
|
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
|
4241 |
|
|
df_rd_local_compute, df_rd_init_solution,
|
4242 |
|
|
df_rd_confluence_n, df_rd_transfer_function, df_rd_free,
|
4243 |
|
|
df_rd_dump, df_rd_add_problem, df_lr_get_bb_info,
|
4244 |
|
|
df_lr_set_bb_info, df_lr_free_bb_info, df_lr_alloc,
|
4245 |
|
|
df_lr_bb_local_compute, df_lr_local_compute, df_lr_init,
|
4246 |
|
|
df_lr_confluence_0, df_lr_confluence_n,
|
4247 |
|
|
df_lr_transfer_function, df_lr_free, df_lr_dump,
|
4248 |
|
|
df_lr_add_problem, df_ur_get_bb_info, df_ur_set_bb_info,
|
4249 |
|
|
df_ur_free_bb_info, df_ur_alloc, df_ur_bb_local_compute,
|
4250 |
|
|
df_ur_local_compute, df_ur_init, df_ur_local_finalize,
|
4251 |
|
|
df_ur_confluence_n, df_ur_transfer_function, df_ur_free,
|
4252 |
|
|
df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
|
4253 |
|
|
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
|
4254 |
|
|
df_urec_mark_reg_change, df_urec_check_earlyclobber,
|
4255 |
|
|
df_urec_mark_reg_use_for_earlyclobber,
|
4256 |
|
|
df_urec_mark_reg_use_for_earlyclobber_1,
|
4257 |
|
|
df_urec_bb_local_compute, df_urec_local_compute,
|
4258 |
|
|
df_urec_init, df_urec_local_finalize, df_urec_confluence_n,
|
4259 |
|
|
df_urec_transfer_function, df_urec_free, df_urec_dump,
|
4260 |
|
|
df_urec_add_problem, df_chain_alloc,
|
4261 |
|
|
df_chain_create_bb_process_use, df_chain_create_bb,
|
4262 |
|
|
df_chain_finalize, df_chain_free, df_chains_dump,
|
4263 |
|
|
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
|
4264 |
|
|
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
|
4265 |
|
|
df_reg_lifetime) New functions.
|
4266 |
|
|
df.h: Complete rewrite to support new df-problems.c, df-scan.c and
|
4267 |
|
|
df-core.c.
|
4268 |
|
|
|
4269 |
|
|
2005-12-14 Kenneth Zadeck
|
4270 |
|
|
|
4271 |
|
|
* bitmap.c (bitmap_clear_range): Removed extra debugging.
|
4272 |
|
|
|
4273 |
|
|
2005-12-12 Paolo Bonzini
|
4274 |
|
|
|
4275 |
|
|
* rtl.h (find_occurrence): Declare.
|
4276 |
|
|
* rtlanal.c (find_occurrence): New.
|
4277 |
|
|
(loc_mentioned_in_p): Accept a NULL value for IN.
|
4278 |
|
|
(commutative_operand_precedence): Remove useless code looking
|
4279 |
|
|
for constant RTX_EXTRA rtxen.
|
4280 |
|
|
* common.opt (-fforward-propagate): New.
|
4281 |
|
|
* tree-pass.h: Add forward propagation passes.
|
4282 |
|
|
* passes.c: Ditto.
|
4283 |
|
|
* timevar.def: Add forward propagation timevar.
|
4284 |
|
|
* fwprop.c: New file.
|
4285 |
|
|
* Makefile.in: Add fwprop.o dependencies.
|
4286 |
|
|
|
4287 |
|
|
2005-11-28 Paolo Bonzini
|
4288 |
|
|
|
4289 |
|
|
* config/sh/sh.c (sh_output_mi_thunk): Use df_finish.
|
4290 |
|
|
|
4291 |
|
|
2005-11-17 Paolo Bonzini
|
4292 |
|
|
|
4293 |
|
|
* df.h (struct df_reach): Add size field.
|
4294 |
|
|
* df.c (df_realloc_reach_bitmaps, df_renumber_refs): New.
|
4295 |
|
|
(df_reg_use_chain_create, df_reg_def_chain_create): Use them.
|
4296 |
|
|
Fix GNU coding standards compliancy.
|
4297 |
|
|
|
4298 |
|
|
2005-11-11 Richard Earnshaw
|
4299 |
|
|
|
4300 |
|
|
* df.c (df_chain_create): Move declaration of bb outside define
|
4301 |
|
|
for ENABLE_CHECKING.
|
4302 |
|
|
|
4303 |
|
|
2005-11-08 Paolo Bonzini
|
4304 |
|
|
|
4305 |
|
|
* df.c (df_local_ref_killed_between_p): Reinstate.
|
4306 |
|
|
|
4307 |
|
|
2005-11-08 Daniel Berlin
|
4308 |
|
|
Kenneth Zadeck
|
4309 |
|
|
|
4310 |
|
|
* bitmap.c (bitmap_element_free, bitmap_element_link, bitmap_and,
|
4311 |
|
|
bitmap_and_compl, bitmap_ior, bitmap_ior_into, bitmap_xor,
|
4312 |
|
|
bitmap_xor_into): Fixed latent performance issue where current
|
4313 |
|
|
was being properly kept up to date.
|
4314 |
|
|
(bitmap_clear_range, bitmap_compl_and_into): New functions to support
|
4315 |
|
|
dataflow analysis.
|
4316 |
|
|
* df.c (df_rd_confluence_n, df_alloc_reach_bitmaps, df_free_reach_bitmaps,
|
4317 |
|
|
df_clear_reach_bitmaps, df_ru_confluence_n, df_lr_confluence_0,
|
4318 |
|
|
df_lr_confluence_n, df_init, df_dump): Changed the way EH_USES is processed.
|
4319 |
|
|
(df_bitmaps_alloc, df_bitmaps_free,
|
4320 |
|
|
df_bb_reg_def_chain_create, df_bb_reg_def_chain_create,
|
4321 |
|
|
df_reg_use_chain_create, df_rd_transfer_function,
|
4322 |
|
|
df_alloc_reach_bitmaps, df_ref_bitmap, df_bb_rd_local_compute,
|
4323 |
|
|
df_rd_local_compute, df_bb_ru_local_compute, df_analyze,
|
4324 |
|
|
df_analyze_subcfg, df_analyze_simple_change_some_blocks): Fixed
|
4325 |
|
|
performance problems by grouping all defs and uses
|
4326 |
|
|
for the same pseudo into contigious ranges.
|
4327 |
|
|
(df_bb_du_chain_create, df_bb_ud_chain_create): Combined in
|
4328 |
|
|
new function df_bb_chain_create.
|
4329 |
|
|
(df_chain_create, df_alloc_reach_bitmaps, df_free_reach_bitmaps,
|
4330 |
|
|
df_clear_reach_bitmaps, df_ref_bitmap): New function.
|
4331 |
|
|
(df_rd_init, df_rd_confluence_n, df_rd_transfer_function,
|
4332 |
|
|
df_rd_set_dflow, df_ru_transfer_function, df_ru_confluence_n,
|
4333 |
|
|
df_ru_transfer_function, df_ru_set_dflow, df_lr_transfer_function,
|
4334 |
|
|
df_lr_set_dflow, df_lr_confluence_n, df_ur_transfer_function,
|
4335 |
|
|
df_ur_set_dflow, df_ur_init, df_ur_transfer_function, df_ur_set_dflow
|
4336 |
|
|
df_ur_confluence_n, hybrid_search_forward, hybrid_search_backward
|
4337 |
|
|
iterative_dataflow): Changed interface for dataflow callback
|
4338 |
|
|
functions to hide where the source of bitmaps.
|
4339 |
|
|
(df_rd_set_bitmaps, df_ru_set_bitmaps, df_lr_set_bitmaps,
|
4340 |
|
|
df_ur_set_bitmaps, df_bitmap_ior_edge): Removed as part of
|
4341 |
|
|
changing dataflow callback interface.
|
4342 |
|
|
(df_free, df_ref_create, df_ref_record_1,
|
4343 |
|
|
df_record_exit_block_uses, df_refs_record, df_exit_lr_local_compute,
|
4344 |
|
|
df_insn_move_before, df_local_ref_killed_between_p,
|
4345 |
|
|
df_bb_regno_last_def_find, df_chain_dump, df_dump):
|
4346 |
|
|
Added chains that go to artifical uses in exit block.
|
4347 |
|
|
(df_exit_bb_reg_use_chain_create, df_exit_bb_chain_create):
|
4348 |
|
|
New functions to support artifical uses in exit block.
|
4349 |
|
|
(df_insn_refs_record): Added new DF_REF_CLOBBER ref type to
|
4350 |
|
|
avoid creation of artifical chains for clobbers at call sites.
|
4351 |
|
|
|
4352 |
|
|
2005-11-03 Paolo Bonzini
|
4353 |
|
|
Steven Bosscher
|
4354 |
|
|
|
4355 |
|
|
* df.c (df_free): Fix call to df_bitmaps_free.
|
4356 |
|
|
(df_bb_regno_last_def_find): Make it return what it is supposed
|
4357 |
|
|
to return.
|
4358 |
|
|
(df_local_ref_killed_between_p): New.
|
4359 |
|
|
|
4360 |
|
|
2005-11-01 Daniel Berlin
|
4361 |
|
|
Kenneth Zadeck
|
4362 |
|
|
|
4363 |
|
|
* flow.c (update_life_info): Added debugging.
|
4364 |
|
|
(init_propagate_block_info): Fixed typo.
|
4365 |
|
|
* df.c (df_refs_unlink, df_ref_record_1, df_ref_record,
|
4366 |
|
|
read_modify_subreg_p, df_def_record_1, df_insn_refs_record):
|
4367 |
|
|
Fixed control of when regs_ever_live is modified.
|
4368 |
|
|
* combine.c: Documentation rot.
|
4369 |
|
|
* reload1.c: Used wrong type of comment.
|
4370 |
|
|
|
4371 |
|
|
2005-10-31 Jan Hubicka
|
4372 |
|
|
|
4373 |
|
|
* reg-stack.c (subst_stack_regs_pat): Expect USEs to be ignored for
|
4374 |
|
|
liveness.
|
4375 |
|
|
(change_stack): Initialize partially dead registers.
|
4376 |
|
|
(convert_regs_1): Handle dead return values.
|
4377 |
|
|
(reg_to_stack): Switch to partial liveness.
|
4378 |
|
|
(propagate_stack): Push in partially live stuff.
|
4379 |
|
|
|
4380 |
|
|
2005-10-25 Daniel Berlin
|
4381 |
|
|
Kenneth Zadeck
|
4382 |
|
|
|
4383 |
|
|
* cfgrtl.c (print_rtl_with_bb): Fixed problem with debugging
|
4384 |
|
|
output of bitmaps.
|
4385 |
|
|
* df.c (mark_reg_change): Fixed problem computing sizes of hard regs.
|
4386 |
|
|
* reload1.c (reload): Fixed over agressive updating of bitmaps.
|
4387 |
|
|
* sched-rgn.c (schedule_insns): Cleaned away some useless verification
|
4388 |
|
|
code.
|
4389 |
|
|
(rest_of_handle_sched2): Removed debugging.
|
4390 |
|
|
|
4391 |
|
|
|
4392 |
|
|
2005-10-24 Kenneth Zadeck
|
4393 |
|
|
|
4394 |
|
|
* sched-rgn.c (check_live_1, update_live_1, rest_of_handle_sched):
|
4395 |
|
|
Converted to use partially available liveness.
|
4396 |
|
|
(init_regions, schedule_insns, rest_of_handle_sched):
|
4397 |
|
|
Removed assertion checking based on death notes.
|
4398 |
|
|
|
4399 |
|
|
|
4400 |
|
|
2005-10-23 Daniel Berlin
|
4401 |
|
|
Kenneth Zadeck
|
4402 |
|
|
|
4403 |
|
|
* df.c (df_bitmaps_alloc, df_lr_local_compute, df_compute_all_blocks):
|
4404 |
|
|
Removed df->all_blocks.
|
4405 |
|
|
(df_lr_local_compute): Added flag to indicate that
|
4406 |
|
|
blocks was really the whole function.
|
4407 |
|
|
(df_ref_record): Fixed missing case for memory refs.
|
4408 |
|
|
(df_insn_refs_record): Fixed regs ever live processing.
|
4409 |
|
|
(df_bb_refs_record): Removed debugging code.
|
4410 |
|
|
(df_bb_lr_local_compute, notice_stack_pointer_modification,
|
4411 |
|
|
df_bb_lr_local_compute): Moved stack pointer modification
|
4412 |
|
|
detection code back to flow.c.
|
4413 |
|
|
(df_bb_lr_local_compute, hybrid_search_forward,
|
4414 |
|
|
hybrid_search_backward): Formatting cleanup.
|
4415 |
|
|
(df_compute_all_blocks, notice_stack_pointer_modification):
|
4416 |
|
|
Removed.
|
4417 |
|
|
(df_analyze): Changed the definition of whole program to be all
|
4418 |
|
|
reachable blocks rather than all blocks.
|
4419 |
|
|
(df_analyze_subcfg, df_analyze_simple_change_some_blocks): Added
|
4420 |
|
|
parameter to df_lr_local_compute.
|
4421 |
|
|
(df_rtx_reg_replace): Fixed way it decided it was processing
|
4422 |
|
|
entire function.
|
4423 |
|
|
* df.h: Removed all_blocks from struct df definition.
|
4424 |
|
|
* flow.c (notice_stack_pointer_modification_1,
|
4425 |
|
|
notice_stack_pointer_modification): Added back.
|
4426 |
|
|
(life_analysis): Added back call to
|
4427 |
|
|
notice_stack_pointer_modification.
|
4428 |
|
|
(struct tree_opt_pass pass_life, rest_of_handle_flow2):
|
4429 |
|
|
Added debugging.
|
4430 |
|
|
* gcse.c (gcse_main, bypass_jumps): Additional places where we had missed
|
4431 |
|
|
in renumbering entry and exit blocks.
|
4432 |
|
|
* global.c (global_alloc): Additional debugging code.
|
4433 |
|
|
|
4434 |
|
|
|
4435 |
|
|
2005-10-19 Daniel Berlin
|
4436 |
|
|
|
4437 |
|
|
* df.c (df_lr_local_compute): Fix thinko regarding pseudos and call
|
4438 |
|
|
defs.
|
4439 |
|
|
|
4440 |
|
|
2005-10-19 Kenneth Zadeck
|
4441 |
|
|
|
4442 |
|
|
* df.c (df_bitmap_ior_edge, df_lr_confluence_0
|
4443 |
|
|
df_lr_confluence_n, df_ur_confluence_n, df_ur_set_bitmaps): New
|
4444 |
|
|
functions.
|
4445 |
|
|
(df_exit_lr_local_compute, dataflow_set_a_op_b): Removed
|
4446 |
|
|
functions.
|
4447 |
|
|
(df_ur_set_bitmaps, mark_reg_change, df_ur_local_finalize,
|
4448 |
|
|
mark_reg_use_for_earlyclobber, df_ur_local_compute,
|
4449 |
|
|
df_bb_reg_live_start, df_bb_reg_live_end, df_bb_reg_live_start_p,
|
4450 |
|
|
df_bb_reg_live_end_p): Renamed "reaching registers"
|
4451 |
|
|
problem (rr) to "uninitialized registers" problem.
|
4452 |
|
|
(df_free): Changed variables freed.
|
4453 |
|
|
(df_ref_record): Added more sophisticated hard register scan.
|
4454 |
|
|
(df_insn_refs_record): Changed way invalidated_by_call is
|
4455 |
|
|
processed.
|
4456 |
|
|
(df_bb_refs_record, df_exit_lr_local_compute,
|
4457 |
|
|
df_bb_lr_local_compute): Removed bad way to simulate edge functions.
|
4458 |
|
|
There are now real confluence functions.
|
4459 |
|
|
(notice_stack_pointer_modification): Disabled.
|
4460 |
|
|
(df_bb_lr_local_compute): Disabled call to
|
4461 |
|
|
notice_stack_pointer_modification. Added code to properly handle hard
|
4462 |
|
|
regs at call site.
|
4463 |
|
|
(df_lr_local_compute): Added more hard reg processing.
|
4464 |
|
|
Changed order exit block is processed.
|
4465 |
|
|
(df_init): Added some invariant hard regs initialization.
|
4466 |
|
|
(df_refs_process): Removed artifical special case.
|
4467 |
|
|
(df_print_bb_index, df_dump): Removed parameter to df_dump.
|
4468 |
|
|
(hybrid_search_forward, hybrid_search_backward): Added
|
4469 |
|
|
confluence function calls.
|
4470 |
|
|
(iterative_dataflow): Added hack to initialize in and out sets
|
4471 |
|
|
with hard registers. This will be removed later.
|
4472 |
|
|
* df.h: Removed DF_ARTIFICIAL_DEFS. Renamed "reaching registers".
|
4473 |
|
|
problem (rr) to "uninitialized registers" problem. Changed confluence
|
4474 |
|
|
operator to general confluence functions.
|
4475 |
|
|
* flow.c (verify_wide_reg, verify_local_live_at_start): Removed
|
4476 |
|
|
parameter to df_dump.
|
4477 |
|
|
* reg_stack.c (reg_to_stack): Ditto.
|
4478 |
|
|
* sched_rgn.c (init_regions, schedule_insns): Ditto.
|
4479 |
|
|
* web.c (web_main): Ditto.
|
4480 |
|
|
* flow.c: (update_life_info): Removed DF_ARTIFICIAL_DEFS.
|
4481 |
|
|
* global.c (global_alloc): Ditto.
|
4482 |
|
|
|
4483 |
|
|
|
4484 |
|
|
Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
|
4485 |
|
|
|
4486 |
|
|
Copying and distribution of this file, with or without modification,
|
4487 |
|
|
are permitted in any medium without royalty provided the copyright
|
4488 |
|
|
notice and this notice are preserved.
|