1 2004-08-31 Ben Elliston <bje@au.ibm.com>
3 * modulo-sched.c (sms_schedule): Comment fix.
4 (tree_block_forwards_to): Likewise.
6 * flow.c (init_propagate_block_info): Convert to vec usage.
8 2004-08-31 Steven Bosscher <stevenb@suse.de>
10 * gcse.c (remove_reachable_equiv_notes): Use an edge_stack.
12 2004-08-29 Ben Elliston <bje@au.ibm.com>
14 * Merge with edge-vector-mergepoint-20040829.
15 Note: edge-vector-mergepoint-20040827 was skipped over.
17 2004-08-27 Steven Bosscher <stevenb@suse.de>
19 * basic-block.h: Don't define ENABLE_CHECKING.
20 Define ENABLE_VEC_CHECKING to 0 if ENABLE_CHECKING is not defined,
21 or 1 if ENABLE_CHECKING is defined.
23 2004-08-26 Ben Elliston <bje@au.ibm.com>
25 * loop-iv.c (simplify_using_initial_values): Store e->src in a
26 temporary so that we count the predecessor edges from the correct
27 basic block (since `e' is reassigned).
29 2004-08-23 Ben Elliston <bje@au.ibm.com>
31 * predict.c (propagate_freq): Reformat comment to minimise diffs.
33 * tree-browser.c: Revert trivial patch to minimise diffs.
34 * ifcvt.c (block_fallthru): Correct logic inversion bug.
36 2004-08-19 Ben Elliston <bje@au.ibm.com>
38 * Merge with edge-vector-mergepoint-20040819.
40 2004-08-18 Steven Bosscher <stevenb@suse.de>
42 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
43 Extract edge flags with one _or_more_ edges.
45 2004-08-18 Ben Elliston <bje@au.ibm.com>
47 * Merge with edge-vector-mergepoint-20040810.
49 2004-08-18 Ben Elliston <bje@au.ibm.com>
51 * except.c (emit_to_new_bb_before): Eliminate FOR_EACH_EDGE.
53 2004-08-18 Ben Elliston <bje@au.ibm.com>
55 * ra-build.c (live_in): Initialise `e' to silence a warning.
56 * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
57 (sbitmap_intersection_of_preds): Likewise.
58 (sbitmap_union_of_preds): Likewise.
59 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Initialise
60 iterator variable `ix' to silence a warning.
62 2004-08-17 Ben Elliston <bje@au.ibm.com>
64 * dominance.c (calc_idoms): Eliminate use of FOR_EACH_EDGE.
65 * cfghooks.c: (make_forwarder_block): Likewise.
66 * loop-init.c (loop_optimizer_init): Likewise.
67 * cfgcleanup.c (try_forward_edges): Likewise.
68 * gcse.c (bypass_block): Likewise.
69 * function.c (thread_prologue_and_epilogue_insns): Likewise.
71 2004-08-17 Ben Elliston <bje@au.ibm.com>
73 * cfg.c (remove_edge): Don't use FOR_EACH_EDGE for loops that
74 alter the edge vector.
75 (redirect_edge_succ): Likewise.
76 (redirect_edge_pred): Likewise.
78 * basic-block.h (FOR_EACH_EDGE): Record initial edge count.
79 (END_FOR_EACH_EDGE): Test it.
81 * basic-block.h (FOR_EACH_EDGE): Output filename and function name
82 when throwing an internal error.
84 * cfganal.c (remove_fake_predecessors): Don't use FOR_EACH_EDGE
85 for loops that alter the edge vector.
86 * cfgexpand.c (expand_gimple_tailcall): Likewise.
87 (expand_gimple_basic_block): Likewise.
88 * cfgloopmanip.c (force_nonfallthru_and_redirect): Likewise.
89 (purge_dead_edges): Likewise.
90 * except.c (finish_eh_generation): Likewise.
91 * tree-cfg.c (cleanup_control_expr_graph): Likewise.
92 (thread_jumps): Likewise.
93 (tree_purge_dead_eh_edges): Likewise.
95 2004-08-16 Ben Elliston <bje@au.ibm.com>
97 * basic-block.h: Include "errors.h".
98 (ENABLE_CHECKING): Define to 0 if not already defined.
99 (FOR_EACH_EDGE): Reimplement.
100 (END_FOR_EACH_EDGE): New.
101 * Update all callers: Eliminate explicit iterator variables, use
102 FOR_EACH_EDGE and END_FOR_EACH_EDGE macros.
104 2004-08-12 Ben Elliston <bje@au.ibm.com>
106 * basic-block.h (FOR_EACH_PRED_EDGE, FOR_EACH_SUCC_EDGE): Remove.
107 * Update all callers to use FOR_EACH_EDGE instead.
109 2004-08-12 Ben Elliston <bje@au.ibm.com>
111 * basic-block.h (EDGE_PRED_COUNT, EDGE_SUCC_COUNT): Remove.
112 * Update all callers to use EDGE_COUNT instead.
114 2004-07-31 Steven Bosscher <stevenb@suse.de>
116 * cfg.c (remove_edge): Use VEC_unordered_remove.
117 (redirect_edge_succ): Likewise.
118 (redirect_edge_pred): Likewise.
119 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
121 * dominance.c (calc_idoms): Initialize ix to -1 when computing
122 post dominance and the block has fake exit edges.
124 * cfgcleanup.c (try_forward_edges): Revert previous commit.
126 * version.c: Add edge-vector-branch special version and merge tag.
128 2004-07-30 Steven Bosscher <stevenb@suse.de>
130 * cfgexpand.c (expand_block): Decrement the iterator if
131 an edge is removed so that we re-examine the current vector slot.
132 * tree-ssa-dce.c (remove_dead_stmt): Do not remove the first one but
135 2004-07-30 Andrew Pinski <apinski@apple.com>
137 * cfgcleanup.c (try_forward_edges): Go back to the first edge after
139 * tree-cfg.c (disband_implicit_edges): Remove unused ix.
140 (thread_jumps): Decrement the iterator if an edge is removed
141 so that we re-examine the current vector slot.
143 2004-07-29 Ben Elliston <bje@au.ibm.com>
145 * basic-block.h (FALLTHRU_EDGE): Use EDGE_SUCC.
146 (BRANCH_EDGE): Likewise.
147 (EDGE_CRITICAL_P): Use EDGE_{PRED,SUCC}_COUNT.
148 (FOR_EACH_PRED_EDGE, FOR_EACH_SUCC_EDGE): New.
149 (EDGE_PRED_COUNT, EDGE_SUCC_COUNT): Likewise.
150 (EDGE_PRED, EDGE_SUCC): Likewise.
151 * bb-reorder.c, bt-load.c, cfg.c, cfganal.c, cfgbuild.c,
152 cfgcleanup.c, cfgexpand.c, cfghooks.c, cfglayout.c, cfgloop.c,
153 cfgloopanal.c, cfgloopmanip.c, cfgrtl.c, cse.c, df.c, dominance.c,
154 domwalk.c, except.c, final.c, flow.c, function.c, gcse.c,
155 gdbinit.in, global.c, graph.c, ifcvt.c, lcm.c, loop-doloop.c,
156 loop-init.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
157 loop-unswitch.c, modulo-sched.c, predict.c, profile.c, ra-build.c,
158 ra-rewrite.c, ra.c, recog.c, reg-stack.c, regrename.c, reload1.c,
159 sbitmap.c, sched-ebb.c, sched-rgn.c, tracer.c, tree-cfg.c,
160 tree-into-ssa.c, tree-mudflap.c, tree-outof-ssa.c,
161 tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-dce.c,
162 tree-ssa-dom.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
163 tree-ssa-loop-im.c, tree-ssa-loop-niter.c, tree-ssa-phiopt.c,
164 tree-ssa-pre.c, tree-ssa.c, tree-tailcall.c, var-tracking.c,
165 config/frv/frv.c, config/i386/i386.c, config/ia64/ia64.c,
166 config/rs6000/rs6000.c: Update all callers.
168 2004-07-26 Ben Elliston <bje@au.ibm.com>
170 * bb-reorder.c (connect_traces): Use distinct iterator variables
171 when nesting FOR_EACH_EDGE loops (ix vs. ix2).
173 2004-07-26 Andrew Pinski <pinskia@physics.uc.edu>
175 * bb-reorder.c (fix_up_fall_thru_edges): Fix up when there is no edge
176 and when only one exists.
177 (fix_crossing_conditional_branches): Likewise.
179 * cfgcleanup.c (outgoing_edges_match): Speedup loop and use FOR_EACH_EDGE.
180 (try_crossjump_bb): Speed up by checking the EDGE_COUNT before loop and
181 remove the check in the loop.
182 * cfghooks.c (delete_basic_block): Do not use FOR_EACH_EDGE when remove
183 all edges but a loop of EDGE_COUNT.
184 (merge_blocks): Likewise.
185 (duplicate_block): Use EDGE_COUNT.
186 * cfgrtl.c (purge_dead_edges): Adjust the iterator
187 when removing an edge.
188 * dominance.c (calc_idoms): Do not initialize ix as
190 * tree-ssa-dce.c (remove_dead_phis): Do not use FOR_EACH_EDGE when remove
191 all edges but a loop of EDGE_COUNT.
192 * tree-ssa-loop-ch.c (duplicate_blocks): Make sure we found the other edge.
194 2004-07-26 Steven Bosscher <stevenb@suse.de>
196 * cfgcleanup.c (outgoing_edges_match): Test for exactly two edges,
198 * tree-cfg.c (cleanup_control_expr_graph): Adjust the iterator
199 when removing an edge.
200 (tree_purge_dead_eh_edges): Likewise.
202 2004-07-22 Andrew Pinski <pinskia@physics.uc.edu>
204 * cfganal.c (add_noreturn_fake_exit_edges): Use EDGE_COUNT.
205 * cfgcleanup.c (try_optimize_cfg): Likewise.
206 * cfglayout.c (fixup_reorder_chain): Likewise.
207 * ra-build.c (live_in): Likewise.
208 * sched-rgn.c (build_control_flow): Likewise.
209 * tree-ssa-pre.c (compute_antic_aux): Likewise.
211 * cfgloop.c (flow_loop_pre_header_scan): Use EDGE_0 of the pred.
212 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Initialize found.
213 * dominance.c (calc_idoms): Initialize ix.
214 * ra-build.c (live_in): Initialize e.
215 * tree-mudflap.c (mf_build_check_statement_for): Use EDGE_0 of the pred.
216 * tree-ssa-loop-ch.c (duplicate_blocks): Move defintion of ix up.
218 2004-07-22 Ben Elliston <bje@au.ibm.com>
220 * cfgcleanup.c (outgoing_edges_match): Clean up search of outgoing
221 edges. Don't test e1 and e2 for non-null values--check the edge
223 * tree-ssa-dce.c (remove_dead_stmt): Remove erroneous VEC_pop.
225 2004-07-22 Steven Bosscher <stevenb@suse.de>
227 * ifcvt.c (find_if_case_1): Use then_bb->pred, not succ. Typo.
229 2004-07-22 Ben Elliston <bje@au.ibm.com>
231 * cfg.c (redirect_edge_succ): Use FOR_EACH_EDGE for consistency.
232 (redirect_edge_pred): Likewise.
233 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
234 * tree-ssa-loop-ch.c (duplicate_blocks): Likewise.
236 2004-07-22 Steven Bosscher <stevenb@suse.de>
238 * var-tracking.c (vt_stack_adjustments): Fix stack push thinko.
240 2004-07-22 Andrew Pinski <apinski@apple.com>
242 * basic-block.h (FOR_EACH_EDGE): Set e at the begining too.
243 * gcse.c (bypass_block): e2 is the iterator for the edges.
244 * ifcvt.c (find_cond_trap): Use EDGE_COUNT.
245 (block_has_only_trap): Likewise.
246 (find_if_case_2): Set else_edge and not else_succ.
247 Use else_succ when we used to.
248 * sched-rgn.c (find_rgns): Use EDGE_COUNT.
249 * tree-cfg.c (make_ctrl_stmt_edges): Likewise.
250 (make_goto_expr_edges): Likewise.
251 (thread_jumps): Likewise.
252 (execute_warn_function_return): Likewise.
253 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph):
254 Check the number of edges of e before setting e again.
256 2004-07-22 Ben Elliston <bje@au.ibm.com>
258 * ifcvt.c (find_if_block): Check else_succ edge count.
259 * gcse.c (remove_reachable_equiv_notes): Assign NULL to `act' if
260 the iterator overruns the end of the vector.
262 2004-07-22 Ben Elliston <bje@au.ibm.com>
264 * except.c (connect_post_landing_pads): Use EDGE_COUNT.
265 * ifcvt.c (find_if_case_2): Only access edge 0 if the edge count
267 * cfghooks.c (delete_basic_block): Truncate unconditionally as it
268 is now safe to do so.
270 2004-07-21 Ben Elliston <bje@au.ibm.com>
272 * cfganal.c (remove_fake_predecessors): Decrement the iterator if
273 an edge is removed so that we re-examine the current vector slot.
274 * except.c (finish_eh_generation): Likewise.
275 * cfgexpand.c (expand_block): Likewise.
276 * cfghooks.c (delete_basic_block): Likewise.
277 (merge_blocks): Likewise.
278 * profile.c (compute_branch_probabilities): Use EDGE_COUNT, not
279 a FOR_EACH_EDGE loop with an increment in the loop body.
280 * cfgloopmanip.c (fix_irreducible_loops): Use EDGE_COUNT.
281 * bb-reorder.c (copy_bb_p): Directly test if edge count exceeds 8.
282 * ifcvt.c (merge_if_block): Use EDGE_COUNT for clarity.
284 2004-07-21 Ben Elliston <bje@au.ibm.com>
286 * cfg.c (clear_edges): Truncate the bb->succ, bb->pred vectors.
287 Likewise for EXIT_BLOCK_PTR->succ and EXIT_BLOCK_PTR->pred.
289 2004-07-20 Ben Elliston <bje@au.ibm.com>
291 * config/ia64/ia64.c (ia64_expand_prologue): Iterate over edge
292 vector instead of traversing a linked list.
293 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use EDGE_COUNT to
294 count elements rather than testing the basic_block->pred member.
295 * config/frv/frv.c (frv_ifcvt_modify_tests): Use edge accessor.
297 2004-07-20 Ben Elliston <bje@au.ibm.com>
299 * Ben to add a large ChangeLog entry soon!