aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.vec
blob: 22ee8a71656fc7d1c7e1c88b0acc121a92d461fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
2004-09-24  Ben Elliston  <bje@au.ibm.com>

	* Branch closed and merged to mainline.

2004-09-24  Ben Elliston  <bje@au.ibm.com>

	* basic-block.h (FOR_EACH_EDGE): Add some more comments.
	(ei_start, ei_last, ei_end_p, ei_one_before_end_p): Likewise.
	(ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.

2004-09-19  Ben Elliston  <bje@au.ibm.com>

	* cfgexpand.c (expand_gimple_tailcall): Use an edge_iterator, not
	VEC_iterate().
	(expand_gimple_basic_block): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
	(purge_dead_edges): Likewise.
	(cfg_layout_redirect_edge_and_branch): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.

2004-09-19  Ben Elliston  <bje@au.ibm.com>

	* cfg.c (remove_edge): Use an edge_iterator, not VEC_iterate().
	(redirect_edge_succ): Likewise.
	(redirect_edge_pred): Likewise.
	* cfganal.c (remove_fake_predecessors): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	* cfghooks.c (make_forwarder_block): Likewise.
	* gcse.c (bypass_block): Likewise.
	* except.c (emit_to_new_bb_before): Likewise.
	(finish_eh_generation): Likewise.
	* loop-init.c (loop_optimizer_init): Likewise.
	* tree-cfg.c (cleanup_control_expr_graph): Likewise.
	(thread_jumps): Likewise.
	(tree_purge_dead_eh_edges): Likewise.
	* tree-ssa-threadupdate.c (thread_block): Likewise.
	(remove_last_stmt_and_useless_edges): Likewise.

2004-09-19  Ben Elliston  <bje@au.ibm.com>

	* var-tracking.c (vt_stack_adjustments): Use ei_one_before_end_p,
	not ei_end_p, to correct an off-by-one error.

2004-09-18  Ben Elliston  <bje@au.ibm.com>

	* Merge with edge-vector-mergepoint-20040918.

2004-09-18  Ben Elliston  <bje@au.ibm.com>

	* basic-block.h (ei_safe_edge): New function.
	(FOR_EACH_EDGE): Rewrite; include iterator argument.
	(END_FOR_EACH_EDGE): Remove.
	* bb-reorder.c, bt-load.c, cfg.c, cfganal.c, cfgbuild.c,
	cfgcleanup.c, cfgexpand.c, cfghooks.c, cfglayout.c, cfgloop.c,
	cfgloopanal.c, cfgloopmanip.c, cfgrtl.c, cse.c, df.c, dominance.c,
	except.c, final.c, flow.c, function.c, gcse.c, global.c, graph.c,
	ifcvt.c, lcm.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
	postreload-gcse.c, predict.c, profile.c, ra-rewrite.c, ra.c,
	recog.c, reg-stack.c, reload1.c, sched-ebb.c, sched-rgn.c,
	tracer.c, tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
	tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-dce.c,
	tree-ssa-dom.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c,
	tree-ssa-pre.c, tree-ssa-propagate.c, tree-ssa-threadupdate.c,
	tree-ssa.c, tree-tailcall.c, var-tracking.c, config/i386/i386.c,
	config/ia64/ia64.c: Update all callers.
	
2004-09-17  Ben Elliston  <bje@au.ibm.com>	

	* basic-block.h (struct edge_stack): Remove.
	(edge_iterator): New type.
	(ei_start, ei_last, ei_end_p, ei_one_before_end_p): New functions.
	(ei_next, ei_prev, ei_edge): Likewise.
	* cfganal.c (could_fall_through): Use a edge_iterator and
	associated functions, not an edge_stack.
	(mark_dfs_back_edges): Likewise.
	(connect_infinite_loops_to_exit): Likewise.
	(flow_reverse_top_sort_order_compute): Likewise.
	(flow_dpeth_first_order_compute): Likewise.
	(flow_preorder_transversal_compute): Likewise.
	* dominance.c (calc_dfs_tree_nonrec): Likewise.
	(calc_idoms): Likewise.
	* gcse.c (bypass_block): Likewise.
	(insert_store): Likewise.
	(remove_reachable_equiv_notes): Likewise.
	* var-tracking.c (prologue_stack_adjust): Likewise.
	(vt_stack_adjustments): Likewise.

2004-09-10  Ben Elliston  <bje@au.ibm.com>

	* Merge with edge-vector-mergepoint-20040910.

2004-09-09  Ben Elliston  <bje@au.ibm.com>

	* Merge with edge-vector-mergepoint-20040908.

2004-08-31  Ben Elliston  <bje@au.ibm.com>

	* modulo-sched.c (sms_schedule): Comment fix.
	(tree_block_forwards_to): Likewise.

	* flow.c (init_propagate_block_info): Convert to vec usage.

2004-08-31  Steven Bosscher  <stevenb@suse.de>

	* gcse.c (remove_reachable_equiv_notes): Use an edge_stack.

2004-08-29  Ben Elliston  <bje@au.ibm.com>

	* Merge with edge-vector-mergepoint-20040829.
	Note: edge-vector-mergepoint-20040827 was skipped over.

2004-08-27  Steven Bosscher  <stevenb@suse.de>

	* basic-block.h: Don't define ENABLE_CHECKING.
	Define ENABLE_VEC_CHECKING to 0 if ENABLE_CHECKING is not defined,
	or 1 if ENABLE_CHECKING is defined.

2004-08-26  Ben Elliston  <bje@au.ibm.com>

	* loop-iv.c (simplify_using_initial_values): Store e->src in a
	temporary so that we count the predecessor edges from the correct
	basic block (since `e' is reassigned).

2004-08-23  Ben Elliston  <bje@au.ibm.com>

	* predict.c (propagate_freq): Reformat comment to minimise diffs.

	* tree-browser.c: Revert trivial patch to minimise diffs.
	* ifcvt.c (block_fallthru): Correct logic inversion bug.

2004-08-19  Ben Elliston  <bje@au.ibm.com>

	* Merge with edge-vector-mergepoint-20040819.

2004-08-18  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-dom.c (record_equivalences_from_incoming_edge):
	Extract edge flags with one _or_more_ edges.

2004-08-18  Ben Elliston  <bje@au.ibm.com>

	* Merge with edge-vector-mergepoint-20040810.

2004-08-18  Ben Elliston  <bje@au.ibm.com>

	* except.c (emit_to_new_bb_before): Eliminate FOR_EACH_EDGE.

2004-08-18  Ben Elliston  <bje@au.ibm.com>

	* ra-build.c (live_in): Initialise `e' to silence a warning.
	* sbitmap.c (sbitmap_intersection_of_succs): Likewise.
	(sbitmap_intersection_of_preds): Likewise.
	(sbitmap_union_of_preds): Likewise.
	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Initialise
	iterator variable `ix' to silence a warning.
	
2004-08-17  Ben Elliston  <bje@au.ibm.com>

	* dominance.c (calc_idoms): Eliminate use of FOR_EACH_EDGE.
	* cfghooks.c: (make_forwarder_block): Likewise.
	* loop-init.c (loop_optimizer_init): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	* gcse.c (bypass_block): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.

2004-08-17  Ben Elliston  <bje@au.ibm.com>

	* cfg.c (remove_edge): Don't use FOR_EACH_EDGE for loops that
	alter the edge vector.
	(redirect_edge_succ): Likewise.
	(redirect_edge_pred): Likewise.

	* basic-block.h (FOR_EACH_EDGE): Record initial edge count.
	(END_FOR_EACH_EDGE): Test it.

	* basic-block.h (FOR_EACH_EDGE): Output filename and function name
	when throwing an internal error.

	* cfganal.c (remove_fake_predecessors): Don't use FOR_EACH_EDGE
	for loops that alter the edge vector.
	* cfgexpand.c (expand_gimple_tailcall): Likewise.
	(expand_gimple_basic_block): Likewise.
	* cfgloopmanip.c (force_nonfallthru_and_redirect): Likewise.
	(purge_dead_edges): Likewise.
	* except.c (finish_eh_generation): Likewise.
	* tree-cfg.c (cleanup_control_expr_graph): Likewise.
	(thread_jumps): Likewise.
	(tree_purge_dead_eh_edges): Likewise.

2004-08-16  Ben Elliston  <bje@au.ibm.com>

	* basic-block.h: Include "errors.h".
	(ENABLE_CHECKING): Define to 0 if not already defined.
	(FOR_EACH_EDGE): Reimplement.
	(END_FOR_EACH_EDGE): New.
	* Update all callers: Eliminate explicit iterator variables, use
	FOR_EACH_EDGE and END_FOR_EACH_EDGE macros.

2004-08-12  Ben Elliston  <bje@au.ibm.com>

	* basic-block.h (FOR_EACH_PRED_EDGE, FOR_EACH_SUCC_EDGE): Remove.
	* Update all callers to use FOR_EACH_EDGE instead.

2004-08-12  Ben Elliston  <bje@au.ibm.com>

	* basic-block.h (EDGE_PRED_COUNT, EDGE_SUCC_COUNT): Remove.
	* Update all callers to use EDGE_COUNT instead.

2004-07-31  Steven Bosscher  <stevenb@suse.de>

	* cfg.c (remove_edge): Use VEC_unordered_remove.
	(redirect_edge_succ): Likewise.
	(redirect_edge_pred): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.

	* dominance.c (calc_idoms): Initialize ix to -1 when computing
	post dominance and the block has fake exit edges.

	* cfgcleanup.c (try_forward_edges): Revert previous commit.

	* version.c: Add edge-vector-branch special version and merge tag.

2004-07-30  Steven Bosscher  <stevenb@suse.de>

	* cfgexpand.c (expand_block): Decrement the iterator if
	an edge is removed so that we re-examine the current vector slot.
	* tree-ssa-dce.c (remove_dead_stmt): Do not remove the first one but
	the last edge.

2004-07-30  Andrew Pinski  <apinski@apple.com>

	* cfgcleanup.c (try_forward_edges): Go back to the first edge after
	jump threading.
	* tree-cfg.c (disband_implicit_edges): Remove unused ix.
	(thread_jumps): Decrement the iterator if an edge is removed
	so that we re-examine the current vector slot.

2004-07-29  Ben Elliston  <bje@au.ibm.com>

	* basic-block.h (FALLTHRU_EDGE): Use EDGE_SUCC.
	(BRANCH_EDGE): Likewise.
	(EDGE_CRITICAL_P): Use EDGE_{PRED,SUCC}_COUNT.
	(FOR_EACH_PRED_EDGE, FOR_EACH_SUCC_EDGE): New.
	(EDGE_PRED_COUNT, EDGE_SUCC_COUNT): Likewise.
	(EDGE_PRED, EDGE_SUCC): Likewise.
	* bb-reorder.c, bt-load.c, cfg.c, cfganal.c, cfgbuild.c,
	cfgcleanup.c, cfgexpand.c, cfghooks.c, cfglayout.c, cfgloop.c,
	cfgloopanal.c, cfgloopmanip.c, cfgrtl.c, cse.c, df.c, dominance.c,
	domwalk.c, except.c, final.c, flow.c, function.c, gcse.c,
	gdbinit.in, global.c, graph.c, ifcvt.c, lcm.c, loop-doloop.c,
	loop-init.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
	loop-unswitch.c, modulo-sched.c, predict.c, profile.c, ra-build.c,
	ra-rewrite.c, ra.c, recog.c, reg-stack.c, regrename.c, reload1.c,
	sbitmap.c, sched-ebb.c, sched-rgn.c, tracer.c, tree-cfg.c,
	tree-into-ssa.c, tree-mudflap.c, tree-outof-ssa.c,
	tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-dce.c,
	tree-ssa-dom.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
	tree-ssa-loop-im.c, tree-ssa-loop-niter.c, tree-ssa-phiopt.c,
	tree-ssa-pre.c, tree-ssa.c, tree-tailcall.c, var-tracking.c,
	config/frv/frv.c, config/i386/i386.c, config/ia64/ia64.c,
	config/rs6000/rs6000.c: Update all callers.

2004-07-26  Ben Elliston  <bje@au.ibm.com>

	* bb-reorder.c (connect_traces): Use distinct iterator variables
	when nesting FOR_EACH_EDGE loops (ix vs. ix2).

2004-07-26  Andrew Pinski  <pinskia@physics.uc.edu>

	* bb-reorder.c (fix_up_fall_thru_edges): Fix up when there is no edge
	and when only one exists.
	(fix_crossing_conditional_branches): Likewise.
	Use EDGE_COUNT.
	* cfgcleanup.c (outgoing_edges_match): Speedup loop and use FOR_EACH_EDGE.
	(try_crossjump_bb): Speed up by checking the EDGE_COUNT before loop and
	remove the check in the loop.
	* cfghooks.c (delete_basic_block): Do not use FOR_EACH_EDGE when remove
	all edges but a loop of EDGE_COUNT.
	(merge_blocks): Likewise.
	(duplicate_block): Use EDGE_COUNT.
	* cfgrtl.c (purge_dead_edges): Adjust the iterator
	when removing an edge.
	* dominance.c (calc_idoms): Do not initialize ix as
	it is wrong.
	* tree-ssa-dce.c (remove_dead_phis): Do not use FOR_EACH_EDGE when remove
	all edges but a loop of EDGE_COUNT.
	* tree-ssa-loop-ch.c (duplicate_blocks): Make sure we found the other edge.

2004-07-26  Steven Bosscher  <stevenb@suse.de>

	* cfgcleanup.c (outgoing_edges_match): Test for exactly two edges,
	not two or less.
	* tree-cfg.c (cleanup_control_expr_graph): Adjust the iterator
	when removing an edge.
	(tree_purge_dead_eh_edges): Likewise.

2004-07-22  Andrew Pinski  <pinskia@physics.uc.edu>

	* cfganal.c (add_noreturn_fake_exit_edges): Use EDGE_COUNT.
	* cfgcleanup.c (try_optimize_cfg): Likewise.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	* ra-build.c (live_in): Likewise.
	* sched-rgn.c (build_control_flow): Likewise.
	* tree-ssa-pre.c (compute_antic_aux): Likewise.

	* cfgloop.c (flow_loop_pre_header_scan): Use EDGE_0 of the pred.
	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Initialize found.
	* dominance.c (calc_idoms): Initialize ix.
	* ra-build.c (live_in): Initialize e.
	* tree-mudflap.c (mf_build_check_statement_for): Use EDGE_0 of the pred.
	* tree-ssa-loop-ch.c (duplicate_blocks): Move defintion of ix up.

2004-07-22  Ben Elliston  <bje@au.ibm.com>

	* cfgcleanup.c (outgoing_edges_match): Clean up search of outgoing
	edges.  Don't test e1 and e2 for non-null values--check the edge
	counts instead.
	* tree-ssa-dce.c (remove_dead_stmt): Remove erroneous VEC_pop.

2004-07-22  Steven Bosscher  <stevenb@suse.de>

	* ifcvt.c (find_if_case_1): Use then_bb->pred, not succ. Typo.

2004-07-22  Ben Elliston  <bje@au.ibm.com>

	* cfg.c (redirect_edge_succ): Use FOR_EACH_EDGE for consistency.
	(redirect_edge_pred): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
	* tree-ssa-loop-ch.c (duplicate_blocks): Likewise.

2004-07-22  Steven Bosscher  <stevenb@suse.de>

	* var-tracking.c (vt_stack_adjustments): Fix stack push thinko.

2004-07-22  Andrew Pinski  <apinski@apple.com>

	* basic-block.h (FOR_EACH_EDGE): Set e at the begining too.
	* gcse.c (bypass_block): e2 is the iterator for the edges.
	* ifcvt.c (find_cond_trap): Use EDGE_COUNT.
	(block_has_only_trap): Likewise.
	(find_if_case_2): Set else_edge and not else_succ.
	Use else_succ when we used to.
	* sched-rgn.c (find_rgns): Use EDGE_COUNT.
	* tree-cfg.c (make_ctrl_stmt_edges): Likewise.
	(make_goto_expr_edges): Likewise.
	(thread_jumps): Likewise.
	(execute_warn_function_return): Likewise.
	* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph):
	Check the number of edges of e before setting e again.

2004-07-22  Ben Elliston  <bje@au.ibm.com>

	* ifcvt.c (find_if_block): Check else_succ edge count.
	* gcse.c (remove_reachable_equiv_notes): Assign NULL to `act' if
	the iterator overruns the end of the vector.

2004-07-22  Ben Elliston  <bje@au.ibm.com>

	* except.c (connect_post_landing_pads): Use EDGE_COUNT.
	* ifcvt.c (find_if_case_2): Only access edge 0 if the edge count
	is non-zero.
	* cfghooks.c (delete_basic_block): Truncate unconditionally as it
	is now safe to do so.

2004-07-21  Ben Elliston  <bje@au.ibm.com>

	* cfganal.c (remove_fake_predecessors): Decrement the iterator if
	an edge is removed so that we re-examine the current vector slot.
	* except.c (finish_eh_generation): Likewise.
	* cfgexpand.c (expand_block): Likewise.
	* cfghooks.c (delete_basic_block): Likewise.
	(merge_blocks): Likewise.
	* profile.c (compute_branch_probabilities): Use EDGE_COUNT, not
	a FOR_EACH_EDGE loop with an increment in the loop body.
	* cfgloopmanip.c (fix_irreducible_loops): Use EDGE_COUNT.
	* bb-reorder.c (copy_bb_p): Directly test if edge count exceeds 8.
	* ifcvt.c (merge_if_block): Use EDGE_COUNT for clarity.

2004-07-21  Ben Elliston  <bje@au.ibm.com>

	* cfg.c (clear_edges): Truncate the bb->succ, bb->pred vectors.
	Likewise for EXIT_BLOCK_PTR->succ and EXIT_BLOCK_PTR->pred.

2004-07-20  Ben Elliston  <bje@au.ibm.com>

	* config/ia64/ia64.c (ia64_expand_prologue): Iterate over edge
	vector instead of traversing a linked list.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Use EDGE_COUNT to
	count elements rather than testing the basic_block->pred member.
	* config/frv/frv.c (frv_ifcvt_modify_tests): Use edge accessor.

2004-07-20  Ben Elliston  <bje@au.ibm.com>	

	* Ben to add a large ChangeLog entry soon!