]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/15089 (local register variable with a specified register...
[gcc.git] / gcc / ChangeLog
CommitLineData
aa24864c
RH
12004-09-28 Richard Henderson <rth@redhat.com>
2
3 PR 15089
4 * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
5 * tree-flow.h (may_propagate_copy_into_asm): Declare.
6 * tree-ssa-ccp.c (replace_uses_in): Use it.
7 * tree-ssa-dom.c (cprop_operand): Likewise.
8
e376fe58
JL
92004-09-28 Jeff Law <law@redhat.com>
10
11 * tree-ssa-threadupdate.c (create_block_for_threading): Request
12 that no outgoing edges be left in the duplicate block. Do no
13 update information on outgoing edges or PHI nodes in target
14 blocks here.
15 (remove_ctrl_stmt_and_useless_edges): Renamed from
16 remove_last_stmt_and_useless_edges. Handle case where the
17 block is empty or has no control statements. Do not update edge
18 flags here.
19 (thread_block): Create a template block rather than copying the
20 original block every time. Create outgoing edges from the
21 duplicate blocks and update PHIs at the target of the outgoing
22 edges here. Fix edge flags for the original block if necessary.
23 * cfghooks (duplicate_block): No longer assert that the original
24 block has incoming edges.
25
805c33df
HPN
262004-09-29 Hans-Peter Nilsson <hp@bitrange.com>
27
28 * doc/extend.texi (Extended Asm): Add blurb about using Explicit
29 Reg Vars to enforce register allocation with general constraints.
30 (Explicit Reg Vars): Clarify relation to asm statements.
31 (Local Reg Vars): Similar.
32
dcda8480
UW
332004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
34
35 * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
36 TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
37 build_control_flow, new_edge): Remove.
38 (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
39 (bitlst, bitlst_table_last, bitlst_table): Remove.
40 (bblst): Store basic_block pointer instead of block index.
41 (bblst_table): Likewise.
42 (edgelst): Store edge pointer instead of edge index.
43 (edgelst_table, edgelst_last): New variables.
44 (extract_bitlst): Rename to ...
45 (extract_edgelst): ... this. Return edge pointers, not indices.
46 (split_edges): Update call.
47 (rgn_edges): Store edge pointers instead of indices.
48 (edge_to_bit): Remove.
49 (EDGE_TO_BIT): Store per-region edge index in edge->aux.
50 (SET_EDGE_TO_BIT): New macro.
51 (is_cfg_nonregular): Check for simple cases of unreachable blocks.
52 (find_rgns): Remove edge_list parameter. Traverse standard CFG
53 data structures instead of haifa_edge et al. Use edge pointers
54 instead of edge indices everywhere.
55 (compute_dom_prob_ps): Use standard CFG data structures. Account
56 for exit edges.
57 (compute_trg_info): Likewise.
58 (propagate_deps): Likewise.
59 (debug_candidate): Account for bblst data structure change.
60 (check_live_1, update_live_1, is_pfree): Likewise.
61 (IS_REACHABLE): Use standard CFG data structures.
62 (init_ready_list): Update bblst_table/edgelst_table allocation.
63 (schedule_region): Update alloc/cleanup code to data structure
64 changes. Use edge->aux to store per-region edge index.
65 (init_regions): No longer call build_control_flow. Do not
66 create edge list any more.
67
2f39b6ca
UW
682004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
69
70 * cse.c (cse_insn): Avoid creating direct non-local jumps.
71 * combine.c (can_combine_p): Likewise.
72 * local-alloc. (update_equiv_regs): Likewise.
73
b0b324b0
RH
742004-09-28 Richard Henderson <rth@redhat.com>
75
76 PR 17531
77 * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
78 Don't check VOIDmode here. Force PLUS operands to common type.
79 (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of
80 Pmode if given a non pointer type.
81
822004-09-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
83
84 PR 17531
85 * optabs.c (expand_binop): Force constants to the correct mode.
86
ea77e738
UW
872004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
88
89 * config/s390/s390.c (s390_adjust_cost): Remove.
90 (TARGET_SCHED_ADJUST_COST): Do not redefine.
91 (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
92 * config/s390/s390.md ("main_pool"): Use "larl" type
93 attribute if TARGET_CPU_ZARCH.
94
9924d7d8
JJ
952004-09-28 Jakub Jelinek <jakub@redhat.com>
96
97 * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
98 variable.
99
81842e1b
DN
1002004-09-28 Diego Novillo <dnovillo@redhat.com>
101
102 * tree-ssa-loop.c (pass_record_bounds): Do not assign a
103 name to the pass.
104
21ef99b8
SB
1052004-09-28 Steven Bosscher <stevenb@suse.de>
106
107 * common.opt (flag_gcse_sm): Disable by default.
108 (flag_gcse_las): Likewise.
109 (flag_web): Likewise. Create from this file.
110 * flags.h: Remove flag_web declaration.
111 * toplev.c (flag_web): Likewise.
112 (process_options): Never set flag_web.
113
78492bf5
SB
1142004-09-28 Steven Bosscher <stevenb@suse.de>
115
116 * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
117 * tree-ssa-propagate.c: Include vec.h.
118 (interesting_ssa_edges, varying_ssa_edges): Make these VECs
119 instead of varrays.
120 (cfg_blocks_add): Assert the block is not already in the worklist.
121 Update uses of interesting_ssa_edges and varying_ssa_edges.
122 (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
123 ssa_propagate): Likewise.
124
ef787822
JM
1252004-09-28 Joseph S. Myers <jsm@polyomino.org.uk>
126
127 PR c/16409
128 * c-decl.c (start_decl): Check for initializing incomplete array
129 of VLAs.
130 (build_compound_literal): Check for TYPE being error_mark_node.
131 * c-parse.in (primary): Check for VLA compound literals.
132
c3b8e9aa
DN
1332004-09-28 Diego Novillo <dnovillo@redhat.com>
134
135 * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
136 with --disable-checking.
137
56bac5af
DP
1382004-09-28 Devang Patel <dpatel@apple.com>
139
140 * tree-pretty-print.c (dump_generic_node): Print vector types.
141
cc15e98f
NC
1422004-09-28 Nick Clifton <nickc@redhat.com>
143
144 * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
145 invocation of the function sh_init_cumulative_args.
146 (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
147 (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
148 * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
149 * config/sh/sh.c (sh_init_cumulative_args): New function based
150 on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
151 heuristic added to determine the setting of force_mem when a
152 library function is being called.
153
ee1f0fb0
DN
1542004-09-28 Diego Novillo <dnovillo@redhat.com>
155
156 * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
157 Skip constant arguments.
158
38e05395
DN
1592004-09-28 Diego Novillo <dnovillo@redhat.com>
160
161 * tree-ssa-alias.c (create_name_tags): If PTR points to a
162 volatile type, mark the tag volatile.
163 (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
164 volatile.
165
45fbb186
AP
1662004-09-28 Andrew Pinski <pinskia@physics.uc.edu>
167
168 * tree.def (vec_cond_expr): Fix. Change 'e'
169 to tcc_expression.
170
c2b7c2d8
KH
1712004-09-28 Kazu Hirata <kazu@cs.umass.edu>
172
173 * basic-block.h: Fix a comment typo.
174
6dbd43ba
KH
1752004-09-28 Kazu Hirata <kazu@cs.umass.edu>
176
177 * optabs.c, optabs.h: Fix comment typos.
178
ecaa611b
EB
1792004-09-28 Eric Botcazou <ebotcazou@act-europe.fr>
180
181 * config/sparc/sparc.md (call_address_struct_value_sp32):
182 Properly mask the immediate field of the 'unimp' instruction.
183 (call_symbolic_struct_value_sp32): Likewise.
184
628f6a4e
BE
1852004-09-24 Ben Elliston <bje@au.ibm.com>
186 Steven Bosscher <stevenb@suse.de>
187 Andrew Pinski <pinskia@physics.uc.edu>
188
189 Merge from edge-vector-branch:
190 * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
191 (struct edge_def): Remove pred_next, succ_next members.
192 (struct basic_block_def): Remove pred, succ members. Add preds
193 and succs members of type VEC(edge).
194 (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
195 (BRANCH_EDGE): Likewise.
196 (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
197 (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
198 (edge_iterator): New.
199 (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
200 (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
201 (FOR_EACH_EDGE): New.
202 * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
203 where applicable.
204 (rotate_loop): Likewise.
205 (find_traces_1_route): Likewise.
206 (bb_to_key): Likewise.
207 (connect_traces): Likewise.
208 (copy_bb_p): Likewise.
209 (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
210 (add_labels_and_missing_jumps): Likewise.
211 (fix_up_fall_thru_edges): Likewise.
212 (find_jump_block): Likewise.
213 (fix_crossing_conditional_branches): Likewise.
214 (fix_crossing_unconditional_branches): Likewise.
215 (add_reg_crossing_jump_notes): Likewise.
216 * bt-load.c (augment_live_range): Likewise.
217 * cfg.c (clear_edges): Likewise.
218 (unchecked_make_edge): Likewise.
219 (cached_make_edge): Likewise.
220 (make_single_succ_edge): Likewise.
221 (remove_edge): Likewise.
222 (redirect_edge_succ_nodup): Likewise.
223 (check_bb_profile): Likewise.
224 (dump_flow_info): Likewise.
225 (alloc_aux_for_edges): Likewise.
226 (clear_aux_for_edges): Likewise.
227 (dump_cfg_bb_info): Likewise.
228 * cfganal.c (forwarder_block_p): Likewise.
229 (can_fallthru): Likewise.
230 (could_fall_through): Likewise.
231 (mark_dfs_back_edges): Likewise.
232 (set_edge_can_fallthru_flag): Likewise.
233 (find_unreachable_blocks): Likewise.
234 (create_edge_list): Likewise.
235 (verify_edge_list): Likewise.
236 (add_noreturn_fake_exit_edges): Likewise.
237 (connect_infinite_loops_to_exit): Likewise.
238 (flow_reverse_top_sort_order_compute): Likewise.
239 (flow_depth_first_order_compute): Likewise.
240 (flow_preorder_transversal_compute): Likewise.
241 (flow_dfs_compute_reverse_execute): Likewise.
242 (dfs_enumerate_from): Likewise.
243 (compute_dominance_frontiers_1): Likewise.
244 * cfgbuild.c (make_edges): Likewise.
245 (compute_outgoing_frequencies): Likewise.
246 (find_many_sub_basic_blocks): Likewise.
247 (find_sub_basic_blocks): Likewise.
248 * cfgcleanup.c (try_simplify_condjump): Likewise.
249 (thread_jump): Likewise.
250 (try_forward_edges): Likewise.
251 (merge_blocks_move): Likewise.
252 (outgoing_edges_match): Likewise.
253 (try_crossjump_to_edge): Likewise.
254 (try_crossjump_bb): Likewise.
255 (try_optimize_cfg): Likewise.
256 (merge_seq_blocks): Likewise.
257 * cfgexpand.c (expand_gimple_tailcall): Likewise.
258 (expand_gimple_basic_block): Likewise.
259 (construct_init_block): Likewise.
260 (construct_exit_block): Likewise.
261 * cfghooks.c (verify_flow_info): Likewise.
262 (dump_bb): Likewise.
263 (delete_basic_block): Likewise.
264 (split_edge): Likewise.
265 (merge_blocks): Likewise.
266 (make_forwarder_block): Likewise.
267 (tidy_fallthru_edges): Likewise.
268 (can_duplicate_block_p): Likewise.
269 (duplicate_block): Likewise.
270 * cfglayout.c (fixup_reorder_chain): Likewise.
271 (fixup_fallthru_exit_predecessor): Likewise.
272 (can_copy_bbs_p): Likewise.
273 (copy_bbs): Likewise.
274 * cfgloop.c (flow_loops_cfg_dump): Likewise.
275 (flow_loop_entry_edges_find): Likewise.
276 (flow_loop_exit_edges_find): Likewise.
277 (flow_loop_nodes_find): Likewise.
278 (mark_single_exit_loops): Likewise.
279 (flow_loop_pre_header_scan): Likewise.
280 (flow_loop_pre_header_find): Likewise.
281 (update_latch_info): Likewise.
282 (canonicalize_loop_headers): Likewise.
283 (flow_loops_find): Likewise.
284 (get_loop_body_in_bfs_order): Likewise.
285 (get_loop_exit_edges): Likewise.
286 (num_loop_branches): Likewise.
287 (verify_loop_structure): Likewise.
288 (loop_latch_edge): Likewise.
289 (loop_preheader_edge): Likewise.
290 * cfgloopanal.c (mark_irreducible_loops): Likewise.
291 (expected_loop_iterations): Likewise.
292 * cfgloopmanip.c (remove_bbs): Likewise.
293 (fix_bb_placement): Likewise.
294 (fix_irreducible_loops): Likewise.
295 (remove_path): Likewise.
296 (scale_bbs_frequencies): Likewise.
297 (loopify): Likewise.
298 (unloop): Likewise.
299 (fix_loop_placement): Likewise.
300 (loop_delete_branch_edge): Likewise.
301 (duplicate_loop_to_header_edge): Likewise.
302 (mfb_keep_just): Likewise.
303 (create_preheader): Likewise.
304 (force_single_succ_latches): Likewise.
305 (loop_split_edge_with): Likewise.
306 (create_loop_notes): Likewise.
307 * cfgrtl.c (rtl_split_block): Likewise.
308 (rtl_merge_blocks): Likewise.
309 (rtl_can_merge_blocks): Likewise.
310 (try_redirect_by_replacing_jump): Likewise.
311 (force_nonfallthru_and_redirect): Likewise.
312 (rtl_tidy_fallthru_edge): Likewise.
313 (commit_one_edge_insertion): Likewise.
314 (commit_edge_insertions): Likewise.
315 (commit_edge_insertions_watch_calls): Likewise.
316 (rtl_verify_flow_info_1): Likewise.
317 (rtl_verify_flow_info): Likewise.
318 (purge_dead_edges): Likewise.
319 (cfg_layout_redirect_edge_and_branch): Likewise.
320 (cfg_layout_can_merge_blocks_p): Likewise.
321 (rtl_flow_call_edges_add): Likewise.
322 * cse.c (cse_cc_succs): Likewise.
323 * df.c (hybrid_search): Likewise.
324 * dominance.c (calc_dfs_tree_nonrec): Likewise.
325 (calc_dfs_tree): Likewise.
326 (calc_idoms): Likewise.
327 (recount_dominator): Likewise.
328 * domwalk.c (walk_dominator_tree): Likewise.
329 * except.c (emit_to_new_bb_before): Likewise.
330 (connect_post_landing_pads): Likewise.
331 (sjlj_emit_function_enter): Likewise.
332 (sjlj_emit_function_exit): Likewise.
333 (finish_eh_generation): Likewise.
334 * final.c (compute_alignments): Likewise.
335 * flow.c (calculate_global_regs_live): Likewise.
336 (initialize_uninitialized_subregs): Likewise.
337 (init_propagate_block_info): Likewise.
338 * function.c (thread_prologue_and_epilogue_insns): Likewise.
339 * gcse.c (find_implicit_sets): Likewise.
340 (bypass_block): Likewise.
341 (bypass_conditional_jumps): Likewise.
342 (compute_pre_data): Likewise.
343 (insert_insn_end_bb): Likewise.
344 (insert_store): Likewise.
345 (remove_reachable_equiv_notes): Likewise.
346 * global.c (global_conflicts): Likewise.
347 (calculate_reg_pav): Likewise.
348 * graph.c (print_rtl_graph_with_bb): Likewise.
349 * ifcvt.c (mark_loop_exit_edges): Likewise.
350 (merge_if_block): Likewise.
351 (find_if_header): Likewise.
352 (block_jumps_and_fallthru_p): Likewise.
353 (find_if_block): Likewise.
354 (find_cond_trap): Likewise.
355 (block_has_only_trap): Likewise.
356 (find_if_case1): Likewise.
357 (find_if_case_2): Likewise.
358 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
359 (perfect_nestify): Likewise.
360 * lcm.c (compute_antinout_edge): Likewise.
361 (compute_laterin): Likewise.
362 (compute_available): Likewise.
363 (compute_nearerout): Likewise.
364 * loop-doloop.c (doloop_modify): Likewise.
365 * loop-init.c (loop_optimizer_init): Likewise.
366 * loop-invariant.c (find_exits): Likewise.
367 * loop-iv.c (simplify_using_initial_values): Likewise.
368 (check_simple_exit): Likewise.
369 (find_simple_exit): Likewise.
370 * loop-unroll.c (peel_loop_completely): Likewise.
371 (unroll_loop_constant_iterations): Likewise.
372 (unroll_loop_runtime_iterations): Likewise.
373 * loop-unswitch.c (may_unswitch_on): Likewise.
374 (unswitch_loop): Likewise.
375 * modulo-sched.c (generate_prolog_epilog): Likewise.
376 (sms_schedule): Likewise.
377 * postreload-gcse.c (eliminate_partially_redundant_load):
378 Likewise.
379 * predict.c (can_predict_insn_p): Likewise.
380 (set_even_probabilities): Likewise.
381 (combine_predictions_for_bb): Likewise.
382 (predict_loops): Likewise.
383 (estimate_probability): Likewise.
384 (tree_predict_by_opcode): Likewise.
385 (tree_estimate_probability): Likewise.
386 (last_basic_block_p): Likewise.
387 (propagate_freq): Likewise.
388 (estimate_loops_at_level): Likewise.
389 (estimate_bb_frequencies): Likewise.
390 * profile.c (instrument_edges): Likewise.
391 (get_exec_counts): Likewise.
392 (compute_branch_probabilities): Likewise.
393 (branch_prob): Likewise.
394 * ra-build.c (live_in): Likewise.
395 * ra-rewrite.c (rewrite_program2): Likewise.
396 * ra.c (reg_alloc): Likewise.
397 * reg-stack.c (reg_to_stack): Likewise.
398 (convert_regs_entry): Likewise.
399 (compensate_edge): Likewise.
400 (convert_regs_1): Likewise,
401 (convert_regs_2): Likewise.
402 (convert_regs): Likewise.
403 * regrename.c (copyprop_hardreg_forward): Likewise.
404 * reload1.c (fixup_abnormal_edges): Likewise.
405 * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
406 (sbitmap_insersection_of_preds): Likewise.
407 (sbitmap_union_of_succs): Likewise.
408 (sbitmap_union_of_preds): Likewise.
409 * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
410 (fix_basic_block_boundaries): Likewise.
411 (sched_ebbs): Likewise.
412 * sched-rgn.c (build_control_flow): Likewise.
413 (find_rgns): Likewise.
414 * tracer.c (find_best_successor): Likewise.
415 (find_best_predecessor): Likewise.
416 (tail_duplicate): Likewise.
417 * tree-cfg.c (make_edges): Likewise.
418 (make_ctrl_stmt_edges): Likewise.
419 (make_goto_expr_edges): Likewise.
420 (tree_can_merge_blocks_p): Likewise.
421 (tree_merge_blocks): Likewise.
422 (cfg_remove_useless_stmts_bb): Likewise.
423 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
424 (tree_block_forwards_to): Likewise.
425 (cleanup_control_expr_graph): Likewise.
426 (find_taken_edge): Likewise.
427 (dump_cfg_stats): Likewise.
428 (tree_cfg2vcg): Likewise.
429 (disband_implicit_edges): Likewise.
430 (tree_find_edge_insert_loc): Likewise.
431 (bsi_commit_edge_inserts): Likewise.
432 (tree_split_edge): Likewise.
433 (tree_verify_flow_info): Likewise.
434 (tree_make_forwarder_block): Likewise.
435 (tree_forwarder_block_p): Likewise.
436 (thread_jumps): Likewise.
437 (tree_try_redirect_by_replacing_jump): Likewise.
438 (tree_split_block): Likewise.
439 (add_phi_args_after_copy_bb): Likewise.
440 (rewrite_to_new_ssa_names_bb): Likewise.
441 (dump_function_to_file): Likewise.
442 (print_pred_bbs): Likewise.
443 (print_loop): Likewise.
444 (tree_flow_call_edges_add): Likewise.
445 (split_critical_edges): Likewise.
446 (execute_warn_function_return): Likewise.
447 (extract_true_false_edges_from_block): Likewise.
448 * tree-if-conv.c (tree_if_conversion): Likewise.
449 (if_convertable_bb_p): Likewise.
450 (find_phi_replacement_condition): Likewise.
451 (combine_blocks): Likewise.
452 * tree-into-ssa.c (compute_global_livein): Likewise.
453 (ssa_mark_phi_uses): Likewise.
454 (ssa_rewrite_initialize_block): Likewise.
455 (rewrite_add_phi_arguments): Likewise.
456 (ssa_rewrite_phi_arguments): Likewise.
457 (insert_phi_nodes_for): Likewise.
458 (rewrite_into_ssa): Likewise.
459 (rewrite_ssa_into_ssa): Likewise.
460 * tree-mudflap.c (mf_build_check_statement_for): Likewise.
461 * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
462 (rewrite_trees): Likewise.
463 * tree-pretty-print.c (dump_bb_header): Likewise.
464 (dump_implicit_edges): Likewise.
465 * tree-sra.c (insert_edge_copies): Likewise.
466 (find_obviously_necessary_stmts): Likewise.
467 (remove_data_stmt): Likewise.
468 * tree-ssa-dom.c (thread_across_edge): Likewise.
469 (dom_opt_finalize_block): Likewise.
470 (single_incoming_edge_ignoring_loop_edges): Likewise.
471 (record_equivalences_from_incoming_edges): Likewise.
472 (cprop_into_successor_phis): Likewise.
473 * tree-ssa-live.c (live_worklist): Likewise.
474 (calculate_live_on_entry): Likewise.
475 (calculate_live_on_exit): Likewise.
476 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
477 (copy_loop_headers): Likewise.
478 * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
479 (fill_always_executed_in): Likewise.
480 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
481 * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
482 (compute_phi_arg_on_exit): Likewise.
483 * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
484 (get_loops_exit): Likewise.
485 (split_loop_exit_edge): Likewise.
486 (ip_normal_pos): Likewise.
487 * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
488 Likewise.
489 * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
490 (replace_phi_with_stmt): Likewise.
491 (value_replacement): Likewise.
492 * tree-ssa-pre.c (compute_antic_aux): Likewise.
493 (insert_aux): Likewise.
494 (init_pre): Likewise.
495 * tree-ssa-propagate.c (simulate_stmt): Likewise.
496 (simulate_block): Likewise.
497 (ssa_prop_init): Likewise.
498 * tree-ssa-threadupdate.c (thread_block): Likewise.
499 (create_block_for_threading): Likewise.
500 (remove_last_stmt_and_useless_edges): Likewise.
501 * tree-ssa.c (verify_phi_args): Likewise.
502 (verify_ssa): Likewise.
503 * tree_tailcall.c (independent_of_stmt_p): Likewise.
504 (find_tail_calls): Likewise.
505 (eliminate_tail_call): Likewise.
506 (tree_optimize_tail_calls_1): Likewise.
507 * tree-vectorizer.c (vect_transform_loop): Likewise.
508 * var-tracking.c (prologue_stack_adjust): Likewise.
509 (vt_stack_adjustments): Likewise.
510 (vt_find_locations): Likewise.
511 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
512 * config/i386/i386.c (ix86_pad_returns): Likewise.
513 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
514 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
515
5be9b7a1
EB
5162004-09-28 Eric Botcazou <ebotcazou@libertysurf.fr>
517
518 PR target/16532
519 * config/sparc/sparc.c (struct machine_function): New field
520 'leaf_function_p' and 'prologue_data_valid_p'.
521 (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
522 to conveniently access the above fields.
523 (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
524 (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
525 of the generic flavor 'current_function_uses_only_leaf_regs'.
526 (eligible_for_sibcall_delay): Likewise.
527 (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
528 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'.
529 (sparc_asm_function_prologue): Add sanity check for the assumption
530 made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'.
531 (sparc_can_use_return_insn_p): New function.
532 (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
533 (output_restore): Likewise.
534 (output_sibcall): Likewise.
535 (sparc_output_mi_thunk): Likewise.
536 * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
537 * config/sparc/sparc.md (return): New expander.
538
539 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
540
455f19cb
MM
5412004-09-27 Mark Mitchell <mark@codesourcery.com>
542
543 PR c++/17642
544 * stor-layout.c (layout_decl): Use fold_convert, not convert.
545 (bit_from_pos): Likewise.
546 (byte_from_pos): Likewise.
547 (pos_from_bit): Likewise.
548 (normalize_offset): Likewise.
549 (place_field): Likewise.
550 (finalize_type_size): Likewise.
551 (layout_type): Likewise.
552 * tree.c (build_index_type): Likewise.
553
7ce67fbe
DP
5542004-09-27 Devang Patel <dpatel@apple.com>
555
556 * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
557 * genopinit.c (optabs): New entry for vcond_gen_code and
558 vcondu_gen_code.
559 * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
560 (get_rtx_code): New function.
561 (vector_compare_rtx): New function.
562 (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
563 (expand_vec_cond_expr_p): New function.
564 (expand_vec_cond_expr): New function.
565 (get_vcond_icode): New function.
566 * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
567 (vcond_gen_code, vcondu_gen_code): Same.
568
55040e7a
KC
5692004-09-27 Kelley Cook <kcook@gcc.gnu.org>
570
571 * Makefile.in (STAGESTUFF): Split into ...
572 (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
573 (mostlyclean): Update.
574 (stage1-start, stage2-start, stage3-start, stage4-start,
575 stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
576 Move the STAGEMOVESTUFF.
577
f6260033
EB
5782004-09-27 Eric Botcazou <ebotcazou@libertysurf.fr>
579
580 * system.h (getpagesize): Return 'int' instead of 'long'.
581
49f41d06
MM
5822004-09-27 Michael Matz <matz@suse.de>
583
584 PR bootstrap/17698
585 PR bootstrap/17702
586 * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
587 bmp_iter_and_init): Shift by bit_in_word.
588
a62322c4
KC
5892004-09-27 Kelley Cook <kcook@gcc.gnu.org>
590
591 * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
592 * configure.ac: Don't sinclude it here.
593 * configure: Regenerate.
594
850e8d3d
DN
5952004-09-27 Dorit Naishlos <dorit@il.ibm.com>
596
597 * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
598 Handle AND pattern
599
5e9bda65
JM
6002004-09-27 Joseph S. Myers <jsm@polyomino.org.uk>
601
602 PR c/13804
603 * c-typeck.c (build_component_ref): Name type involved in
604 diagnostic for structure or union without a member of the given
605 name.
606
43f51151
DD
6072004-09-27 DJ Delorie <dj@redhat.com>
608
609 * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
610 .comm alignment is bytes, not bits.
611
6337c1a2
DP
6122004-09-27 Devang Patel <dpatel@apple.com>
613
614 * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
615 (print_call_name): Do not print VEC_COND_EXPR.
6337c1a2 616
7e200b50
DP
6172004-09-27 Devang Patel <dpatel@apple.com>
618
619 * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
620
8c1e80e9
JH
6212004-09-27 Jan Hubicka <jh@suse.cz>
622
623 * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
624
75e50bd2
KH
6252004-09-27 Kazu Hirata <kazu@cs.umass.edu>
626
627 * bitmap.h: Fix a comment typo.
628
94c1e7ac
AL
6292004-09-27 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
630
631 * libgcc2.c (getpagesize): Change type of return value to int.
632
772299b3
MA
6332004-09-26 Matt Austern <austern@apple.com>
634
635 * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
636 using mmap.
637
87c476a2
ZD
6382004-09-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
639
640 * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
641 EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
642 (bitmap_iterator): New type.
643 (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
644 bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
645 bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
646 bmp_iter_and_init, bmp_iter_and_next): New functions.
647 * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
648 EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
649 use iterator-style EXECUTE_IF_IN_BITMAP macros.
650 * bitmap.c (bitmap_print): Ditto.
651 * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
652 btr_def_live_range): Ditto.
653 * cfganal.c (compute_dominance_frontiers_1) Ditto.
654 * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
655 Ditto.
656 * ddg.c (build_inter_loop_deps): Ditto.
657 * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
658 Ditto.
659 * except.c (remove_eh_handler): Ditto.
660 * flow.c (reg_set_to_hard_reg_set): Ditto.
661 * gcse.c (clear_modify_mem_tables): Ditto.
662 * global.c (build_insn_chain): Ditto.
663 * ifcvt.c (dead_or_predicable): Ditto.
664 * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
665 Ditto.
666 * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
667 * ra-rewrite.c (reloads_to_loads, rewrite_program2,
668 detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
669 * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
670 tree_purge_all_dead_eh_edges): Ditto.
671 * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
672 insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
673 rewrite_ssa_into_ssa): Ditto.
674 * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
675 * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
676 Ditto.
677 * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
678 compute_flow_sensitive_aliasing, maybe_create_global_var,
679 dump_points_to_info_for): Ditto.
680 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
681 * tree-ssa-dse.c (dse_finalize_block): Ditto.
682 * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
683 calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
684 Ditto.
685 * tree-ssa-loop-ivopts.c (find_induction_variables,
686 find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
687 determine_use_iv_costs, determine_set_costs, find_best_candidate,
688 set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
689 Ditto.
690 * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
691 * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
692 add_call_read_ops): Ditto.
693 * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
694
69049ba0
JDA
6952004-09-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
696
697 * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
698 UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
699
6cbaec9e
UW
7002004-09-26 Ulrich Weigand <uweigand@de.ibm.com>
701
702 * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
703 reflect size of memory regions being compared.
704
931e6c29
UW
7052004-09-26 Ulrich Weigand <uweigand@de.ibm.com>
706
707 * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
708 expressions. Always clear MEM_SIZE and alias set.
709
897f610b
RS
7102004-09-26 Roger Sayle <roger@eyesopen.com>
711 Giovanni Bajo <giovannibajo@gcc.gnu.org>
712
713 PR middle-end/17112
714 * stor-layout.c (compute_record_mode): For records with a single
715 field, only use the field's mode if its size matches what we'd
716 have choosen for the record ourselves. This forces the use of
717 BLKmode for packed records that don't completely fill a mode.
718
5c8c573a
RS
7192004-09-26 Roger Sayle <roger@eyesopen.com>
720
721 PR middle-end/17151
722 * combine.c (force_to_mode): Remove dubious early return test that
723 inhibits further optimization.
724
628f3b63
KH
7252004-09-26 Kazu Hirata <kazu@cs.umass.edu>
726
727 * profile.c: Fix a comment typo.
728
be35cf60
ZD
7292004-09-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
730
731 PR bootstrap/17591
732 * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
733 with varying offset.
734 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
735 (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
736 ARRAY_REFS.
737 (expr_invariant_in_loop_p): New function.
738 (idx_find_step): Handle step and lower bound for ARRAY_REFs. Handle
739 component_ref_field_offset for COMPONENT_REFs. Do not allow
740 ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
741 (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
742 MISALIGNED_INDIRECT_REFs.
743 (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
744 (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
745 MISALIGNED_INDIRECT_REFs.
746
34096b92
JM
7472004-09-26 Joseph S. Myers <jsm@polyomino.org.uk>
748
749 PR c/11459
750 * gcc.c (cpp_options, cc1_options): Preserve relative order of
751 -std and -ansi options.
752
5db0241f
JH
7532004-09-26 Jan Hubicka <jh@suse.cz>
754
1168d30f
JH
755 * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
756 for nested functions whose proper parent has not been output.
757
5db0241f
JH
758 * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
759 when re-constructing profile previously invalidated by loop.
760
bfe0d06b
DJ
7612004-09-25 Dale Johannesen <dalej@apple.com>
762
763 * tree-gimple.c: Move GIMPLE definition...
764 * doc/tree-ssa.texi: here.
765
601d18c6
KH
7662004-09-25 Kazu Hirata <kazu@cs.umass.edu>
767
768 * tree-vectorizer.c: Fix a comment typo.
769
ea4b7848
KH
7702004-09-25 Kazu Hirata <kazu@cs.umass.edu>
771
772 * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
773 gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
774 lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
775 tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
776
e75220c8
KH
7772004-09-25 Kazu Hirata <kazu@cs.umass.edu>
778
779 * tree-ssa-loop-unswitch.c: Fix a comment typo.
780
87880c12
KH
7812004-09-25 Kazu Hirata <kazu@cs.umass.edu>
782
783 * doc/passes.texi: Fix a typo.
784
f3cd574f
ZD
7852004-09-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
786
787 * tree-optimize.c (init_tree_optimization_passes): Add
788 pass_record_bounds.
789 * tree-pass.h (pass_record_bounds): Declare.
790 * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
791 New pass.
792
f34fa464
ZD
7932004-09-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
794
795 PR tree-optimization/17474
796 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
797 offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
798
70f3cc30
JH
7992004-09-25 Jan Hubicka <jh@suse.cz>
800
f34fa464 801 * predict.c (counts_to_freqs): Make global.
bbd236a1
JH
802 * predict.h (counts_to_freqa): Declare.
803 * profile.c (compute_branch_probabilities): Compute frequencies
804 * tree-profile.c (do_tree_profiling): Refine conditional on when
805 tree profiling pass is needed.
806
70f3cc30
JH
807 * passes.c (rest_of_handle_cfg): Disable const/pure function
808 detection when doing tree based profiling.
809
810 * tree-inline.c (expand_call_inline): Fix incorrectly reversed
811 conditional.
812
b11a9d5f
RS
8132004-09-25 Richard Sandiford <rsandifo@redhat.com>
814
815 * config/mips/mips.h (struct mips_args): Clarify comments.
816 * config/mips/mips.c (struct mips_arg_info): Likewise.
817 (mips_arg_info): Don't allow fpr_p to affect the register or
818 stack alignment. Remove o64 silliness.
819 (function_arg): Deal with the o32 float,float case specially.
820
03eccdc8
RS
8212004-09-25 Richard Sandiford <rsandifo@redhat.com>
822
823 * config/mips/mips.md (loadx, storex): Define for V2SF.
824
ef44a6ff
UW
8252004-09-25 Ulrich Weigand <uweigand@de.ibm.com>
826
827 * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
828 * config/s390/s390.c (s390_back_chain_rtx): New function.
829 * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
830 Call anti_adjust_stack.
831 ("restore_stack_block"): Use s390_back_chain_rtx. Enable pattern
832 only if compiling with back chain.
833 ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
834 back chain only if back chain enabled. Use s390_back_chain_rtx.
835
60ae6360
JM
8362004-09-25 Joseph S. Myers <jsm@polyomino.org.uk>
837
838 * doc/trouble.texi: Remove obsolete information. Update
839 information on how to regenerate fixincluded headers.
840
b99cfc22
JM
8412004-09-25 Joseph S. Myers <jsm@polyomino.org.uk>
842
843 PR c/12951
844 * doc/invoke.texi: Document that
845 -Wno-error-implicit-function-declaration is not accepted.
846
e2ea71ea
RH
8472004-09-24 Richard Henderson <rth@redhat.com>
848
849 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
850 * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
851 on TARGET_MAX.
852 (alpha_expand_mov): Allow unaligned vectors.
853 (alpha_expand_unaligned_store): Use CONST0_RTX.
854 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
855
b8545fbf
JL
8562004-09-24 Jeff Law <law@redhat.com>
857
858 * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
859 aliasing rules.
860 (simplify_cond_and_lookup_avail_expr): Likewise.
861
2fbebc71
JM
8622004-09-24 Joseph S. Myers <jsm@polyomino.org.uk>
863
864 PR c/12802
865 * doc/extend.texi (Unnamed Fields): Remove "." from end of long
866 title. Document interaction with -fms-extensions.
867 * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
868 section.
869
2e9522f4
JM
8702004-09-24 Joseph S. Myers <jsm@polyomino.org.uk>
871
872 PR c/12713
873 * doc/extend.texi: Document interaction of attribute noreturn and
874 longjmp.
875
41bf2a8b
RH
8762004-09-24 Richard Henderson <rth@redhat.com>
877
878 PR rtl-opt/17503
879 * regclass.c (subregs_of_mode): Turn into an htab. Make static.
880 (som_hash, som_eq): New.
881 (init_subregs_of_mode, record_subregs_of_mode): New.
882 (cannot_change_mode_set_regs): Rewrite for htab implementation.
883 (invalid_mode_change_p): Likewise.
884 * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
885 * flow.c (mark_used_regs): Likewise.
886 (life_analysis): Use init_subregs_of_mode.
887 * regs.h (subregs_of_mode): Remove.
888 * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
889
84f7a28c
AP
8902004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
891
892 * tree-ssa-phiopt.c (conditional_replacement): Use the correct
893 type with the copy of the conditional.
894
532c67ca
AP
8952004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
896
897 PR tree-opt/16954
898 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
899 Prevent renaming if the aliasing sets of the type which the
900 pointer points to are different.
901
085e33aa
JM
9022004-09-24 Joseph S. Myers <jsm@polyomino.org.uk>
903
904 PR c/17188
905 * c-decl.c (diagnose_mismatched_decls): Check for duplicate
906 declarations of enumerators.
907 (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
908 for redefinition. Check for nested redefinition.
909 (finish_struct): Don't check for nested redefinition.
910 (start_enum): Check for nested redefinition.
911
a2159c4c
DP
9122004-09-24 Devang Patel <dpatel@apple.com>
913
914 * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
915 only when necesssary.
916 (combine_blocks): Combine loop header and exit block.
917
55e74277
PB
9182004-09-24 Paolo Bonzini <bonzini@gnu.org>
919
920 * hooks.c (hook_tree_tree_bool_null): New.
921 * hooks.h (hook_tree_tree_bool_null): Declare it.
922 * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
923 * targhooks.c (default_fold_builtin): Remove.
924 * targhooks.h (default_fold_builtin): Remove.
925
30d3fc60
ZD
9262004-09-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
927
928 PR rtl-optimization/17625
929 * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
930
54e075fe
AP
9312004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
932
933 PR tree-opt/17624
934 * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
935 Reject if any of the operands occur in an abnormal PHI.
936
4a198dea
AS
9372004-09-24 Andreas Schwab <schwab@suse.de>
938
939 * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
940 rules.
941
5d865dac
EB
9422004-09-24 Eric Botcazou <ebotcazou@libertysurf.fr>
943
944 * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
945 if the GNU assembler is used.
946 (sparc-*-solaris2*): Likewise.
947 * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
948 (dbxout_function_end): Protect N_ENSYM with it.
949 (dbxout_begin_prologue): Protect N_BNSYM with it.
950 * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
951 * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
952 * config/sparc/sol2-gas.h: New file.
953
4c4a5bbc
L
9542004-09-23 H.J. Lu <hongjiu.lu@intel.com>
955
956 PR bootstrap/17369
957 * Makefile.in (@set_gcc_lib_path@): Added.
958
959 * configure.ac: Include ../config/gcc-lib-path.m4. Use
960 TL_AC_GNU_MAKE_GCC_LIB_PATH.
961 * configure: Regenerated.
962
ff80e49f
JM
9632004-09-24 Joseph S. Myers <jsm@polyomino.org.uk>
964
965 PR c/6980
966 * c-typeck.c (build_c_cast): Improve wording of
967 -Wbad-function-cast diagnostic.
968
e758023d
HPN
9692004-09-23 Hans-Peter Nilsson <hp@axis.com>
970
971 PR target/17626
972 * config/cris/cris.md (moverside, movemside): Rename variable
973 "reg" to "otherop". To generate canonical RTX, check that otherop
974 isn't constant instead of checking that operand 1 is a register.
975
31d66fa9
JJ
9762004-09-23 Jakub Jelinek <jakub@redhat.com>
977
978 * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
979
b28b1600
JJ
9802004-09-23 Diego Novillo <dnovillo@redhat.com>
981 Jakub Jelinek <jakub@redhat.com>
982
983 * tree-flow.h (find_new_referenced_vars): Add prototype.
984 * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
985 Move to...
986 * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
987 ... here.
988 (mark_new_vars_to_rename): Walk through all operands.
989 * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
990 (execute_fold_all_builtins): Use it.
991 (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
992
512baaea
D
9932004-09-23 P.J. Darcy <darcypj@us.ibm.com>
994
995 * gthr-tpf.h: New file.
996 * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
997 * gthr.h: Use gthr-tpf.h on TPF OS.
998
3aecd08b
JL
9992004-09-23 Jeff Law <law@redhat.com>
1000
1001 * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
1002 than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
1003 (substitute_and_fold): Likewise.
1004 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
1005 except invariants from SSA_NAME_VALUE.
1006 (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
1007 and SET_SSA_NAME_EQUIV.
1008 (restore_vars_to_original_value, record_const_or_copy): Likewise.
1009 (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
1010 (record_equality, cprop_into_successor_phis): Likewise.
1011 (record_equivalences_from_stmt, cprop_operand): Likewise.
1012 (lookup_avail_expr): Likewise.
1013 * tree-ssa-pre.c (fini_pre): Remove everything except invariants
1014 from SSA_NAME_VALUE.
1015 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
1016 (struct tree_ssa_name): Kill EQUIV field. Remove GGC skip
1017 annotation from the VALUE_HANDLE field.
1018
037cc9c5 10192004-09-21 Fariborz Jahanian <fjahanian@apple.com>
23fad16e 1020
037cc9c5
FJ
1021 PR c++/13989
1022 PR c++/9844
037cc9c5 1023 * tree.c (reconstruct_complex_type): Remove extra "this".
037cc9c5
FJ
1024 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
1025 Add V4SFmode to case statement.
1026
e6e931b7
JM
10272004-09-23 Joseph S. Myers <jsm@polyomino.org.uk>
1028
1029 PR c/16833
1030 * doc/extend.texi, doc/invoke.texi: Document interaction of
1031 -fno-builtin with format checks. Note that built-in functions
1032 have effects beyond generating code that avoids calls to those
1033 functions.
1034
df485d80
FCE
10352004-09-23 Frank Ch. Eigler <fche@redhat.com>
1036
1037 PR tree-optimization/17533
1038 * dominance.c (verify_dominators): Tolerate even more incorrect
1039 dominance data during error message printing.
1040 * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
1041 and edges more correctly.
1042
7ccf35ed
DN
10432004-09-23 Dorit Naishlos <dorit@il.ibm.com>
1044
a834e70b
SB
1045 * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
1046 New tree-codes.
1047 * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
1048 MISALIGNED_INDIRECT_REF.
1049 * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
1050 * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
1051 Likewise.
1052 * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
1053 (find_interesting_uses_address): Likewise.
1054 * fold-const.c (non_lvalue, operand_equal_p): Likewise.
1055 (build_fold_addr_expr_with_type): Likewise.
1056 * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
1057 * print-rtl.c (print_mem_expr): Likewise.
1058 * tree-dump.c (dequeue_and_dump): Likewise.
1059 * tree-eh.c (tree_could_trap_p): Likewise.
1060 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
1061 * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
1062 * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
1063 Likewise.
1064 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1065 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
1066 * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
1067 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
1068 (add_address_candidates, rewrite_address_base): Likewise.
1069 * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
1070 Likewise.
1071 * tree.c (staticp, build1_stat): Likewise.
1072
1073 * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
1074 * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
1075 * tree-ssa-operands.c (get_expr_operands): Likewise.
1076 * expr.c (expand_expr_real_1): Likewise.
1077
1078 * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
1079 optabs.
1080 (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
1081 for the new optabs.
1082 (expand_ternary_op): New function.
1083 * genopinit.c (optabs): Handle the new optabs.
1084 * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
1085 (init_optabs): Initialize vec_realign_load_optab.
1086 (expand_ternary_op): New functions.
1087
1088 * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
1089 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
1090 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
1091 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
1092 * target.h (struct vectorize): New member for struct gcc_target.
1093 (misaligned_mem_ok): New member for targetm.vectorize.
1094 (builtin_mask_for_load): Likewise.
1095 (builtin_mask_for_store): Likewise.
1096 * targethooks.c (default_vect_misaligned_mem_ok): New function.
1097 * targethooks.h (default_vect_misaligned_mem_ok): New function.
1098
1099 * config/rs6000/altivec.md (build_vector_mask_for_load): New
1100 define_expand.
1101 (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
1102 (vec_realign_load_v16qi): New define_insn.
1103 * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
1104 (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
1105 * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
1106 (altivec_builtin_mask_for_store): New variables.
1107 (rs6000_builtin_mask_for_load): New function. Implements
1108 TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
1109 (rs6000_builtin_mask_for_store): New function. Implements
1110 TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
1111 (rs6000_expand_builtin): Expand the target builtins
1112 builtin_mask_for_load and builtin_mask_for_store.
1113 (altivec_init_builtins): Initialize the new target builtins.
1114 * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
1115 Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
1116
1117 * tree-vectorizer.c (vect_create_data_ref): Renamed to
1118 vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
1119 (vect_create_addr_base_for_vector_ref): Additional argument (offset).
1120 (vectorizable_store): Call vect_create_data_ref_ptr with additional
1121 arguments, and create an indirect_ref with its return value data_ref.
1122 Check aligned_access_p.
1123 (vectorizable_load): Handle misaligned loads, using software-pipelined
1124 scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
1125 vec_realign_load_optab is supported, or using a scheme without
1126 software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
1127 misaligned_mem_ok is supported.
1128
1129 (vect_finish_stmt_generation): Typo.
1130 (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
1131 (vect_analyze_data_refs_alignment): Don't fail vectorization in the
1132 presence of misaligned loads.
1133 (vect_analyze_data_ref_access): Add check for constant init.
1134 (vect_get_symbl_and_dr): Remove duplicate line.
1135 * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
7ccf35ed 1136
d31012b7
KH
11372004-09-23 Kazu Hirata <kazu@cs.umass.edu>
1138
1139 * builtins.c: Fix a comment typo.
1140
aa26df17
JH
11412004-09-23 Jan Hubicka <jh@suse.cz>
1142
1143 * profile.c (branch_prob): Do not verify flow info in the middle of the
1144 pass.
1145
92fc4a2f
ZD
11462004-09-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1147
1148 * cfgloop.h (update_single_exits_after_duplication): Declare.
1149 (loopify, split_loop_bb): Declaration changed.
1150 * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
1151 of rtx.
1152 (loopify): Added redirect_all_edges argument.
1153 (update_single_exits_after_duplication): Export.
1154 * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
1155 * tree-flow.h (tree_duplicate_loop_to_header_edge,
1156 tree_ssa_loop_version): Declare.
1157 * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
1158 set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
1159 lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
1160 lv_update_pending_stmts, tree_ssa_loop_version): New functions.
1161
1162 * tree-ssa-loop-unswitch.c: New file.
1163 * Makefile.in (tree-ssa-loop-unswitch.o): Add.
1164 * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
1165 * tree-flow.h (tree_ssa_unswitch_loops): Declare.
1166 * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
1167 * tree-pass.h (pass_unswitch): Declare.
1168 * tree-ssa-loop.c (tree_ssa_loop_unswitch,
1169 gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
1170 * doc/passes.texi: Documen tree level loop unswitching.
1171
d7e9e62a
KH
11722004-09-23 Kazu Hirata <kazu@cs.umass.edu>
1173
1174 * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
1175
d3147f64
EC
11762004-09-22 Eric Christopher <echristo@redhat.com>
1177
1178 * builtins.c (simplify_builtin_va_start): Remove.
1179 (simplify_builtin): Ditto.
1180 (fold_builtin_strchr): Ditto.
1181 (simplify_builtin_*): Rename remainders to fold_builtin_*.
1182 (expand_builtin): Fix up for above changes.
1183 (fold_builtin_1): Add new folders. Change for above.
1184 (expand_builtin_va_start): Call fold_builtin_next_arg.
1185 * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
1186 * tree.h: Remove prototype for simplify_builtin.
1187
e53de54d
JH
11882004-09-23 Jan Hubicka <jh@suse.cz>
1189
60108d34
JH
1190 PR debug/17389
1191 * dwarf2out.c (dwarf2out_finish): Deal with nested functions
1192 of fully inlined functions.
1193 * tree-inline.c (inline_forbidden_p_1): Nested functions can be
1194 inlined.
1195
e53de54d
JH
1196 * cfgexpand.c (add_reg_br_prob_note): New function.
1197 (expand_gimple_cond_expr): Use it.
1198 (tree_expand_cfg): No longer kill the profile.
1199 * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
1200 only if it is present.
1201 * passes.c (rest_of_handle_loop_optimize): Kill the profile.
1202 * predict.c (combine_predictions_for_insn): Set the probabilities
1203 based on REG_BR_PROB note if present.
1204 * predict.c (branch_prob): Profile is read only with
1205 flag_branch_probabilities.
1206
dfb77e37
KC
12072004-09-22 Kelley Cook <kcook@gcc.gnu.org>
1208
1209 * aclocal.m4: Add in gettext's m4 includes.
1210 (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
a9db2a29 1211 * configure.ac: Add in check for iconv.h
dfb77e37 1212 * configure: Regenerate.
d3147f64 1213
88fa57d7
KC
12142004-09-22 Kelley Cook <kcook@gcc.gnu.org>
1215
1216 * aclocal.m4: Update for rename of gettext-sister.m4.
1217
8eee3528
DB
12182004-09-22 Daniel Berlin <dberlin@dberlin.org>
1219
1220 Fix PR tree-optimization/17587
1221 * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
1222 (insert_aux): Instead of here.
1223
c04f07f4
DN
12242004-09-22 Diego Novillo <dnovillo@redhat.com>
1225
1226 PR tree-optimization/16721
1227 * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
1228 * tree-ssa-alias.c (create_memory_tag): Move setting of
1229 TREE_THIS_VOLATILE ...
1230 (get_tmt_for): ... here.
1231
ba652ba9
EB
12322004-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1233
1234 * config/sparc/sparc.md (cmove splitter): Fix formatting.
1235 (conditional_trap expander): Reject inappropriate CCmodes.
8db6bcda 1236 (conditional trap insn): Use V9 syntax if possible.
ba652ba9 1237
588d1952
JM
12382004-09-22 Joseph S. Myers <jsm@polyomino.org.uk>
1239
1240 PR c/16566
1241 * c-typeck.c (build_component_ref): Don't special-case
1242 COMPOUND_EXPR.
1243
08fb229e
FCE
12442004-09-22 Frank Ch. Eigler <fche@redhat.com>
1245
1246 * dominance.c (verify_dominators): Don't SEGV if recount_dominator
1247 returns NULL.
1248
9b270cce
KH
12492004-09-22 Kazu Hirata <kazu@cs.umass.edu>
1250
1251 * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
1252 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1253 TRUTH_XOR_EXPR): Mention the restriction on types.
1254
8739ed59
MA
12552004-09-22 Matt Austern <austern@apple.com>
1256
8921359e 1257 * config/darwin.c (darwin_make_decl_one_only):
8739ed59 1258 Allow coalesced symbol to appear in static archive's table of contents
d3147f64 1259
a338ab5a
KH
12602004-09-22 Kazu Hirata <kazu@cs.umass.edu>
1261
1262 PR tree-optimization/17512
1263 * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
1264 special cases.
1265
39cf49a1
DE
12662004-09-22 David Edelsohn <edelsohn@gnu.org>
1267
1268 * dbxout.c (get_lang_number): Do not define if
1269 DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
1270
d1c343cb
RC
12712004-09-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1272
1afd063a 1273 PR target/15583
d1c343cb
RC
1274 * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
1275 builtin_define ("__USE_INIT_FINI__").
1276
4798630c
D
12772004-09-22 P.J. Darcy <darcypj@us.ibm.com>
1278
1279 * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
1280 * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
1281 * config/s390/s390.h (TARGET_TPF): New macro.
1282 * config/s390/s390.md ("eh_return"): New expander.
1283 * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
1284 unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c.
1285 (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
1286 * config/s390/tpf.h (TARGET_TPF): Define to 1.
1287 (STACK_POINTER_OFFSET): Increase to 448.
1288 (TARGET_DEFAULT): Set -mtpf-trace on as default.
1289 (TPF_LOC_DIFF_OFFSET): New macro.
1290 (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
1291 encoding.
1292 (__isPATrange): Add prototype.
1293 (MD_FALLBACK_FRAME_STATE_FOR): Define.
1294 * config/s390/tpf-eh.c: New file.
1295
6a97296a
DN
12962004-09-22 Diego Novillo <dnovillo@redhat.com>
1297
1298 * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
1299 operands in an integer comparison.
1300 * tree-cfg.c (find_taken_edge): Call fold() to determine
1301 whether the predicate is known.
1302
3b620440
KC
13032004-09-22 Kelley Cook <kcook@gcc.gnu.org>
1304
1305 * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
1306 * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
1307 Create build and doc directories along with the language directories.
1308 Don't create doc directory separately.
1309 * configure: Regenerate.
1310 * Makefile.in: Create all object and executables files built
1311 with the build compiler in a build/ directory.
1312 (genobjnames): Add missing build objects.
1313 (STAGESTUFF): Don't stage the gen* programs.
1314 (ggc-none.o): Define dependencies for the target compiler.
1315 (build-print-rtl.o): Rename to build/print-rtl.o.
1316 (build-errors.o): Rename to build/errors.o.
1317 (build-varray.o): Rename to build/varray.o.
1318 (maintainerclean): Delete the contents of the build directory.
1319 ($(genobjs): %.o): Explicitly use -o.
1320 (build/insn-conditions.o): Delete specfic rule to use generic rule.
1321 (build/gengtype-lex.o): Likewise.
1322 (build/gengtype-yacc.o): Likewise.
1323 (build/gcov-iov.o): Likewise.
1324
0e64e323
NS
13252004-09-22 Nathan Sidwell <nathan@codesourcery.com>
1326
1327 * vec.h (VEC_space): Return true if there _is_ space.
1328 (VEC_reserve): Adjust.
1329
e1aeeae9
RS
13302004-09-22 Richard Sandiford <rsandifo@redhat.com>
1331
1332 * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
1333 use FPRs for scalar, complex and vector types only.
1334
195da47b
JL
13352004-09-21 Jeff Law <law@redhat.com>
1336
23530866
JL
1337 * tree-ssa-dom.c (opt_stats): Move so that it lives just after
1338 the opt_stats_d structure.
1339 (vrp_data): Change from a varray into a hash table.
1340 (vrp_hash_elt): New structure for elements in the vrp hash table.
1341 (vrp_hash, vrp_eq):New functions for hashing and testing equality
1342 in the vrp hash table.
1343 (tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize
1344 initialization slightly to make it easier to read. No longer need
1345 to grow/clear the varray. Instead empty and delete the hash table.
1346 (dom_opt_finalize_block): Update due to change of VRP_DATA from
1347 a varray to a hash table.
1348 (simplify_cond_and_loop_avail_expr, record_range): Similarly.
1349
195da47b
JL
1350 * tree-ssa-ccp.c (get_default_value): If we have a constant
1351 value recorded for an SSA_NAME, then use that constant as
1352 the initial lattice value.
1353 (substitute_and_fold): Transfer equivalences discovered into
1354 SSA_NAME_EQUIV.
d3147f64 1355
195da47b
JL
1356 * tree.h (SSA_NAME_EQUIV): Add comments.
1357 (SET_SSA_NAME_EQUIV): Similarly.
1358
0a4f0294
DE
13592004-09-21 David Edelsohn <edelsohn@gnu.org>
1360
1361 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
1362
1363 * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
1364
1ae57298
MM
13652004-09-21 Mark Mitchell <mark@codesourcery.com>
1366
1367 * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
1368 (finish_decl): Likewise.
1369
ad9f20cb
DP
13702004-09-21 Devang Patel <dpatel@apple.com>
1371
1372 * tree.def (VEC_COND_EXPR): New tree node.
1373 * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
d3147f64 1374
76419821
SS
13752004-09-21 Stan Shebs <shebs@apple.com>
1376
1377 * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
1378 * config/rs6000/darwin-world.asm: Likewise.
d3147f64 1379
7bab95ba
DB
13802004-09-21 Daniel Berlin <dberlin@dberlin.org>
1381
1382 * tree-ssa.c (verify_def): Use print_generic_stmt,
1383 not debug_generic_stmt.
1384 (verify_use): Ditto.
1385 (verify_phi_args): Ditto.
1386 (verify_ssa): Ditto.
1387
a13fd905
PB
13882004-09-21 Paul Brook <paul@codesourcery.com>
1389
1390 * varasm.c (default_assemble_integer): Return false for values wider
1391 than the target word size. Works around GAS bug.
1392
52c5701b
ZW
13932004-09-21 Zack Weinberg <zack@codesourcery.com>
1394
1395 * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
1396 gets value 0.
1397 * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
1398 if it has value 0.
1399
f0c721ad 14002004-09-21 Daniel Berlin <dberlin@dberlin.org>
52c5701b 1401
f0c721ad
DB
1402 * c-typeck.c (build_function_call): Give name of object
1403 we are attempting to call in error message.
1404 * c-objc-common.c (c_tree_printer): Call pp_expression,
1405 not return false, for 'E' case.
1406
c93320c4
SB
14072004-09-21 Steven Bosscher <stevenb@suse.de>
1408
1409 PR rtl-optimization/17482
1410 * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
1411 load_killed_in_block_p): Clarify comments.
1412 (record_last_reg_set_info): Make static inline.
1413 (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
1414 (record_opr_changes): New function to replace the above.
1415 (compute_hash_table): Clarify comments. Use record_opr_changes.
1416 (reg_set_between_after_reload_p): Clean up.
1417 (reg_used_between_after_reload_p): Likewise.
1418 (eliminate_partially_redundant_load): Clarify comments.
1419
15ee342b
EB
14202004-09-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1421
1422 PR rtl-optimization/17266
1423 * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
1424
79b82df3
UB
14252004-09-21 Uros Bizjak <uros@kss-loka.si>
1426
1427 PR rtl-optimization/14851
1428 * rtlanal.c (commutative_operand_precedence): Calculate
1429 precedence of stripped constant.
1430
6f2aec07 14312004-09-20 Jeff Law <law@redhat.com>
52c5701b 1432 Jan Hubicka <jh@suse.cz>
6f2aec07
JL
1433
1434 * tree-ssanames.c (make_ssa_name): No longer need to clear, then
1435 initialize key elements here.
1436 (release_ssa_name): Zero the released SSA_NAME here.
1437 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
1438 (struct tree_ssa_name): Add new "equiv" field.
1439 * tree-ssa-dom.c (const_and_copies): Kill the global varray.
1440 (tree_ssa_dominator_optimize): No longer allocate, resize or
1441 clear CONST_AND_COPIES.
1442 (get_value_for, set_value_for): Kill.
1443 (thread_across_edge): Get/set the equivalency using
1444 SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
1445 (restore_vars_to_original_value): Likewise.
1446 (record_equivalences_from_phis): Likewise.
1447 (record_dominating_conditions): Likewise.
1448 (record_const_or_copy, record_equality): Likewise.
1449 (lookup_avail_expr): Likewise.
1450 (record_equivalences_from_stmt, cprop_operand): Likewise.
1451 (cprop_into_successor_phis): No longer need to pass around
1452 CONST_AND_COPIES. Callers updated. Get equivalences via
1453 SSA_NAME_EQUIV.
1454 (cprop_into_phis): Likewise.
1455
c162c75e
MA
14562004-09-20 Matt Austern <austern@apple.com>
1457 Zack Weinberg <zack@codesourcery.com>
1458
1459 * c-common.c (fix_string_type): Build the unqualified array
1460 type unconditionally, then use c_build_qualified_type to get
1461 the proper const-qualified variant, and set its
1462 TYPE_MAIN_VARIANT to refer to the unqualified type.
1463 * c-lex.c (c_lex_return_raw_string): New global.
1464 (c_lex_with_flags): Honor it.
1465 * c-pragma.h: Declare it.
1466
5cfa8766
DB
14672004-09-20 Daniel Berlin <dberlin@dberlin.org>
1468
1469 * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
1470
d21bede3
JH
14712004-09-21 Jan Hubicka <jh@suse.cz>
1472
1473 PR middle-end/17126
1474 * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
1475 (tree_rest_of_compilation): Cleanup.
1476
37337e55
UW
14772004-09-20 Ulrich Weigand <uweigand@de.ibm.com>
1478
1479 * config/s390/s390.c (s390_select_rtx_section): Remove.
1480 (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
1481
455786b6
KK
14822004-09-20 Kaz Kojima <kkojima@gcc.gnu.org>
1483
1484 * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
1485 note to pretend a direct save from the original register when an
1486 intermediate register is used for the save.
1487
2c82eecc
KG
14882004-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1489
1490 * tsystem.h (alloca): Provide a default definition.
1491
1492 Revert:
1493 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1494 * unwind-dw2.c: Call __builtin_alloca, not alloca.
1495
b1940f0c
AP
14962004-09-20 Andrew Pinski <pinskia@physics.uc.edu>
1497
1498 PR tree-opt/17558
1499 * tree-ssa-copy.c (may_propagate_copy): Only allow if the
1500 aliasing sets are the same rather than just conflicting.
1501
8f235343
JH
15022004-09-20 Jan Hubicka <jh@suse.cz>
1503
1504 PR middle-end/16460
1505
1506 * cgraph.c (cgraph_unnest_node): New function.
1507 (c_finalize): Rename to ....
1508 (c_warn_unused_result_recursivly): ... this one; do only the warning
1509 (finish_function): Finalize the toplevel function; do not lower nested tree.
1510 * cgraph.h (cgraph_unnest_node): Declare.
1511 * cgraphunit.c (decide_is_function_needed): Do not use cgraph
1512 nestedness datastructure.
1513 * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
1514 * reload1.c (set_label_offsets): Fix call of set_label_offsets.
1515 * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code.
1516
04161e2b
RH
15172004-09-20 Richard Henderson <rth@redhat.com>
1518
1519 * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
1520 from some_small_symbolic_operand_1; export.
1521 (some_small_symbolic_operand): Remove.
1522 * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
1523 extra C check.
1524 * config/alpha/predicates.md (some_small_symbolic_operand): New.
1525
bb033fd8
JH
15262004-09-20 Jan Hubicka <jh@suse.cz>
1527
1528 * predict.c (return_prediction): New function.
1529 (apply_return_prediction): Likewise.
1530 (tree_bb_level_predictions): Likewise.
1531 (tree_estimate_probability): Add noreturn exit edges; call
1532 bb_level_predictions; fix logic of return heuristics.
1533 (predict_paths_leading_to): Rescuesce from old CVS version of
1534 process_note_prediction function.
1535 * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
1536
ea506297
AK
15372004-09-20 Andreas Krebbel <krebbel1@de.ibm.com>
1538
1539 * config/s390/s390.c (s390_frame_info): Added alignment statement for
1540 floating point register area on stack.
1541
096759eb
JJ
15422004-09-20 Jakub Jelinek <jakub@redhat.com>
1543
1544 * predict.c (expr_expected_value): Use *_CLASS_P macros.
1545
d6fd4b8d
DB
15462004-09-20 Daniel Berlin <dberlin@dberlin.org>
1547
c162c75e 1548 * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
d6fd4b8d
DB
1549 generating useless garbage.
1550
c2dda19b
PB
15512004-09-20 Paolo Bonzini <bonzini@gnu.org>
1552
1553 * builtins.c (fold_builtin): Call the new omonymous
1554 target hook for machine-dependent built-ins.
1555 * target-def.h (TARGET_FOLD_BUILTIN): New.
1556 * target.h (struct gcc_target): Add the fold_builtin hook.
1557 * targhooks.c (default_fold_builtin): New.
1558 * targhooks.h (default_fold_builtin): Declare it.
1559
d4a9b3a3
KH
15602004-09-20 Kazu Hirata <kazu@cs.umass.edu>
1561
1562 * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
1563 comment typos.
1564
073cbad3
RS
15652004-09-20 Richard Sandiford <rsandifo@redhat.com>
1566
1567 PR target/17565
1568 * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
1569
58016611
JH
15702004-09-20 Jan Hubicka <jh@suse.cz>
1571
1572 * predict.c (estimate_probability): Remove unnecesary code.
1573
6775f1f3
IR
15742004-09-19 Ira Rosen <irar@il.ibm.com>
1575
1576 * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
1577 (STMT_VINFO_VECT_DR_BASE): Declare.
1578 (VECT_SMODULO): Declare.
1579 * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
1580 (vect_compute_array_base_alignment): New function.
1581 (vect_analyze_data_ref_access): Check array indices. Remove one
1582 dimensional arrays restriction.
1583 (vect_get_ptr_offset): New function.
1584 (vect_get_symbl_and_dr): New function.
1585 (vect_get_base_and_bit_offset): Support additional data refs. Renamed
1586 (former name vect_get_base_decl_and_bit_offset).
1587 (vect_create_index_for_array_ref): Removed.
1588 (vect_create_index_for_vector_ref): New function.
1589 (vect_create_addr_base_for_vector_ref): New function.
1590 (vect_create_data_ref): Handle additional data refs. Call
1591 vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
1592 (vect_compute_data_ref_alignment): Support the changes. Call
1593 vect_get_base_and_bit_offset.
1594 (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
1595 data refs. Store vect_dr_base.
1596 (vect_analyze_data_ref_accesses): Support nonconstant init.
1597 (new_stmt_vec_info): Initialize vect_dr_base field.
1598 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
1599 (get_vectype_for_scalar_type): Check for BLKmode.
1600 * tree-chrec.h (initial_condition_in_loop_num): Declare.
1601 * tree-chrec.c (initial_condition_in_loop_num): New function.
1602 (chrec_component_in_loop_num): New function.
1603 (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
1604 * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
1605 to be pointer to varray_type.
1606
15db5571
JH
16072004-09-19 Jan Hubicka <jh@suse.cz>
1608
1609 * basic-block.h (update_bb_profile_after_threading): Declare.
1610 * cfg.c (update_bb_profile_after_threading): Break out from ...
1611 * cfgcleanup.c (try_forward_edges): ... here; use it.
1612 * tree-ssa-dom.c (thread_across_edge): Use it.
1613 * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
1614 profile of the new BB.
1615
97141338
DB
16162004-09-19 Daniel Berlin <dberlin@dberlin.org>
1617
1618 * tree-ssa-pre.c (insert_into_set): Don't put
1619 is_gimple_min_invariant values into the set.
1620
76fd4fd7
AJ
16212004-09-19 Andreas Jaeger <aj@suse.de>
1622
1623 * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
1624 prototype.
1625
938688cd
KH
16262004-09-18 Kazu Hirata <kazu@cs.umass.edu>
1627
1628 * config/cris/cris.h: Preserve the original spelling in a
1629 quote.
1630
fdabe5c2
JL
16312004-09-18 Jeff Law <law@redhat.com>
1632
1633 * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
1634 global varrays to replace the block local varrays.
1635 (struct dom_walk_block_data): Remove, no longer used.
1636 (get_eq_expr_value): No longer need to pass around pointers to local
1637 varrays. Callers updated. Unused markers added to unused parameters.
1638 (record_range, record_equivalences_from_stmt): Likewise.
1639 (record_equivalences_from_incoming_edge): Likewise.
1640 (record_var_is_nonzero): Likewise. Update now that we have a
1641 single global varray of SSA_NAMEs that need restoring.
1642 (dom_opt_initialize_block_local_data): Kill, no longer used.
1643 (tree_ssa_dominator_optimize): Initialize new global varrays.
1644 Update callbacks in dominator walker structure.
1645 (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
1646 VRP_VARIABLES_STACK.
1647 (restore_nonzero_vars_to_original_value): Update now that we have
1648 a single global varray of SSA_NAMEs that need restoring.
1649 (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
1650 Remove unused variables.
1651 (optimize_stmt): Remove unused variable.
1652
0eac5feb
JH
16532004-09-18 Jan Hubicka <jh@suse.cz>
1654
4d539f68
JH
1655 * tree-cfg.c (thread_jumps): Fix updating of the profile.
1656
0eac5feb
JH
1657 * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
1658 verify_cgraph call.
1659
454ff5cb
KH
16602004-09-18 Kazu Hirata <kazu@cs.umass.edu>
1661
1662 * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
1663 gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
1664 optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
1665 tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
1666 tree-ssa-operands.c, tree-ssa-phiopt.c,
1667 tree-ssa-threadupdate.c: Fix comment typos.
1668
112cdef5
KH
16692004-09-18 Kazu Hirata <kazu@cs.umass.edu>
1670
1671 * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
1672 config/arm/README-interworking, config/arm/arm-cores.def,
1673 config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
1674 config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
1675 config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
1676 config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
1677 config/frv/frv.md, config/i386/winnt.c,
1678 config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
1679 config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
1680 config/m68hc11/m68hc11.md, config/m68k/m68k.c,
1681 config/mcore/mcore.c, config/mips/mips.h,
1682 config/mn10300/mn10300.md, config/pa/pa.c,
1683 config/pa/pa64-regs.h, config/pdp11/pdp11.c,
1684 config/rs6000/rs6000.c, config/sh/symbian.c,
1685 config/sparc/sparc.h: Fix comment typos. Follow spelling
1686 conventions.
1687
ad97f4be
JM
16882004-09-18 Joseph S. Myers <jsm@polyomino.org.uk>
1689
1690 PR c/17424
1691 * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
1692
57e28d7d
DN
16932004-09-18 Diego Novillo <dnovillo@redhat.com>
1694
1695 * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
1696 remove TREE_ADDRESSABLE from RESULT_DECL.
1697
d804d490
DN
16982004-09-18 Diego Novillo <dnovillo@redhat.com>
1699
1700 * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
1701
8b547e44
JH
17022004-09-18 Jan Hubicka <jh@suse.cz>
1703
1704 * tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return
1705 NULL.
1706 * tree-ssa-alias.c (init_alias_info): Likewise.
1707 * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
1708 (verify_ssa): Likewise.
1709 * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
1710
b8771ace
JH
17112004-09-18 Jan Hubicka <jh@suse.cz>
1712
1713 * i386.c (legitimize_pic_address): Fix splitting of PLUS with
1714 huge offset.
1715
f4966f8c
KK
17162004-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
1717
1718 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
1719 * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1720 DW_EH_PE_sdata* for data.
1721 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1722
a396f8ae
GK
17232004-09-17 Geoffrey Keating <geoffk@apple.com>
1724
1725 * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
1726 shared anyway.
1727
1728 PR pch/13361
1729 * c-typeck.c (constructor_asmspec): Delete.
1730 (struct initializer_stack): Delete field 'asmspec'.
1731 (start_init): Delete saving of asmspec.
1732 (finish_init): Don't update constructor_asmspec.
1733 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
1734 * stmt.c (expand_asm): Duplicate strings from tree.
1735 (expand_asm_operands): Likewise.
1736 * tree.c (tree_size): Update computation of size of STRING_CST.
1737 (make_node): Don't make STRING_CST nodes.
1738 (build_string): Allocate string with tree node.
1739 (tree_code_size): Clean up assertions, don't allow requests
1740 for "the size of a STRING_CST".
1741 * tree.def (STRING_CST): Update comment.
1742 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
1743 (tree_string): Place contents of string in tree node.
1744 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
1745 from tree.
1746
9aa44508
ZW
17472004-09-17 Zack Weinberg <zack@codesourcery.com>
1748
1749 * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
1750 * objc/Make-lang.in (objc/objc-parse.o): Likewise.
1751
bf3b7cd3
JD
17522004-09-17 Jones Desougi <jones@ingate.com>
1753
1754 * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
1755 * configure, config.in: Regenerate.
1756
b85e3643
ZW
17572004-09-17 Zack Weinberg <zack@codesourcery.com>
1758
1759 * tree.c, tree.h (tree_class_strings): Make array const.
1760 Reindent per coding convention. Move asterisk to proper place
1761 per coding convention.
1762
6e336333
AS
17632004-09-18 Andreas Schwab <schwab@suse.de>
1764
1765 * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
1766 (tree-vectorizer.o): Likewise.
1767 (targhooks.o): Likewise.
1768
6615c446
JO
17692004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
1770 Zack Weinberg <zack@codesourcery.com>
1771
1772 * alias.c (find_base_decl): Remove unreachable case '3' block.
1773 * expr.c (safe_from_p): Abort if passed a type.
1774 * tree-gimple.c (recalculate_side_effects): Abort if passed
1775 anything other than an expression.
1776 * tree-ssa-pre.c (phi_translate): Return expr immediately if
1777 is_gimple_min_invariant is true for it. Reorder cases for clarity.
1778 Abort on un-handled tree classes.
1779 (valid_in_set): Likewise.
1780 * tree.c (tree_code_class_strings): New static data.
1781
1782 * tree.h (enum tree_code_class): New.
1783 (tree_code_class_strings): Declare.
1784 (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
1785 (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
1786 (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
1787 (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
1788 (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
1789
1790 * tree.def, c-common.def, objc/objc-tree.def: Use
1791 tree_code_class enumeration constants instead of code letters.
1792
1793 * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
1794 * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
1795 * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
1796 * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
1797 * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
1798 * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
1799 * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
1800 * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
1801 * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
1802 * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
1803 * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
1804 * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
1805 * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
1806 Update to match.
1807
1808 * LANGUAGES: Add note about change.
1809
823f0809
DN
18102004-09-17 Diego Novillo <dnovillo@redhat.com>
1811
1812 PR tree-optimization/17319
1813 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
1814 examine pointers on the LHS of an assignment.
1815 (collect_points_to_info_r): Handle RETURN_EXPR.
1816
b5fefcf6
JL
18172004-09-17 Jeff Law <law@redhat.com>
1818
1819 * tree-ssa-dom.c (const_and_copies_stack): New.
1820 (dom_walk_block_data): Remove const_and_copies field.
1821 (record_const_or_copy): No longer need to pass in varray_type *.
1822 Use CONST_AND_COPIES_STACK rather than passed in block local stack.
1823 Callers updated.
1824 (record_equality): Similarly.
1825 (restore_vars_to_original_value): Similarly. Revamp to use new
1826 single global stack rather than per-block stacks.
1827 (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
1828 (thread_across_edge): Remove now unused parameters.
1829 (dom_opt_initialize_block_local_data): No longer test the block
1830 local CONST_AND_COPIES.
1831 (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
1832
2c459e74
JH
18332004-09-17 Jan Hubicka <jh@suse.cz>
1834
1835 PR tree-optimization/17509
1836 * tree-optimize.c (update_inlined_to_pointers): New function.
1837 (tree_rest_of_compilation): Use it.
1838
0456cbf6
DP
18392004-09-17 Devang Patel <dpatel@apple.com>
1840
1841 * dbxout.c (get_lang_number): New.
1842 (dbxout_init): Include lang number in N_SO stab.
1843 * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
1844 N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
6615c446 1845
7eae8eb2
DN
18462004-09-17 Diego Novillo <dnovillo@redhat.com>
1847
1848 PR tree-optimization/17273
1849 * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
1850 replacement is a constant.
1851
98c3a782
JM
18522004-09-17 Joseph S. Myers <jsm@polyomino.org.uk>
1853
1854 * c-tree.h (enum c_typespec_keyword): New.
1855 (struct c_declspecs): Adjust description of "type". Remove
1856 specbits, explicit_int_p and explicit_char_p. Rename
1857 typedef_signed_p to explicit_signed_p. Add default_int_p, long_p,
1858 short_p, signed_p, unsigned_p and complex_p.
1859 (finish_declspecs): New.
1860 * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
1861 typename): Call finish_declspecs.
1862 * c-decl.c (finish_declspecs): New.
1863 (declspecs_add_type): Check for combinations which cannot occur in
1864 valid specifier lists. Update comments.
1865 (shadow_tag_warned): Remove checks done in finish_declspecs.
1866 Don't report useless type name if type defaulted to int.
1867 (grokdeclarator): Remove checks and actions done in
1868 finish_declspecs. Don't allow for type being NULL. Update for
1869 datastructures changes. Initialize decl_attr.
1870 (build_null_declspecs, quals_from_declspecs): Update for
1871 datastructures changes.
1872
254ea84c
SP
18732004-09-17 Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
1874
6615c446 1875 * doc/extend.texi: Fix duplicated word.
254ea84c 1876
fa151acf
TM
18772004-09-17 Toon Moene <toon@moene.indiv.nluug.nl>
1878
1879 * doc/invoke.texi: Remove stray explanation on
1880 -freduce-all-givs and -fmove-all-movables.
1881
cd1a8088
JM
18822004-09-17 James Morrison <phython@gcc.gnu.org>
1883
1884 * doc/cfg.texi: Use @smallexample.
1885 * doc/md.texi: Likewise.
1886 * doc/tree-ssa.texi: Likewise.
1887 * doc/extend.texi: Likewise. Use @r{} in comments.
1888 * doc/trouble.texi: Use @r{} in comments.
1889
58ea87a9
HPN
18902004-09-17 Hans-Peter Nilsson <hp@bitrange.com>
1891
1892 * configure.ac (gcc_cv_gld_version): Handle whitespace before
1893 "VERSION=".
1894 * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
1895 * configure: Regenerate.
1896
788bb47d
JR
18972004-09-17 J"orn Rennecke <joern.rennecke@superh.com>
1898
1899 * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
1900 (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
1901 * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
1902 * t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match dashes and trailing
1903 slashes in substitutions.
1904 (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
1905
b01d837f
KH
19062004-09-17 Kazu Hirata <kazu@cs.umass.edu>
1907
1908 * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
1909 gimplify.c, lambda-code.c, optabs.c, predict.c,
1910 tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
1911 tree-ssa.c, vec.h: Fix comment typos. Follow spelling
1912 conventions.
1913
4ec7afd7
KH
19142004-09-17 Kazu Hirata <kazu@cs.umass.edu>
1915
1916 * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
1917 doc/extend.texi, doc/install.texi, doc/invoke.texi,
1918 doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
1919 doc/trouble.texi: Use @option around options.
1920
6eab2bc3
RS
19212004-09-17 Richard Sandiford <rsandifo@redhat.com>
1922
1923 * Makefile.in (gen-protos.o): Depend on errors.h.
1924
275a4187
SB
19252004-09-17 Steven Bosscher <stevenb@suse.de>
1926
6615c446 1927 PR tree-optimization/17513
275a4187
SB
1928 * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
1929 for successors of the entry block.
1930
b355f222
UB
19312004-09-17 Uros Bizjak <uros@kss-loka.si>
1932
1933 PR rtl-optimization/15187
1934 * ifcvt.c (noce_try_cmove_arith): Exit early if total
1935 insn_rtx_cost of both branches > BRANCH_COST
1936
7a116211
DN
19372004-09-16 Diego Novillo <dnovillo@redhat.com>
1938
1939 PR tree-optimization/17528
1940 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
1941 erase the may-alias set for a tag when merging it with
1942 another.
1943
e57450ce
KK
19442004-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
1945
1946 * config/sh/sh.md (call): Extend 32-bit addresses to DImode
1947 for 32-bit TARGET_SHMEDIA.
1948 (call_value): Likewise.
1949
1800536a
DN
19502004-09-16 Diego Novillo <dnovillo@redhat.com>
1951
1952 * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
1953 test apply only to TREE_STATIC and DECL_EXTERNAL.
1954
42759f1e
ZD
19552004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1956
1957 * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
1958 * basic-block.h (get_dominated_by_region): Declare.
1959 * dominance.c (get_dominated_by_region): New function.
1960 * tree-cfg.c: Include cfglayout.h.
1961 (tree_duplicate_bb): Duplicate also phi nodes.
1962 (struct ssa_name_map_entry): New type.
1963 (add_phi_args_after_copy_bb, add_phi_args_after_copy,
1964 ssa_name_map_entry_hash, ssa_name_map_entry_eq,
1965 allocate_ssa_names, rewrite_to_new_ssa_names_def,
1966 rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
1967 rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
1968 * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
1969 add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
1970 rewrite_to_new_ssa_names, allocate_ssa_names,
1971 rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
1972 * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
1973 (copy_loop_headers): Use tree_duplicate_sese_region.
1974
2731cf24
FCE
19752004-09-16 Frank Ch. Eigler <fche@redhat.com>
1976
1977 * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
1978
9fae925b
JL
19792004-09-16 Jeff Law <law@redhat.com>
1980
1981 * tree-into-ssa.c (block_defs_stack): New toplevel varray.
1982 (rewrite_block_data): Remove, no longer used.
1983 (rewrite_initialize_block_local_data): Remove, no longer used.
1984 (rewrite_initialize_block): Mark parameters as unused as needed.
1985 Change references to the block local block_defs to be block_defs_stack.
1986 Push a marker onto the block_defs_stack.
1987 (ssa_rewrite_initialize_block): Similarly.
1988 (rewrite_stmt, ssa_rewrite_stmt): Similarly.
1989 (ssa_register_new_def): No longer needs varray argument. Use
1990 block_defs_stack instead. No longer handle possibly null block_defs
1991 varray. Reverse order of items we push on the stack to make it
1992 easier to identify our marker.
1993 (register_new_def): No longer handle possibly null block_defs
1994 varray.
1995 (rewrite_finalize_block): Revamp to look for markers in the global
1996 block_defs_stack varray rather than wiping a block local varray.
1997 Mark arguments as unused as needed.
1998 (ssa_rewrite_finalize_block): Similarly.
1999 (rewrite_into_ssa): Update initialization of dom walker structure
2000 to reflect that we don't need block local data anymore. Initialize
2001 the block_defs_stack varray.
2002 (rewrite_ssa_into_ssa): Similarly.
2003 * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
2004 (struct dom_walk_data): Kill block_defs field.
2005 (tree_ssa_dominator_optimize): Initialize block_defs_stack.
2006 (thread_across_edge): Use the global block_defs_stack instead of
2007 the old block_defs varray.
2008 (dom_opt_initialize_block_local_data): Update now that we don't have
2009 block_defs field to check anymore.
2010 (dom_opt_initialize_block): Push a marker onto block_defs_stack.
2011 (restore_currdefs_to_original_value): Use the new block_defs_stack
2012 instead of a block local varray.
2013 (dom_opt_finalize_block): Similarly.
2014 (record_equivalencs_from_phis): Similarly.
2015 (optimize_stmt, register_definitions_for_stmt): Similarly.
2016
49f48e9f
AM
20172004-09-16 Andrew MacLeod <amacleod@redhat.com>
2018
2019 PR tree-optimization/17517
6615c446 2020 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
49f48e9f
AM
2021 coalesce same-root variables without checking for abnormal PHI usage.
2022
f67d92e9 20232004-09-16 Daniel Berlin <dberlin@dberlin.org>
6615c446 2024
f67d92e9
DB
2025 * cfgloop.h (duplicate_loop): Add prototype.
2026 * cfgloopmanip.c (duplicate_loop): Make non-static.
2027 * lambda-code.c (perfect_nestify): Factor out test whether
2028 we can handle this loop into separate function.
2029 Call it.
2030 (can_convert_to_perfect_nest): New function.
2031 (replace_uses_of_x_with_y): Add modify_stmt call.
2032 * tree-loop-linear.c (linear_transform_loops): Call
2033 rewrite_into_loop_closed_ssa and free_df.
2034
20352004-09-16 Daniel Berlin <dberlin@dberlin.org>
2036
2037 * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
2038 loop invariant as well.
2039 (perfect_nestify): new function.
2040 (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
6615c446 2041 upper bounds, and steps.
f67d92e9
DB
2042 Set outerinductionvar properly.
2043 (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
2044 parameters.
2045 Return NULL if we need a perfect loop and can't make one.
2046 (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
2047 (not_interesting_stmt): New function.
2048 (phi_loop_edge_uses_def): Ditto.
2049 (stmt_uses_phi_result): Ditto.
2050 (stmt_is_bumper_for_loop): Ditto.
2051 (perfect_nest_p): Ditto.
2052 (nestify_update_pending_stmts): Ditto.
2053 (replace_uses_of_x_with_y): Ditto.
2054 (stmt_uses_op): Ditto.
2055 (perfect_nestify): Ditto.
2056 * lambda-mat.c (lambda_matrix_id_p): New function.
2057 * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
2058 * lambda.h: Update prototypes.
2059 * tree-loop-linear (linear_transform_loop): Use new
2060 perfect_nest_p. Detect and ignore identity transform.
2061 * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
2062
20632004-09-16 Sebastian Pop <pop@cri.ensmp.fr>
2064
2065 * tree-loop-linear.c (gather_interchange_stats): Add more comments.
6615c446 2066 Gather also strides of accessed data. Pass in the data references
f67d92e9 2067 array.
6615c446 2068 (try_interchange_loops): Add a new heuristic for handling the temporal
f67d92e9
DB
2069 locality. Pass in the data references array.
2070 (linear_transform_loops): Pass the data references array to
2071 try_interchange_loops.
2072
83c99486
KH
20732004-09-16 Kazu Hirata <kazu@cs.umass.edu>
2074
2075 * doc/invoke.texi: Fix typos. Follow spelling conventions.
2076
4b30ad7e
NS
20772004-09-16 Nathan Sidwell <nathan@codesourcery.com>
2078
2079 * doc/c-tree.texi (Classes): Remove index entries for
2080 TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
2081
2f4675b4
ZD
20822004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2083
2084 * fold-const.c (fold): Fold difference of addresses.
2085 (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
2086 get_inner_reference.
2087 * tree-ssa-loop-ivopts.c (peel_address): Removed.
2088 (ptr_difference_const): Moved to fold-const.c.
2089 (split_address_cost): Use get_inner_reference instead of peel_address.
2090 (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
2091 * tree.h (ptr_difference_const): Export.
2092
2093 * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
2094 variable type to the dump. Fix indentation.
2095 (idx_find_step): Handle nonconstant array_ref_element_size and
2096 array_ref_low_bound.
2097 (idx_record_use): Handle array_ref_element_size and
2098 array_ref_low_bound.
2099 (find_interesting_uses_stmt): Handle memory = nontrivial_expression
2100 statements correctly.
2101 (get_computation_at, iv_value): Do not unshare expressions here.
2102 (rewrite_use_outer): Unshare the expression before it is emitted
2103 to code.
2104 * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
2105 Moved to tree.c.
2106 * tree.c (unsigned_type_for, signed_type_for): Moved from
2107 tree-ssa-loop-niter.c. Use langhooks.
2108 * tree.h (signed_type_for): Export.
2109
8210e4c4
DE
21102004-09-16 David Edelsohn <edelsohn@gnu.org>
2111
2112 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
2113 prototype.
2114
3dd53121
AP
21152004-09-15 Andrew Pinski <pinskia@physics.uc.edu>
2116
2117 PR target/11572
2118 * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
2119 Add two parameters to extra_includes.
2120 (C_INCPATH_INIT): Remove.
2121 * c-incpath.c (register_include_chains): Call extra_pre_includes
2122 before adding the standard include directory.
2123 Update call to extra_includes.
2124 (!defined TARGET_EXTRA_INCLUDES): Update
2125 hook_void_charptr_charptr_int and add !define
2126 TARGET_EXTRA_PRE_INCLUDES.
2127 (!define TARGET_EXTRA_INCLUDES): Define as
2128 hook_void_charptr_charptr_int.
2129 (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
2130 (target_c_incpath): Always declare.
2131 * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
2132 empty function.
2133 (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
2134 * config/darwin.h: (darwin_register_frameworks): Update for
2135 the two new parameters.
2136 (darwin_register_objc_includes): Add prototype.
2137 (TARGET_EXTRA_PRE_INCLUDES): Define.
2138 * config/darwin-c.c (darwin_register_objc_includes): New function.
2139 (darwin_register_frameworks): Update for the two new parameters.
2140 (target_c_incpath): Remove.
2141 * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
2142 the compile line.
2143 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
2144 parameters.
2145 (TARGET_EXTRA_PRE_INCLUDES): Document.
2146
2147 * gcc.c (spec_function): Add replace-outfile.
2148 (replace_outfile_spec_function): New function.
2149 * config/darwin.h (LINK_SPEC): Add replace
2150 -lobjc with -lobjc-gnu if -fgnu-runtime is
2151 supplied.
2152 * invoke.texi (replace-outfile): Document.
2153
42f97fd2
JH
21542004-09-13 Jan Hubicka <jh@suse.cz>
2155
2156 * predict.c (expr_expected_value, strip_builtin_expect): New function.
2157 (tree_predict_by_opcode): Use it.
2158 (tree_estimate_probability): Add, for now disabled,
2159 strip_builtin_expect call.
2160
097f3d48
JW
21612004-09-15 James E Wilson <wilson@specifixinc.com>
2162
2163 PR target/17455
2164 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
2165 if current_function_decl is a sibcall.
2166
04a75188
MM
21672004-09-15 Mark Mitchell <mark@codesourcery.com>
2168
2169 * varasm.c (default_function_rdodata_section): Make sure to pass
2170 along a decl for a link-once section.
2171
e776368b
RH
21722004-09-15 Richard Henderson <rth@redhat.com>
2173
2174 * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
2175 warning with code disable. Fix formatting.
2176
c7f90219
SB
21772004-09-15 Steven Bosscher <stevenb@suse.de>
2178
2179 * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
2180 * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
6615c446 2181 after propagating into an ADDR_EXPR.
c7f90219 2182
2f021b67
AP
21832004-09-15 Andrew Pinski <apinski@apple.com>
2184
2185 PR rtl-opt/17427
2186 * gcse.c (process_insert_insn): insn_invalid_p has side effects.
2187 Move it out of gcc_assert.
2188
971801ff
JM
21892004-09-15 Joseph S. Myers <jsm@polyomino.org.uk>
2190
2191 * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
2192 except.c, fold-const.c, function.c, langhooks.c, params.c,
2193 reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
2194 tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
2195 for quoting in diagnostics going through pretty-print.c. Use ''
2196 for quoting in other diagnostic text.
2197 * langhooks.c: Include intl.h. Mark text locating diagnostics for
2198 translation.
2199 * Makefile.in (langhooks.o): Update dependencies.
2200 * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
2201 formats.
2202
c18a5b6c
MM
22032004-09-15 Mark Mitchell <mark@codesourcery.com>
2204
2205 * configure.ac: Check for COMDAT support. Robustify check for
2206 SHF_MERGE support.
2207 * configure: Regenerated.
2208 * config.in: Likewise.
2209 * langhooks-def.h (lhd_comdat_group): New function.
2210 (LANG_HOOKS_COMDAT_GROUP): New macro.
2211 (LANG_HOOKS_DECLS): Use it.
2212 * langhooks.c (lhd_comdat_group): Define.
2213 * langhooks.h (lang_hooks_for_decls): Add comdat_group.
2214 * output.h (named_section_flags): Make it a macro.
2215 (named_section_real): New function.
2216 (default_no_named_section): Add decl parameter.
2217 (default_elf_asm_named_section): Likewise.
2218 (default_coff_asm_named_section): Likewise.
2219 (default_pe_asm_named_section): Likewise.
2220 * target.h (gcc_target): Adjust type of named_section.
2221 * varasm.c (named_section_flags): Rename to named_section_real.
2222 Add decl parameter.
2223 (default_no_named_section): Add decl parameter.
2224 (default_elf_asm_named_section): Use COMDAT, if available. Deal
2225 with the case that ASM_COMMENT_START is "@".
2226 (default_coff_asm_named_section): Add decl parameter.
2227 (default_pe_asm_named_section): Likewise.
2228 * config/alpha/alpha.c (vms_asm_named_section): Add decl
2229 parameter.
2230 (unicosmk_asm_named_section): Likewise.
2231 * config/arm/arm.c (arm_elf_asm_named_section): Remove.
2232 * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
2233 * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
2234 * config/cris/cris-protos.h (cris_target_asm_named_section):
2235 Likewise.
2236 * config/cris/cris.c (cris_target_asm_named_section):
2237 Likewise.
2238 * config/darwin/darwin-protos.h (darwin_asm_named_section):
2239 Likewise.
2240 * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
2241 * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
2242 * config/i386/i386-protos.h (i386_pe_asm_named_section):
2243 Likewise.
2244 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
2245 * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
2246 * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
2247 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
2248 Likewise.
2249 * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
2250 * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
2251 * cp/cp-tree.h (cxx_comdat_group): Declare.
2252 * cp/decl.c (cxx_comdat_group): New function.
2253
fe7139ac
JH
22542004-09-15 Jan Hubicka <jh@suse.cz>
2255
87527e4b
JH
2256 * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
2257 * tree-tailcall.c (eliminate_tail_call): Release SSA name.
2258
fe7139ac
JH
2259 * tree-cfg.c (remove_bb): Release SSA defs.
2260
1a141fe1
KH
22612004-09-15 Kazu Hirata <kazu@cs.umass.edu>
2262
2263 * doc/tm.texi: Follow spelling conventions.
2264
b3a27618
KH
22652004-09-15 Kazu Hirata <kazu@cs.umass.edu>
2266
2267 * tree-ssa-dom.c: Fix comment typos.
2268
43e7c6a4
AM
22692004-09-15 Alan Modra <amodra@bigpond.net.au>
2270
2271 * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
2272 include ccr.
2273 (ppc_fallback_frame_state): Save location of CR.
2274
9a520f40
JJ
22752004-09-15 Jakub Jelinek <jakub@redhat.com>
2276
a45f71f5
JJ
2277 * expr.c (string_constant): Handle also read-only variables
2278 initialized to string literals.
2279
9a520f40
JJ
2280 * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
2281 into memcpy (x, y, 1) if memcpy can be expanded inline.
2282
b1d16eff
ZD
22832004-09-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2284
2285 PR tree-optimization/17468
2286 * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that
2287 definition inside a block precede uses.
2288 * tree-tailcall.c (adjust_return_value): Emit statements in the
2289 correct order.
2290
36579192
RS
22912004-09-15 Richard Sandiford <rsandifo@redhat.com>
2292
2293 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
2294
7c2f2b41
EB
22952004-09-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2296
2297 * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
2298
a5c965c1
JL
22992004-09-14 Jeff Law <law@redhat.com>
2300
48732f23
JL
2301 * tree-ssa-dom.c (avail_exprs_stack): New global varray.
2302 (struct dom_walk_block_data): Remove avail_exprs member.
2303 (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
2304 (lookup_avail_expr): No longer need to pass in address of
2305 the block local available exprs stack. All callers changed.
2306 (simplify_cond_and_lookup_avail_expr): Similarly.
2307 (simplify_switch_and_lookup_avail_expr): Similarly.
2308 (get_eq_expr_value, record_cond): Likewise.
2309 (record_dominating_conditions): Likewise.
2310 (update_rhs_and_lookup_avail_expr): Likewise.
2311 (record_equivalences_from_stmt): Likewise.
2312 (dom_opt_initialize_block_local_data): No longer test state of
2313 block local avail_exprs.
2314 (dom_opt_initialize_block): Mark unwind point in the global
2315 avail_expr stack.
2316 (remove_expressions_from_table): Update to unwind to the
2317 most recent unwind marker in the global avail_expr stack.
2318 All callers changed.
2319 (dom_opt_finalize_block): Mark unwind point in the global
2320 avail_expr stack as needed.
2321 (record_cond): Push elements into the global avail_exprs stack.
2322
a5c965c1
JL
2323 * tree-dfa.c (free_df_for_stmt): No longer static.
2324 (free_df): Update comments.
2325 * tree-flow.h (free_df_for_stmt): Prototype.
2326 * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also
2327 call release_defs.
2328
391f9afb
DN
23292004-09-14 Diego Novillo <dnovillo@redhat.com>
2330
2331 PR tree-optimization/17252
2332 * tree-ssa-alias.c (may_alias_p): Don't assume that a
2333 pointer may not point to itself when using relaxed
2334 aliasing rules.
2335
67f23620
RH
23362004-09-14 Richard Henderson <rth@redhat.com>
2337
2338 PR middle-end/17397
2339 * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
2340 while folding <ADDR_EXPR <INDIRECT_REF X>>.
2341
5ffcd779
AP
23422004-09-14 Andrew Pinski <apinski@apple.com>
2343
2344 * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
2345 sets of the pointers but the aliasing sets of what they point to.
2346
f6ae6c51
RS
23472004-09-14 Roger Sayle <roger@eyesopen.com>
2348
2349 PR rtl-optimization/9771
2350 * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
2351 conditional compilation in init_reg_sets_1.
2352 (init_reg_sets_1): Let global_regs[i] take priority over the frame
2353 (but not stack) pointer exceptions to regs_invalidated_by_call.
2354 (globalize_reg): Globalizing a fixed register may need to update
2355 regs_invalidated_by_call.
2356
1810f6ed
DN
23572004-09-14 Diego Novillo <dnovillo@redhat.com>
2358
2359 PR tree-optimization/15262
2360 * tree-dfa.c (dump_variable): Also print the type of the
2361 variable.
2362 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
2363 memory tags are of conflicting alias sets but have no aliased
2364 symbols in common, add one tag to the alias set of the other.
2365 (setup_pointers_and_addressables): Remove hack to deal with
2366 programs with no aliased symbols.
2367 (may_alias_p): Don't special case aggregate types.
2368
0e6d31fb
JM
23692004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
2370
2371 PR c/15498
2372 * doc/invoke.texi (Environment Variables): Correct example locale.
2373
ab3b6795
JH
23742004-09-14 Jan Hubicka <jh@suse.cz>
2375
2376 * cfg.c (expunge_block): Revert previous change adding ggc_free call.
2377
0c0f8409
MM
23782004-09-14 Mark Mitchell <mark@codesourcery.com>
2379
2380 * config.gcc: Do not build a shared libgcc for arm-none-eabi.
2381
3b53cddc
JM
23822004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
2383
2384 * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
2385 restrict_p.
2386 (struct c_declarator): Change u.array.quals and pointer_quals to
2387 int. Add u.array.attrs.
2388 (quals_from_declspecs): New.
2389 * c-decl.c (quals_from_declspecs): New.
2390 (shadow_tag_warned): Give more specific message for useless type
2391 qualifiers.
2392 (build_array_declarator, set_array_declarator_inner,
2393 grokdeclarator, make_pointer_declarator, build_null_declspecs,
2394 declspecs_add_qual): Update for changed structures.
2395
a6e1aa26
JL
23962004-09-14 Jeff Law <law@redhat.com>
2397
2398 * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
6615c446 2399 to a global varray.
a6e1aa26
JL
2400 (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
2401 (dom_opt_initialize_block_local_data): No longer test state
2402 of stmts_to_rescan.
2403 (dom_opt_finalize_block): Update due to change in scope of
2404 stmts_to_rescan.
2405 (optimize_stmt): Similarly.
2406
8e3c61c5
KH
24072004-09-14 Kazu Hirata <kazu@cs.umass.edu>
2408
2409 * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
2410 lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
2411 comment typos. Follow spelling conventions.
2412
0e40b5f2
KH
24132004-09-14 Kazu Hirata <kazu@cs.umass.edu>
2414
2415 * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
2416 config/i386/predicates.md, config/sparc/sparc.c: Follow
2417 spelling conventions.
2418
113d659a
ZD
24192004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2420 Steven Bosscher <stevenb@suse.de>
2421
2422 * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
2423 * basic-block.h (struct reorder_block_def): Add copy_number field.
2424 * cfgloop.h (biv_p): Declare.
2425 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
2426 * common.opt (fsplit-ivs-in-unroller): New flag.
2427 * loop-iv.c (biv_p): New function.
2428 * loop-unroll.c: Include hashtab.h and recog.h.
2429 (struct iv_to_split, struct split_ivs_info): New types.
2430 (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
2431 free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
2432 determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
2433 insert_base_initialization, split_iv): New functions.
2434 (peel_loop_completely, unroll_loop_constant_iterations,
2435 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
2436 Use them.
2437 * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
2438
d840495b
ZD
24392004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2440
2441 * tree-cfg.c (thread_jumps): Update dominators correctly in
2442 case destination of threaded edge dominates its source.
2443
c94583fe
ZD
24442004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2445
2446 * unroll.c: Removed.
2447 * loop.h: Removed.
2448 * Makefile.in (LOOP_H, unroll.o): Removed.
2449 (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
2450 dependency.
2451 * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
2452 reference.
2453 * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
2454 * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
2455 * loop.c: Do not include loop.h.
2456 (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
2457 REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
2458 struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
2459 REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
2460 struct loop_regs, struct loop_movables, struct loop_info): Moved
2461 from loop.h.
2462 (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
2463 reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
2464 find_common_reg_term, loop_iterations, final_giv_value): Moved
2465 from unroll.c.
2466 (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
2467 loop_dump_stream, for_each_insn_in_loop, express_from,
2468 extend_value_for_giv, loop_iv_add_mult_emit_before,
2469 loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
2470 loop_insn_first_p, get_condition_for_loop,
2471 loop_insn_emit_before, loop_insn_hoist,
2472 loop_insn_sink): Made static.
2473 (loop_invariant_p): Made static. Removed flag_old_unroll_loops
2474 reference.
2475 (strength_reduce): Do not call unroller.
2476 (record_giv): Do not initialize unrolled field.
2477 (prescan_loop): Do not set loop_info->preconditioned.
2478 * passes.c: Do not include loop.h.
2479 (rest_of_handle_loop_optimize): Do not call unroller.
2480 * predict.c: Do not include loop.h.
2481 * rtl.h (NOTE_PRECONDITIONED): Removed.
2482 * stmt.c: Do not include loop.h.
2483 * toplev.c: Do not include loop.h.
2484 (process_options): Do not handle flag_old_unroll_loops.
2485
2486 * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
2487 Documentation removed.
2488 * doc/passes.texi (unroll.c, loop.h): Documentation removed.
2489
03261822
NS
24902004-09-14 Nathan Sidwell <nathan@codesourcery.com>
2491
2492 * Makefile.in (STAGE1_CHECKING): New variable.
2493 (stage1_build): Use it.
2494 * tree-ssa.c (verify_ssa): Preserve state of dominance
2495 information.
2496
869d095e
UB
24972004-09-14 Uros Bizjak <uros@kss-loka.si>
2498
2499 * config/i386/i386.c (output_fp_compare): Add generation
2500 of ftst instruction.
2501 * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
2502 Use output_fp_compare () function.
2503 (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
2504 (fix_truncdi_memory): Remove operands[5] copy.
2505
19525b57
KH
25062004-09-14 Kazu Hirata <kazu@cs.umass.edu>
2507
2508 * config/m32r/m32r.md, config/m68k/m68kelf.h,
2509 config/mcore/mcore.md, config/rs6000/linux64.h,
2510 config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
2511 typos.
2512
a140c081
JW
25132004-09-13 James E Wilson <wilson@specifixinc.com>
2514
2515 * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
2516 * gen-protos.c: Include errors.h.
2517 (progname): Delete.
2518
b6acab32
JH
25192004-09-14 Jan Hubicka <jh@suse.cz>
2520
2521 * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
2522 * predict.c: Include tree-scalar-evolution.h and cfgloop.h
2523 (predict_loops): Use number_of_iterations_exit to predict
2524 number of iterations on trees.
2525
c1bbfd3c
DJ
25262004-09-13 Dale Johannesen <dalej@apple.com>
2527
2528 PR 17408
2529 PR 17409
2530 * c-decl.c (start_decl): Repair TREE_STATIC for initialized
2531 objects declared extern.
2532
b9705a21
PB
25332004-09-14 Paul Brook <paul@codesourcery.com>
2534
2535 * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
2536 HOST_WIDE_INT.
2537
b9193259
DJ
25382004-09-13 Daniel Jacobowitz <dan@debian.org>
2539
2540 * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
2541 Only use TYPE_BINFO for aggregates.
2542
3ab0f290
DJ
25432004-09-13 Daniel Jacobowitz <dan@debian.org>
2544
2545 * expmed.c (synth_mult): Initialize latency. Check cost before
2546 checking ops count.
2547
fa9be75f 25482004-09-13 Kenneth Zadeck <Kenneth.Zadeck@NaturalBridge.com>
6674a6ce 2549
6674a6ce
KZ
2550 * tree-ssa-operands.c (get_call_expr_operands): Added parm to
2551 add_call_clobber_ops and add_call_read_ops.
2552 (add_call_clobber_ops, add_call_read_ops): Added code to reduce
2553 the number of vdefs and vuses inserted based on analysis of global
2554 variables across calls. * tree-dfa.c (find_referenced_vars):
2555 Needed to reset static var maps before each function is compiled.
2556 * cgraphunit.c:
2557 (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
2558 static_vars_info,functions_to_static_vars_info,module_statics_escape,
2559 all_module_statics,searchc_env,dfs_info): New fields to support
2560 analysis of static global variables.
2561 (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
2562 cgraph_reset_static_var_maps, get_global_static_vars_info,
2563 get_global_statics_not_read, get_global_statics_not_written,
2564 searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
2565 check_rhs_var, check_lhs_var, get_asm_expr_operands,
2566 process_call_for_static_vars, scan_for_static_refs,
2567 cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
2568 clear_static_vars_maps, cgraph_propagate_bits,
2569 cgraph_characterize_statics): New. Functions to support analysis
2570 of static global variables.
2571 (cgraph_mark_local_and_external_functions): Renamed from:
2572 (cgraph_mark_local_functions)
2573 (cgraph_expand_all_functions): Remove call to
2574 cgraph_mark_local_and_external_functions.
2575 (cgraph_optimize): Added driver to analyze static variables whose
2576 scope is within the compilation unit. * cgraph.h (struct
2577 cgraph_local_info, GTY): Added statics_read, statics_written,
2578 local, calls_read_all, calls_write_all, for_functions_valid.
2579 (struct cgraph_node): Added next_cycle. * cgraph.c
2580 (dump_cgraph_node): Added print routines for new fields. *
2581 makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
2582 list.
2583
61f4f1cc
JM
25842004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
2585
2586 * c-decl.c (grokdeclarator): Correct comments about where storage
2587 class specifiers are rejected by grammar and add corresponding
2588 asserts. Diagnose typedefs and parameters declared inline.
2589 Change warning for inline main to a pedwarn. Only diagnose inline
2590 main if hosted.
2591 (declspecs_add_scspec): Allow duplicate "inline".
2592
88ed5ef5
SE
25932004-09-13 Steve Ellcey <sje@cup.hp.com>
2594
2595 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
2596 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
2597
a5bfe141
RH
25982004-09-13 Richard Henderson <rth@redhat.com>
2599
2600 PR 17436
2601 * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
2602 (tree_type): Replace spare with contains_placeholder_bits.
2603 (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
2604 make static. Remove seen_types list.
2605 (type_contains_placeholder_p): New.
2606
1823bf53
JW
26072004-09-13 James E Wilson <wilson@specifixinc.com>
2608
2609 * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
2610 (sb1_bdesc, bdesc_map, bdesc_arrays): New.
2611 (mips_expand_builtin): Add SB-1 support. Use bdesc_map and
2612 bdesc_arrays instead of mips_bdesc.
2613 (mips_init_builtins): Likewise.
2614 * config/mips/mips.h (TARGET_SB1): New.
2615 (HAVE_SQRT_P): Delete.
2616 * config/mips/mips.md (divide_condition): Support V2SF.
2617 (sqrt_condition, recip_condition): New.
2618 (div<mode>3): Use ANYF instead of SCALARF.
2619 (*div<mode>3): Use ANYF instead of SCALARF. Use UNITMODE instead of
2620 MODE.
2621 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
2622 instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE
2623 instead of MODE.
2624 (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF
2625 instead of SCALARF. Use UNITMODE instead of MODE.
2626
c8a52525
ZW
26272004-09-13 Zack Weinberg <zack@codesourcery.com>
2628
2629 * config.in: Regenerate after removal of libbanshee.
2630
a78e238e
AM
26312004-09-13 Andrew MacLeod <amacleod@redhat.com>
2632
2633 PR tree-optimization/17400
2634 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
2635 coalesce partitions when one occurs in an abnormal PHI.
6615c446 2636
5547b982
AP
26372004-09-13 Andrew Pinski <apinski@apple.com>
2638
2639 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
2640 name to _new_size.
2641
0d87c765 26422004-09-13 Richard Henderson <rth@redhat.com>
c8a52525 2643
c892972f
SB
2644 PR inline-asm/6806
2645 * cselib.c (cselib_invalidate_rtx): Export. Remove unused args.
2646 (cselib_invalidate_rtx_note_stores): New.
2647 (cselib_record_sets, cselib_process_insn): Update to match.
2648 * cselib.h (cselib_invalidate_rtx): Declare.
2649 * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
0d87c765 2650
84cce55d
RH
26512004-09-13 Richard Henderson <rth@redhat.com>
2652
2653 PR tree-opt/10528
2654 * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
2655 after copying its argument.
2656
bda67431
JM
26572004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
2658
2659 * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
2660 c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
2661 in diagnostics. Use %' for English apostrophes.
2662 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
2663 (pedwarn_c90, pedwarn_c99): Use it.
2664 * c-decl.c (lookup_label): Quote label name in diagnostic.
2665 * c-parse.in (yyprint): Use ' instead of ` for left quote.
2666 * c-typeck.c (warn_for_assignment): Likewise.
2667
ad7b96a9
JH
26682004-09-13 Jan Hubicka <jh@suse.cz>
2669
2670 * i386.c (x86_schedule): New global variable.
2671 (override_options): Disable scheduling when not supported.
2672 * i386.h (x86_schedule): Declare.
2673 (TARGET_SCHEDULE): New macro.
2674
373c0e7f
RH
26752004-09-12 Richard Henderson <rth@redhat.com>
2676
2677 PR c++/16254
2678 * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
2679 * tree.c, tree.h (has_cleanups): Remove.
2680
7fac6722
ZD
26812004-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2682
2683 * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
2684 arguments of the phi nodes correctly.
2685
85914593
JH
26862004-09-12 Jan Hubicka <jh@suse.cz>
2687
2688 * ggc-common.c (cmp_statistics): Fix sorting.
2689
3d520aaf
DE
26902004-09-12 David Edelsohn <edelsohn@gnu.org>
2691
2692 PR target/16795
2693 * expmed.c (expand_divmod): If cheap power of 2 divide is
2694 available, use it for negative constant as well.
2695
8f8ccdf3
AP
26962004-09-12 Andrew Pinski <apinski@apple.com>
2697
c92d8761
AP
2698 * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
2699 size of 0.
2700
8f8ccdf3
AP
2701 * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
2702
93330ea1
RH
27032004-09-12 Richard Henderson <rth@redhat.com>
2704
2705 * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
2706 or minus one.
2707 (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
2708 post-reload, and scratch NULL.
2709 * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
2710 (x86_shift_adj_2): Use ix86_expand_clear.
2711 (ashldi3): Remove CMOVE expansion difference.
2712 (ashldi3_1): Remove.
2713 (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and
2714 add constraints for immediates. New peephole for split-with-temp.
2715 Run splitter after peep2 pass.
2716 (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
2717 (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
2718 (setcc_2): Rename with *.
2719 * config/i386/predicates.md (reg_or_pm1_operand): New.
2720 (ashldi_input_operand): New.
2721
21076c8e
RH
27222004-09-12 Richard Henderson <rth@redhat.com
2723
2724 * print-rtl.c (print_decl_name): New.
2725 (print_mem_expr): Use it.
2726
f6a41d17
RH
27272004-09-12 Richard Henderson <rth@redhat.com
2728
c892972f
SB
2729 PR 17186, part deux
2730 * except.c (sjlj_emit_function_exit): Fix logic locating
2731 sjlj_exit_after in final block.
f6a41d17 2732
a924fe34
TM
27332004-09-12 Toon Moene <toon@moene.indiv.nluug.nl>
2734
2735 * common.opt: Remove flags -fmove-all-movables and
2736 -freduce-all-givs.
2737 * loop-invariant.c (find_invariants_to_move):
2738 Remove all uses of flag_move_all_movables.
2739 * loop.c (move_movables): Remove all uses of
2740 flag_move_all_movables.
2741 (strength_reduce): Remove all uses of
2742 flag_reduce_all_givs.
2743 * doc/invoke.texi: Remove documentation of flags
2744 -fremove-all-movables and -freduce-all-givs.
2745
ec76a0e0
RS
27462004-09-11 Roger Sayle <roger@eyesopen.com>
2747
2748 PR middle-end/17411
2749 * tree-sra.c (generate_element_zero): Revert recent build_int_cst
2750 change. elt->type may be a floating point type, so use fold_convert.
2751
ca472546
GK
27522004-09-11 Geoffrey Keating <geoffk@apple.com>
2753
2754 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
2755 the thing referenced as used, not the stub itself.
2756
9a26d6ee
JM
27572004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
2758
2759 * c-tree.h (enum c_storage_class): New.
2760 (struct c_declspecs): Add storage_class, inline_p and thread_p.
2761 * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
2762 declarations and "auto" or "register" in file scope empty
2763 declarations. Give more specific warnings for other cases of
2764 storage class specifiers in empty declarations.
2765 (grokdeclarator): Update for new structures. Don't check for
2766 multiple storage classes. Diagnose file-scope "register" if
2767 pedantic.
2768 (build_null_declspecs): Update.
2769 (declspecs_add_scspec): Update. Diagnose multiple storage class
2770 specifiers and invalid uses of "__thread".
2771
a38b644b
ZW
27722004-09-11 Zack Weinberg <zack@codesourcery.com>
2773
2774 * tree.c (tree_code_size): New function, bulk of code from tree_size.
2775 (tree_size, make_node): Use it.
2776 * tree-ssa-pre.c (init_pre): Use it.
2777 * tree.h: Prototype it.
2778
30d396e3
ZD
27792004-09-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2780
2781 * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
2782 * tree-dfa.c (compute_immediate_uses, add_immediate_use,
2783 redirect_immediate_use): Use PHI_DF.
2784 * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
2785 (bb_for_stmt): Use PHI_BB.
2786 (get_immediate_uses): Use PHI_DF.
2787 * tree-ssa-dse.c (max_stmt_uid): New variable.
2788 (get_stmt_uid): New function.
2789 (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
2790 node annotations.
2791 * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
2792 (max_uid): Renamed to max_stmt_uid.
2793 (get_stmt_uid): New function.
2794 (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
2795 phi node annotations.
2796 * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
2797 * tree.h (PHI_BB, PHI_DF): New accessor functions.
2798 (struct tree_phi_node): Add bb and df fields.
2799
f4a6d54e
RH
28002004-09-11 Richard Henderson <rth@redhat.com>
2801
2802 PR middle-end/17416
2803 * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
2804 in conflict loop.
2805
f43329a5
JH
28062004-09-11 Jan Hubicka <jh@suse.cz>
2807
1d1df0df
JH
2808 * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
2809 (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
2810 * i386.md (i387_cw): Add 'uninitialized' mode.
2811
f43329a5
JH
2812 * profile.c (BB_TO_GCOV_INDEX): move more to the front.
2813 (output_location): Break out from ....
2814 (branch_prob): ... here; handle gcov output on trees.
2815 * toplev.c (process_options): No longer be sorry about coverage for
2816 trees.
2817
05cf561d
SB
28182004-09-11 Steven Bosscher <stevenb@suse.de>
2819
2820 PR c++/17412
2821 * fold-const.c (fold): Do not try to fold the operand of a
2822 CLEANUP_POINT_EXPR if that operand does itself not have any
2823 operands.
2824
2825 PR middle-end/17417
2826 * langhooks.c (lhd_decl_printable_name): Make sure that this
2827 function is called with is a decl node that has an identifier.
2828 * tree-pretty-print.c (dump_function_name): New function to
2829 wrap PRINT_FUNCTION_NAME and dump_decl_name.
2830 (print_call_name): Use it.
2831
547d057d
ME
28322004-09-11 Mohan Embar <gnustuff@thisiscool.com>
2833
2834 * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
2835 "config.h" if not.
2836
a17ea89b
JJ
28372004-09-11 Jakub Jelinek <jakub@redhat.com>
2838
2839 * tree-ssa-alias.c (collect_points_to_info_r): Handle
2840 pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
2841 to OFFSET.
2842
70bb498a
RH
28432004-09-11 Richard Henderson <rth@redhat.com>
2844
2845 * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
2846 (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the
2847 operand of the ADDR_EXPR.
2848 (expand_expr_real_1): Update to match.
2849
0c94cda4
DE
28502004-09-11 David Edelsohn <edelsohn@gnu.org>
2851
d1909f7b 2852 PR target/17277
0c94cda4
DE
2853 * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
2854 choose 64-bit version.
2855
5e55f99d
RH
28562004-09-11 Richard Henderson <rth@redhat.com>
2857
2858 PR c/17396
2859 * c-typeck.c (build_unary_op): Add legacy offsetof hack.
2860
431ae0bf
KH
28612004-09-11 Kazu Hirata <kazu@cs.umass.edu>
2862
2863 * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
2864 doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
2865 Insert @: after i.e. or e.g.
2866
70601cc2
GK
28672004-09-10 Geoffrey Keating <geoffk@apple.com>
2868
2869 * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
2870 D.xxx rather than <Dxxx>.
2871
a38b644b 28722004-09-10 Adam Nemet <anemet@lnxw.com>
8a45d680
AN
2873
2874 * configure.ac (AC_MSG_CHECKING(what linker to use)):
2875 in_tree_ld_is_elf should be true for LynxOS.
a38b644b 2876 * configure: Regenerate.
8a45d680 2877
ecc50d72
AN
28782004-09-10 Adam Nemet <anemet@lnxw.com>
2879
2880 * Makefile.in (all.cross): Add srcextra.
2881
3ae472c2
RS
28822004-09-10 Roger Sayle <roger@eyesopen.com>
2883
2884 PR middle-end/17024
2885 * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
2886 floating point comparison operators. Change aborts to gcc_asserts.
2887
dc9d0b14
GK
28882004-09-10 Geoffrey Keating <geoffk@apple.com>
2889
2890 * final.c (output_asm_insn): Correct problem with -fverbose-asm.
2891
a73b091d
JW
28922004-09-10 James E Wilson <wilson@specifixinc.com>
2893
1c8c309b
JW
2894 * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
2895 (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
2896
273d67e7
JW
2897 * convert.c (convert_to_vector): Replace recursive call with
2898 error_mark_node.
2899
a73b091d
JW
2900 * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
2901 Add integer argument named constant. Use const_tiny_rtx instead of
2902 CONST0_RTX.
2903 (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
2904 and CONST1_RTX.
2905 (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for
2906 vector types.
2907 * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
2908 of gen_rtx_raw_CONST_VECTOR.
2909
110fce11
EC
29102004-09-10 Eric Christopher <echristo@redhat.com>
2911
2912 PR c/16046
2913 * c-parse.in (attribute): Add NULL_TREE for error case
2914 for error recovery.
2915
5d709b00
ZW
29162004-09-10 Zack Weinberg <zack@codesourcery.com>
2917
2918 * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
2919 (extract_interface_info): Delete prototype.
2920 * c-decl.c (extract_interface_info): Delete stub.
2921 * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
2922 it's not already been done ...
2923 (init_c_lex): ... not here.
110fce11
EC
2924 (fe_file_change): Don't call extract_interface_info.
2925
616aeba2
JM
29262004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
2927
2928 * c-tree.h (struct c_declspecs): Remove typedef_decl. Add
2929 typedef_p and typedef_signed_p.
2930 * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
2931 (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
2932 Check typedef_p and typedef_signed_p, not typedef_decl.
2933 (grokfield): Check typedef_p, not typedef_decl.
2934 (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
2935 not typedef_decl.
2936 (declspecs_add_type): Set typedef_p and typedef_signed_p, not
2937 typedef_decl.
2938
a8508d51
KH
29392004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2940
2941 * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
2942
18b3a02a
GK
29432004-09-10 Geoffrey Keating <geoffk@apple.com>
2944
769da818
GK
2945 * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
2946 temporary variables.
2947
375d2edc
GK
2948 * dbxout.c (dbxout_block): Update for
2949 current_function_func_begin_label a string.
2950 * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
2951 * except.c (dw2_output_call_site_table): Likewise.
2952 * toplev.c (current_function_func_begin_label): Likewise.
2953 * tree.h (current_function_func_begin_label): Likewise.
2954 * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
2955
c383c15f
GK
2956 * final.c (output_asm_insn): Use strtoul instead of atoi, save a
2957 loop.
2958
1adaa117
GK
2959 * config/darwin.c: Include target.h.
2960 (struct machopic_indirection): Make ptr_name a string.
2961 (machopic_indirection_hash): Update for ptr_name a string.
2962 (machopic_indirection_eq): Likewise.
2963 (machopic_indirection_name): Likewise.
2964 (machopic_output_indirection): Likewise.
2965 (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
2966 string. Don't expect stub names to be in the identifier hash table.
2967 Do call strip_name_encoding before looking up entry in ID hash table.
2968 * config/t-darwin (darwin.o): Add target.h to dependencies.
5d709b00 2969
fb5c67a7
GK
2970 * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
2971 of fprintf for register names.
5d709b00 2972
5f11bc8b
GK
2973 * output.h (unlikely_section_label): Delete declaration.
2974 (unlikely_text_section_name): Likewise.
2975 * varasm.c (unlikely_section_label_printed): Make static.
2976 (unlikely_section_label): Likewise.
2977 (unlikely_text_section_name): Likewise.
2978 (assemble_start_function): Use reconcat.
2979
18b3a02a
GK
2980 * rtl.def (REG): Add comment to describe third field.
2981
76f60aa5
AP
29822004-09-10 Andrew Pinski <apinski@apple.com>
2983
2984 * config/darwin.c (machopic_mcount_stub_name): Call
2985 machopic_indirection_name instead of making the string
2986 ourselves.
2987
e30b0ae2
DN
29882004-09-10 Diego Novillo <dnovillo@redhat.com>
2989
2990 Revert
2991
2992 2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
2993
2994 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
2995 memory tag is call clobbered, so are its aliases.
2996 (group_aliases): When two memory tags being grouped, if one is
2997 call clobbered, so are the other and its aliases.
2998 (add_may_alias): Remove call-clobbering stuff.
2999 (replace_may_alias): Likewise.
3000 (merge_pointed_to_info): Merge pt_global_mem
3001
89dbed81
KH
30022004-09-10 Kazu Hirata <kazu@cs.umass.edu>
3003
3004 * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
3005 genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
3006 passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
3007 tree-scalar-evolution.c, tree-ssa-copyrename.c,
3008 tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
3009
094e84fa
RS
30102004-09-10 Richard Sandiford <rsandifo@redhat.com>
3011
3012 * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
3013 (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
3014 pair. Remove match_dup from inputs. Remove masaccs handling.
3015 (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
3016 (masaccs, mdasaccs): Turn into define_insns.
3017
85d62520
RS
30182004-09-10 Richard Sandiford <rsandifo@redhat.com>
3019
3020 * tree-tailcall.c (process_assignment): Only do accumulator transforms
3021 for floating-point types if flag_unsafe_math_optimizations.
3022
c112cf2b
KH
30232004-09-10 Kazu Hirata <kazu@cs.umass.edu>
3024
3025 * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
3026 config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
3027 config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
3028 config/h8300/h8300.md, config/i386/gmm_malloc.h,
3029 config/ia64/ia64.md, config/ip2k/libgcc.S,
3030 config/mips/mips-ps-3d.md, config/mips/mips.c,
3031 config/rs6000/rs6000.c, config/s390/s390.c,
3032 config/sh/symbian.c: Fix comment typos.
3033
2790879f
AK
30342004-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
3035
3036 * config/s390/s390.c (s390_emit_prologue): Added missing
3037 "{}" brackets.
3038
27ef2cdd
KH
30392004-09-10 Kazu Hirata <kazu@cs.umass.edu>
3040
3041 * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
3042 typos. Follow spelling conventions.
3043
108ebf88
JM
30442004-09-10 Joseph S. Myers <jsm@polyomino.org.uk>
3045
3046 * toplev.c (warn_deprecated_use): Correct logic for saying "type"
3047 in diagnostic. Don't dereference NULL TYPE_NAME.
3048
6cb38cd4
KH
30492004-09-10 Kazu Hirata <kazu@cs.umass.edu>
3050
3051 * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
3052 tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
3053 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
3054 value-prof.c: Fix comment typos. Follow spelling conventions.
3055
b829f3fa
JH
30562004-09-10 Jan Hubicka <jh@suse.cz>
3057
3058 * tree-ssa-dce.c (remove_dead_stmt): Update profile.
3059 * tree-split_edge.c (tree_split_edge): Likewise.
3060 (thread_jumps): Likewise.
3061
229031d0
KH
30622004-09-10 Kazu Hirata <kazu@cs.umass.edu>
3063
3064 * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
3065 typos.
3066
9b3e897d
PB
30672004-09-10 Paolo Bonzini <bonzini@gnu.org>
3068
3069 * cgraph.h (cgraph_dump_file): Do not declare.
3070 * cgraphunit.c (cgraph_dump_file): Declare as static.
3071 (init_cgraph): New.
3072 * toplev.c (cgraph_dump_file): Do not declare.
3073 (compile_file): Call init_cgraph.
3074 * tree-dump.c (dump_files): Add IPA dump file, remove
3075 XML dump of call graph.
3076 (get_dump_file_name): Support IPA dump file naming scheme.
3077 * tree.h (enum tree_dump_index): Add IPA dump file, remove
3078 XML dump of call graph.
3079 * doc/invoke.texi (Debugging Options): Document the new options.
3080
c3ee0579
RS
30812004-09-10 Richard Sandiford <rsandifo@redhat.com>
3082
3083 * doc/extend.texi: Document the FR-V built-in functions.
3084
236f9832
JW
30852004-09-09 James E Wilson <wilson@specifixinc.com>
3086
3087 * doc/sourcebuild.texi: Delete libbanshee reference.
3088
5a29def1
KC
30892004-09-10 Kelley Cook <kcook@gcc.gnu.org>
3090
3091 * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
3092
3274deff
JW
30932004-09-09 James E Wilson <wilson@specifixinc.com>
3094
3095 * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
3096 before calling vector_types_convertible_p.
3097 (digest_init): Check that inside_init has VECTOR_TYPE before calling
3098 vector_types_convertible_p. Don't give another error if
3099 convert_for_assignment returns error_mark_node.
3100
049e524f
RS
31012004-09-09 Roger Sayle <roger@eyesopen.com>
3102
3103 PR middle-end/17055
3104 * fold-const.c (build_zero_vector): New function to construct a
3105 vector (either floating point or integer) of zeros.
3106 (fold_convert): Internally, enable conversions of integer zero
3107 to arbitrary vector types, using the new build_zero_vector.
3108
1b83d209
RS
31092004-09-09 Roger Sayle <roger@eyesopen.com>
3110
3111 * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
3112 expand a left shift by an immediate constant as either an ashl or
3113 a sequence of additions.
3114 (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
3115 instead of calling gen_ashlsi3 with a constant directly.
3116
903a5059
RS
31172004-09-09 Roger Sayle <roger@eyesopen.com>
3118
3119 * config/i386/i386.c (ix86_split_long_move): When optimizing for
3120 size, and the low and high parts of a DImode constant are equal,
3121 copy one register to another instead of loading the same immediate
3122 value twice.
3123
469c26f1
RH
31242004-09-09 Richard Henderson <rth@redhat.com>
3125
3126 PR middle-end/17367
3127 * function.c (assign_parm_setup_block): Only put PARALLELs into
3128 a register if use_register_for_decl.
3129
1aee688e
EC
31302004-09-09 Eric Christopher <echristo@redhat.com>
3131
3132 * ra-colorize.c (reset_lists): Move variable declaration inside
3133 ENABLE_CHECKING to avoid unused variable warnings when
3134 not --enable-checking.
3135 (check_colors): Ditto.
3136
89029cd4
MS
31372004-09-09 Mike Stump <mrs@apple.com>
3138
3139 * version.c (version_string): Bump to 4.0.0.
693ff889 3140 * doc/include/gcc-common.texi (version-GCC): Likewise.
89029cd4 3141
3f3174b6
JJ
31422004-09-10 Jakub Jelinek <jakub@redhat.com>
3143
3144 * doc/extend.texi (nothrow attribute): The attribute is not
3145 implemented in 3.2 and earlier.
3146
4c80d5ac
SE
31472004-09-09 Steve Ellcey <sje@cup.hp.com>
3148
3149 * genrecog.c (compute_predicate_codes): Use op0_codes
3150 instead of codes.
3151
2ec3ab99
UW
31522004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
3153
3154 * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
3155 implementation changes.
3156
0b21d1dc
UW
31572004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
3158
3159 * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
3160 a PARALLEL instead of a SET due to added clobbers.
3161
7bb09d15
UW
31622004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
3163
1aee688e 3164 * reload.c (find_reloads_address): Pass correct operand to
7bb09d15
UW
3165 maybe_memory_address_p.
3166
0a050485
DB
31672004-09-09 Daniel Berlin <dberlin@dberlin.org>
3168
3169 * Makefile.in: Remove libbanshee, tree-alias-*.
3170 Remove tree-alias-common.h dependencies.
3171 * common.opt: Remove -ftree-points-to.
3172 * configure.ac: Remove libbanshee.
3173 * flags.h: Remove pta_type, flag_tree_points_to.
3174 * gengtype.c (open_base_files): Remove tree-alias-type.h.
3175 * opts.c (OPT_ftree_points_to): Remove.
3176 * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
3177 * tree-dfa.c: Remove tree-alias-common.h
3178 * tree-into-ssa.c: Ditto.
3179 * tree-outof-ssa.c: Ditto.
3180 * tree-ssa-copyrename.c: Ditto.
3181 * tree-ssa-live.c: Ditto.
3182 * tree-optimize.c: Ditto.
3183 * tree-ssa.c: Ditto.
3184 Remove pass_build_pta, pass_del_pta.
3185 * tree-pass.h: Ditto.
3186 * tree-ssa-alias.c: Remove tree-alias-common.h.
3187 (struct alias_stats_d): Remove pta_queries, pta_resolved.
3188 (pass_may_alias): Remove PROP_pta requirement.
3189 (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
3190 (get_tmt_for): Ditto.
3191 (dump_alias_stats): Ditto.
3192 * doc/passes.texi: Remove blurb about points-to analysis.
3193 * fortran/Make-lang.in: Remove tree-alias-*.o.
1aee688e 3194
c1a404bd
RS
31952004-09-09 Richard Sandiford <rsandifo@redhat.com>
3196
3197 * genattrtab.c (write_insn_cases): New function, split out from
3198 write_attr_case. Correctly handle define_peepholes when printing
3199 the instruction name.
3200 (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
3201
b2416742
HPN
32022004-09-09 Hans-Peter Nilsson <hp@axis.com>
3203
3204 PR target/17377
3205 * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
3206 * config/cris/cris.c (cris_return_address_on_stack): New function.
3207 * config/cris/cris.md ("return"): For location of return address,
3208 also check cris_return_address_on_stack.
3209
b49ce401
DN
32102004-09-09 Diego Novillo <dnovillo@redhat.com>
3211
3212 * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
3213 calling phi_ssa_name_p.
3214
116df786
RH
32152004-09-09 Richard Henderson <rth@redhat.com>
3216
3217 PR c/17322
3218 * c-typeck.c (valid_compound_expr_initializer): Use only
3219 initializer_constant_valid_p, and not TREE_CONSTANT.
3220 (digest_init): Likewise.
3221 (output_init_element): Likewise.
3222
41374e13
NS
32232004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3224
3225 * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
3226 live_out_1, prune_hardregs_for_mode, init_one_web_common,
3227 reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
3228 record_conflict, compare_and_free_webs, init_webs_defs_uses,
3229 parts_to_webs_1, parts_to_webs, reset_conflicts,
3230 check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
3231 ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
3232 * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
3233 put_move, remove_move, combine, select_spill, colorize_one_web,
3234 try_recolor_web, insert_coalesced_conflicts, check_colors,
3235 break_precolored_alias, restore_conflicts_from_coalesce,
3236 sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
3237 * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
3238 reloads_to_loads, rewrite_program2, emit_colors): Likewise.
3239 * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
3240 check_df): Likewise.
3241 * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
3242 real_arithmetic, real_compare, real_exponent, real_ldexp,
3243 real_identical, real_to_integer, real_to_integer2, real_to_decimal,
3244 real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
3245 real_digit, real_nan, real_maxval, round_for_format, real_convert,
3246 real_to_target, real_from_target, real_hash, encode_ieee_single,
3247 encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
3248 encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
3249 encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
3250 * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
3251 extract_insn, peep2_next_insn, peep2_reg_dead_p,
3252 peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
3253 if_test_bypass_p): Likewise.
3254 * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
3255 stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
3256 emit_swap_insn, swap_to_top, move_for_stack_reg,
3257 subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
3258 compensate_edge, convert_regs_1): Likewise.
3259 * regclass.c (init_reg_sets, init_reg_sets_1,
3260 memory_move_secondary_cost): Likewise.
3261 * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
3262 Likewise.
3263 * reload.c (push_secondary_reload, find_valid_class, push_reload,
3264 operands_match_p, decompose, immune_p, find_reloads,
3265 find_reloads_toplev, find_reloads_address_1, subst_reloads,
3266 copy_replacements, refers_to_regno_for_reload_p,
3267 reg_overlap_mentioned_for_reload_p): Likewise.
3268 * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
3269 count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
3270 verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
3271 reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
3272 choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
3273 do_output_reload, fixup_abnormal_edges): Likewise.
3274 * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
3275 fill_slots_from_thread, relax_delay_slots): Likewise.
3276 * resource.c (mark_referenced_resources, mark_set_resources):
3277 Likewise.
3278 * rtl.c (copy_rtx, rtx_equal_p): Likewise.
3279 * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
3280 dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
3281 subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
3282 find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
3283 hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
3284 * rtlhooks.c (gen_lowpart_general): Likewise.
3285 * sbitmap.c (sbitmap_difference): Likewise.
3286 * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
3287 sched_analyze, add_forward_dependence): Likewise.
3288 * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
3289 * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
3290 schedule_insns): Likewise.
3291 * sched-vis.c (print_pattern): Likewise.
3292 * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
3293 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
3294 simplify_const_relational_operation, simplify_ternary_operation,
3295 simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
3296 Likewise.
3297 * sreal.c (copy, sreal_sub, sreal_div): Likewise.
3298 * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
3299 resolve_operand_name_1, expand_return, expand_decl,
3300 expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
3301 * stor-layout.c (put_pending_size, smallest_mode_for_size,
3302 int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
3303 set_sizetype, get_mode_bounds): Likewise.
3304
15072eb1
ZW
33052004-09-09 Zack Weinberg <zack@codesourcery.com>
3306
3307 * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
3308 * config/arm/pecoff.h, config/i386/beos-elf.h
3309 * config/i386/cygming.h, config/i386/i386-interix.h:
3310 Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
3311 comment cloned from manual.
3312 * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
3313
c2433d7d
FCE
33142004-09-09 Frank Ch. Eigler <fche@redhat.com>
3315
3316 * builtins.c (build_va_arg_indirect_ref): New function.
3317 (std_gimplify_va_arg_expr): Call it instead of mudflap check and
3318 build_fold_indirect_ref.
3319 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
3320 * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
3321 * tree.h: Declare new function.
3322
41374e13 33232004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1a2caa7a
NS
3324
3325 * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
3326 dumping for development builds.
3327 * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
3328 development builds only.
3329 * genattrtab.c (write_eligible_delay): Fix typo in previous
3330 commit.
3331 * tree.c (iterative_hash_expr): Replace gcc_unreachable with
3332 gcc_assert.
3333
41374e13 33342004-09-09 Nathan Sidwell <nathan@codesourcery.com>
282899df
NS
3335
3336 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
3337 cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
3338 process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
3339 hoist_code, extract_mentioned_regs_helper, compute_store_table,
3340 insert_store): Use gcc_assert and gcc_unreachable.
3341 * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
3342 gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
3343 ggc_record_overhead): Likewise.
3344 * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
3345 init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
3346 ggc_pop_context, clear_marks, validate_free_objects,
3347 ggc_pch_read): Likewise.
3348 * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
3349 ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
3350 ggc_push_context, check_cookies, ggc_collect,
3351 ggc_print_statistics): Likewise.
3352 * gimple-low.c (lower_function_body, lower_stmt,
3353 lower_bind_expr): Likewise.
3354 * gimplify.c (gimple_tree_eq, push_gimplify_context,
3355 pop_gimplify_context, gimple_pop_condition, create_tmp_var,
3356 declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
3357 mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
3358 gimplify_case_label_expr, gimplify_exit_block_expr,
3359 canonicalize_component_ref, gimplify_compound_lval,
3360 gimplify_self_mod_expr, gimplify_call_expr,
3361 gimplify_init_ctor_eval, gimplify_init_constructor,
3362 gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
3363 gimplify_expr, check_pointer_types_r,
3364 force_gimple_operand): Likewise.
3365 * global.c (global_alloc, build_insn_chain): Likewise.
3366 * graph.c (clean_graph_dump_file,
3367 finish_graph_dump_file): Likewise.
3368 gcov-io.c (gcov_open): Use GCOV_CHECK.
3369
2a88ebca
RS
33702004-09-09 Richard Sandiford <rsandifo@redhat.com>
3371
3372 * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
3373
34132917
JH
33742004-09-09 Jan Hubicka <jh@suse.cz>
3375
3376 middle-end/17128
282899df
NS
3377 * tree-inline.c (expand_call_inline): Make overactive sanity check
3378 happy.
34132917 3379
9f7aa952
JH
33802004-09-09 Jan Hubicka <jh@suse.cz>
3381
3382 * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
3383 VIEW_CONVERT_EXPR.
3384
b2d59f6f
NS
33852004-09-09 Nathan Sidwell <nathan@codesourcery.com>
3386
3387 * Makefile.in (gengtype): Use $(BUILD_ERRORS).
3388 (gengtype.o): Depend on errors.h.
3389 * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
3390 (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
3391 attr_alt_subset_p, attr_alt_subset_of_compl_p,
3392 attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
3393 write_test_expr, write_attr_value, write_eligible_delay,
3394 make_internal_attr, make_numeric_value): Likewise.
3395 * genautomata.c (regexp_name, get_str_vect,
3396 gen_presence_absence_set, automaton_decl_hash,
3397 automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
3398 decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
3399 process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
3400 test_unit_reserv, it_is_empty_reserv_sets,
3401 reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
3402 reserv_sets_and, output_cycle_reservs, get_free_state,
3403 intersected_state_reservs_p, states_union, remove_arc,
3404 copy_insn_regexp, transform_1, transform_2, transform_3,
3405 regexp_transform_func, store_alt_unit_usage,
3406 check_regexp_units_distribution, process_seq_for_forming_states,
3407 process_alts_for_forming_states, make_automaton,
3408 form_arcs_marked_by_insn, create_composed_state,
3409 set_out_arc_insns_equiv_num, partition_equiv_class,
3410 process_insn_equiv_class, set_insn_equiv_classes,
3411 units_to_automata_heuristic_distr, form_regexp,
3412 longest_path_length, output_dfa_max_issue_rate, add_vect,
3413 out_state_arcs_num, add_vect_el, output_trans_table,
3414 output_state_alts_table, output_dead_lock_vect,
3415 output_max_insn_queue_index_def,
3416 output_min_insn_conflict_delay_func,
3417 output_internal_insn_latency_func, output_print_reservation_func,
3418 output_cpu_unit_reservation_p, output_state_arcs,
3419 make_insn_alts_attr, make_internal_dfa_insn_code_attr,
3420 make_default_insn_latency_attr,
3421 form_important_insn_automata_lists): Likewise.
3422 * genemit.c (gen_exp, output_add_clobbers,
3423 output_added_clobbers_hard_reg_p): Likewise.
3424 * genextract.c (print_path, main): Likewise.
3425 * genflags.c (gen_macro): Likewise.
3426 * gengenrtl.c: Include errors.h
3427 (type_from_format, accessor_from_format): Likewise.
3428 * gengtype.c (get_file_basename, output_mangled_typename,
3429 walk_type, write_types_process_field,
3430 write_types_local_process_field): Likewise.
3431 * genmodes.c (complete_mode): Likewise.
3432 * genopinit.c (gen_insn): Likewise.
3433 * genoutput.c (output_insn_data, check_constraint_len,
3434 constraint_len): Likewise.
3435 * genpreds.c (add_mode_tests):Likewise.
3436 * gen-protos.c (add_hash): Likewise.
3437 * genrecog.c (find_operand, find_matching_operand,
3438 validate_pattern, add_to_sequence, maybe_both_true,
3439 nodes_identical_1, merge_trees, write_switch, write_cond,
3440 write_action, is_unconditional, make_insn_sequence,
3441 debug_decision_2): Likewise.
3442 * gensupport.c (is_predicable, collect_insn_data,
3443 alter_predicate_for_insn, maybe_eval_c_test): Likewise.
3444
87022a6b
JH
34452004-09-09 Jan Hubicka <jh@suse.cz>
3446
3447 * basic-block.h (guess_outgoing_edge_probabilities): Declare.
b2d59f6f
NS
3448 * cfgbuild.c (compute_outgoing_frequencies): When probability is
3449 missing, guess it.
3450 (find_many_sub_basic_blocks): Do update profile only when it is
3451 present.
87022a6b 3452 * predict.c (set_even_probabilities): Break out from ...
b2d59f6f
NS
3453 (combine_predictions_for_insn): ... here; deal with
3454 !can_predict_insn_p insns.
87022a6b
JH
3455 (combine_predictions_for_bb): Use set_even_probabilities.
3456 (bb_estimate_probability_locally): Break out from ....
3457 (estimate_probability): ... here.
3458 (guess_outgoing_edge_probabilities): New entry point.
3459
e1537934
NS
34602004-09-09 Nathan Sidwell <nathan@codesourcery.com>
3461
3b5edfee
NS
3462 * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
3463 handle_braces, process_brace_body, main, used_arg,
3464 set_multilib_dir, print_multilib_info): Use fatal, not abort.
3465
d73d4593
NS
3466 * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
3467
e1537934
NS
3468 * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
3469 * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
3470 Morgan's theorem in last checkin.
3471
1e128c5f
GB
34722004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3473 Nathan Sidwell <nathan@codesourcery.com>
3474
3475 * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
3476 Use gcc_assert, gcc_unreachable & internal_error instead of abort.
3477 * timevar.c (timevar_push, timevar_pop, timevar_start,
3478 timevar_stop): Likewise.
3479 * toplev.c (default_pch_valid_p): Likewise.
3480 * tracer.c (tail_duplicate): Likewise.
3481 * tree-alias-common.c (get_alias_var_decl,
3482 get_values_from_constructor, create_alias_var, delete_alias_vars,
3483 empty_points_to_set, same_points_to_set, ptr_may_alias_var):
3484 Likewise.
3485 * tree.c (tree_size, make_node_stat, copy_node_stat,
3486 build_int_cst_wide, integer_all_onesp, list_length, chainon,
3487 tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
3488 substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
3489 build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
3490 lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
3491 build_method_type_directly, decl_type_context, get_callee_fndecl,
3492 get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
3493 tree_fold_gcd): Likewise.
3494 * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
3495 make_cond_expr_edges, group_case_labels, tree_merge_blocks,
3496 cleanup_control_expr_graph, find_taken_edge,
3497 find_taken_edge_switch_expr, phi_alternatives_equal,
3498 is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
3499 stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
3500 tree_split_edge, tree_verify_flow_info, thread_jumps,
3501 tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
3502 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
3503 chrec_fold_multiply_poly_poly): Likewise.
3504 * tree-complex.c (extract_component, expand_complex_division,
3505 expand_complex_comparison, expand_complex_operations_1,
3506 build_replicated_const, expand_vector_operations_1): Likewise.
3507 * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
3508 build_classic_dir_vector): Likewise.
3509 * tree-dfa.c (compute_immediate_uses_for_phi,
3510 compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
3511 create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
3512 * tree-dump.c (dequeue_and_dump): Likewise.
3513 * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
3514 record_in_finally_tree, replace_goto_queue_1,
3515 maybe_record_in_goto_queue, verify_norecord_switch_expr,
3516 do_return_redirection): Likewise.
3517 * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
3518 add_to_dst_predicate_list, find_phi_replacement_condition,
3519 replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
3520 Likewise.
3521 * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
3522 initialize_inlined_parameters, declare_return_variable,
3523 estimate_num_insns_1, expand_call_inline, expand_calls_inline,
3524 optimize_inline_calls, copy_tree_r): Likewise.
3525 * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
3526 ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
3527 * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
3528 tsi_split_statement_list_after, tsi_split_statement_list_before):
3529 Likewise.
3530 * tree-mudflap.c (mf_varname_tree): Likewise.
3531 * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
3532 lookup_tramp_for_decl, convert_all_function_calls): Likewise.
3533 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3534 * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
3535 coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
3536 free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
3537 Likewise.
3538 * tree-phinodes.c (resize_phi_node, add_phi_arg,
3539 remove_all_phi_nodes_for): Likewise.
3540 * tree-pretty-print.c (op_prio, print_call_name): Likewise.
3541 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3542 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
3543 * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
3544 sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
3545 generate_one_element_ref, generate_element_copy,
3546 generate_element_zero, scalarize_copy, scalarize_init,
3547 scalarize_ldst): Likewise.
3548 * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
3549 add_may_alias, add_pointed_to_expr, add_pointed_to_var,
3550 collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
3551 * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
3552 * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
3553 set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
3554 widen_bitfield, ccp_fold_builtin): Likewise.
3555 * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
3556 replace_exp_1, propagate_tree_value): Likewise.
3557 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3558 * tree-ssa-dce.c (set_control_dependence_map_bit,
3559 find_control_dependence, find_pdom, mark_operand_necessary,
3560 mark_stmt_if_obviously_necessary,
3561 mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
3562 * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
3563 simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
3564 eliminate_redundant_computations, avail_expr_eq): Likewise.
3565 * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
3566 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
3567 duplicate_blocks): Likewise.
3568 * tree-ssa-loop-im.c (for_each_index, set_level,
3569 is_call_clobbered_ref): Likewise.
3570 * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
3571 stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
3572 find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
3573 peel_address, ptr_difference_cost, may_replace_final_value,
3574 determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
3575 rewrite_use, rewrite_uses): Likewise.
3576 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
3577 check_loop_closed_ssa_use): Likewise.
3578 * tree-ssanames.c (make_ssa_name): Likewise.
3579 * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
3580 finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
3581 get_stmt_operands, get_expr_operands, get_asm_expr_operands,
3582 get_indirect_ref_operands, add_stmt_operand): Likewise.
3583 * tree-ssa-pre.c (value_exists_in_set_bitmap,
3584 value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
3585 phi_translate, valid_in_set, compute_antic,
3586 find_or_generate_expression, create_expression_by_pieces, insert_aux,
3587 create_value_expr_from, eliminate): Likewise.
3588 * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
3589 * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
3590 Likewise.
3591 * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
3592 eliminate_tail_call): Likewise.
3593 * tree-vectorizer.c (vect_create_index_for_array_ref,
3594 vect_align_data_ref, vect_create_data_ref,
3595 vect_create_destination_var, vect_get_vec_def_for_operand,
3596 vect_finish_stmt_generation, vect_transform_stmt,
3597 vect_transform_loop_bound, vect_transform_loop,
3598 vect_analyze_operations): Likewise.
3599 * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
3600 Likewise.
3601 * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
3602 get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
3603 bsi_after_labels, bsi_last): Likewise.
3604 * tree-ssa-live.c (var_union, change_partition_var,
3605 create_ssa_var_map, calculate_live_on_entry, root_var_init,
3606 type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
3607 Likewise.
3608 * tree-ssa-live.h (partition_is_global, live_entry_blocks,
3609 tpa_find_tree): Likewise.
3610 (register_ssa_partition_check): Declare.
3611 (register_ssa_partition): use it.
3612 * tree-ssa-live.c: Include errors.h.
3613 (register_ssa_partition_check): New.
3614 * tree-ssa-operands.c: Include errors.h.
3615 * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
3616
c557edf4
RS
36172004-09-09 Richard Sandiford <rsandifo@redhat.com>
3618 Catherine Moore <clm@redhat.com>
3619
3620 * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
3621 (FRV_CPU_FR405): New processor enums.
3622 (frv_issue_rate, frv_acc_group): Declare.
3623 * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
3624 (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
3625 (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
3626 (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
3627 (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
3628 handled by CPP_SPEC.
3629 (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
3630 (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
3631 (ACC_MASK): New macro.
3632 (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
3633 (TARGET_MEDIA_FR450): New macro.
3634 (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
3635 (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
3636 (LABEL_ALIGN_AFTER_BARRIER): Define.
3637 (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
3638 (IACC_FIRST, IACC_LAST): New pair of SPRs.
3639 (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
3640 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
3641 (REGISTER_NAMES): Add entries for new registers.
3642 (REG_CLASS_CONTENTS): Update for new register ranges.
3643 (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
3644 (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
3645 (PACKING_FLAG_USED_P): Delete.
3646 (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
3647 (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
3648 (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
3649 (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
3650 (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
3651 (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
3652 (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
3653 (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
3654 (CPU_UNITS_QUERY): Define to 1.
3655 * config/frv/frv.c: Include gt-frv.h
3656 (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
3657 (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
3658 (frv_insn_group): New enumeration.
3659 (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
3660 (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
3661 (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
3662 (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the
3663 gap left by REGSTATE_LIVE.
3664 (regstate_t): New typedef.
3665 (TARGET_MACHINE_DEPENDENT_REORG): Define.
3666 (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
3667 (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
3668 Initialize frv_unit_codes[] and frv_type_to_unit[].
3669 (frv_conditional_register_usage): Remove redundant fixing of
3670 accumulator registers.
3671 (frv_insn_packing_flag): Update specification.
3672 (frv_function_prologue): Don't set frv_insn_packing_flag here.
3673 Zero out frv_nops[].
3674 (frv_expand_epilogue): Remove comments about the no-longer-present
3675 SIBCALL_P argument.
3676 (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
3677 PACKING_FLAG_USED_P() when deciding whether to pack instructions.
3678 (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
3679 of the new meaning of frv_insn_packing_flag. Emit an mnop.p if
3680 packing is disabled and if INSN can only issue to M1.
3681 (call_operand): Check TARGET_LONG_CALLS.
3682 (acc_operand, even_acc_operand, quad_acc_operand)
3683 (accg_operand): Simplify. Don't accept pseudo registers.
3684 (output_move_single): Handle SPR<-zero moves.
3685 (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}.
3686 (frv_registers_update, frv_registers_used_p): Delete.
3687 (frv_registers_set_p): Delete.
3688 (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
3689 (frv_issues_to_branch_unit_p): New function.
3690 (frv_packet): New structure.
3691 (frv_cond_flags, frv_regstate_conflict_p): New functions.
3692 (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
3693 (frv_registers_update_1, frv_registers_update): New functions.
3694 (frv_start_packet, frv_start_packet_block, frv_finish_packet)
3695 (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
3696 (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
3697 (frv_sort_insn_group, frv_reorder_packet): New functions.
3698 (frv_pack_insns): Use frv_reorder_packet.
3699 (frv_packet_address): New variable.
3700 (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
3701 (frv_register_nop, frv_reorg): New functions.
3702 (bdesc_1arg): Add __SCUTSS.
3703 (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
3704 __SUBSS, __SLASS and __SCAN.
3705 (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
3706 (bdesc_int_void2arg, bdesc_prefetches): New arrays.
3707 (frv_init_builtins): Register the above builtins.
3708 (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
15072eb1 3709 registers. Turn the referenced accumulators into global registers.
c557edf4
RS
3710 (frv_read_iacc_argument): New function.
3711 (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
3712 (frv_split_iacc_move): New function.
3713 (frv_expand_builtin): Handle the new builtins.
3714 * config/frv/frv.md: Replace old schedulers with new order-independent
3715 ones. Add schedulers for the FR405, FR450 and FR550. Describe new
3716 packing algorithm.
3717 (cpu): Add fr550, fr450 and fr405.
3718 (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
3719 mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7.
3720 (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
3721 (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
3722 (fnop, mnop): New patterns.
3723 (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
3724 New constants.
3725 (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
3726 (mclracca8): Use ACC_MASK to determine the upper set of accumulator
3727 registers.
3728 (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
3729 (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
3730 (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
3731 (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
3732 (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
3733 (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
3734 (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
3735 (frv_prefetch0, frv_prefetch): New patterns.
3736 * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
3737 -mcpu=simple. Add -mcpu=fr550.
3738 (MULTILIB_DIRNAMES): Update accordingly.
3739 (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
3740 -mcpu=fr450.
3741 * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
3742 -mlong-calls and -malign-labels options for FR-V.
3743
deb176fa
JM
37442004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
3745
3746 PR c/8420
3747 * c-tree.h (struct c_declspecs): New.
3748 (struct c_declarator, struct c_type_name, struct c_parm): Update
3749 element types.
3750 (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
3751 start_function, start_decl, build_c_parm,
3752 make_pointer_declarator): Update prototypes.
3753 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3754 declspecs_add_scspec, declspecs_add_attrs): New.
3755 (split_specs_attrs): Remove.
3756 * c-parse.in (%union): Add dsptype.
3757 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
3758 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
3759 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
3760 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
3761 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
3762 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
3763 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
3764 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
3765 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
3766 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
3767 maybe_type_quals_attrs): Change to dsptype.
3768 (struct c_declspec_stack): New.
3769 (current_declspecs, declspec_stack): Change type.
3770 (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
3771 structures.
3772 (extdefs): Likewise.
3773 (setspecs): Likewise.
3774 (fndef): Use current_declspecs for empty declspecs list.
3775 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
3776 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
3777 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
3778 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
3779 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
3780 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
3781 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
3782 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
3783 structures and helper functions. Update comments.
3784 (typespec_nonattr): Correct comment.
3785 (maybe_type_quals_attrs, typename): Update to new structures.
3786 * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
3787 shadow_tag, shadow_tag_warned, start_function, start_decl,
3788 build_c_parm, make_pointer_declarator,
3789 set_array_declarator_inner, groktypename): Update to new
3790 structures.
3791 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3792 declspecs_add_scspec, declspecs_add_attrs): New.
3793 (split_specs_attrs): Remove.
3794 (shadow_tag_warned): Make warning for useless type names a
3795 pedwarn. Give hard error for long, short, signed, unsigned or
3796 _Complex used with struct, union or enum in empty declaration.
3797 Make found_tag a bool.
3798 (grokdeclarator): Remove checks now done at parse time.
3799
f8893e47
JM
38002004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
3801
3802 * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
3803 c_declarator, struct c_type_name, struct c_parm): New.
3804 (build_array_declarator, set_array_declarator_inner,
3805 get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
3806 start_function, start_decl, build_c_parm, build_attrs_declarator,
3807 build_function_declarator, make_pointer_declarator, c_cast_expr,
3808 store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
3809 (build_id_declarator): New.
3810 * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
3811 structures.
3812 * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
3813 ARG_INFO_OTHERS): Remove.
3814 (build_id_declarator): New.
3815 (build_array_declarator, set_array_declarator_inner, groktypename,
3816 start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
3817 grokfield, start_function, store_parm_decls_newstyle,
3818 store_parm_decls_oldstyle, store_parm_decls,
3819 build_c_parm, build_attrs_declarator, build_function_declarator,
3820 make_pointer_declarator, grokdeclarator): Update to new
3821 structures.
3822 * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
3823 parmtype.
3824 (declarator, notype_declarator, after_type_declarator,
3825 parm_declarator, parm_declarator_starttypename,
3826 parm_declarator_nostarttypename, array_declarator, typename,
3827 absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
3828 absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
3829 parmlist_1, parmlist_2, parmlist_or_identifiers,
3830 parmlist_or_identifiers_1): Use these types.
3831 (primary, after_type_declarator, parm_declarator_starttypename,
3832 notype_declarator, component_decl, component_declarator,
3833 component_notype_declarator, typename, absdcl,
3834 absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
3835 parmlist_2, parmlist_or_identifiers_1): Update to new structures.
3836
bc4b653b
JM
38372004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
3838
3839 * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
3840 in_typeof, record_maybe_used_decl, pop_maybe_used,
3841 c_expr_sizeof_expr, c_expr_sizeof_type): New.
3842 * c-decl.c (parser_obstack): New.
3843 (c_init_decl_processing): Initialize parser_obstack.
3844 (c_write_global_declarations_1): Check for used but undefined
3845 static functions.
3846 * c-parse.in (%union): Add otype.
3847 (save_obstack_position): New.
3848 (extdefs): Use it.
3849 (unary_expr): Update in_sizeof and in_alignof. Use
3850 c_expr_sizeof_expr and c_expr_sizeof_type.
3851 (sizeof): Update in_sizeof.
3852 (alignof): Update in_alignof.
3853 (typeof): Update in_typeof.
3854 (typespec_nonreserved_nonattr): Call pop_maybe_used.
3855 * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
3856 maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
3857 pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
3858 (build_external_ref): Set C_DECL_USED or call
3859 record_maybe_used_decl if appropriate.
3860 * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
3861
f838cd94
EC
38622004-09-08 Eric Christopher <echristo@redhat.com>
3863
3864 * builtins.c: Fix prototype for fold_builtin_atan.
3865
667bbbbb
EC
38662004-09-08 Eric Christopher <echristo@redhat.com>
3867
3868 * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
3869 fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
3870 fold_builtin_atan): New functions. Migrate function bodies...
3871 (fold_builtin_1): ... from here.
3872
64045029
AM
38732004-09-09 Alan Modra <amodra@bigpond.net.au>
3874
3875 * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
3876 save_size.
3877
f0259218
DE
38782004-09-08 David Edelsohn <edelsohn@gnu.org>
3879
3880 * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
3881 * config/rs6000/power5.md (power5-lmul): Same.
3882
609c3937
RH
38832004-09-08 Richard Henderson <rth@redhat.com>
3884
3885 PR rtl-opt/17186
3886 * function.c (expand_function_end): Have fall-off-the-end
3887 return path jump around return register setup.
3888
4e5b002b
EB
38892004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
3890
3891 * config/sparc/sparc.c (sparc_indent_opcode): New variable.
3892 (output_return): Do not test for the presence of the 'unimp' insn.
3893 Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
3894 as predicates instead of custom ones. Return raw strings when
3895 possible.
3896 (output_sibcall): Likewise. Concatenate strings.
3897 (output_ubranch): Remove kludge for TurboSPARC.
3898 (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
3899 (output_v9branch): Likewise.
3900 (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
3901 <#>: Set sparc_indent_opcode if the delay slot is filled.
3902 <(>: Likewise.
3903 <)>: New operand to emit the displacement from the saved PC on return.
3904 <@>: Remove.
3905 * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
3906 (ASM_OUTPUT_OPCODE): New macro.
3907 (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
3908 * config/sparc/sparc.md (normal_branch, inverted_branch,
3909 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3910 inverted_fpe_branch): Adjust call to output_cbranch.
3911 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
3912 call to output_v9branch.
3913 * config/sparc/sparc-protos.h (output_cbranch): Adjust.
3914 (output_v9branch): Likewise.
3915
5826770c
DP
39162004-09-08 Devang Patel <dpatel@apple.com>
3917
3918 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
3919 -segs_read_only_addr and -segs_read_write_addr.
3920 (WORD_SWITCH_TAKES_ARG): Same.
3921 (LINK_SPEC): Same.
3922 * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
3923 -segs_read_write_addr.
3924
6cdd5672
RH
39252004-09-08 Richard Henderson <rth@redhat.com>
3926
3927 * function.c (reference_callee_copied): New.
3928 (assign_parm_setup_reg): Use it.
3929 * calls.c (initialize_argument_information): Likewise.
3930 (emit_library_call_value_1): Likewise.
3931 * function.h (reference_callee_copied): Declare.
3932
3933 * target.h (struct gcc_target): Add callee_copies.
3934 * target-def.h (TARGET_CALLEE_COPIES): New.
3935 (TARGET_PASS_BY_REFERENCE): Update default.
3936 * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3937 * targhooks.c (hook_callee_copies_named): New.
3938 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
3939 hook_pass_by_reference_false.
3940 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
3941 * targhooks.h: Update decls.
3942 * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
3943 * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3944 * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
3945 * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
3946 * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3947 * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
3948 * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3949 * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
3950 * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3951 * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
3952 (mips_callee_copies): New.
3953 * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3954 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
3955 * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3956 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
3957 * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3958 * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
3959 * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3960 * config/sh/sh.c (sh_callee_copies): New.
3961 (TARGET_CALLEE_COPIES): New.
3962 * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3963 * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
3964 * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3965 * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
3966 for FUNCTION_ARG_CALLEE_COPIES.
3967 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
3968
7f7e0703
DP
39692004-09-08 Devang Patel <dpatel@apple.com>
3970
6cdd5672
RH
3971 * tree-if-conv.c (find_phi_replacement_condition): Return true
3972 edge block.
3973 (replace_phi_with_cond_modify_expr): Select conditional expr args
3974 based on true edge basic block.
667bbbbb 3975
ed7f7d85
JH
39762004-09-08 Jan Hubicka <jh@suse.cz>
3977
3978 * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
3979 variables being alias set.
3980
0bccc606
NS
39812004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3982
3983 * final.c (shorten_branches, final, get_insn_template,
3984 output_alternate_entry_point, final_scan_insn, alter_subreg,
3985 alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
3986 leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
3987 * fix-header.c (lookup_std_proto): Likewise.
3988 * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
3989 verify_local_live_at_start, update_life_info, mark_reg,
3990 calculate_global_regs_live, allocate_reg_life_data,
3991 init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
3992 ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
3993 attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
3994 * fold-const.c (force_fit_type, div_and_round_double,
3995 may_negate_without_overflow_p, int_const_binop, const_binop,
3996 size_binop, size_diffop, fold_convert_const, fold_convert,
3997 invert_tree_comparison, swap_tree_comparison,
3998 comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
3999 range_binop, make_range, fold_cond_expr_with_comparison,
4000 fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
4001 fold_abs_const, fold_not_const, fold_relational_const, round_up,
4002 round_down): Likewise.
4003 * function.c (find_function_data, assign_stack_temp_for_type,
4004 instantiate_virtual_regs_lossage, aggregate_value_p,
4005 assign_parm_find_entry_rtl, assign_parm_setup_block,
4006 expand_function_start, expand_function_end, keep_stack_depressed,
4007 handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
4008
599eabdb
DB
40092004-09-08 Daniel Berlin <dberlin@dberlin.org>
4010
4011 * Makefile.in (tree-loop-linear.o): Added.
4012 (OBJS-common): Add tree-loop-linear.o
4013 * common.opt: New flag, ftree-loop-linear.
4014 * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
4015 * tree-flow.h: Add prototype for linear_transform_loops.
4016 * tree-optimize.c: Add linear transform after vectorization.
4017 * tree-pass.h: Add struct pass_linear_transform.
4018 * tree-ssa-loop.c: Add pass_linear_transform.
4019 * tree-loop-linear.c: New file.
4020 * lambda-code.c: gcc_assertify.
4021 (gcc_loop_to_lambda_loop): Handle all exit tests.
4022 Handle case where we have (invariant >= induction var).
4023 (find_induction_var_from_exit_cond): Ditto.
667bbbbb 4024
13f5595a
JZ
40252004-09-08 Jie Zhang <zhangjie@magima.com.cn>
4026
4027 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
4028 memory tag is call clobbered, so are its aliases.
4029 (group_aliases): When two memory tags being grouped, if one is
4030 call clobbered, so are the other and its aliases.
4031 (add_may_alias): Remove call-clobbering stuff.
4032 (replace_may_alias): Likewise.
4033 (merge_pointed_to_info): Merge pt_global_mem
4034
89480522
JH
40352004-09-08 Jan Hubicka <jh@suse.cz>
4036
4037 * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
4038 * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
4039 (cgraph_expand_function): Remove stale cgraph edges of currently
4040 compiled function; fix non-unit-at-a-time code copying function
4041 node for later reuse.
4042
4c254e68
NS
40432004-09-08 Nathan Sidwell <nathan@codesourcery.com>
4044
4045 * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
4046 (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
4047 (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
4048 (vec_gc_free, vec_heap_free): New.
4049 * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
4050 (DEF_VEC_P): Add allocator argument. Adjust.
4051 (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
4052 (DEF_VEC_O): Add allocator argument. Adjust.
4053 (VEC(free)): New.
4054
4055 * tree.h (tree): Define a GC'd vector.
4056 * lamba-code.c (lambda_loop): Likewise.
4057 * value-prof.h (histogram_value): Likewise.
4c254e68 4058
5b0264cb
NS
40592004-09-08 Nathan Sidwell <nathan@codesourcery.com>
4060
4061 * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
4062 (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
4063 gen_lowpart_common, gen_highpart, gen_highpart_mode,
4064 subreg_highpart_offset, operand_subword, operand_subword_force,
4065 mem_expr_equal_p, set_mem_attributes_minus_bitpos,
4066 set_mem_alias_set, change_address_1, verify_rtx_sharing,
4067 copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
4068 try_split, add_insn_after, add_insn_before, remove_insn,
4069 remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
4070 emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
4071 emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
4072 set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
4073 gen_const_vector_0, emit_copy_of_insn_after): Likewise.
4074 * et-forest.c (set_prev, set_next, et_check_occ_sanity,
4075 record_path_before_1, check_path_after_1, check_path_after): Likewise.
4076 * except.c (gen_eh_region, resolve_one_fixup_region,
4077 remove_unreachable_regions, convert_from_eh_region_ranges_1,
4078 add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
4079 connect_post_landing_pads, sjlj_emit_function_exit,
4080 remove_exception_handler_label, remove_eh_handler,
4081 reachable_next_level, collect_one_action_chain,
4082 output_function_exception_table): Likewise.
4083 * explow.c (trunc_int_for_mode, copy_to_mode_reg,
4084 optimize_save_area_alloca, allocate_dynamic_stack_space,
4085 probe_stack_range, hard_function_value): Likewise.
4086 * expmed.c (mode_for_extraction, store_bit_field,
4087 store_fixed_bit_field, extract_bit_field, expand_shift,
4088 expand_mult_const, expand_mult, choose_multiplier,
4089 expand_mult_highpart, expand_divmod, emit_store_flag,
4090 do_cmp_and_jump): Likewise.
4091 * expr.c (convert_move, convert_modes, move_by_pieces,
4092 move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
4093 move_block_from_reg, gen_group_rtx, emit_group_load,
4094 emit_group_move, emit_group_store, use_reg, use_regs,
4095 can_store_by_pieces, store_by_pieces, store_by_pieces_1,
4096 emit_move_insn, emit_move_insn_1, emit_push_insn,
4097 expand_assignment, store_expr, count_type_elements,
4098 store_constructor, store_field, safe_from_p, expand_var,
4099 expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
4100
ced3f397
NS
41012004-09-08 Nathan Sidwell <nathan@codesourcery.com>
4102
4103 * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
4104 gcc_assert and gcc_unreachable.
4105 * ddg.c (create_ddg_dependence, add_deps_for_def,
4106 add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
4107 * df.c (df_ref_unlink, df_ref_record, df_uses_record,
4108 df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
4109 df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
4110 df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
4111 df_bb_reg_live_end_p, df_bb_regs_lives_compare,
4112 df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
4113 dataflow_set_copy, hybrid_search, diagnostic.c,
4114 diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
4115 * dojump.c (do_jump): Likewise.
4116 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
4117 compute_dom_fast_query, calculate_dominance_info,
4118 free_dominance_info, get_immediate_dominator,
4119 set_immediate_dominator, get_dominated_by,
4120 redirect_immediate_dominators, nearest_common_dominator,
4121 dominated_by_p, verify_dominators, recount_dominator,
4122 iterate_fix_dominators, add_to_dominance_info,
4123 delete_from_dominance_info): Likewise.
4124 * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
4125 dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
4126 dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
4127 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
4128 initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
4129 flush_queued_reg_saves, dwarf2out_frame_debug_expr,
4130 dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
4131 output_call_frame_info, output_loc_operands, build_cfa_loc,
4132 decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
4133 AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
4134 AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
4135 splice_child_die, attr_checksum, same_dw_val_p,
4136 break_out_includes, build_abbrev_table, size_of_die, mark_dies,
4137 unmark_dies, value_format, output_loc_list, output_die,
4138 output_pubnames, output_aranges, base_type_die, is_base_type,
4139 modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
4140 mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
4141 field_byte_offset, add_data_member_location_attribute,
4142 add_const_value_attribute, rtl_for_decl_location,
4143 add_location_or_const_value_attribute, add_byte_size_attribute,
4144 add_bit_offset_attribute, add_bit_size_attribute,
4145 add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
4146 decl_start_label, gen_formal_parameter_die,
4147 gen_type_die_for_member, gen_subprogram_die, gen_label_die,
4148 gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
4149 force_decl_die, force_type_die, gen_decl_die,
4150 dwarf2out_imported_module_or_decl, prune_unused_types_prune,
4151 dwarf2out_finish): Likewise.
4152
faaaf610
AT
41532004-09-08 Andreas Tobler <toa@pop.agri.ch>
4154
4155 * Makefile.in (builtins.o): Depend on tree-mudflap.h.
4156 * builtins.c: Include tree-mudflap.h.
4157
45c8c47f
UB
41582004-09-08 Uros Bizjak <uros@kss-loka.si>
4159
4160 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
4161 force operand 0.0 into register in XFmode. Also do not force
4162 operand 0.0 into register if !TARGET_CMOVE.
4163 * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
667bbbbb 4164 (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
45c8c47f
UB
4165 implement ftst x87 instruction.
4166 (*fp_jcc_7): New insn pattern. Change corresponding split
4167 pattern to handle "general_operand" instead of
4168 "nonimmediate_operand".
4169
70d5fb1c
BE
41702004-09-08 Ben Elliston <bje@au.ibm.com>
4171
4172 * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
4173
4882ad24
FCE
41742004-09-07 Frank Ch. Eigler <fche@redhat.com>
4175
4176 * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
4177 generated from standard va_arg expansion.
4178 * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
4179 marked nodes.
4180 (mf_varname_tree, mf_file_function_line_tree): Add some support
4181 for column numbers if compiled with USE_MAPPED_LOCATION.
4182
06f624ba
ZL
41832004-09-07 Ziemowit Laski <zlaski@apple.com>
4184
4185 * c-decl.c (groktypename_in_parm_context): Remove function.
4186 * c-tree.h (groktypename_in_parm_context): Remove prototype.
4187
6408ef33
ZL
41882004-09-07 Ziemowit Laski <zlaski@apple.com>
4189
4190 * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
4191 * c-parse.in: Include c-common.h instead of objc-act.h.
4192 (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
4193 myparms, myparm): Remove %type declarations.
4194 (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
4195 objc_typename, objc_try_catch_stmt, optellipsis): Add %type
4196 declarations.
4197 (objc_inherit_code, objc_public_flag): Remove.
4198 (typespec_nonreserved_nonattr): Call
4199 objc_get_protocol_qualified_type() instead of get_static_reference()
4200 and get_protocol_reference().
4201 (stmt_nocomp): Call grokparm() on @catch parameter.
4202 (objcdef): Move semantic action to objc_finish_implementation().
4203 (classdef): Move semantic action to objc_start_class_interface(),
4204 objc_continue_interface(), objc_finish_interface(),
4205 objc_start_class_implementation(), objc_continue_implementation(),
4206 objc_start_category_interface() and
4207 objc_start_category_implementation().
4208 (protocoldef): Move semantic actions to objc_start_protocol() and
4209 objc_finish_interface().
4210 (ivar_decl_list): Remove nonterminal.
4211 (visibility_spec): Move semantic actions to objc_set_visibility().
4212 (ivar_decls): Remove assignment to $$.
4213 (ivar_decl): Rephrase in terms of component_decl; call
4214 objc_add_instance_variable().
4215 (ivars, ivar_declarator): Remove nonterminals.
4216 (opt_semi): New nonterminal.
4217 (methodtype): Remove semantic actions.
4218 (methoddef): Move semantic actions to objc_set_method_type(),
4219 objc_start_method_definition() and objc_finish_method_definition().
4220 (methodproto): Move semantic actions to objc_set_method_type() and
4221 objc_add_method_declaration().
4222 (methoddecl): Use objc_typename instead of typename; move semantic
4223 actions to objc_build_method_signature().
4224 (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
4225 (optparmlist): Express in terms of optparms and optellipsis.
4226 (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
4227 nonterminals.
4228 (keyworddecl): Use objc_typename instead of typename.
4229 (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
4230 and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
4231
8662eb14
AM
42322004-09-08 Alan Modra <amodra@bigpond.net.au>
4233
4234 * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
4235 (MD_FALLBACK_FRAME_STATE_FOR): Update.
4236 * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
4237 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
4238 (MD_FROB_UPDATE_CONTEXT): Remove default.
4239 (uw_update_context_1): Instead #ifdef invocation.
4240 * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
4241 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
4242 * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
4243 (MD_UNWIND_SUPPORT): Undefine this instead.
4244 * config/i386/gnu.h: Likewise.
4245 * config/alpha/linux-unwind.h: New file, macro converted to
4246 function, extracted from..
4247 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
4248 (MD_UNWIND_SUPPORT): Define.
4249 * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
4250 * config/i386/linux-unwind.h, config/i386/linux.h,
4251 config/i386/linux64.h: Likewise.
4252 * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
4253 MD_HANDLE_UNWABI too.
4254 * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
4255 * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
4256 * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
4257 * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
4258 * config/sparc/linux-unwind.h, config/sparc/linux.h,
4259 config/sparc/linux64.h: Likewise.
4260 * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
4261 SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
4262 * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
4263 config/rs6000/linux64.h: Likewise. Split out get_sigcontext
4264 function. Use ARG_POINTER_REGNUM for 32-bit temp reg too.
4265
c4817ba6
JH
42662004-09-07 Jan Hubicka <jh@suse.cz>
4267
ec666d23
JH
4268 * cse.c (fold_rtx): Avoid building of
4269 (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
4270
c4817ba6
JH
4271 * tree-ssa-pre.c (grand_bitmap_obstack): New.
4272 (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
4273 (init_pre): Initialize obstack.
4274 (fini_pre): Free obstack.
4275
9f0df97a
DD
42762004-09-07 David Daney <ddaney@avtrex.com>
4277
4278 * config.gcc: Added support for --with-divide=[breaks|traps] for
4279 mips targets.
4280 * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
4281 (TARGET_DIVIDE_TRAPS): New macro.
4282 (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
4283 (OPTION_DEFAULT_SPECS): Added --with-divide= support.
4284 * config/mips/mips.c (mips_idiv_insns): Generate proper count on
4285 GENERATE_DIVIDE_TRAPS.
4286 (mips_output_division): Emit conditional trap if
4287 GENERATE_DIVIDE_TRAPS is set.
4288 * doc/install.texi: Document --with-divide.
4289 * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
4290
9beb1c84
CT
42912004-09-07 Caroline Tice <ctice@apple.com>
4292
4293 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
4294 EDGE_CROSSING, to flags test case.
667bbbbb 4295
1905940f
JH
42962004-09-07 Jan Hubicka <jh@suse.cz>
4297
4298 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
4299 class too.
4300
341c100f
NS
43012004-09-07 Nathan Sidwell <nathan@codesourcery.com>
4302
4303 * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
4304 cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
4305 make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
4306 or gcc_unreachable.
4307 * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
4308 remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
4309 alloc_aux_for_edges, free_aux_for_edges): Likewise.
4310 * cfgcleanup.c (try_forward_edges,
4311 merge_blocks_move_predecessor_nojumps,
4312 merge_blocks_move_successor_nojumps): Likewise.
4313 * cfgexpand.c (expand_gimple_cond_expr,
4314 expand_gimple_tailcall): Likewise.
4315 * cfghooks.c (duplicate_block): Likewise.
4316 * cfglayout.c (record_effective_endpoints,
4317 insn_locators_initialize, change_scope, fixup_reorder_chain,
4318 verify_insn_chain, fixup_fallthru_exit_predecessor,
4319 duplicate_insn_chain, cfg_layout_finalize): Likewise.
4320 * cfgloopanal.c (check_irred): Likewise.
4321 * cfgloop.c (superloop_at_depth, flow_loops_free,
4322 flow_loop_entry_edges_find, flow_loops_find,
4323 flow_loop_outside_edge_p, get_loop_body,
4324 get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
4325 get_loop_exit_edges, num_loop_branches, cancel_loop,
4326 verify_loop_structure): Likewise.
4327 cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
4328 duplicate_loop_to_header_edge, create_preheader,
4329 create_loop_notes): Likewise.
4330 * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
4331 edirect_branch_edge, force_nonfallthru_and_redirect,
4332 rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
4333 commit_edge_insertions, commit_edge_insertions_watch_calls,
4334 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
4335 cfg_layout_redirect_edge_and_branch_force,
4336 cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
4337 * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
4338 cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
4339 cgraph_varpool_node): Likewise.
4340 * cgraphunit.c (cgraph_finalize_function,
4341 cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
4342 cgraph_expand_function, cgraph_remove_unreachable_nodes,
4343 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4344 cgraph_mark_inline, cgraph_expand_all_functions,
4345 cgraph_build_static_cdtor): Likewise.
4346 * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx,
4347 simplify_logical, distribute_notes, insn_cuid): Likewise.
4348 * conflict.c (conflict_graph_add, print_conflict): Likewise.
4349 * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
4350 coverage_checksum_string): Likewise.
4351 * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
4352 hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
4353 cse_cc_succs, cse_condition_code_reg): Likewise.
4354 * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
4355 rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
4356 new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
4357 cselib_record_set): Likewise.
4358
6b094f38
JH
43592004-09-07 Jan Hubicka <jh@suse.cz>
4360
4361 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
4362
5212068f
NS
43632004-09-07 Nathan Sidwell <nathan@codesourcery.com>
4364
4365 * builtins.c (fold_builtin_strchr): Use build_int_cst, not
4366 fold_convert.
4367 (fold_builtin_strpbrk): Likewise.
4368 * expr.c (array_ref_low_bound): Likewise.
4369 * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
4370 interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
4371 * tree-sra.c (generate_element_zero): Likewise.
4372 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
4373 * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
4374 add_old_iv_candidates, add_iv_candidates): Likewise.
4375 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
4376
366de0ce
NS
43772004-09-07 Nathan Sidwell <nathan@codesourcery.com>
4378
4379 * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
4380 * c-common.c (c_type_hash, c_common_nodes_and_builtins,
4381 c_expand_expr, boolean_increment, nonnull_check_p,
4382 check_function_arguments_recurse, fold_offsetof_1): Likewise.
4383 * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
4384 builtin_define_type_max): Likewise.
4385 * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
4386 implicit_decl_warning, builtin_function, build_compound_literal,
4387 complete_array_type, grokdeclarator, get_parm_info,
4388 start_function, store_parm_decls_oldstyle,
4389 c_write_global_declarations): Likewise.
4390 * c-format.c (get_constant, decode_format_attr,
4391 maybe_read_dollar_number, get_flag_spec, check_format_arg,
4392 check_format_types, format_type_warning,
4393 find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
4394 init_dynamic_diag_info, handle_format_attribute): Likewise.
667bbbbb 4395 * c-gimplify.c (push_context, pop_context, finish_bc_block):
366de0ce
NS
4396 * c-lex.c (c_lex_with_flags, lex_string): Likewise.
4397 * c-objc-common.c (c_tree_printer): Likewise.
4398 * c-pch.c (pch_init): Likewise.
4399 * c-pragma.c (maybe_apply_pragma_weak): Likewise.
4400 * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
4401 * c-typeck.c (c_incomplete_type_error, composite_type,
4402 common_pointer_type, common_type, same_translation_unit_p,
4403 tagged_types_tu_compatible_p, finish_init, pop_init_level,
4404 set_designator, set_nonincremental_init_from_string,
4405 process_init_element, c_finish_if_stmt): Likewise.
4406 * caller-save.c (init_caller_save, save_call_clobbered_regs,
4407 insert_restore, insert_save, insert_one_insn): Likewise.
4408 * calls.c (emit_call_1, compute_argument_block_size,
4409 precompute_arguments, expand_call, emit_library_call_value_1,
4410 store_one_arg): Likewise.
4411
e1bbfc5c
NS
44122004-09-07 Nathan Sidwell <nathan@codesourcery.com>
4413
4414 * configure.ac (enable-checking): Add release option. Reorganize
4415 to avoid repetition.
4416 * configure: Rebuilt.
4417 * doc/install.texi (enable-checking): Amend documentation.
4418
e64dc647
L
44192004-09-06 H.J. Lu <hongjiu.lu@intel.com>
4420
4421 PR bootstrap/17313
4422 * Makefile.in (specs.ready): Depend on cc1$(exeext).
4423
d3a583b1
JW
44242004-09-06 James E Wilson <wilson@specifixinc.com>
4425
cfd8e493
JW
4426 * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
4427 movdf_hardfloat_32bit): Split fG into two alternatives.
4428 (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
4429
d3a583b1
JW
4430 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
4431
ff8cea7e
EB
44322004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
4433
4434 * final.c (output_in_slot): Delete.
4435 (final_scan_insn): Revert 2004-09-03 change.
4436 (output_asm_insn): Likewise.
4437 * config/sparc/sparc.c (output_return): Likewise.
4438 (output_sibcall): Likewise.
4439
8679c649
JH
44402004-09-06 Jan Hubicka <jh@suse.cz>
4441
4442 * loop.c (loop_dump_aux): Do not print RTL when not available.
4443 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
4444 frontend specific type nodes.
4445 (produce_memory_decl_rtl): Break out from ...
4446 (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly.
4447 (get_computation_at): Avoid random tree sharing.
4448 (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
4449
93f8bd9e
ZW
44502004-09-06 Zack Weinberg <zack@codesourcery.com>
4451
4452 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
4453 unnecessary commands.
4454
c802a859
ME
44552004-09-06 Mohan Embar <gnustuff@thisiscool.com>
4456
4457 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
4458 (bitmap.o): Likewise.
4459
9f8628ba
PB
44602004-09-06 Paolo Bonzini <bonzini@gnu.org>
4461
4462 Unify the management of RTL and tree-level dump files.
4463
4464 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
4465 Don't print function name to the dump file, the pass manager
4466 would do this for us. Add code from the top of
4467 rest_of_compilation, up to the initial RTL dump.
4468 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
4469 close the DFI_sibling dump file.
4470 (rest_of_compilation): Don't do that here. Remove code up to the
4471 initial RTL dump.
4472 (init_optimization_passes): Remove.
4473 (pass_rest_of_compilation): Change pass name to NULL.
4474 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
4475 Do not call init_optimization_passes.
4476 * toplev.h (init_optimization_passes): Remove.
4477
4478 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
4479 finish_graph_dump_file): Remove SUFFIX parameter.
4480 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
4481 finish_graph_dump_file): Likewise.
4482
4483 * tree-pass.h (struct tree_opt_pass): Add `letter' field.
4484 * cfgexpand.c (pass_expand): Adjust.
4485 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
4486 * passes.c (pass_rest_of_compilation): Adjust.
4487 * predict.c (pass_profile): Adjust.
4488 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
4489 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
4490 pass_split_crit_edges, pass_warn_function_return): Adjust.
4491 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
4492 * tree-dfa.c (pass_referenced_vars): Adjust.
4493 * tree-eh.c (pass_lower_eh): Adjust.
4494 * tree-if-conv.c (pass_build_ssa): Adjust.
4495 * tree-into-ssa.c (pass_build_ssa): Adjust.
4496 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
4497 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
4498 * tree-nrv.c (pass_nrv): Adjust.
4499 * tree-optimize.c (pass_gimple, pass_all_optimizations,
4500 pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
4501 pass_init_datastructures): Adjust.
4502 * tree-outof-ssa.c (pass_del_ssa): Adjust.
4503 * tree-profile.c (pass_tree_profile): Adjust.
4504 * tree-sra.c (pass_sra): Adjust.
4505 * tree-ssa-alias.c (pass_may_alias): Adjust.
4506 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
4507 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
4508 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
4509 * tree-ssa-dom.c (pass_dominator): Adjust.
4510 * tree-ssa-dse.c (pass_dse): Adjust.
4511 * tree-ssa-forwprop.c (pass_forwprop): Adjust.
4512 * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
4513 * tree-ssa-loop-ch.c (pass_ch): Adjust.
4514 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
4515 pass_loop_done, pass_complete_unroll, pass_iv_canon,
4516 pass_iv_optimize, pass_vectorize): Adjust.
4517 * tree-ssa-phiopt.c (pass_phiopt): Adjust.
4518 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
4519 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
4520 pass_late_warn_uninnitialized): Adjust.
4521 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
4522
4523 * Makefile.in (tree-dump.o): Add new dependencies.
4524 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
4525 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
4526 Likewise.
4527 * toplev.c (dump_file_name): New.
4528 * tree-dump.c (dump_enable_all): Add LETTER parameter.
4529 (struct dump_file_info): Add NUM and LETTER fields.
4530 (dump_files): Adjust and add RTL dump files.
4531 (dump_register): Add NUM and LETTER fields.
4532 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
4533 (dump_begin): Use get_dump_file_name.
4534 (dump_switch_p_1): Adjust call to dump_enable_all.
4535 * tree-dump.h (dump_register): Adjust prototype.
4536 * tree-optimize.c (register_one_dump_file): Take dump file index.
4537 Support flags for RTL dumps.
4538 (register_dump_files): Fill in NUM field of struct dump_file_info.
4539 Track properties both when the gate is executed and when it is not.
4540 (execute_todo): Dump RTL. Add PROPERTIES parameter.
4541 (execute_one_pass): Pass properties to execute_todo. Handle VCG
4542 dumps of RTL.
4543 * tree-pass.h (dump_file_name): New.
4544 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
4545 New.
4546
4547 * Makefile.in (passes.o): Add new dependencies.
4548 * passes.c (struct dump_file_info, enum dump_file_index,
4549 dump_file_tbl, init_optimization_passes): Remove.
4550 (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
4551 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
4552 dump_enabled_p.
4553 (finish_optimization_passes): Update finish_graph_dump_file loop.
4554 (enable_rtl_dump_file): Remove.
4555 * tree-dump.c (dump_files): Adjust and add RTL dump files.
4556 (enable_rtl_dump_file): Add here.
4557 * tree.h (enum tree_dump_index): Add RTL dump file indices.
4558 * doc/invoke.texi (Debugging options): Document new RTL debugging
4559 options. Update.
4560
8c27b7d4
KH
45612004-09-05 Kazu Hirata <kazu@cs.umass.edu>
4562
4563 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
4564 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
4565 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
4566 tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
4567 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
4568 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
4569 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
4570 vec.h: Fix comment formatting.
4571
2a7e31df
KH
45722004-09-05 Kazu Hirata <kazu@cs.umass.edu>
4573
4574 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
4575 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
4576 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
4577 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
4578 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
4579 tree-ssa-loop-niter.c, tree-ssa-operands.c,
4580 tree-ssa-operands.h, tree-ssa-propagate.c,
4581 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
4582 vec.c, vec.h: Fix comment typos. Follow spelling conventions.
4583
2addf926
DN
45842004-09-05 Diego Novillo <dnovillo@redhat.com>
4585
4586 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
4587 vectorizer is enabled.
4588
61b5f210
AJ
45892004-09-05 Andreas Jaeger <aj@suse.de>
4590
4591 * tree-if-conv.c: Spell check comments and clean up whitespace.
4592
8b11a64c
ZD
45932004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4594
4595 * tree-ssa-loop-ivopts.c: New file.
4596 * Makefile.in (tree-ssa-loop-ivopts.c): Add.
4597 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
4598 target_pres_cost, target_spill_cost): Declare.
4599 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
4600 spill_cost): Renamed to ...
4601 (target_avail_regs, target_res_regs, target_small_cost,
4602 target_pres_cost, target_spill_cost): ... and exported.
4603 (init_set_costs, global_cost_for_size): Work with renamed variables.
4604 * common.opt (flag_ivopts): New flag.
4605 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
4606 REF_ORIGINAL.
4607 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
4608 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
4609 generating SSA form.
4610 (force_gimple_operand): New function.
4611 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
4612 * tree-cfg.c (stmt_bsi): New function.
4613 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
4614 PARAM_IV_MAX_CONSIDERED_USES): New.
4615 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
4616 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
4617 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
4618 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
4619 * tree-nested.c (build_addr): Export.
4620 * tree-optimize.c (init_tree_optimization_passes): Add
4621 pass_iv_optimize.
4622 * tree-pass.h (pass_iv_optimize): Declare.
4623 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
4624 IMAGPART_EXPR.
4625 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
4626 as a phi node argument.
4627 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
4628 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
4629 functions.
4630 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
4631 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
4632 pass_iv_optimize): New pass.
4633 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
4634 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
4635 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
4636 * tree.h (REF_ORIGINAL): New macro.
4637 (build_int_cst_type, unsigned_type_for, zero_p,
4638 cst_and_fits_in_hwi, build_addr): Declare.
4639 * doc/invoke.texi (-fivopts): Document.
4640 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
4641 PARAM_IV_MAX_CONSIDERED_USES): Document.
4642 * doc/passes.texi: Document induction variable optimizations pass.
4643
254986c7
KG
46442004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4645
4646 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
4647 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
4648 * c-common.c (c_common_attribute_table): Accept parameters to
4649 sentinel attribute.
4650 (check_function_sentinel, handle_sentinel_attribute): Likewise.
4651 * doc/extend.texi: Update accordingly.
4652
3d091dac
KG
46532004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4654
4655 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
4656 New.
4657 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
4658 attribute.
4659 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
4660 New functions.
4661 (c_common_attribute_table): Add `sentinel' attribute.
4662 (check_function_arguments): Handle `sentinel' attribute.
4663 * doc/extend.texi: Document `sentinel' attribute.
8f1529e6 4664
44269c40 46652004-09-04 H.J. Lu <hongjiu.lu@intel.com>
a60749f5 4666
3d091dac
KG
4667 * configure: Regenerated.
4668
44269c40
KG
46692004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4670
875803a0
RK
4671 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
4672
c51c248f
RK
4673 * tree.c (save_expr): No longer TREE_READONLY.
4674
8d168c24
JH
46752004-09-04 Jan Hubicka <jh@suse.cz>
4676
4677 * passes.c (rest_of_clean_state): Fix merge conflict made during
4678 commiting the patch.
4679
0a9aeefd
JH
46802004-09-04 Jan Hubicka <jh@suse.cz>
4681
4682 * passes.c (rest_of_clean_state): Decompose the instruction stream.
4683
273a2526
RS
46842004-09-04 Richard Sandiford <rsandifo@redhat.com>
4685
4686 * doc/md.texi (shift patterns): New anchor. Add reference to
4687 TARGET_SHIFT_TRUNCATION_MASK.
4688 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
4689 * target.h (shift_truncation_mask): New target hook.
4690 * targhook.h (default_shift_truncation_mask): Declare.
4691 * targhook.c (default_shift_truncation_mask): Define.
4692 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
4693 (TARGET_INITIALIZER): Include it.
4694 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
4695 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
4696 reject all out-of-range values. Fix sign-extension code for modes
4697 whose width is smaller than HOST_BITS_PER_WIDE_INT.
4698 * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
4699 (expand_superword_shift, expand_subword_shift): Likewise.
4700 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
4701 (expand_binop): Use them to implement double-word shifts.
4702 * config/arm/arm.c (arm_shift_truncation_mask): New function.
4703 (TARGET_SHIFT_TRUNCATION_MASK): Define.
4704
caf29de7
JH
47052004-09-04 Jan Hubicka <jh@suse.cz>
4706
4707 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
4708 (mix): New macro copied from hashtab.c
4709 (iterative_hash_hashval_t, iterative_hash_pointer,
4710 iterative_hash_host_wide_int): New functions based on hashtab.c
4711 implementation.
4712
e83adf94
RS
47132004-09-04 Richard Sandiford <rsandifo@redhat.com>
4714
4715 * config/mips/mips.md (mask): New mode attribute.
4716 (zero_extendsidi2): Add memory alternative.
4717 (*zero_extendsidi2_mem): Delete.
4718 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use
4719 memory_operand in the TARGET_MIPS16 check.
4720 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
4721 Redefine using :GPR and :SHORT.
4722 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
4723
edeacc14
UB
47242004-09-04 Uros Bizjak <uros@kss-loka.si>
4725
4726 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
4727 using rint_optab.
4728 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
4729 expand_builtin_mathfn.
4730 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
4731 btrunc?f patterns for btrunc_optab. Implement rint_optab using
4732 rint?f patterns.
4733 * optabs.c (init_optabs): Initialize rint_optab.
4734 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
4735 Add new OTI_rint.
4736 (btrunc_optab): Rename macro from trunc_optab.
4737 (rint_optab): Define corresponding macro.
4738
4739 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
4740 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
4741
4742 * config/i386/i386-protos.h (emit_i387_cw_initialization):
4743 Change prototype. Add new int parameter.
4744 * config/i386/i386.c (emit_i387_cw_initialization):
4745 Handle new rounding modes.
4746
4747 * config/i386/i386.h (enum fp_cw_mode): Delete.
c9996000 4748 (MODE_NEEDED): Handle new rounding modes.
edeacc14
UB
4749 (EMIT_MODE_SET): Change condition to handle new rounding modes.
4750
4751 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
4752 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
4753 represent different rounding modes of frndint insn.
4754 (type): Add frndint type.
4755 (i387, length, memory): Handle this type.
4756 (i387_cw): New attribute definition.
4757 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
4758 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
4759 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
4760 Add "i387_cw" attribute defined to "trunc".
4761 (x86_fnstcw_1): Remove comment.
4762 (*frndintxf2): Rename insn definition to frndintxf2. Move
4763 insn definition near rint?f2 expanders.
4764 (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
4765 rintf and rintl built-ins as inline x87 intrinsics.
4766 (frndintxf2_floor): New pattern to implement floor rounding
4767 mode with frndint x87 instruction.
4768 (floordf2, floorsf2, floorxf2): New expanders to implement floor,
4769 floorf and floorl built-ins as inline x87 intrinsics.
4770 (frndintxf2_ceil): New pattern to implement ceil rounding
4771 mode with frndint x87 instruction.
4772 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
4773 ceilf and ceill built-ins as inline x87 intrinsics.
4774 (frndintxf2_trunc): New pattern to implement trunc rounding
4775 mode with frndint x87 instruction.
4776 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
4777 truncf and truncl built-ins as inline x87 intrinsics.
4778 (frndintxf2_mask_pm): New pattern to implement rounding
4779 mode with exceptions with frndint x87 instruction.
4780 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
4781 implement nearbyint, nearbyintf and nearbyintl built-ins as
4782 inline x87 intrinsics.
4783
183f019b
RS
47842004-09-04 Richard Sandiford <rsandifo@redhat.com>
4785
4786 * config/mips/mips.md (SHORT): New mode macro.
4787 (size): New mode attribute.
4788 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
4789 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
4790 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if
4791 !ISA_HAS_SEB_SEH.
4792 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
4793 *extend[qh]isi2_hw patterns and extending them to di.
4794 (extendqihi2): Implement as define_insn_and_split that produces
4795 extendqisi2 after reload.
4796
40923b20
DP
47972004-09-03 Devang Patel <dpatel@apple.com>
4798
4799 * Makefile.in (OBJS-common): Add tree-if-conv.o
4800 (tree-if-conv.o): New rule.
4801 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
4802 (get_loop_body_in_bfs_order): New.
4803 * cfgloop.h (get_loop_body_in_bfs_order): New.
4804 * tree-flow.h (enum move_pos): Move here from ..
4805 * tree-ssa-loop-im.c (enum move_pos): here.
4806 (movement_possibility): Make externally visible.
4807 * tree-optimize.c (init_tree_optimization_passes): New entry for
4808 if conversion pass.
4809 * tree-pass.h (pass_if_conversion): New.
4810 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
4811 * tree-if-conv.c: New file.
4812 * doc/passes.texi: Document tree if-conversion pass.
c9996000 4813 * doc/tree-ssa.texi: Same.
40923b20 4814
443728bb
L
48152004-09-03 H.J. Lu <hongjiu.lu@intel.com>
4816
4817 PR target/14925:
4818 Makefile.in (LIB2ADDEHSTATIC): New.
4819 (LIB2ADDEHSHARED): New.
4820 (LIBUNWIND): New.
4821 (LIBUNWINDDEP): New.
4822 (SHLIBUNWIND_LINK): New.
4823 (SHLIBUNWIND_INSTALL): New.
4824 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
4825 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
4826 (clean): Remove libunwind*
4827 (stage1-start): Remove and copy stage1/libunwind*.
4828 (stage2-start): Remove and copy stage2/libunwind*.
4829 (stage3-start): Remove and copy stage3/libunwind*.
4830 (stage4-start): Remove and copy stage4/libunwind*.
4831 (stageprofile-start): Remove and copy stageprofile/libunwind*.
4832 (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
4833
4834 * config.gcc (ia64*-*-linux*): Always add t-libunwind to
4835 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
4836 tmake_file if --with-system-libunwind isn't used.
4837
4838 * config/ia64/t-glibc-libunwind: New file.
4839 * config/t-libunwind-elf: Likewise.
4840 * unwind-compat.c: Likewise.
4841 * unwind-compat.h: Likewise.
4842 * unwind-dw2-fde-compat.c: Likewise.
4843
4844 * config/ia64/t-glibc (LIB2ADDEH): Updated.
4845 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
4846
4847 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
4848 aliases if needed.
4849 * unwind-dw2-fde-glibc.c: Likewise.
4850 * unwind-dw2.c: Likewise.
4851
4852 * config/t-libunwind (LIB2ADDEH): Updated.
4853 (LIB2ADDEHSTATIC): New.
4854 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
4855 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
4856
4857 * configure.ac: Change --enable-libunwind-exceptions to
4858 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
4859 * configure: Regenerated.
4860 * config.in: Updated.
4861
4862 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
4863 above and mention --with-system-libunwind.
4864 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
4865 removed in gcc 3.4.3 and later.
4866
4867 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
4868 USE_LIBUNWIND_EXCEPTIONS is defined.
4869
4870 * mklibgcc.in: Support libunwind.
4871
d20bf446
L
48722004-09-03 H.J. Lu <hongjiu.lu@intel.com>
4873
4874 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
4875 m_NOCONA.
4876
1f6d3a08
RH
48772004-09-03 Richard Henderson <rth@redhat.com>
4878
93f8bd9e
ZW
4879 PR middle-end/9997
4880 * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
4881 (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
4882 (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
4883 stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
4884 frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
4885 resize_stack_vars_conflict, add_stack_var_conflict,
4886 stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
4887 union_stack_vars, partition_stack_vars, dump_stack_var_partition,
4888 expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
1f6d3a08
RH
4889 expand_one_static_var, expand_one_hard_reg_var,
4890 expand_one_register_var, expand_one_error_var, defer_stack_allocation,
4891 expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
93f8bd9e 4892 (expand_used_vars): Rewrite.
1f6d3a08
RH
4893 * Makefile.in (cfgexpand.o): Update dependencies.
4894
80d8221e
JH
48952004-09-04 Jan Hubicka <jh@suse.cz>
4896
4897 * cfg.c (free_edge): Use ggc_free.
4898 (expunge_block): Use ggc_free.
4899 * passes.c (rest_of_clean_state): Free after compilation.
4900 * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
4901 * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
4902
bb1058e4
JW
49032004-09-03 James E Wilson <wilson@specifixinc.com>
4904
4905 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
4906 DECL_EXTERNAL check.
4907
ca83de6b
EB
49082004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
4909
4910 * final.c (output_in_slot): New global variable.
4911 (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
4912 Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set
4913 'output_in_slot' before invoking output_asm_insn.
4914 (output_asm_insn): Add a space after the tab if 'output_in_slot'
4915 is set.
4916 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
4917 final_scan_insn.
4918 (output_sibcall): Likewise.
4919
1e3e17d3
JH
49202004-09-03 Jan Hubicka <jh@suse.cz>
4921
4922 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
4923 * tree-ssanames (init_ssanames): Likewise.
4924
c41e5f27
ZL
49252004-09-03 Ziemowit Laski <zlaski@apple.com>
4926
4927 * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
4928 objc_declare_protocols, objc_start_protocol,
4929 objc_start_class_interface, objc_start_category_interface,
4930 objc_continue_interface, objc_finish_interface,
4931 objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
4932 objc_start_class_implementation, objc_start_category_implementation,
4933 objc_continue_implementation, objc_finish_implementation,
4934 objc_add_method_declaration, objc_start_method_definition,
4935 objc_finish_method_definition, objc_build_keyword_decl,
4936 objc_build_method_signature, objc_build_encode_expr,
4937 objc_build_protocol_expr, objc_build_selector_expr,
4938 objc_build_message_expr, objc_build_string_object,
4939 objc_get_class_reference, objc_get_protocol_qualified_type,
4940 objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
4941
b30d77c4
JW
49422004-09-03 James E Wilson <wilson@specifixinc.com>
4943
4944 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
4945
4946 * config/mips/generic.md (generic_frecip_fsqrt_step): New.
4947 * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
4948 (mips_rsqrt2_<fmt>): Use frsqrt2 type.
4949 (mips_recip1_<fmt>): Use frdiv1 type.
4950 (mips_recip2_<fmt>): Use frdiv2 type.
4951 * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
4952 * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
4953 and frsqrt1.
4954 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
4955
87cda9d6
DJ
49562004-09-03 Daniel Jacobowitz <dan@debian.org>
4957
4958 * reload.c (find_reloads): Swap operand_loc pointers for
4959 find_dummy_reload if we have swapped two operands.
4960
f671762a
HPN
49612004-09-03 Hans-Peter Nilsson <hp@axis.com>
4962
4963 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
4964 to get the tablejump-insn before the jump-table label.
4965
a45bcfb2
ZL
49662004-09-03 Ziemowit Laski <zlaski@apple.com>
4967
4968 * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
4969 objc_declare_protocols, objc_build_message_expr,
4970 objc_finish_message_expr, objc_build_selector_expr,
4971 objc_build_protocol_expr, objc_build_encode_expr,
4972 objc_build_string_object, objc_get_protocol_qualified_type,
4973 objc_get_class_reference, objc_get_class_ivars,
4974 objc_start_class_interface, objc_start_category_interface,
4975 objc_start_protocol, objc_continue_interface, objc_finish_interface,
4976 objc_start_class_implementation, objc_start_category_implementation,
4977 objc_continue_implementation, objc_finish_implementation,
4978 objc_set_visibility, objc_set_method_type, objc_build_method_signature,
4979 objc_add_method_declaration, objc_start_method_definition,
4980 objc_finish_method_definition, objc_add_instance_variable,
4981 objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
4982 objc_finish_try_stmt, objc_begin_catch_clause,
4983 objc_finish_catch_clause, objc_build_finally_clause,
4984 objc_build_synchronized, objc_static_init_needed_p,
4985 objc_generate_static_init_call): New prototypes.
4986
9dec91d4
SE
49872004-09-03 Steve Ellcey <sje@cup.hp.com>
4988
4989 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
4990 is only one reg.
4991 (ia64_function_value): Ditto.
4992
61fec9ff
JB
49932004-09-03 Jan Beulich <jbeulich@novell.com>
4994
4995 * config.gcc: Resurrect NetWare as a target. Handle special case of
4996 Novell linker to be used (specified through --with-ld=) and threading
4997 model of either Posix (default) or NKS.
4998 * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
4999 of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
5000 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
5001 * config/i386/netware.c, config/i386/netware.h: New.
5002 * config/i386/nwld.c, config/i386/nwld.h: New.
5003 * config/i386/netware-crt0.c: New.
5004 * config/i386/netware-libgcc.c: New.
5005 * config/i386/netware-libgcc.def: New.
5006 * config/i386/netware-libgcc.exp: New.
5007 * config/i386/t-netware, config/i386/t-nwld: New.
5008 * gthr-nks.h: New.
5009 * doc/install.texi: Document NKS threading model.
5010
467cecf3
JB
50112004-09-03 Jan Beulich <jbeulich@novell.com>
5012
5013 PR c/7054
5014 * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
5015 * tree.h (initial_max_fld_align): Declare
5016 * stor-layout.c (initial_max_fld_align): Define and initialize.
5017 (maximum_field_alignment): Initialize to the same value.
5018 * common.opt: Add -fpack-struct= variant of switch.
5019 * opts.c: Handle -fpack-struct= variant of switch.
5020 * c-pragma.c: Change #pragma pack() handling so that it becomes
5021 compatible to other compilers: accept individual 'push' argument,
5022 make final pop restore (command line) default, correct interaction
5023 of push/pop and sole specification of a new alignment (so that the
5024 sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
5025 to #pragma pack(push, <n>).
5026 * doc/extend.texi: New node "Structure-Packing Pragmas" under
5027 "Pragmas", describing #pragma pack.
5028 * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
5029 * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
5030 Document new TARGET_DEFAULT_PACK_STRUCT.
5031
90300b8c
DP
50322004-09-03 Devang Patel <dpatel@apple.com>
5033
5034 * dwarf2out.c (gen_field_die). Equate decl number to die.
c9996000 5035
d6df6ae2
VM
50362004-09-03 Vladimir Makarov <vmakarov@redhat.com>
5037
5038 PR target/15832
5039 * global.c (modify_reg_pav): New function.
5040 (make_accurate_live_analysis): Call the new function. Move pavin
5041 modification by earlyclobber set into the new function.
5042
25c99d8f
AS
50432004-09-03 Andreas Schwab <schwab@suse.de>
5044
5045 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
5046 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
5047 extended.
5048
7f148c2f
JB
50492004-09-02 Jan Beulich <jbeulich@novell.com>
5050
5051 * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
5052 * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
5053 not unwind code specific ones.
5054 (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
5055 Remove unwind code specific dependencies.
5056 (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
5057 Remove gbl-ctors.h.
5058 Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
5059 LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
5060 * tsystem.h: Declare memcpy and memset when inhibit_libc.
5061
9e42ab3e 50622004-09-02 Roman Zippel <zippel@linux-m68k.org>
c9996000 5063
9e42ab3e
RZ
5064 * combine.c (try_combine): Delay modifying of insns which cannot
5065 be easily undone.
5066
1b08d87d
DB
50672004-09-02 Daniel Berlin <dberlin@dberlin.org>
5068
5069 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
5070 tree-loop-im.
5071 * gcc/tree-ssa-loop.c: Ditto
5072 * gcc/tree-ssa-loop-ivcanon.c: Ditto
5073 * gcc/doc/invoke.texi: Ditto.
5074
d4e43dff
ZL
50752004-09-02 Ziemowit Laski <zlaski@apple.com>
5076
5077 * c-decl.c (store_parm_decls_newstyle): Make static.
5078 (store_parm_decls_from): New function.
5079 * c-tree.h (store_parm_decls_newstyle): Remove prototype.
5080 (store_parm_decls_from): New prototype.
5081
cd7d9ca4
DE
50822004-09-02 David Edelsohn <edelsohn@gnu.org>
5083
5084 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
5085 HImode with STRICT_ALIGNMENT.
5086
40a1c5cb
MM
50872004-09-02 Mark Mitchell <mark@codesourcery.com>
5088
5089 * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
5090 (TARGET_OS_CPP_BUILTINS): Likewise.
5091 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
5092 TARGET_BPABI_CPP_BUILTINS.
5093
b54567e2 50942004-09-02 Roman Zippel <zippel@linux-m68k.org>
c9996000 5095
b54567e2
RZ
5096 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
5097
5906d013
EC
50982004-09-02 Eric Christopher <echristo@redhat.com>
5099
5100 * builtins.c (expand_builtin_cabs): Delete.
5101 (expand_builtin): If unable to fold the values do a normal
5102 library call for builtin_cab*.
5103 (fold_builtin_cabs): Depend on optimize and optimize_size.
5104 * optabs.c (expand_cmplxdiv_straight): Delete.
5105 (expand_cmplxdiv_wide): Ditto.
5106 (expand_vector_binop): Ditto.
5107 (expand_vector_unop): Ditto.
5108 (expand_complex_abs): Delete.
5109 (expand_binop): Remove calls to above functions.
5110 Remove open coding of complex arithmetic.
5111 (expand_unop): Ditto.
5112 * optabs.h: Remove prototypes.
5113
3041390d
ZL
51142004-09-02 Ziemowit Laski <zlaski@apple.com>
5115
5116 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
5117 * c-tree.h (store_parm_decls_newstyle): New prototype.
5118
5514620a
GK
51192004-09-02 Geoffrey Keating <geoffk@apple.com>
5120
5121 * config/rs6000/rs6000.c (expand_block_clear): Use vector
5122 instructions if available.
5123 (expand_block_move): Likewise.
5124
02f14c38
JH
51252004-09-03 Jan Hubicka <jh@suse.cz>
5126
5127 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
5128
19dc705e
MM
51292004-09-02 Mark Mitchell <mark@codesourcery.com>
5130
5131 * config/arm/symbian.h (LIB_SPEC): Define to empty.
5132 * config/arm/t-symbian (SHLIB_LC): Likewise.
5133
24112ed0
PB
51342004-09-02 Paul Brook <paul@codesourcery.com>
5135
5136 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
5137
7ad769fe
RS
51382004-09-02 Richard Sandiford <rsandifo@redhat.com>
5139
5140 * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
5141 (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
5142 (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
5143 (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks.
5144 (mips_issue_rate): Remove unreachable abort.
5145 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
5146 (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
5147 (mips_block_move_straight, print_operand_address, mips_file_start)
5148 (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
5149 (mips_output_conditional_branch, mips_expand_builtin_direct)
5150 (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
5151 * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
5152 with gcc_assert.
5153
9f09b415
RS
51542004-09-02 Richard Sandiford <rsandifo@redhat.com>
5155
5156 * config/mips/mips.md (*lea_high64): Change split condition to
5157 flow2_completed. Add a peephole2 to generate a more parallel version.
5158
07724022
JH
51592004-09-02 Jan Hubicka <jh@suse.cz>
5160
5161 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
5162 GGC.
5163
5164 * ggc-page.c: include tree-flow.h.
5165 (extra_order_size_table): Add stmt_ann_d.
5166 (STAT_LABEL): Rename from ....
5167 (LABEL): ... this one.
5168 * Makefile.in (ggc-page.o): Add dependency.
5169
5170 * ggc-common.c (ggc_force_collect): New global variable.
5171 (loc_description): Add fields "freed", "collected"
5172 (ptr_hash): New static hash
5173 (ptr_hash_entry): New structure.
5174 (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
5175 (ggc_record_overhead): Take ptr argument, record it
5176 (ggc_prune_overhead_list, ggc_free_overhead): New functions.
5177 (cmp_statistics): Imrove sorting.
5178 (dump_ggc_loc_statistics): Output newly collected statistics
5179 * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
5180 (ggc_free): Call ggc_free_overhead.
5181 (ggc_collect): Force collection when asked to be forced.
5182 (ggc_collect): Call ggc_prune_overhead_list.
5183 * ggc.h (ggc_force_collect): Declare
5184 (ggc_record_overhead): Update prototype.
5185 (ggc_free_overhead, ggc_prune_overhead_list): Declare.
5186
10060b83
JW
51872004-09-02 James E Wilson <wilson@specifixinc.com>
5188
5189 * common.opt (ftrapping-math): Default to on.
5190
9d2da95b
RE
51912004-09-02 Richard Earnshaw <rearnsha@arm.com>
5192
5193 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
5194
3f1f9228
DC
51952004-09-02 Denis Chertykov <denisc@overta.ru>
5196
5197 PR target/16884
5198 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
5199 match_scratch.
5200 (*movmemqi_insn): Likewise.
5201 (*movmemhi): Likewise.
5202 (clrmemhi): Likewise.
5203 (*clrmemqi): Likewise.
5204 (*clrmemhi): Likewise.
5205
e6fc6c9b
PB
52062004-09-02 Paul Brook <paul@codesourcery.com>
5207
5208 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
5209 default_use_cxa_atexit=yes.
5210
d86c1b91
AM
52112004-09-02 Alan Modra <amodra@bigpond.net.au>
5212
5213 * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
5214 (struct kernel_old_ucontext): Delete.
5215 (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
5216 (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define
5217 when IN_LIGGCC2.
5218
3806400d
RS
52192004-09-02 Richard Sandiford <rsandifo@redhat.com>
5220
5221 * toplev.c (process_options): Fix typo.
5222
9969aaf6
RH
52232004-09-01 Richard Henderson <rth@redhat.com>
5224
5225 PR middle-end/17258
5226 * calls.c (initialize_argument_information): Tighten pass-through
5227 conditions for pass-by-reference. Remove dead TARGET_EXPR code.
5228 Use build_fold_addr_expr.
5229 (emit_library_call_value_1): Use build_fold_addr_expr. Remove code
5230 that assumes ADDR_EXPR allocates stack space.
5231 * fold-const.c (build_fold_addr_expr_with_type): Look through
5232 WITH_SIZE_EXPR.
5233
1e8964cf
DN
52342004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
5235
5236 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
5237 * ggc.h (ggc_alloc_rtx): Delete.
5238
26276705
RS
52392004-09-01 Roger Sayle <roger@eyesopen.com>
5240
5241 * expmed.c (enum alg_code): Remove long unused enumeration values.
7f148c2f 5242 (struct mult_cost): New structure to hold the "score" of a synthetic
26276705
RS
5243 multiply sequence, including both a rtx_cost and a latency field.
5244 (MULT_COST_LESS): New macro to compare mult_cost to a constant.
5245 (CHEAPER_MULT_COST): New macro to compare two mult_costs.
5246 (struct algorithm): Change type of cost field to be mult_cost.
5247 (synth_mult): Change type of cost_limit argument to be a
5248 pointer to a mult_cost. Update all cost comparisons to use the
5906d013 5249 new mult_cost infrastructure. For alg_add_factor and
26276705
RS
5250 alg_sub_factor operations, latency is lower than the rtx_cost.
5251 (choose_mult_variant): Update calls to synth_mult. Perform
5252 cost comparisons using the new mult_cost infrastructure.
5253 (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
5254 to optain the total rtx_cost of a synth_mult "algorithm".
5255
594a3565
DE
52562004-09-01 David Edelsohn <edelsohn@gnu.org>
5257
5258 * config/rs6000/power4.md: Increase store latency to 12.
5259 * config/rs6000/power5.md: Same.
5260
130d5426
JW
52612004-09-01 James E Wilson <wilson@specifixinc.com>
5262
5263 PR target/14064
5264 * config/avr/avr.c (avr_unique_section): Delete prototype and
5265 definition.
5266 (TARGET_ASM_UNIQUE_SECTION): Delete.
5267
57a6af27
ZL
52682004-09-01 Ziemowit Laski <zlaski@apple.com>
5269
5270 * c-parse.in (primary): Call objc_build_message_expr(),
5271 objc_build_selector_expr(), objc_build_protocol_expr(),
5272 objc_build_encode_expr() and objc_build_string_object() instead of
5273 build_message_expr(), build_selector_expr(), build_protocol_expr(),
5274 build_encode_expr() and build_objc_string_object(), respectively.
5275 (component_decl_list2): Call objc_get_class_ivars() instead of
5276 get_class_ivars_from_name().
5277 (keyworddecl): Call objc_build_keyword_decl() instead of
5278 build_keyword_decl().
5279 (receiver): Call objc_get_class_reference() instead of
5280 get_class_reference().
5281 (reswords): Add blank line before @@ifobjc section, for clarity.
5282
5ec214fc
FJ
52832002-09-01 Fariborz Jahanian <fjahanian@apple.com>
5284
5285 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
5286 to Altivec vetors.
5287
40219f96
WY
52882004-09-01 Wu Yongwei <adah@sh163.net>
5289 Danny Smith <dannysmith@users.sourceforge.net>
5290
5291 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
5292 not Windows 'DWORD'.
5293 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
5294 (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
5295 (__gthr_win32_recursive_mutex_init_function): Add prototype for
5296 __GTHREAD_HIDE_WIN32API case..
5297 (__gthr_win32_recursive_mutex_lock): Likewise.
5298 (__gthr_win32_recursive_mutex_trylock): Likewise.
5299 (__gthr_win32_recursive_mutex_unlock): Likewise.
5300 (__gthread_recursive_mutex_init_function); Add definition for
5301 __GTHREAD_HIDE_WIN32API case.
5302 (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
5303 * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
5304 call to InterlockedDecrement.
5305
78ad8fbe
RK
53062004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5307
ba2e294d
RK
5308 * tree-tailcall.c (find_tail_calls): Also fail is statement has
5309 volatile operands.
5310
0705d602
RK
5311 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
5312
78ad8fbe
RK
5313 * doc/c-tree.texi: Document new operands for ARRAY_REF and
5314 COMPONENT_REF.
5315
6d9901e7
ZD
53162004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5317
5318 * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
5319 * common.opt (fspeculative-prefetching): New.
5320 * flags.h (flag_speculative_prefetching_set): Declare.
5321 * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
5322 values.
5323 * opts.c (flag_sepculative_prefetching_set): New variable.
5324 (common_handle_option): Handle -fspeculative-prefetching.
5325 * passes.c (rest_of_compilation): Ditto.
5326 * profile.c (instrument_values, compute_value_histograms, branch_prob):
5327 Use vectors instead of arrays.
5328 * toplev.c (process_options): Handle -fspeculative-prefetching.
5329 * rtl-profile.c: Include ggc.h.
5330 (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
5331 rtl_gen_one_value_profiler_no_edge_manipulation,
5332 rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
5333 argument changed.
5334 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5335 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
5336 argument changed.
5337 * value-prof.c: Include ggc.h.
5338 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
5339 macros.
5340 (insn_prefetch_values_to_profile, find_mem_reference_1,
5341 find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
5342 speculative_prefetching_transform): New.
5343 (value_profile_transformations): Call speculative_prefetching_transform.
5344 (insn_values_to_profile): Call insn_prefetch_values_to_profile.
5345 (insn_divmod_values_to_profile, rtl_find_values_to_profile,
5346 tree_find_values_to_profile, find_values to profile): Use vectors
5347 instead of arrays.
5348 (free_profiled_values): Removed.
5349 * value-prof.h (struct histogram_value): Renamed to
5350 struct histogram_value_t.
5351 (histogram_value, histogram_values): New types.
5352 (find_values_to_profile): Declaration changed.
5353 (free_profiled_values): Removed.
5354 (struct profile_hooks): Type of argument of the hooks changed to
5355 histogram_value.
5356 * doc/invoke.texi (-fspeculative-prefetching): Document.
5357
d7fe1183
ZD
53582004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5359
5360 PR rtl-optimization/16408
5361 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
5362
938e234b
RH
53632004-09-01 Richard Henderson <rth@redhat.com>
5364
7f148c2f
JB
5365 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
5366 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
938e234b 5367
d0879c98
JJ
53682004-09-01 Jakub Jelinek <jakub@redhat.com>
5369
5370 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
5371
156a126c
MS
53722004-09-01 Mike Stump <mrs@apple.com>
5373
5374 * config/darwin.c (machopic_symbol_defined_p): In addition to
5375 being SYMBOL_REF_LOCAL_P, a symbol must also be
5376 ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
5377 defined in this output file, or translation unit in the case
5378 of IMA not being used.
5379 (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
5380 never need .indirect_symbol when indirecting.
5381
a5d8b097
JJ
53822004-09-01 Jakub Jelinek <jakub@redhat.com>
5383
5384 * Makefile.in (bb-reorder.o): Add several dependencies.
5385
266bff3a
JJ
53862004-09-01 Jakub Jelinek <jakub@redhat.com>
5387
5388 * fold-const.c (operand_equal_p): Require equal sign also for
5389 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
5390
32078532
RE
53912004-09-01 Richard Earnshaw <rearnsha@arm.com>
5392
5393 * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
5394 for use in configargs.h. Put the cname in a separate variable. Use
5395 that to set target_cpu_default2.
5396
c0311627
R
53972004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
5398 Nick Clifton <nickc@redhat.com>
5399
5400 * config/sh/sh.md ("length"): Increase branch length when
5401 SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
5402 constant, 2 byte for aligning the constant.
5403
d98a72fd
RE
54042004-09-01 Richard Earnshaw <rearnsha@arm.com>
5405
5406 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
5407 CPU.
5408 (arm7tdmi-s): New CPU name.
5409 * arm/arm.c (ARM_CORE): Update for new format.
5410 * arm/arm.h (ARM_CORE): Likewise.
5411 * arm/gentune.sh: Update for extra field.
5412 * config.gcc: Likewise.
5413 * arm/arm-tune.md: Regenerate.
5414 * doc/invoke.texi: Document the real processor names for ARM cpus.
5415
0a1aa867
RE
54162004-09-01 Richard Earnshaw <rearnsha@arm.com>
5417
5418 * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
5419 (floatdidf): New functions.
5420 * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
5421 (floatdisf): New functions.
5422 * t-arm-elf: Use them.
5423
bc095846
ZL
54242004-09-01 Ziemowit Laski <zlaski@apple.com>
5425
5426 * c-common.h (lookup_interface): Remove prototype.
5427 (is_class_name): Rename to objc_is_class_name.
5428 (lookup_objc_ivar): Rename to objc_lookup_ivar.
5429 (get_current_scope): Rename to objc_get_current_scope.
5430 * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
5431 * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
5432 (yylexname): Call objc_is_class_name() instead of is_class_name().
5433 * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
5434 instead of lookup_objc_ivar().
5435 * stub-objc.c (lookup_interface): Remove stub.
5436 (is_class_name): Rename to objc_is_class_name.
5437 (lookup_objc_ivar): Rename to objc_lookup_ivar.
5438
14945fe6
MM
54392004-08-31 Mark Mitchell <mark@codesourcery.com>
5440
5441 * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
5442 * config/arm/lib1funcs.asm: Do not include supplemental .S files
5443 when compiling for Symbian.
5444 * config/arm/symbian.h (RENAME_LIBRARY): New macro.
5445 (TARGET_OS_CPP_BUILTINS): Likewise.
5446 * config/arm/t-symbian (LIB1ASMFUNCS): Define.
5447
93415288
SS
54482004-08-31 Stan Shebs <shebs@apple.com>
5449
5450 * toplev.c (process_options): Ensure debug_hooks is initialized.
5451
505970fc
MM
54522004-08-31 Mark Mitchell <mark@codesourcery.com>
5453
5454 * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
5455 * target.h (cxx): Add export_class_data.
5456 * config/arm/arm.c (arm_cxx_export_class_data): New function.
5457 (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
dc40803a 5458 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
5906d013 5459
bee9efbc
KK
54602004-08-31 Kaz Kojima <kkojima@gcc.gnu.org>
5461
5462 * config/sh/sh.c (output_branch): Check the insn length possibly
5463 in the delayed slot.
5464
a4e9ffe5
RK
54652004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5466
a0ca8e0c
RK
5467 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
5468 blank after ')'.
5469 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
5470
a4e9ffe5
RK
5471 * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
5472 (c_sizeof_of_alignof_type): Likewise.
5473 * expr.c (array_ref_element_size): Likewise.
5474 (highest_pow2_factor_for_target): Likewise.
5475 * gimplify.c (canonicalize_addr_expr): Likewise.
5476 (gimplify_compound_lval): Likewise.
5477 * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
5478 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
5479 * varasm.c (assemble_variable): Likewise.
5480 (output_constant_def_contents): Alignments are unsigned.
5481
631b67ce
RK
54822004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5483 Jeff Law <law@redhat.com>
5484
5485 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
5486 gets modified.
5487
af287697
MM
54882004-08-31 Mark Mitchell <mark@codesourcery.com>
5489
5490 * hooks.c (hook_bool_void_true): New function.
5491 * hooks.h (hook_bool_void_true): Declare.
5492 * target-def.h (TARGET_CXX): Add
5493 TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
5494 * target.h (struct cxx): Add key_method_may_be_inline.
5495 * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
5496 function.
5497 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
5498 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
5499 __THUMB_INTERWORK.
5906d013 5500
678584fc
DC
55012004-08-31 Denis Chertykov <denisc@overta.ru>
5502
5503 PR target/15417
5504 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
5505 frame pointer register only in Pmode while reload in progress.
5506
c4c9b76e
SC
55072004-08-31 Stephane Carrez <stcarrez@nerim.fr>
5508
5509 PR target/15334
5510 * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
5511 because it breaks the 32-bit shift patterns that rely on a match_dup.
5512
c61eceeb
MA
55132004-08-31 Matt Austern <austern@apple.com>
5514
5515 * config/darwin.c (darwin_make_decl_one_only): Allocate section
5516 names once per compilation, instead of once per symbol.
5906d013 5517
71b5d516
PB
55182004-08-31 Paolo Bonzini <bonzini@gnu.org>
5519
5520 * Makefile.in (build_subdir): New substitution.
5521 (fixinc.sh): Simplify heavily since fixincludes is already built.
5522 (stmp-fixinc): Depend on specs.ready.
5523 (install-mkheaders): Use new location of fixincludes.
5524 (clean): Do not descend into fixinc.
5525 (FORBUILD): Replace with ../$(build_subdir).
5526 * configure.ac (build_subdir): Substitute.
5527 (FORBUILD): Do not set.
5528 (all_outputs): Remove fixinc/Makefile.
5529 (default commands): Do not create links in fixinc.
5530 * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
5531 the fixincludes configuration steps and substituting
5532 @FIXINCL@ in fixinc.in.
5533 * fixinc.in: New, from fixinc/fixincl.sh.
5534
5535 * fixinc/*: Removed.
5906d013 5536
f7b0fb68
JM
55372004-08-31 Joseph S. Myers <jsm@polyomino.org.uk>
5538
5539 * attribs.c (strip_attrs): Remove.
5540 (split_specs_attrs): Move ...
5541 * c-decl.c: ... to here.
5542 * tree.h (split_specs_attrs, strip_attrs): Remove.
5543 * c-tree.h (split_specs_attrs): Declare.
5544
f51a38b9
RS
55452004-08-31 Richard Sandiford <rsandifo@redhat.com>
5546
5547 * read-rtl.c: Disable RTL checking.
5548 (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
5549
34ebf755
RS
55502004-08-31 Richard Sandiford <rsandifo@redhat.com>
5551
5552 * config/mips/mips.md (fcond): New code macro and attribute.
5553 (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
5554 (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
5555 (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
5556
9b76aa3b
MM
55572004-08-30 Mark Mitchell <mark@codesourcery.com>
5558
5559 Revert:
5560 2004-08-29 Mark Mitchell <mark@codesourcery.com>
5561 PR rtl-optimization/16590
5562 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
5563
99fa8911
AP
55642004-08-30 Andrew Pinski <apinski@apple.com>
5565
5906d013 5566 * hard-reg-set.h:
992c944c
AP
5567 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
5568 * ChangeLog: Fix previous ChangeLog entry.
5569
99fa8911 5570 PR rtl-opt/13987
5906d013 5571 * config.host (use_long_long_for_widest_fast_int): New, default is
99fa8911
AP
5572 off.
5573 (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
5574 * configure.ac: If use_long_long_for_widest_fast_int, then
5575 define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
5576 * configure: Regenerate.
5577 * config.in: Regenerate.
5578 * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
5579 New: widest integer type supported efficiently in hardware for the
5580 host.
5581 * sbitmap.h (SBITMAP_ELT_BITS): Define based on
5582 HOST_BITS_PER_WIDEST_FAST_INT.
5583 (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
5906d013 5584 * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
99fa8911
AP
5585 HOST_WIDEST_FAST_INT
5586 instead of HOST_WIDE_INT.
5587 (HARD_REG_SET_LONGS): Likewise.
5588 (UHOST_BITS_PER_WIDE_INT): Likewise.
5589 Change the checks for the fast cases to be based on
992c944c 5590 HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
99fa8911 5591
f4c0250b
SB
55922004-08-30 Steven Bosscher <stevenb@suse.de>
5593
5594 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
5595 not the pointers.
5596
ff164b22
GK
55972004-08-30 Geoffrey Keating <geoffk@apple.com>
5598
5599 PR 12738
5600 PR 17205
5601 Radar 3460526
5602 Radar 3775729
5603 * c-decl.c (grokdeclarator): Produce error for 'static' on local
5604 function declaration.
5605
bc482be4
RH
56062004-08-30 Richard Henderson <rth@redhat.com>
5607
5608 * expr.c (array_ref_element_size): Force aligned_size back to
5609 sizetype.
5610 (component_ref_field_offset): Similarly for aligned_offset.
5611 * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
5612 low-bound, element-size, field-offset fields rather than
5613 computed values.
5614
21611613
JM
56152004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
5616
5617 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
5618 redundant code.
5619
7b112487
JM
56202004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
5621
5622 * c-tree.h (struct language_function): Add arg_info element.
5623 * c-decl.c (current_function_arg_info): New.
5624 (grokdeclarator, store_parm_decls): Use it instead of
5625 DECL_ARGUMENTS.
5626 (c_push_function_context, c_pop_function_context): Save and
5627 restore it.
5628
5cc200fc
RH
56292004-08-30 Richard Henderson <rth@redhat.com>
5630
5906d013 5631 * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
5cc200fc
RH
5632 COMPONENT_REF to pointer arithmetic.
5633 * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
5634 constant "c" as a valid constant initializer. Allow narrowing of
5635 differences against the same base object, for any base object.
5636
6377bb9a
RH
56372004-08-30 Richard Henderson <rth@redhat.com>
5638
5639 * expr.c (expand_expr_addr_expr): New.
5640 (expand_expr_real_1) <case ADDR_EXPR>: Use it.
5641
308cd611
RS
56422004-08-30 Richard Sandiford <rsandifo@redhat.com>
5643
5644 * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
5645 (mips_fp_condition): New enum.
5646 (mips_fp_conditions): New array.
5647 (print_fcc_operand): Delete.
5648 (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints
5649 the operand and comma if and only if ISA_HAS_8CC. Add %Y.
5650 (builtin_description): Add "cond" field.
5651 (DIRECT_BUILTIN): Initialize it.
5652 (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
5653 into INSN and CODE. Initialize the "cond" field.
5654 (CMP_BUILTINS): Update accordingly.
5655 (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
5656 (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
5657 mips_fp_condition as argument. Make it the final operand of the
5658 comparison instruction.
5659 (mips_expand_builtin): Update accordingly.
5660 * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
5661 (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill
5662 the gaps.
5663 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
5664 Don't use the 'Q' operand prefix; just print the operand normally.
5665 (mips_cabs_*, mips_c_*): Delete, replacing with...
5666 (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
5667 patterns. Split the 4s versions into 2 ps patterns after reload.
5668
88f19756
RH
56692004-08-30 Richard Henderson <rth@redhat.com>
5670
5671 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
5672 assuming an ADDR_EXPR is non-null.
5673
70008293
JM
56742004-08-30 Jason Merrill <jason@redhat.com>
5675
d92a3b38 5676 * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
70008293 5677
8ce16ed6
NS
56782004-08-30 Nathan Sidwell <nathan@codesourcery.com>
5679
5680 * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
5681 record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
5682 gcc_assert and gcc_unreachable instead of abort.
5683 * alloc-pool.c (abort, fancy_abort): Remove.
5684 (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
5685 gcc_assert or gcc_unreachable.
5686 * attribs.c (init_attributes, decl_attributes): Likewise.
5687 * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
5688 mark_bb_for_unlikely_executed_section,
5689 add_labels_and_missing_jumps, fix_crossing_conditional_branches,
5690 fix_crossing_unconditional_branches): Likewise.
5691 * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
5692 bitmap_operation): Likewise.
5693 * bt-load.c (insn_sets_btr_p, augment_live_range,
5694 move_btr_def): Likewise.
5695 * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
5696 apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
5697 expand_builtin_mathfn_2, expand_builtin_mathfn_3,
5698 builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
5699 expand_builtin_memcmp, expand_builtin_args_info,
5700 std_gimplify_va_arg_expr, expand_builtin_unop,
5701 expand_builtin_fputs, expand_builtin_profile_func,
5702 expand_builtin_fork_or_exec, fold_builtin_bitop,
5703 fold_builtin_classify, fold_builtin_fputs): Likewise.
5704
fc6633e0
NS
57052004-08-30 Nathan Sidwell <nathan@codesourcery.com>
5706
e0448193
NS
5707 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
5708 * gcov.c (abort): Remove undef.
5709
fc6633e0
NS
5710 * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
5711 (struct tree_binfo): Remove primary field.
5712
89b8abbf
PB
57132004-08-30 Paolo Bonzini <bonzini@gnu.org>
5714
5715 * fixinc/Makefile.in (machname.h): Remove.
5716 (fixincl.x): Do not pass $@ to genfixes.
5717 * fixinc/genfixes: Remove code to produce machname.h.
5718 * fixinc/fixincl.sh: Move it here instead.
5719 * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
5720 instead check if pz_mn_name_pat is NULL. Make mn_get_regexps
5721 return a bool indicating whether pz_mn_name_pat is NULL.
5722 * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
5723 Declare extern C variables for the ENV_TABLE.
5724 * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
5725 instead use the result of mn_get_regexps.
5726 * fixinc/fixtests.c: Likewise.
5727
39880d37
PB
57282004-08-30 Paolo Bonzini <bonzini@gnu.org>
5729
5730 * configure.ac: Do not run fixincludes after stage1 during
5731 toplevel bootstrap.
5732 * configure: Regenerate.
5733
a8b3643c
RE
57342004-08-30 Richard Earnshaw <rearnsha@arm.com>
5735
5736 * sched-deps.c (get_condition): Partially revert previous, by never
5737 trying to extract the condition from a condjump.
5738
fc6633e0
NS
57392004-08-30 Nathan Sidwell <nathan@codesourcery.com>
5740
5741 * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
5742 (handle_visibility_attribute, c_determine_visibility): Likewise.
5743 * c-common.h (my_friendly_assert): Remove.
5744
afa396ff
RS
57452004-08-30 Richard Sandiford <rsandifo@redhat.com>
5746
5747 * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
5748 (UNSPEC_{RSQRT,RECIP}[12]): New constants.
5749 (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
5750 * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
5751 (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
5752
ef6379fd
DN
57532004-08-30 Diego Novillo <dnovillo@redhat.com>
5754
5755 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
5756 in COMPONENT_REF nodes.
5757
7783b402
GDR
57582004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
5759
5760 PR c++/15378
5761 * c-opts.c (c_common_handle_option): <case OPT_Werror> set
5762 global_dc->warning_as_error_requested.
5763 * diagnostic.c (diagnostic_initialize): Tidy.
5764 * diagnostic.h (diagnostic_context::x_data): Remove
5765 (diagnostic_context::issue_warnings_are_errors_message): Rename
5766 from warnings_are_errors_message.
5767 (diagnostic_context::warning_as_error_requested): New.
5768
adf968c7
RE
57692004-08-30 Richard Earnshaw <rearnsha@arm.com>
5770
5771 * sched-deps.c (get_condition): Fix breakage in previous patch.
5772
999f4d5e
PB
57732004-08-30 Paul Brook <paul@codesourcery.com>
5774
5775 * doc/install.texi: Fix broken mpfr link.
5776
5a0c2304
DB
57772004-08-29 David O'Brien <obrien@FreeBSD.org>
5778
5779 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
5780 other FreeBSD platforms.
5781
880873be
RE
57822004-08-29 Richard Earnshaw <rearnsha@arm.com>
5783
5784 * arm.h (REVERSE_CONDITION): Define.
5785 (REVERSIBLE_CC_MODE): All comparisons are now reversible.
5786
15dce812
RE
57872004-08-29 Richard Earnshaw <rearnsha@arm.com>
5788
5789 * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
5790 just the codes, call reversed_comparison_code ().
5791 (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
5792 (not_reg_cond): Use reversed_comparison_code.
5793 (and_reg_cond): Likewise.
5794 * ifcvt.c (cond_exec_process_if_block): Likewise.
5795 * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
5796
6903ecd4
RE
57972004-08-29 Richard Earnshaw <rearnsha@arm.com>
5798
5799 * sched-deps.c (get_condition): Rewrite using jump support functions.
5800 Use reversed_comparison_code.
5801 (conditions_mutex_p): Use reversed_comparison_code.
5802
ea9bfbf2
RS
58032004-08-29 Richard Sandiford <rsandifo@redhat.com>
5804
5805 * config/mips/mips.c (override_options): Disable hot/cold partitioning
5806 for MIPS16.
5807
4ca1f68f
RS
58082004-08-29 Richard Sandiford <rsandifo@redhat.com>
5809
5810 * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
5811 (mips_function_type): Move to mips.c.
5812 * config/mips/mips.c (mips_builtin_type): New enum.
5813 (builtin_description): Replace code and ftype with builtin_type
5814 and function_type.
5815 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
5816 (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
5817 (CODE_FOR_mips_abs_ps): Define.
5818 (mips_bdesc): Use new macros.
5819 (mips_expand_builtin): Use builtin_type. Update calls to subroutines.
5820 (mips_init_builtins): Use the mips_bdesc[] index as the function code.
5821 (mips_expand_builtin_direct): New function.
5822 (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
5823 builtin. Replace boolean parameter with builtin_type.
5824 (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
5825 (mips_expand_4s_compare_builtin): Delete, replacing with...
5826 (mips_expand_builtin_compare): ...this new function.
5827
5e9f78cc
MM
58282004-08-29 Mark Mitchell <mark@codesourcery.com>
5829
5830 PR rtl-optimization/16590
5831 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
5832
766ff1b1
DN
58332004-08-29 Diego Novillo <dnovillo@redhat.com>
5834
5835 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
5836 * tree-ssa-propagate.c: Fix documentation.
5837
2435c4c1
RS
58382004-08-29 Richard Sandiford <rsandifo@redhat.com>
5839
5840 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
5841 (mov[sd]fcc): Likewise.
5842
53d9ac3b
RS
58432004-08-29 Richard Sandiford <rsandifo@redhat.com>
5844
5845 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
5846
93898c8b
RS
58472004-08-29 Richard Sandiford <rsandifo@redhat.com>
5848
5849 * config/mips/mips.md (divide_condition): New mode attribute.
5850 (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF.
5851 (sqrt[sd]f3): Redefine using SCALARF.
5852 (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise. Name formerly unnamed
5853 patterns.
5854
aae0609c
RS
58552004-08-29 Richard Sandiford <rsandifo@redhat.com>
5856
5857 * config/mips/mips.md (ANYF, SCALARF): New mode macros.
5858 (loadx, storex, fmt, UNITMODE): New mode attributes.
5859 (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
5860 (mul[sd]f3): Redefine using :SCALARF.
5861 (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF.
5862 (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
5863 (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF.
5864 Check TARGET_FUSED_MADD for V2SF too.
5865 (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
5866 were already named.
5867 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
5868 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
5869
74fc61d1
RS
58702004-08-29 Richard Sandiford <rsandifo@redhat.com>
5871
5872 * config/mips/mips.c (mips_init_builtins): Simplify. Only create
5873 V2SF_type_node if it will be needed.
5874
ff55fb9c
RS
58752004-08-29 Richard Sandiford <rsandifo@redhat.com>
5876
5877 * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
5878 * config/mips/mips.c (mips_prepare_builtin_arg): New function.
5879 (mips_prepare_builtin_target): New function.
5880 (mips_expand_builtin): Use them. Update calls to subroutines.
5881 (mips_expand_ps_cond_move_builtin): Use the new functions. Replace
5882 cmp_choice with a boolean argument to select between movt and movf.
5883 Take the comparison's icode as an argument, not the function's fcode.
5884 (mips_expand_compare_builtin): New function. Rename existing function
5885 to mips_expand_scalar_compare_builtin.
5886 (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
5887 (mips_expand_ps_compare_builtin): Use the new functions. Take the
5888 comparison's icode as an argument, not the builtin's fcode.
5889
f691c4e3
RS
58902004-08-29 Richard Sandiford <rsandifo@redhat.com>
5891
5892 * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
5893 (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
5894 registers are false and -1 if all registers are true.
5895 (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for
5896 MIPS_CMP_UPPER and MIPS_CMP_LOWER.
5897 * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
5898 (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
5899 (bc1any2t, bc1any2f): Likewise CCV2.
5900 (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
5901
49135706
RS
59022004-08-29 Richard Sandiford <rsandifo@redhat.com>
5903
5904 * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
5905 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
5906 UNSPEC rather than an IF_THEN_ELSE.
5907 * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
5908 mips_cond_move_tf_ps by name.
5909
06a4ab70
CF
59102004-08-29 Chao-ying Fu <fu@mips.com>
5911 James E Wilson <wilson@specifixinc.com>
5906d013 5912
06a4ab70
CF
5913 * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
5914 8 byte size and alignment. Give CCV4 16 byte size and alignment.
5915 * config/mips/mips-ps-3d.md: New file.
5916 * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
5917 TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5918 (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
5919 (mips_output_move): Emit "mov.ps" for V2SFmode.
5920 (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
5921 MODE_VECTOR_FLOAT.
5922 (override_options): Check if TARGET_MIPS3D and there was an explicit
5923 !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
5924 Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
5925 TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports
5926 TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers,
5927 and allow CCV2 and CCV4 to occupy two and four CC registers.
5928 (print_fcc_operand): New function.
5929 (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify
5930 %Z to call print_fcc_operand.
5931 (mips_function_value): Handle MODE_VECTOR_FLOAT.
5932 (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
5933 (mips_vector_mode_supported_p): New function.
5934 (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
5935 (builtin_description): New struct.
5936 (mips_bdesc): New array of struct builtin_description.
5937 (mips_expand_builtin, mips_init_builtins,
5938 mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
5939 mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
5940 functions.
5941 * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
5942 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
5943 (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
5944 (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
5945 "-mips3d", and "-mno-mips3d".
5946 (ASM_SPEC): Map -mips3d to -mips3d in gas.
5947 (EXTRA_CONSTRAINT_Y): New macro.
5948 (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new
5949 multi-letter constraint 'Y'.
5950 (CONSTRAINT_LEN): New macro.
5951 (enum mips_builtins): New for MIPS builtin functions.
5952 (enum mips_function_type): New for the types of MIPS builtin functions.
5953 (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
5906d013 5954 * config/mips/mips.md: New constants for paired single and MIPS-3D
06a4ab70
CF
5955 instructions. Include the new mips-ps-3d.md file.
5956 (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
5957 movv2sf_hardfloat_64bit): New named patterns.
5958 (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
5959 nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
5960 sdxc1_v2sf_di): New unnamed patterns.
5961 * config/mips/predicates.md (const_0_operand, const_1_operand): Add
5962 const_vector support.
5963 (const_0_or_1_operand): New predicate.
5964 * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
5965
750628d8
DN
59662004-08-29 Diego Novillo <dnovillo@redhat.com>
5967
5968 * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
5969 (tree-ssa-propagate.o): New rule.
5970 (GTFILES): Add tree-ssa-propagate.c.
5971 * tree-flow.h (struct stmt_ann_d): Remove field
5972 in_ccp_worklist.
5973 * tree-ssa-propagate.c: New file.
5974 * tree-ssa-propagate.h: New file.
5975 * tree-ssa-ccp.c: Re-write to use the routines from
5976 tree-ssa-propagate.c.
5977
f108270b
AP
59782004-08-28 Andrew Pinski <apinski@apple.com>
5979
5980 * tree-ssa-loop.c: Remove extra include of basic-block.h.
5981
e5a002e3
ZL
59822004-08-28 Ziemowit Laski <zlaski@apple.com>
5983
5984 * c-common.h: Update comments about ObjC/ObjC++ entry points.
5985 (objc_is_reserved_word): New prototype.
5986 (get_current_scope, objc_mark_locals_volatile): Move prototypes to
5987 separate section; these are call-backs.
5988 * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
5989 ObjC/ObjC++ "@" keywords.
5990 * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
5991 prototypes; they already live in c-common.h.
5992 * stub-objc.c: Update copyright notice.
5993 (objc_is_reserved_word): New stub.
5994
2c46a62f
NS
59952004-08-28 Nathan Sidwell <nathan@codesourcery.com>
5996
5997 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR
5998 even when not checking.
5999
40aac948
JM
60002004-08-27 Jason Merrill <jason@redhat.com>
6001
6002 PR c++/13684
6003 * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
6004 (gimple_push_cleanup): Add eh_only parm.
6005 (gimplify_target_expr): Pass it.
6006 * c.opt (-fno-threadsafe-statics): New option.
6007 * c-opts.c (c_common_handle_option): Handle it.
6008 * c-common.h (flag_threadsafe_statics): Declare it.
6009 * c-common.c (flag_threadsafe_statics): Record it.
6010 * doc/invoke.texi: Document it.
6011 * tsystem.h (_GNU_SOURCE): Define.
6012 * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
6013 (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
6014 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
6015 (__gthread_recursive_mutex_init_function): New fn.
6016 (__gthread_recursive_mutex_lock): New fn.
6017 (__gthread_recursive_mutex_trylock): New fn.
6018 (__gthread_recursive_mutex_unlock): New fn.
6019 * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
6020 * gthr-win32.h, gthr-vxworks.h: Likewise.
6021 * gthr.h: Document.
6022
1494c534
DE
60232004-08-27 David Edelsohn <edelsohn@gnu.org>
6024
6025 * config/rs6000/rs6000.c (rs6000_override_options): Increase
6026 maximum skip to 15. Set function alignment, jump alignment, and
6027 loop alignment to 16 for processors that form dispatch groups.
03e9c50a 6028 (rs6000_rtx_costs): outer_code is used.
1494c534 6029
ce552f75
NS
60302004-08-27 Nathan Sidwell <nathan@codesourcery.com>
6031
e3861d2a
NS
6032 * stor-layout.c (sizetype_set): Remove.
6033 (set_sizetype): Don't test or set it.
6034
ce552f75
NS
6035 * tree.h (size_int_type): Remove.
6036 * fold-const.c: Do not #include gt-fold-const.h.
6037 (size_htab_hash, size_htab_eq): Remove.
6038 (size_int_kind): Use build_int_cst.
6039 (new_const, size_htab): Remove.
6040 (size_int_type): Remove.
6041 (round_up): Use build_int_cst.
6042 (round_down): Likewise. Remove spurious constant build.
6043
06c37c96
NS
60442004-08-27 Nathan Sidwell <nathan@codesourcery.com>
6045
6046 * configure.ac: Add ENABLE_ASSERT_CHECKING control.
6047 Add is_release variable, use it for --enable-werror and
6048 --enable-checking defaults.
6049 * system.h (gcc_assert, gcc_unreachable): New.
6050 * doc/install.texi (--enable-checking): Update.
6051 * configure, config.in: Rebuilt.
6052
57406c63
RS
60532004-08-26 Richard Sandiford <rsandifo@redhat.com>
6054
6055 * rtl.h (read_rtx): Change prototype.
6056 * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
6057 line number. Return true on success.
6058 * gensupport.c (process_include, init_md_reader_args_cb): Adjust
6059 callers accordingly.
6060
ee8a6a3e
RH
60612004-08-26 Richard Henderson <rth@redhat.com>
6062
6063 * c-typeck.c (build_offsetof): Remove.
6064 * c-tree.h (build_offsetof): Remove.
6065 * c-common.c (fold_offsetof_1, fold_offsetof): New.
6066 * c-common.h (fold_offsetof): Declare.
6067 * c-parse.in (offsetof_base): New.
6068 (offsetof_member_designator): Use it. Build references, not just
6069 a tree list.
6070 (primary): Use fold_offsetof, not build_offsetof.
6071
525c6bf5
RH
60722004-08-26 Richard Henderson <rth@redhat.com>
6073
6074 * tree.c (staticp): Return the static object.
6075 * tree.h (staticp): Update decl.
6076 * langhooks.h (struct lang_hooks): Change staticp return type to tree.
6077 * langhooks.c (lhd_staticp): Return NULL_TREE.
6078 * langhooks-def.h (lhd_staticp): Update decl.
6079 * c-common.c (c_staticp): Return the static object.
6080 * c-common.h (c_staticp): Update decl.
6081
d416c0b3
RH
60822004-08-26 Richard Henderson <rth@redhat.com>
6083
6084 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
6085 modes.
6086
0b410f0b
JM
60872004-08-26 Joseph S. Myers <jsm@polyomino.org.uk>
6088
6089 PR c/13801
6090 * c-decl.c (struct c_binding): Add type and inner_comp fields.
6091 (bind): Set type and inner_comp fields.
6092 (pop_scope): Restore type of decl to the correct type from an
6093 outer scope. Give error when popping file scope for incomplete
6094 arrays completed incompatibly with default initialization in an
6095 inner scope.
6096 (diagnose_mismatched_decls): Handle externs with initializers at
6097 block scope.
6098 (pushdecl): Set type of external declaration at block scope based
6099 only on the visible declarations. Save type when changing the
6100 type of a declaration. Merge an external declaration at block
6101 scope with a visible static declaration at file scope.
6102 (implicitly_declare): Give recycled old declaration the new type
6103 except for incompatible declarations of built-in functions, saving
6104 the old type.
6105
b77c7437
ZL
61062004-08-26 Ziemowit Laski <zlaski@apple.com>
6107
6108 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
6109
a228baff
DB
61102004-08-26 Daniel Berlin <dberlin@dberlin.org>
6111
6112 * tree-alias-common.c (gate_pta): New function.
6113 (pass_build_pta): Use it.
6114 (pass_del_pta): Use it.
6115 (delete_alias_vars): Don't check flag_tree_points_to.
6116
2e6c9641
FJ
61172004-08-26 Fariborz Jahanian <fjahanian@apple.com>
6118
5906d013 6119 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
2e6c9641
FJ
6120 TFmode as additional register mode cloberred by call.
6121
61222004-08-26 Fariborz Jahanian <fjahanian@apple.com>
6123
6124 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
6125 parallel pattern for library call returning DImode in
6126 mixed mode.
6127
61282004-08-26 Fariborz Jahanian <fjahanian@apple.com>
6129
6130 * config/rs6000/rs6000.c (function_arg): Generate parallel
6131 pattern for more split args.
6132
61332004-08-26 Fariborz Jahanian <fjahanian@apple.com>
6134
6135 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
6136 either gen_movdi_di_update or gen_movdi_si_update depending on
6137 target mode.
6138 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
6139 to generate two versions.
5906d013 6140
36d59cf7
DB
61412004-08-26 Daniel Berlin <dberlin@dberlin.org>
6142
6143 * Makefile.in (lambda-code.o): New.
6144 (lambda-trans.o): Ditto.
6145 (TREE_DATA_REF_H): Ditto.
6146 (LAMBDA_H): Ditto.
6147 (lambda-mat.o): Use LAMBDA_H.
6148 (tree-data-ref.o): Ditto.
6149 * lambda-code.c: New file. Lambda code generation algorithm.
6150 * lambda-trans.c: Ditto. Lambda transformation matrix support.
6151 * lambda.h: Add lambda loop structures.
6152 Add lambda loopnest structures.
6153 Add lambda body vector structure.
6154 Add lambda linear expression structures.
6155 Add prototypes for functions in new files.
6156 * lambda-mat.c: Include tree.h
6157
61582004-08-26 Daniel Berlin <dberlin@dberlin.org>
5906d013
EC
6159 Sebastian Pop <pop@cri.ensmp.fr>
6160
6161 * tree-data-ref.h: Include lambda.h
36d59cf7 6162 (free_dependence_relation): Declared here.
5906d013 6163 (free_dependence_relations): Ditto.
36d59cf7
DB
6164 (free_data_refs): Ditto.
6165 * tree-data-ref.c (free_dependence_relation): New function.
6166 (free_dependence_relations): Ditto.
6167 (free_data_refs): Ditot.
6168 (analyze_all_data_dependences): Free datarefs and dependence_relations.
6169 (build_classic_dist_vector): Store in the dependence_relations the
6170 information. Each arc in the dependence_relations graph is labelled
6171 with the distance and direction vectors.
6172 (build_classic_dir_vector): Ditto.
6173 (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
6174 Now computes again the whole dependence graph including read-read
6175 relations.
6176 (compute_data_dependences_for_loop): Now dependence_relations contains
6177 all the data, and thus it doesn't need to initialize the classic_dir
6178 and classic_dist vectors.
6179 (analyze_all_data_dependences): Adjusted for using the new interface of
6180 compute_data_dependences_for_loop. Remove the statistics dump.
5906d013 6181
a46bbb5a
BW
61822004-08-26 Bob Wilson <bob.wilson@acm.org>
6183
6184 * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
6185 (xtensa_expand_block_move): Update comment.
6186 (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
6187
52351a5e
RE
61882004-08026 Richard Earnshaw <rearnsha@arm.com>
6189
6190 PR target/13506
6191 * toplev.c (crash_signal): If we crashed while emitting
6192 a user asm, then die more gracefully.
6193
b72e46f0
NC
61942004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6195
6196 PR target/17119.
6197 * config/m32r.c (gen_compare): Use reg_or_int16_operand when
6198 checking for a valid constant, regardless of sign.
6199
fd9363bf
RH
62002004-08-25 Richard Henderson <rth@redhat.com>
6201
d416c0b3
RH
6202 PR target/16974
6203 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
6204 if the constant satisfies add_operand.
fd9363bf 6205
45f413e4 62062004-08-25 Richard Henderson <rth@redhat.com>
5906d013 6207
d416c0b3
RH
6208 PR debug/10695
6209 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
6210 (alpha_expand_prologue): Handle >32-bit frames. Generate proper
6211 unwind info for >16-bit frames.
45f413e4 6212
7e233208
RK
62132004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
6214
6215 PR target/17171
6216 * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
6217
04886dc0
RH
62182004-08-25 Richard Henderson <rth@redhat.com>
6219
d416c0b3
RH
6220 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
6221 (TARGET_CANNOT_FORCE_CONST_MEM): New.
04886dc0 6222
aca2bd7c
AM
62232004-08-25 Andrew MacLeod <amacleod@redhat.com>
6224
6225 * doc/tree-ssa.texi: Document new operand iterator.
6226
0423421f
AM
62272004-08-26 Alan Modra <amodra@bigpond.net.au>
6228
6229 PR target/16480
6230 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
6231 on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well
6232 as PLUS base regs.
6233
e4dc702c
PB
62342005-08-28 Paul Brook <paul@codesourcery.com>
6235
6236 * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
6237 -mfpu=vfp -march=armv5t
37d5a9a5 6238 * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
e4dc702c 6239
6dd53648
RH
62402004-08-25 Richard Henderson <rth@redhat.com>
6241
6242 * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
6243 * target.h (struct gcc_target): Add scalar_mode_supported_p.
6244 * targhooks.c (default_scalar_mode_supported_p): New.
6245 * targhooks.h (default_scalar_mode_supported_p): Declare.
6246 * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
6247
6248 * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
6249 before attempting to create types. Tidy.
6250 * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
6251
6252 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
6253 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
6254
bab2b22b
RH
62552004-08-25 Richard Henderson <rth@redhat.com>
6256
6257 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
6258 set REAL_MODE_FORMAT for TFmode.
6259
c34be55e
ZL
62602004-08-25 Ziemowit Laski <zlaski@apple.com>
6261
6262 * c-decl.c (grokparm): New function.
6263 * c-tree.h (grokparm): New prototype.
6264
4c124b4c
AM
62652004-08-25 Andrew MacLeod <amacleod@redhat.com>
6266
6267 * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand
6268 iterator controlling structure.
6269 (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
6270 SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
6271 SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand
6272 iterator flags.
6273 (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees.
6274 (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses.
6275 (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs.
6276 (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs.
5906d013 6277 * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
4c124b4c
AM
6278 Empty operand pointers.
6279 * tree-flow-inline.h (op_iter_done): New. Return true if finished.
6280 (op_iter_next_use): New. Return next use_operand_p.
6281 (op_iter_next_def): New. Return next def_operand_p.
6282 (op_iter_next_tree): New. Return next operands as a tree.
6283 (op_iter_init): New. Initialize an iterator structure.
6284 (op_iter_init_use): New. Initialize structure and get the first use.
6285 (op_iter_init_def): New. Initialize structure and get the first def.
6286 (op_iter_init_tree): New. Initialize structure and get the first tree.
6287 (op_iter_next_maydef): New. Return next V_MAY_DEF operands.
5906d013 6288 (op_iter_init_maydef): New. Initialize structure and get the first
4c124b4c
AM
6289 V_MAY_DEF operands.
6290 * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
5906d013 6291 * tree-dfa.c (compute_immediate_uses_for_stmt,
4c124b4c
AM
6292 redirect_immediate_uses): Use new operand iterator.
6293 (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
6294 (mark_new_vars_to_rename): Use new operand iterator. Count virtual
6295 operands instead of using *_disappeared_p routines.
6296 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
6297 ssa_rewrite_stmt): Use new operand iterator.
6298 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
6299 rewrite_trees): Use new operand iterator.
6300 * tree-pretty-print.c (dump_vops): Use new operand iterator.
6301 * tree-sra.c (mark_all_v_defs): Use new operand iterator.
5906d013 6302 * tree-ssa-alias.c (compute_points_to_and_addr_escape,
4c124b4c 6303 dump_points_to_info): Use new operand iterator.
5906d013
EC
6304 * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
6305 replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
4c124b4c 6306 operand iterator.
5906d013 6307 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
4c124b4c
AM
6308 propagate_necessity): Use new operand iterator.
6309 * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
6310 (register_definitions_for_stmt): Use new operand iterator. Take stmt as
6311 a parameter instead of a stmt_ann_t.
6312 * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
6313 build_tree_conflict_graph): Use new operand iterator.
6314 * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
6315 rewrite_mem_refs): Use new operand iterator.
5906d013 6316 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
4c124b4c
AM
6317 check_loop_closed_ssa_use): Use new operand iterator.
6318 * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
6319 * tree-ssanames.c (release_defs): Use new operand iterator.
6320 * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
6321
4185f1ce
AN
63222004-08-25 Adam Nemet <anemet@lnxw.com>
6323
6324 * tlink.c (initial_cwd): New variable.
6325 (tlink_init): Initialize it.
6326 (recompile_files): Use tlink_execute() instead of system(). Don't
6327 duplicate verbose output of collect_execute. Restore initial_cwd.
6328 Update comment before the function.
6329
700686fa
ZL
63302004-08-25 Ziemowit Laski <zlaski@apple.com>
6331
6332 * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
6333 accept) a cast from one Objective-C pointer type to another.
6334
7fb654ef
PC
63352004-08-25 Paolo Carlini <pcarlini@suse.de>
6336
6337 * doc/install.texi: Document that libstdc++-v3 requires
6338 now automake 1.9.1.
6339
8e8d5162
CT
63402004-08-25 Caroline Tice <ctice@apple.com>
6341
6342 * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details
6343 to comments at start of function.
6344 * cfgbuild.c (make_edges): Add more details to hot/cold partitioning
6345 comment.
5906d013
EC
6346 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
6347 merge_blocks_move_predecessor_nojumps,
6348 merge_blocks_move_successor_nojumps, merge_blocks_move,
8e8d5162
CT
6349 try_crossjump_to_edge, try_crossjump_bb): Likewise.
6350 * cfglayout.c (fixup_reorder_chain): Likewise.
6351 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
6352 cfg_layout_can_merge_blocks_p): Likewise.
6353 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
5906d013 6354 * passes.c (rest_of_compilation): Update comments for calling
8e8d5162 6355 optimization that partitions hot/cold basic blocks.
5906d013 6356 * doc/invoke.texi: Update documentation of
8e8d5162 6357 freorder-blocks-and-partition flag.
5906d013 6358
41a21e1d
RS
63592004-08-25 Richard Sandiford <rsandifo@redhat.com>
6360
6361 * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
6362 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
6363
e5f14571
RS
63642004-08-25 Richard Sandiford <rsandifo@redhat.com>
6365
6366 * config/mips/mips.md (any_shift): New code macro.
6367 (optab, insn): New code attributes.
6368 ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
6369 Use the standard rather than internal patterns for the MIPS16
6370 double-shift optimization.
6371 (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
6372 Redefine using :GPR and any_shift.
6373 (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
6374 to cover all three shifts.
6375 (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
6376 Redefine using any_shift. Use :GPR and any_shift to combine splitters.
6377 (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
6378
bbbb79d4
GK
63792004-08-24 Geoffrey Keating <geoffk@apple.com>
6380
6381 * gimplify.c (lookup_tmp_var): Separate temporaries when not
6382 optimizing.
6383
d711cf67
JDA
63842004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6385
6386 PR libstdc++/17005 (fix for HP-UX 11.11)
6387 * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
6388 (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
5906d013 6389 tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
d711cf67
JDA
6390 * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
6391 * config/pa/pa-hpux.h (TARGET_HPUX): Define.
6392 (LINK_SPEC): Handle march=1.0 option.
6393 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
6394 and _XOPEN_SOURCE_EXTENDED for UNIX 95.
6395 (SUBTARGET_OPTIONS): New define.
6396 (LINK_SPEC): Handle march=1.0 option.
6397 (STARTFILE_SPEC): New define.
6398 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
6399 and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
6400 _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
6401 (SUBTARGET_OPTIONS): New define.
6402 (LINK_SPEC): Handle march=1.0 option.
6403 (STARTFILE_SPEC): New define.
6404 * config/pa/pa.c (override_options): Add code to process -munix= option.
6405 * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
6406 (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
6407 defines.
6408 (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
6409 (SUBTARGET_OPTIONS): Provide default define.
6410 * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
6411 STANDARD_STARTFILE_PREFIX_2): New defines.
6412 (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
6413 (ENDFILE_SPEC): Use %O.
6414 * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
6415 Mention issue caused by changing namespace and runtime to UNIX 95/98.
6416 * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
6417 Document -munix=std option.
6418
5affca01
SB
64192004-08-25 Steven Bosscher <stevenb@suse.de>
6420
6421 * cse.c (cse_around_loop, cse_check_loop_start,
6422 cse_set_around_loop): Remove.
6423 (cse_basic_block): Remove the around_loop argument.
6424 (cse_end_of_basic_block): Remove the after_loop argument.
6425 (cse_main): Likewise.
6426 * rtl.h (cse_main): Update prototype.
6427 * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
6428 rest_of_handle_gcse): Update cse_main calls.
6429
7d60be94
NS
64302004-08-25 Nathan Sidwell <nathan@codesourcery.com>
6431
6432 * tree.h (build_int_cst): New, sign extended constant.
6433 (build_int_cstu): New, zero extended constant.
6434 (build_int_cst_wide): Renamed from build_int_cst.
6435 * tree.c (build_int_cst, build_int_cstu): New.
6436 (build_int_cst_wide): Renamed from build_int_cst.
6437 (make_vector_type, build_common_tree_nodes,
6438 build_common_tree_nodes_2): Adjust build_int_cst calls.
6439 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
6440 expand_builtin_strpbrk, expand_builtin_fputs,
6441 build_string_literal, expand_builtin_printf,
6442 expand_builtin_sprintf, fold_builtin_classify_type,
6443 fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
6444 fold_builtin_toascii, fold_builtin_isdigit,
6445 simplify_builtin_strstr, simplify_builtin_strpbrk,
6446 fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
6447 * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
6448 DEF_ATTR_INT): Likewise.
6449 * c-decl.c (complete_array_type, check_bitfield_type_and_width):
6450 Likewise.
6451 * c-lex.c (interpret_integer, lex_charconst): Likewise.
6452 * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
6453 * c-pretty-print.c (pp_c_integer_constant): Likewise.
6454 * c-typeck.c (really_start_incremental_init, push_init_level,
6455 set_nonincremental_init_from_string): Likewise.
6456 * calls.c (load_register_parameters): Likewise.
6457 convert.c (convert_to_pointer): Likewise.
6458 coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
6459 build_fn_info_type, build_fn_info_value, build_ctr_info_value,
6460 build_gcov_info): Likewise.
6461 * except.c (init_eh, assign_filter_values): Likewise.
6462 * expmed.c (store_fixed_bit_field, extract_bit_field,
6463 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
6464 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
6465 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
6466 * expr.c (convert_move, emit_group_load, emit_group_store,
6467 expand_assignment, store_constructor, store_field,
6468 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
6469 fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
6470 invert_truthvalue, optimize_bit_field_compare,
6471 decode_field_reference, all_ones_mask_p, constant_boolean_node,
6472 fold_div_compare, fold, fold_read_from_constant_string,
6473 fold_negate_const, fold_abs_const, fold_not_const, round_up,
6474 round_down): Likewise.
6475 * function.c (assign_parm_setup_block): Likewise.
6476 * stmt.c (shift_return_value, expand_case, estimate_case_costs):
6477 Likewise.
6478 * stor-layout.c (layout_type, initialize_sizetypes,
6479 set_min_and_max_values_for_integral_type): Likewise.
6480 * tree-chrec.c (chrec_fold_multiply_poly_poly,
6481 reset_evolution_in_loop): Likewise.
6482 * tree-chrec.h (build_polynomial_chrec): Likewise.
6483 * tree-complex.c (build_replicated_const): Likewise.
6484 * tree-eh.c (honor_protect_cleanup_actions,
6485 lower_try_finally_onedest, lower_try_finally_copy,
6486 lower_try_finally_switch): Likewise.
6487 * tree-mudflap.c (mf_build_string, mx_register_decls,
6488 mudflap_register_call, mudflap_enqueue_constant): Likewise.
6489 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
6490 * tree-pretty-print.c (dump_generic_node): Likewise.
6491 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
6492 Likewise.
6493 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
6494 * tree-ssa-loop-niter.c (number_of_iterations_cond,
6495 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
6496 Likewise.
6497 * tree-ssa-loop-ivcanon.c (create_canonical_iv,
6498 canonicalize_loop_induction_variables): Likewise.
6499 * tree-vectorizer.c (vect_create_index_for_array_ref,
6500 vect_transform_loop_bound, vect_compute_data_ref_alignment):
6501 Likewise.
6502
6503 * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
6504 alpha_gimplify_va_arg_1): Likewise.
6505 * config/arm/arm.c (arm_get_cookie_size): Likewise.
6506 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
6507 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
6508 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
6509 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
6510 mips_gimplify_va_arg_expr): Likewise.
6511 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
6512 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
6513 add_compiler_branch_island): Likewise.
6514 * config/s390/s390.c (s390_va_start): Likewise.
6515 * config/sh/sh.c (sh_va_start): Likewise.
6516 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
6517 Likewise.
6518 * config/xtensa/xtensa.c (xtensa_va_start,
6519 xtensa_gimplify_va_arg_expr): Likewise.
5906d013 6520
7d60be94
NS
6521 * objc/objc-act.c (build_objc_string_object,
6522 build_objc_symtab_template, init_def_list, init_objc_symtab,
6523 init_module_descriptor, generate_static_references,
6524 build_selector_translation_table, get_proto_encoding,
6525 build_typed_selector_reference, build_selector_reference,
6526 build_next_objc_exception_stuff,
6527 build_method_prototype_list_template, generate_descriptor_table,
6528 generate_protocols, build_protocol_initializer,
6529 build_ivar_list_template, build_method_list_template,
6530 build_ivar_list_initializer, generate_ivars_list,
6531 generate_dispatch_table, generate_protocol_list,
6532 build_category_initializer, build_shared_structure_initializer,
6533 generate_shared_structures, handle_impent,
6534 generate_objc_image_info): Likewise.
6535
8b63d0e5
PB
65362004-04-25 Paolo Bonzini <bonzini@gnu.org>
6537
6538 * cfglayout.c (duplicate_insn_chain): Remove references to
6539 NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
6540 * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
6541 * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
6542 * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
6543 and NOTE_INSN_LOOP_CONT.
6544 * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
6545 * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
6546 and NOTE_INSN_LOOP_CONT.
6547 * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
6548 check_dbra_loop, loop_dump_aux): Remove references to removed notes
6549 and fields.
6550 * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
6551 * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
6552 references to removed notes and fields.
6553 (subtract_reg_term, ujump_to_loop_cont): Remove.
6554
078e3ffe
PB
65552004-08-25 Paolo Bonzini <bonzini@gnu.org>
6556
8b63d0e5 6557 * doc/install.texi: Document that libcpp does not require
078e3ffe
PB
6558 Automake any longer. Document that Automake 1.9.1 should
6559 work everywhere.
6560
f8ca7e49
ZW
65612004-08-25 Zack Weinberg <zack@codesourcery.com>
6562
6563 * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
6564 * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
6565 DWARF_DEBUGGING_INFO from choice-of-definition chain;
6566 restructure using C89 features (#elif, #error).
6567 * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
6568 * config/sh/sh.h: Remove references to DWARF_DEBUG.
6569 * doc/invoke.texi: Remove references to DWARF version 1;
6570 clarify why -gdwarf-2<n> doesn't work.
6571
51a904c9
ZW
65722004-08-25 Zack Weinberg <zack@codesourcery.com>
6573
6574 * basic-block.h (BB_SET_PARTITION): Clear old value first.
6575 * cfg.c (clear_bb_flags): Don't clear partition setting.
69b9b0d2 6576 * ifcvt.c (find_if_case_1): Remove ??? comment.
51a904c9 6577
e548ead9
AM
65782004-08-25 Alan Modra <amodra@bigpond.net.au>
6579
6580 PR target/17052
6581 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
6582 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
6583 current_function_stdarg in place of sysv_varargs_p.
6584 * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
6585 sysv_varargs_p.
6586
1e19ac74
RH
65872004-08-24 Richard Henderson <rth@redhat.com>
6588
6589 PR target/16298
6590 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
6591 random codes within CONST.
6592
c61225e7
JW
65932004-08-24 James E Wilson <wilson@specifixinc.com>
6594
6595 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
6596 -freorder-blocks-and-partition.
6597
37840132
JDA
65982004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6599
6600 PR middle-end/17044
6601 * tree-ssa-threadupdate.c (redirection_data): Make static.
6602 (thread_block): Use ggc_alloc_cleared to allocate struct
6603 redirection_data. Don't free elements in redirection_data.
6604
cf1d880b
RS
66052004-08-24 Richard Sandiford <rsandifo@redhat.com>
6606
6607 * config/mips/predicates.md (small_data_pattern): Match prefetches.
6608
b3393f1f
ZD
66092004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6610
6611 PR tree-optimization/17016
6612 * tree-ssa-loop-niter.c (number_of_iterations_cond,
6613 number_of_iterations_exit): Use POINTER_TYPE_P instead
6614 of testing for POINTER_TYPE.
6615
82b85a85
ZD
66162004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6617
6618 * tree-ssa-loop-ivcanon.c: New file.
6619 * tree-ssa-loop-manip.c (create_iv): New function.
6620 * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
6621 (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
6622 * cfgloop.c (mark_single_exit_loops): New function.
6623 (verify_loop_structure): Verify single-exit loops.
6624 * cfgloop.h (struct loop): Add single_exit field.
6625 (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
6626 (mark_single_exit_loops): Declare.
6627 (tree_num_loop_insns): Declare.
6628 * cfgloopmanip.c (update_single_exits_after_duplication): New function.
6629 (duplicate_loop_to_header_edge): Use it.
6630 * common.opt (fivcanon): New flag.
6631 * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
6632 * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
6633 (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
6634 (bsi_insert_on_edge_immediate): New function.
6635 * tree-flow.h (bsi_insert_on_edge_immediate,
6636 canonicalize_induction_variables, tree_unroll_loops_completely,
6637 create_iv): Declare.
6638 * tree-optimize.c (init_tree_optimization_passes): Add
6639 pass_iv_canon and pass_complete_unroll.
6640 * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
6641 * tree-scalar-evolution.c (get_loop_exit_condition,
6642 get_exit_conditions_rec, number_of_iterations_in_loop,
6643 scev_initialize): Use single_exit information.
6644 * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
6645 missing assumptions.
6646 (loop_niter_by_eval): Return number of iterations as unsigned
6647 int.
6648 * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
6649 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
6650 tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
6651 New passes.
6652 (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
6653 * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
6654 the defining statement is ready.
6655 * tree-vectorizer.c (vect_create_iv_simple): Removed.
6656 (vect_create_index_for_array_ref, vect_transform_loop_bound):
6657 Use create_iv.
6658 (vect_transform_loop_bound): Use single_exit information.
6659 (vect_analyze_loop_form): Cleanup bogus tests.
6660 (vectorize_loops): Do not call flow_loop_scan.
6661 * tree.h (may_negate_without_overflow_p): Declare.
6662 * fold-const.c (may_negate_without_overflow_p): Split out from ...
6663 (negate_expr_p): ... this function.
6664 (tree_expr_nonzero_p): Handle overflowed constants correctly.
6665 * doc/invoke.texi (-fivcanon): Document.
6666 * doc/passes.texi: Document canonical induction variable creation.
6667
b3c90666
RS
66682004-08-24 Richard Sandiford <rsandifo@redhat.com>
6669
6670 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
6671 * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
6672 using the mode of the operand to decide between them.
6673 * config/mips/mips.md (MOVECC): New mode macro.
6674 (ccreg): New mode attribute.
6675 (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
6676 Redefine using :GPR and :MOVECC. Use %T and %t for the condition.
6677 (mov[sd]icc): Redefine using :GPR.
6678
4767c570
RS
66792004-08-24 Richard Sandiford <rsandifo@redhat.com>
6680
04550232
RS
6681 * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
6682 (mips_prefetch_cookie): New function.
6683 * config/mips/mips.c (print_operand_address): Fix handling of
6684 ADDRESS_CONST_INT.
6685 (mips_emit_prefetch): Delete.
6686 (mips_prefetch_cookie): New function.
6687 * config/mips/mips.md (prefetch): Turn into a define_insn. Use a
6688 mode of QImode for the address_operand. Use mips_prefetch_cookie
6689 to calculate the first "pref" operand.
6690 (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
6691 (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie.
4767c570 6692
a657c98a
RE
66932004-08-24 Richard Earnshaw <rearnsha@arm.com>
6694
6695 * arm.md: Include predicates.md.
6696 * predicates.md: New file.
6697 * arm.c (s_register_operand, arm_hard_register_operand)
6698 (arm_general_register_operand, f_register_operand, reg_or_int_operand)
6699 (arm_immediate_operand, arm_neg_immediate_operand)
6700 (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
6701 (arm_add_operand, arm_addimm_operand, arm_not_operand)
6702 (offsettable_memory_operand, alignable_memory_operand)
6703 (arm_reload_memory_operand, arm_float_rhs_operand)
6704 (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
6705 (index_operand, shiftable_operator, logical_binary_operator)
6706 (shift_operator, equality_operator, arm_comparison_operator)
6707 (minmax_operator, cc_register, dominant_cc_register)
6708 (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
6709 (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
6710 (const_shift_operand, load_multiple_operation)
6711 (store_multiple_operation, multi_register_push, thumb_cmp_operand)
6712 (thumb_cmpneg_operand, thumb_cbrch_target_operand)
6713 (cirrus_register_operand, cirrus_fp_register)
6714 (cirrus_shift_const): Delete, replaced with equivalents in
6715 predicates.md.
6716 (shift_op): Handle ROTATE.
6717 * arm-protos.h: Delete declarations for above.
6718 * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
6719 * t-arm (MD_INCLUDES): Add predicates.md.
6720 (s-preds): Depends on MD_INCLUDES.
6721
886ce862
RS
67222004-08-24 Richard Sandiford <rsandifo@redhat.com>
6723
6724 * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
6725 * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
6726 patterns. Redefine using :GPR. Give the match_operator a mode.
6727 Use '%2' rather than '%z2' for operand 2.
6728
be659abd
RS
67292004-08-24 Richard Sandiford <rsandifo@redhat.com>
6730
6731 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
6732 attribute.
6733
92dcb882
RS
67342004-08-24 Richard Sandiford <rsandifo@redhat.com>
6735
6736 * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names
6737 of internal patterns.
6738 (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
6739 Redefine using :P.
6740 (tablejump): Use expand_binop to calculate address. Adjust names
6741 of internal patterns.
6742 (tablejump[sd]i): Renamed from tablejump_internal[12].
6743 Redefine using :P.
6744 (tablejump_mips16[12]): Delete.
6745
a0160289
RS
67462004-08-24 Richard Sandiford <rsandifo@redhat.com>
6747
6748 * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
6749 (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
6750 (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
6751 (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
6752 (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
6753
2c4402f4
RS
67542004-08-24 Richard Sandiford <rsandifo@redhat.com>
6755
6756 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
6757 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
6758 using :GPR.
6759 (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
6760 (*branch_equality[sd]i): Likewise branch_equality{,_di}.
6761 (*branch_equality[sd]i_inverted): Likewise
6762 branch_equality{,_di}_inverted.
6763 (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
6764 Redefine using :GPR.
6765
b5c2f1d1
ZW
67662004-08-24 Zack Weinberg <zack@codesourcery.com>
6767
6768 * rtl.def: Reorganize, placing all codes used only in machine
6769 descriptions at the end.
6770
9e995780
ZW
6771 * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
6772 * gengtype.c: Don't include rtl.h. Define enum rtx_code and
6773 rtx_name, rtx_format arrays by direct reference to rtl.def,
6774 first undefining GENERATOR_FILE. Define enum insn_note and
6775 note_insn_name array by direct reference to insn-notes.def.
6776 (adjust_field_rtx_def): Remove local definition of rtx_name.
6777 Use symbolic names for insn notes.
6778 * Makefile.in (gengtype.o): Update dependencies.
6779
076c7ab8
ZW
67802004-08-24 Zack Weinberg <zack@codesourcery.com>
6781
6782 * basic-block.h (struct basic_block_def): Reorder fields to
6783 eliminate interior padding. Remove 'partition' field.
6784 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
6785 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
6786 (BB_COPY_PARTITION): New macros.
6787 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
6788 Replace all references to the 'partition' field of a basic
6789 block with new macros.
6790
6791 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
6792 * final.c (final_scan_insn): Don't handle it.
6793 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
6794 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
6795 * sched-rgn.c (sched_is_disabled_for_current_region_p):
6796 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
6797
8c1d6d62
NS
67982004-08-24 Nathan Sidwell <nathan@codesourcery.com>
6799
6800 * c-decl.c (c_init_decl_processing): Adjust
6801 build_common_tree_nodes call.
6802 * expmed.c (const_mult_add_overflow_p): Use
6803 build_distinct_type_copy.
6804 * stor-layout.c (early_type_list): Remove.
6805 (layout_type): Don't append to early_type_list.
6806 (initialize_sizetypes): Add signed_p argument.
6807 (set_sizetype): Overwrite the stub type nodes directly.
6808 * tree.c (copy_node_stat): Clear a type's value cache here ...
6809 (build_distinct_type): ... not here.
6810 (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
6811 * tree.h (initialize_sizetypes): Add signed_p argument.
6812 (build_common_tree_nodes): Likewise.
6813
6814 * objc/objc-act.c (get_static_reference): Use
6815 build_variant_type_copy.
6816 (get_protocol_reference): Likewise.
6817 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
6818
97dc04b3 68192004-08-24 Richard Henderson <rth@redhat.com>
076c7ab8 6820 Andrew Pinski <apinski@apple.com>
97dc04b3
RH
6821
6822 * gimplify.c (gimplify_array_ref_to_plus): Delete.
6823 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
6824 for ARRAY_REF.
6825
6826 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
6827 ARRAY_REF also to get to the STRING_CST.
6828
72cdc543
PB
68292004-08-24 Paul Brook <paul@codesourcery.com>
6830
6831 * config/arm/arm.c (arm_override_options): Update error message.
6832 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
6833 TARGET_HARD_FLOAT_ABI.
6834 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
6835 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
6836
bd5ca07e
NC
68372004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6838
6839 PR target/17093
6840 * config/m32r.md (movsi_sda): Add SI mode specification to
6841 UNSPEC.
6842
68432004-08-24 Nick Clifton <nickc@redhat.com>
6844
6845 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
6846 of seth_add3_operand.
6847
d46cd2be
NS
68482004-08-24 Nathan Sidwell <nathan@codesourcery.com>
6849
6850 * Makefile.in (PROTO_OBJS): Add errors.o.
6851 * protoize.c (fancy_abort): Remove.
6852 * mips-tfile.c (fancy_abort): Add parameters.
6853
748fa294
JW
68542004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
6855
6856 * doc/trouble.texi (C++ misunderstandings): Fix example code.
6857
4505f099
AT
68582004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
6859
6860 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
6861 (host-default.o): Add dependency on HOOKS_H.
6862 * config/x-linux: Likewise.
6863 * config/x-solaris: Likewise.
6864 * config/i386/x-mingw32: Likewise.
6865 * config/rs6000/x-darwin: Likewise.
6866
a2fe1975
JW
68672004-08-23 James E Wilson <wilson@specifixinc.com>
6868
6869 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
6870 DEF_REG_NOTE.
6871
c3f216e2
MM
68722004-08-23 Mark Mitchell <mark@codesourcery.com>
6873
6874 PR c/14492
6875 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
6876
2e6ae27f
DN
68772004-08-23 Diego Novillo <dnovillo@redhat.com>
6878
6879 * cfg.c (check_bb_profile): Fix typos.
6880 * function.c (assign_parm_is_stack_parm): Likewise.
6881 * tree-nested.c: Likewise.
6882
d685c974
DJ
68832004-08-23 Daniel Jacobowitz <dan@debian.org>
6884
6885 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
6886 Remove TYPECODE.
6887 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
6888
f676971a
EC
68892004-08-23 Eric Christopher <echristo@redhat.com>
6890
6891 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
6892 * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
6893 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
6894 * target.h: Ditto.
6895 * hooks.h: Include machmode.h.
6896 (hook_bool_mode_false): Declare.
6897 * hooks.c (hook_bool_mode_false): Define.
6898 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
6899 * stor-layout.c (layout_type): Ditto.
6900 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
6901 Define to target macro.
6902 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
6903 * config/arm/arm.c: Ditto. Use.
6904 * config/arm/arm.h: Ditto.
6905 * config/arm/arm-protos.h: Ditto.
6906 * config/i386/i386.c: Ditto.
6907 * config/i386/i386.h: Ditto.
6908 * config/rs6000/rs6000.c: Ditto.
6909 * config/rs6000/rs6000.h: Ditto.
6910 * config/sh/sh.c: Ditto.
6911 * config/sh/sh.h: Ditto.
6912 * config/sh/sh-protos.h: Ditto.
6913 * config/sh/sh.md: Use.
6914 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
6915 to TARGET_VECTOR_MODE_SUPPORTED_P.
6916
8dd16ecc
NS
69172004-08-23 Nathan Sidwell <nathan@codesourcery.com>
6918
b3d1f5b4
NS
6919 * Makefile.in (BUILD_ERRORS): Set to build-errors.
6920 (errors.o): New target for host.
6921 (build-errors.o): New target for build.
6922 (genobjs): Replace errors.o with build-errors.
6923 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
6924 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
6925 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
6926 (fix-header.o): Add errors.h
6927 * collect2.c (fancy_abort): Add parameters.
6928 * collect2.h (fancy_abort): Don't declare.
6929 * errors.h (fancy_abort): Don't declare.
6930 * errors.c: Include either bconfig.h or config.h.
6931 (fancy_abort): Trim filename.
6932 * fix-header.c (v_fatal, fatal): Remove.
6933 (progname): Remove definition.
6934 (main): Set progname here.
6935 * gcc.c (fancy_abort): Add parameters.
6936 * gcc.h (fancy_abort): Remove declaration.
6937 * gcov.c (fancy_abort): Remove.
6938 * rtl.h (fancy_abort): Don't declare.
6939 (abort): Don't define.
6940 * tree.h (fancy_abort): Don't declare.
6941 (abort): Don't define.
6942 * system.h (fancy_abort): Declare.
6943 (abort): Define to fancy_abort.
6944 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
6945
be88a628
NS
6946 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
6947 (usize_type, ubitsizetype): Remove.
6948 * stor-layout.c (set_sizetype): Don't initialize usizetype,
6949 ubitsizetype.
6950 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
6951
8dd16ecc
NS
6952 * tree.h (build_distinct_type_copy): New.
6953 (build_type_copy): ... here. Rename to ...
6954 (build_variant_type_copy): ... here.
6955 * tree.c (build_qualified_type): Rename build_type_copy call.
6956 (build_distinct_type_copy): New, broken out of ...
6957 (build_type_copy): ... here. Rename to ...
6958 (build_variant_type_copy): ... here. Use
6959 build_distinct_type_copy.
6960 (build_common_tree_nodes_2): Rename build_type_copy call.
6961 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
6962 call.
6963 (handle_packed_attribute, handle_unused_attribute,
6964 handle_transparanet_union_attribute, handle_aligned_attribute,
6965 handle_deprecated_attribute): Likewise.
6966 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
6967 Likewise.
6968 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
6969 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
6970 build_distinct_type_copy.
6971
e8bf0f3b
RS
69722004-08-23 Richard Sandiford <rsandifo@redhat.com>
6973
6974 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
6975 attribute.
6976
4d06ed0a
RS
69772004-08-23 Richard Sandiford <rsandifo@redhat.com>
6978
6979 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
6980 loads and stores.
6981 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
6982 formerly unnamed patterns. Redefine using :P for the address. Remove
6983 explicit length attributes.
6984
a3631d97
ZD
69852004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6986
6987 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
6988 New functions.
6989 (single_reachable_address): Use them.
6990 (schedule_sm): Add dump.
6991 (is_call_clobbered_ref): New function.
6992 (determine_lsm_reg): Check whether the reference is call clobbered.
6993 Only work for gimple_reg_type values.
6994
b1f58428
RS
69952004-08-23 Richard Sandiford <rsandifo@redhat.com>
6996
6997 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
6998 $31 store insns. Redefine using :GPR.
6999
237b301e
RS
70002004-08-23 Richard Sandiford <rsandifo@redhat.com>
7001
7002 * config/mips/mips.md (P): New mode macro.
7003 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
7004 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
7005 Add mode attributes.
7006
c9081a92
RS
70072004-08-23 Richard Sandiford <rsandifo@redhat.com>
7008
7009 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
7010 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
7011 later constants to cover the gap.
7012 (load, store): New mode attributes.
7013 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
7014 Use new unspec constants.
7015
3d1f285d
RS
70162004-08-23 Richard Sandiford <rsandifo@redhat.com>
7017
7018 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
7019 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
7020 to use register_operand rather than uns_arith_operand as the predicate
7021 for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
7022 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
7023 Redefine using :GPR. Make same predicate change here. Extend the
7024 commutativity of operands 1 and 2 from the SImode version to the
7025 DImode one.
7026 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
7027 but with no predicate changes.
7028 (*nor[sd]i3): Redefine using :GPR.
7029
c0e1b12f
ZD
70302004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7031
7032 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
7033 noreturn functions.
7034
400a9325
RS
70352004-08-23 Richard Sandiford <rsandifo@redhat.com>
7036
7037 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
7038 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
7039 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
7040 rather than "%z2" (with a fake const0_rtx for operand 2).
7041 (ffs[sd]i2): Redefine using :GPR.
7042 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
7043
2222da3a
RS
70442004-08-23 Richard Sandiford <rsandifo@redhat.com>
7045
7046 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
7047
15ac4ccf
RS
70482004-08-23 Richard Sandiford <rsandifo@redhat.com>
7049
7050 * config/mips/mips.md (any_extend): New code macro.
7051 (u, su): New code attributes.
7052 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
7053 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
7054 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
7055 (*{s,u}mul_acc_di): Redefine using any_extend.
7056 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
7057 to reflect real insn names.
7058 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
7059 with an any_extend template.
7060 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
7061 Add '*' to name.
7062
d46c971d
RS
70632004-08-23 Richard Sandiford <rsandifo@redhat.com>
7064
7065 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
7066 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
7067 (mul[sd]i3_r4000): Redefine using :GPR.
7068 (mulsi3_mult3): Don't check TARGET_MAD separately.
7069 (muldi3_mult3): Moved after mulsi_mult3.
7070
5811cb27
RS
70712004-08-23 Richard Sandiford <rsandifo@redhat.com>
7072
7073 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
7074 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
7075 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
7076 (TARGET_GAS, TARGET_MIPS_AS): Delete.
7077 (TARGET_GPWORD): Define to true for n32 on IRIX.
7078 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
7079 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
7080 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
7081 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
7082 (MDEBUG_ASM_SPEC): Delete, folding into...
7083 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
7084 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
7085 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
7086 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
7087 to define asm_abi_default_spec.
7088 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
7089 (TARGET_ASM_SELECT_SECTION): Delete.
7090 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
7091 for non-mips16 code, removing previous workaround for SGI assemblers.
7092 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
7093 (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
7094 (override_options): Remove !TARGET_GAS and !have_named_sections code.
7095 (print_operand): Fold TARGET_GAS conditionals into asm strings.
7096 (mips_output_filename): Remove !TARGET_GAS code. Replace use of
7097 ASM_STABS_OP and ASM_STABN_OP.
7098 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
7099 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
7100 (mips_output_function_prologue): Remove !TARGET_GAS code.
7101 (mips_select_rtx_section): Remove !have_named_sections code.
7102 (mips_select_section): Delete.
7103 * config/mips/mips.md (trap): Remove !TARGET_GAS check.
7104 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
7105 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
7106 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
7107 * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
7108 * config/mips/windiss.h (ASM_SPEC): Likewise.
7109
032e8348
RS
71102004-08-23 Richard Sandiford <rsandifo@redhat.com>
7111
7112 * read-rtl.c (map_value, mapping, macro_group): New structures.
7113 (BELLWETHER_CODE): New macro.
7114 (modes, codes, bellwether_codes): New variables.
7115 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
7116 (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
7117 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
7118 (add_condition_to_rtx, apply_macro_traverse, add_mapping)
7119 (add_map_value, initialize_macros): New functions.
7120 (def_hash, def_hash_eq_p): Generalize to anything that points to,
7121 or starts with, a char * field.
7122 (find_macro, read_mapping, check_code_macro): New functions.
7123 (read_rtx_1): New, split out from read_rtx. Handle the new
7124 define_{mode,code}_{macro,attr} constructs. Use find_macro
7125 to parse the name of a code or mode. Use BELLWETHER_CODE to
7126 extract the format and to choose a suitable code for rtx_alloc.
7127 Modify recursive invocations to use read_rtx_1.
7128 (read_rtx): Call initialize_macros. Apply code and mode macros
7129 to the rtx returned by read_rtx_1. Cache everything after the
7130 first macro expansion for subsequent read_rtx calls.
7131 * doc/md.texi: Document new .md constructs.
7132 * config/mips/mips.md (GPR): New mode macro.
7133 (d, si8_di5): New mode attributes.
7134 (any_cond): New code macro.
7135 (add[sd]i3): Redefine using :GPR.
7136 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
7137 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
7138 previously unnamed MIPS16 patterns.
7139 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
7140 lines. Don't match (plus (const_int 0) ...).
7141 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
7142 Use a define_split to generate the addition.
7143 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
7144 (subsi3_internal): Delete.
7145 (*subsi3_extended): Renamed from subsi3_internal_2.
7146 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
7147 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
7148 using an any_cond template.
7149
ecce923e
RS
71502004-08-23 Richard Sandiford <rsandifo@redhat.com>
7151
7152 * read-rtl.c (read_rtx): Tidy use of format_ptr.
7153
a269d6c8
RS
71542004-08-23 Richard Sandiford <rsandifo@redhat.com>
7155
7156 * read-rtl.c (string_obstack): New file-scope variable.
7157 (read_string, read_quoted_string, read_braced_string)
7158 (read_escape): Remove obstack parameter and use string_obstack instead.
7159 (read_rtx): Remove function-local rtl_obstack and initialize
7160 string_obstack instead. Update call to read_string.
7161
9fc3b39a
AP
71622004-08-22 Andrew Pinski <apinski@apple.com>
7163
7164 PR c/15262
7165 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
7166 expression is not constant.
7167 (c_finish_return): Do not go through INDIRECT_REF when looking
7168 for the inner expression of an ADDR_EXPR for warning about.
7169
cea49550
RH
71702004-08-22 Richard Henderson <rth@redhat.com>
7171
7172 PR 17075
7173 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
7174 create new blocks and fall through.
7175 (expand_gimple_basic_block): Update to match.
7176
0b540f12
UW
71772004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
7178
7179 * reload.c (find_reloads_address): Make return value tri-state.
7180 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
7181 (find_reloads): Assume that reloaded addresses match 'o' or
7182 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
7183 returned 1 (not -1). Omit optional reloads for address operands
7184 only if find_reloads_address returned 1 (not -1).
7185
7186 * config/s390/s390.c (legitimize_reload_address): New function.
7187 * config/s390/s390-protos.h (legitimize_reload_address): Declare.
7188 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call
7189 legitimize_reload_address.
7190
7f5e6307
RH
71912004-08-22 Richard Hendersion <rth@redhat.com>
7192
7193 * tree.h (SAVE_EXPR_RESOLVED_P): New.
7194 * gimplify.c (gimplify_save_expr): Use it.
7195 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P
7196 on the temporary variable.
7197
efd610a6
AP
71982004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
7199
7200 * fold-const.c (rtl_expr_nonnegative_p): Delete.
7201 * tree.h (rtl_expr_nonnegative_p): Remove.
7202
324a6c95
SB
72032004-08-22 Steven Bosscher <stevenb@suse.de>
7204
7205 * config/i386/ppro.md (ppro_complex_insn): Add missing check
7206 for cpu==pentiumpro.
7207
7208 * combine.c (struct reg_stat): Fix comment typo.
7209
41db8425
JM
72102004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
7211
7212 * c-tree.h (c_sizeof_nowarn): Remove.
7213
00325bce
JM
72142004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
7215
7216 * c-decl.c (set_array_declarator_type): Rename to
7217 set_array_declarator_inner.
7218 (build_c_parm, build_attrs_declarator, build_function_declarator):
7219 New functions.
7220 (make_pointer_declarator): Call build_attrs_declarator.
7221 * c-tree.h (set_array_declarator_type): Rename to
7222 set_array_declarator_inner.
7223 (build_c_parm, build_attrs_declarator, build_function_declarator):
7224 New prototypes.
7225 * c-parse.in (after_type_declarator,
7226 parm_declarator_starttypename, parm_declarator_nostarttypename,
7227 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
7228 firstparm): Use these functions
7229
60919bce
JM
72302004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
7231
7232 * c-decl.c (build_array_declarator, set_array_declarator_type,
7233 start_decl, grokdeclarator, grokparms): Change boolean parameters
7234 to type bool.
7235 * c-tree.h (build_array_declarator, set_array_declarator_type,
7236 start_decl): Update prototypes.
7237 * c-decl.c, c-parse.in: All callers changed.
7238
bdfd0ed4
MS
72392004-08-21 Mike Stump <mrs@apple.com>
7240
7241 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
7242 (darwin_fix_and_continue): Likewise.
7243 (darwin_fix_and_continue_switch): Likewise.
7244 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
7245 (darwin_fix_and_continue): Likewise.
7246 (darwin_fix_and_continue_switch): Likewise.
7247
35da8b56 72482004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
23d34220
DS
7249
7250 PR c++/16030
7251 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
7252 Remove, merging into ...
7253 (gen_stdcall_or_fastcall_suffix): New function, returning tree
7254 rather than const char*, and accepting additional parameter.
7255 Don't add suffix to '*'-prefixed symbols or variadic functions.
7256 (i386_pe_encode_section_info): Adjust for call to new function.
7257 Call change_decl_assembler_name.
7258
828a4fe4
MS
72592004-08-20 Mike Stump <mrs@apple.com>
7260
7261 * config/darwin.c (machopic_indirect_data_reference): Mark
7262 stubs as defined.
7263 * config/386/386.c (darwin_local_data_pic): Add.
7264 (legitimate_constant_p): Reorder so that PLUS handling runs
7265 before darwin_local_data_pic to match the ordering in
7266 legitimate_pic_address_disp_p and so that MINUS runs after
7267 darwin_local_data_pic as otherwise the darwin_local_data_pic
7268 logic can be skipped, which would be very bad.
7269 (legitimate_pic_address_disp_p): Move from from here to
7270 darwin_local_data_pic so it can be reused.
7271
85b776df
AM
72722004-08-21 Alan Modra <amodra@bigpond.net.au>
7273
7274 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
7275 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
7276 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
7277 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
7278 (RS6000_ABI_NAME): Define as "linux".
7279 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
7280 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
7281 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
7282 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
7283 * config/rs6000/rs6000.c (dot_symbols): New global var.
7284 (rs6000_output_function_entry): New function, modified for
7285 !DOT_SYMBOLS..
7286 (print_operand <case 'z'>): ..extracted from here.
7287 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
7288 (rs6000_output_function_epilogue): Likewise.
7289 (rs6000_elf_declare_function_name): Likewise.
7290 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
7291 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
7292 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
7293 * configure: Regenerate.
7294 * config.in: Regenerate.
7295
14d3dc34
MM
72962004-08-20 Mark Mitchell <mark@codesourcery.com>
7297
0e544c37
MM
7298 * reload.c (find_reloads_address): Fix thinko in previous change.
7299
14d3dc34
MM
7300 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
7301 a CONST_INT.
7302
f3b2657c
JJ
73032004-08-20 Jakub Jelinek <jakub@redhat.com>
7304
7305 PR rtl-optimization/17099
7306 * combine.c (force_to_mode): Check if inner_mask has any bits set
7307 outside of GET_MODE (x) instead of op_mode.
7308
d2294baa
MM
73092004-08-20 Mark Mitchell <mark@codesourcery.com>
7310
7311 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
7312 fragment.
7313 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
7314 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
7315 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
7316 architecture.
7317 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
7318 configurations.
7319 * config/arm/t-symbian: New file.
7320
753d0efa
AP
73212004-08-20 Andrew Pinski <apinski@apple.com>
7322
7323 * regrename.c (kill_value_regno): ANSIfy.
7324
627b6fe2
DJ
73252004-08-20 Dale Johannesen <dalej@apple.com>
7326
324a6c95 7327 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
627b6fe2 7328
d64d5e80
DJ
73292004-08-20 Daniel Jacobowitz <dan@debian.org>
7330
7331 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
7332 (kill_value_regno): New function, derived from kill_value.
7333 (kill_value): Update.
7334 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
7335
af75a7ea 73362004-08-20 Daniel Berlin <dberlin@dberlin.org>
f676971a 7337
af75a7ea
DB
7338 Fix PR tree-optimization/17111
7339 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
7340 of non-value_handles.
7341 (bitmap_set_contains): All constants are in every set.
7342
0a936b12
NS
73432004-08-20 Nathan Sidwell <nathan@codesourcery.com>
7344
7345 * fold-const.c (round_up, round_down): Use build_int_cst.
7346 Optimize common case.
7347
774acadf
ZW
73482004-08-20 Zack Weinberg <zack@codesourcery.com>
7349 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7350
324a6c95 7351 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
774acadf
ZW
7352 one_only_data_section): Rename to som_readonly_data_section,
7353 som_one_only_readonly_data_section and som_one_only_data_section.
324a6c95 7354 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
0a936b12
NS
7355 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
7356 conditional defines.
774acadf
ZW
7357 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
7358 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
7359 string values.
7360 (pa_select_section): Use renamed section functions.
7361 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
324a6c95 7362 SOM_READONLY_DATA_SECTION_FUNCTION,
774acadf 7363 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
324a6c95
SB
7364 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
7365 Define here ...
7366 * config/pa/som.h: ... not here.
7367 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
774acadf
ZW
7368 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
7369 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
324a6c95
SB
7370 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
7371 (READONLY_DATA_SECTION): Use som_readonly_data_section.
774acadf 7372
3224bead
NS
73732004-08-20 Nathan Sidwell <nathan@codesourcery.com>
7374
fabead06
NS
7375 * fold-const.c (int_const_binop): Don't generate non-overflowing
7376 size-types specially.
7377 (fold_convert_const): Likewise.
7378
3224bead
NS
7379 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
7380 clear cache on copied sizetype.
7381
fb38008e
BE
73822004-08-20 Ben Elliston <bje@au.ibm.com>
7383
7384 * configure.ac: Don't escape apostrophe in --enable-coverage help.
7385 * configure: Regenerate.
7386
a9024779
DS
73872004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
7388
7389 PR 5620
7390 * gcc.c (struct stat input_stat): Don't define if
7391 HOST_LACKS_INODE_NUMBERS
7392 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
7393 than stat to determine if temp file is same as input file.
7394 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
7395 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
7396
82563d35
RS
73972004-08-20 Richard Sandiford <rsandifo@redhat.com>
7398
7399 * configure.ac (mips*-*-*): Print an error if not using GAS.
7400 * configure: Regenerated.
7401 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
7402 comments about buggy MIPSpro assemblers.
7403 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
7404 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
7405 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
7406 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
7407 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
7408 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
7409 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
7410 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
7411 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
7412 of more general IRIX 6 definitions.
7413 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
7414 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
7415 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
7416 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
7417 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
7418 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
7419 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
7420 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
7421 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
7422 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
7423 (LINK_SPEC): Move most of definition to iris.h.
7424 (SUBTARGET_LINK_SPEC): New macro.
7425 (IRIX_STARTFILE_SPEC): Fold into...
7426 (STARTFILE_SPEC): ...here.
7427 (IRIX_ENDFILE_SPEC): Fold into...
7428 (ENDFILE_SPEC): ...here.
7429 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
7430 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
7431 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
7432 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
7433 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
7434 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
7435 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
7436 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
7437 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
7438 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
7439 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
7440 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
7441 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
7442 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
7443 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
7444 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
7445 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
7446 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
7447 (TARGET_IRIX6): Define to 1.
7448 (DRIVER_SELF_SPECS): Define.
7449 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
7450 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
7451 (SUBTARGET_LINK_SPEC): New macro.
7452 (IRIX_STARTFILE_SPEC): Fold into...
7453 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
7454 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
7455 (LIB_SPEC, LIBGCC_SPEC): Use them.
7456 (LIB_SPEC): Remove !mabi=* case.
7457 (IRIX_ENDFILE_SPEC): Fold into...
7458 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
7459 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
7460 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
7461 (TARGET_IRIX6): New macro.
7462 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
7463 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
7464 (LABEL_AFTER_LOC): Delete.
7465 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
7466 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
7467 (mips_build_builtin_va_list): Check TARGET_IRIX6.
7468 (override_options): Remove TARGET_SGI_O32_AS-related code.
7469 (irix_output_external_libcall): Make static.
7470 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
7471 LABEL_AFTER_LOC.
7472 (mips_file_start): Tidy guard for ABI sections. Remove use of
7473 ABICALLS_ASM_OP; use .abicalls instead.
7474 (mips_output_aligned_decl_common, mips_declare_object_name)
7475 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
7476 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
7477 .globl foo .text directives.
7478 (irix_asm_named_section_1, irix_asm_named_section)
7479 (irix_section_align_entry, irix_section_align_htab)
7480 (irix_orig_asm_out_file, irix_section_align_entry_eq)
7481 (irix_section_align_entry_hash, irix_asm_output_align)
7482 (irix_file_start, irix_section_align_1, copy_file_data)
7483 (irix_file_end, irix_section_type_flags): Delete.
7484 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
7485 Use standard section syntax. Remove protective "jr $31".
7486 (__gcc_fini): Likewise .gcc_fini.
7487 * config/mips/irix-crtn.asm: Adjust sections accordingly.
7488 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
7489 iris5gas.h.
7490 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
7491 from t-irix-gld.
7492 (EXTRA_MULTILIB_PARTS): Define.
7493 * config/mips/t-iris6: Remove bogus comment.
7494 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
7495 * config/mips/iris5gas.h, config/mips/iris5gld.h,
7496 config/mips/iris6gas.h, config/mips/iris6gld.h,
7497 config/mips/t-iris5-as, config/mips/t-iris5-gas
7498 config/mips/t-irix-gld: Delete.
7499 * config/mips/iris.h: New file.
7500 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
7501
c4cdb8e1
RE
75022004-08-20 Richard Earnshaw <rearnsha@arm.com>
7503
7504 * postreload.c (reload_cse_move2add): Allow any condjump, but check
7505 that the implicit set isn't clobbered in the jump insn.
7506
d55ab31d
MM
75072004-08-19 Mark Mitchell <mark@codesourcery.com>
7508
7509 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
7510 * optabs.c (init_optabs): Don't check it.
7511 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
7512 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
7513
d75f90f1
AK
75142004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
7515
7516 * config/s390/s390.md (s390_warn_framesize_string)
7517 (s390_warn_dynamic_string, s390_stack_size_string)
7518 (s390_stack_guard_string): New global string variables.
7519 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
7520 (s390_stack_guard): New global variables.
7521 (override_options): Added checks for the new options.
7522 (s390_emit_prologue): Emit stack check and trap code and perform
7523 compile time stack size checking.
f676971a
EC
7524
7525 * config/s390/s390.h (TARGET_OPTIONS): Added new options
d75f90f1
AK
7526 "warn-framesize", "warn-dynamicstack", "stack-size" and
7527 "stack-guard".
7528
7529 * doc/invoke.texi: Added documentation for the new options.
7530
ca29916b
UW
75312004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
7532
7533 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
7534 to eliminate warning.
7535 (linear_search_fdes): Declare p as unsigned.
7536 (binary_search_mixed_encoding_fdes): Likewise.
7537 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
7538 to eliminate warning.
7539 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
7540 type cast.
7541
e1d5ee28
UW
75422004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
7543
7544 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
7545 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
7546 instead of one. Check for strictly legitimate address.
7547 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
7548 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
7549
19114537
EC
75502004-08-19 Eric Christopher <echristo@redhat.com>
7551
7552 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
7553 * langhooks.h (unsave_expr_now): Ditto.
7554 * tree.h (unsave_expr_1): Remove prototype.
7555 (lhd_unsave_expr_now): Rename to unsave_expr_now.
7556 * tree-inline.c (unsave_expr_1): Move here
7557 from tree.c. Make static.
7558 (unsave_expr_now): Rename from lhd_unsave_expr_now.
7559 * tree-sra.c: Fix up for rename.
7560 * tree-ssa-copy.c: Ditto.
7561 * tree-eh.c: Ditto.
7562 * tree.c (unsave_expr_1): Move to tree-inline.c.
7563
d5bfecf2
CT
75642004-08-19 Caroline Tice <ctice@apple.com>
7565
324a6c95
SB
7566 * config/i386/cygming.h (switch_to_section): Fix typo (change
7567 in_unlikely_text_section to in_unlikely_executed_text).
19114537 7568
58152808
DB
75692004-08-19 Daniel Berlin <dberlin@dberlin.org>
7570
7571 * vec.h (VEC_lower_bound): New macro.
19114537 7572
ae043003
RS
75732004-08-19 Richard Sandiford <rsandifo@redhat.com>
7574
7575 PR target/16446
7576 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
7577 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
7578 treat each ABI separately. Deal with n32/n64 complex float arguments.
7579 (function_arg): Add associated complex handling here.
7580
50ed9cea
RH
75812004-08-19 Richard Henderson <rth@redhat.com>
7582
7583 * config/arm/arm.c (arm_gen_load_multiple): Use
7584 adjust_automodify_address. Take base memory and offset instead
7585 of unchanging/struct/scalar bits.
7586 (arm_gen_store_multiple): Likewise.
7587 (arm_gen_movmemqi): Use adjust_automodify_address.
7588 * config/arm/arm-protos.h: Update decls.
7589 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
7590 (store_multiple): Similarly.
7591
74ae207d
R
75922004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
7593
7594 * regclass.c (globalize_reg): Update call_really_used_regs.
7595
89b0433e
NS
75962004-08-19 Nathan Sidwell <nathan@codesourcery.com>
7597
31ebd7c8
NS
7598 * doc/invoke.texi (integer-share-limit): Document.
7599
89b0433e
NS
7600 * tree.h (TYPE_CACHED_VALUES_P): New.
7601 (TYPE_CACHED_VALUES): New.
7602 (TYPE_ORIG_SIZE_TYPE): Adjust.
7603 * tree.def (INTEGER_CST): Update documentation.
7604 * tree.c: Inlcude params.h.
7605 (build_int_cst): Cache small values.
7606 (build_type_copy): Do not copy the value cache.
7607 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
7608 unneeded zeroing.
7609 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
7610 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
7611 cache.
7612 * fold-const.c (force_fit_type): Copy value when setting
7613 overflows.
7614 (int_const_binop): Likewise.
7615 * stor-layout.c: Include params.h
7616 (set_sizetype): Create values cache.
7617 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
7618 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
7619 * params.h (INTEGER_SHARE_LIMIT): New.
7620 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
19114537 7621
c2504783
PB
76222004-08-19 Paolo Bonzini <bonzini@gnu.org>
7623
7624 * gimplify.c (gimplify_minimax_expr): Remove.
7625 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
7626
7a8554ce
DN
76272004-08-19 Dorit Naishlos <dorit@il.ibm.com>
7628
19114537 7629 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
7a8554ce
DN
7630 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
7631
1905f33d
MM
76322004-08-19 Mark Mitchell <mark@codesourcery.com>
7633
7634 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
7635
f1732751
AP
76362004-08-18 Andrew Pinski <apinski@apple.com>
7637
7638 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
7639
8c78a388
MM
76402004-08-18 Mark Mitchell <mark@codesourcery.com>
7641
7642 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
7643 (__aeabi_ul2f): Likewise.
7644
7eda7cda
RH
76452004-08-18 Richard Henderson <rth@redhat.com>
7646
7647 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
7648 move to rtl completely.
7649 (struct meminsnbuf, xtensa_emit_block_move): Remove.
7650 (xtensa_find_mode_for_size): Remove.
7651 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
7652 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
7653
88042663
RH
76542004-08-18 Richard Henderson <rth@redhat.com>
7655
7656 * config/mcore/mcore.c (mode_from_align): Remove DImode.
7657 (block_move_sequence): Rewrite to use adjust_address.
7658 (mcore_expand_block_move): Cleanup logic. Accept only operands.
7659 Return boolean indicating success/failure.
7660 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
7661 * config/mcore/mcore.md (movmemsi): Update to match.
7662
699c914a
MS
76632004-08-18 Mike Stump <mrs@apple.com>
7664
7665 * doc/invoke.texi (-mfix-and-continue): Add support for
7666 fast turn around debugging.
7667 (-ffix-and-continue): Likewise.
7668 (-mindirect-data): Likewise.
7669 (-findirect-data): Likewise.
7670 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
7671 (indirect_data): Likewise.
7672 (machopic_data_defined_p): Likewise.
7673 (machopic_output_indirection): Likewise.
7674 (darwin_encode_section_info): Likewise.
7675 (darwin_fix_and_continue): Likewise.
7676 (darwin_fix_and_continue_switch): Likewise.
7677 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
7678 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
7679 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
7680 (SUBTARGET_OPTIONS): Likewise.
7681 (darwin_fix_and_continue): Likewise.
7682 (darwin_fix_and_continue_switch): Likewise.
7683 (TARGET_FIX_AND_CONTINUE): Likewise.
7684 * config/rs6000.c (rs6000_emit_prologue): Likewise.
7685
76862004-08-19 Steven Bosscher <stevenb@suse.de>
bd454efd
SB
7687
7688 * basic-block.h (struct edge_def): Remove crossing_edge.
7689 (EDGE_CROSSING): New define.
7690 (EDGE_ALL_FLAGS): Update.
7691 * bb-reorder.c (find_traces_1_round, better_edge_p,
7692 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
7693 find_jump_block, fix_crossing_conditional_branches,
7694 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
7695 Replace all occurences of crossing_edge with an edge flag check
7696 or set/reset.
7697 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
7698 try_crossjump_bb): Likewise.
7699 * cfglayout.c (fixup_reorder_chain): Likewise.
7700 * cfgrtl.c (force_nonfallthru_and_redirect,
7701 commit_one_edge_insertion): Likewise.
7702
7703 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
7704 * tree-flow.h (compute_dominance_frontiers): Move prototype...
7705 * basic-block.h: ...here.
7706 * tree-cfg.c (compute_dominance_frontiers_1,
7707 compute_dominance_frontiers): Move from here...
7708 * cfganal.c: ...to here. Include timevar.h.
7709
9ff6992e
JW
77102004-08-18 James E Wilson <wilson@specifixinc.com>
7711
c831f54b 7712 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
a1627d80
JW
7713 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
7714
9ff6992e
JW
7715 * config/mips/mips.md (type): Add frdiv.
7716 (divsf3+1, divsf3+2): Change type to frdiv.
7717 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
7718 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
19114537 7719
9ff6992e
JW
7720 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
7721 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
7722 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
7723 * config/mips/5000.md (r5k_fdiv_single): Likewise.
7724 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
7725 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
7726 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
7727 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
7728 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
7729 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
7730 Likewise.
7731 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
7732
c16eb900
RB
77332004-08-18 Robert Bowdidge <bowdidge@apple.com>
7734
7735 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
324a6c95 7736 get regression tester working again.
c16eb900 7737
826c9564
ZW
77382004-08-18 Zack Weinberg <zack@codesourcery.com>
7739
7740 * insn-notes.def, reg-notes.def: New files.
7741 * rtl.h: Use them to define enum insn_note and enum reg_note.
7742 * rtl.c: Use them to define note_insn_name and reg_note_name.
4b179e92 7743 * Makefile.in (RTL_BASE_H): Update.
826c9564
ZW
7744
7745 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
7746 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
7747
21b5653c
RE
77482004-08-18 Richard Earnshaw <rearnsha@arm.com>
7749
7750 * arm.c (arm_size_rtx_costs): New function.
7751 (arm_override_options): Use it if optimizing for space.
7752
542a8afa
RH
77532004-08-18 Richard Henderson <rth@redhat.com>
7754
7755 * emit-rtl.c (gen_const_mem): New.
7756 * rtl.h (gen_const_mem): Declare.
7757 * expr.c (do_tablejump): Use it.
7758 * varasm.c (force_const_mem): Likewise.
7759 * config/darwin.c (machopic_indirect_data_reference): Likewise.
7760 (machopic_legitimize_pic_address): Likewise.
7761 * config/arm/arm.c (legitimize_pic_address): Likewise.
7762 * config/i386/i386.c (legitimize_pic_address): Likewise.
7763 (legitimize_tls_address): Likewise.
7764 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
7765 * config/ia64/ia64.md (load_fptr): Likewise.
7766 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
7767 * config/pa/pa.c (legitimize_pic_address): Likewise.
7768 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
7769 (rs6000_emit_move): Likewise.
7770 * config/s390/s390.c (legitimize_pic_address): Likewise.
7771 (legitimize_tls_address): Likewise.
7772 * config/s390/s390.md (casesi): Likewise.
7773 * config/sh/sh.c (sh_reorg): Likewise.
7774 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
7775 * config/v850/v850.md (casesi): Likewise.
7776
7777 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
7778 * config/sh/sh.c (prepare_move_operands): Remove incorrect
7779 use of MEM_READONLY_P.
7780
0516f6fe
SB
77812004-08-18 Steven Bosscher <stevenb@suse.de>
7782
7783 * Makefile.in (OBJS-common): Add postreload-gcse.c.
7784 Add new postreload-gcse.o.
7785 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
7786 (lookup_as_function, insert, rehash_using_reg, use_related_value,
7787 equiv_constant): Use SAFE_HASH instead of safe_hash.
7788 (exp_equiv_p): Export. Add for_gcse argument when comparing
7789 for GCSE.
7790 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
7791 find_comparison_args, fold_rtx, cse_insn): Update callers.
7792 (hash_rtx): New function derived from old canon_hash and bits
7793 from gcse.c hash_expr_1.
7794 (canon_hash_string): Rename to hash_rtx_string.
7795 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
7796 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
7797 (cselib_lookup): Update this caller.
7798 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
7799 Make static.
7800 (hash_expr): Call hash_rtx.
7801 (ldst_entry): Likewise.
7802 (expr_equiv_p): Call exp_equiv_p.
7803 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
7804 reg_used_on_edge, reg_set_between_after_reload_p,
7805 reg_used_between_after_reload_p, get_avail_load_store_reg,
7806 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
7807 get_bb_avail_insn, hash_scan_set_after_reload,
7808 compute_hash_table_after_reload,
7809 eliminate_partially_redundant_loads, gcse_after_reload,
7810 get_bb_avail_insn, gcse_after_reload_main): Remove.
7811 * postreload-gcse.c: New file, reincarnating most of the above.
7812 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
7813 (gcse_after_reload_main): Update prototype.
7814 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
7815 * passes.c (rest_of_handle_gcse2): Use it.
7816
95013377
DN
78172004-08-18 Diego Novillo <dnovillo@redhat.com>
7818
7819 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
7820 (pass_loop_done): Likewise.
7821
ac9e2cff
AP
78222004-08-18 Andrew Pinski <apinski@apple.com>
7823
826c9564 7824 * config/rs6000/darwin.md: Delete the altivec patterns which are
ac9e2cff
AP
7825 handled differently now.
7826 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
7827 (macho_correct_pic_di): Likewise.
7828 (call_indirect_nonlocal_darwin64): Likewise.
7829 Delete the save world/saveFP/saveVec patterns.
826c9564 7830
ac9e2cff 7831 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
826c9564
ZW
7832 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
7833 * config/rs6000/rs6000.md: Include darwin.md.
7834 (builtin_setjmp_receiver): Add DImode case.
7835 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
7836 Darwin bits.
ac9e2cff 7837
92b9a671
MA
78382004-08-18 Matt Austern <austern@apple.com>
7839
7840 Dead code stripping
7841 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
7842 * darwin.c (darwin_file_end): Mark file as potentially strippable.
826c9564 7843
4766261d
RH
78442004-08-18 Richard Henderson <rth@redhat.com>
7845
7846 * alias.c (readonly_fields_p): Remove.
7847 (objects_must_conflict_p): Don't call it.
7848 * tree.h (readonly_fields_p): Remove.
7849 * langhooks.h (struct lang_hooks): Remove honor_readonly.
7850 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
7851
50dc9a88
DN
78522004-08-18 Diego Novillo <dnovillo@redhat.com>
7853
7854 * tree-dfa.c (add_referenced_var): Only global variables are
7855 call-clobbered.
7856 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
7857 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
7858 all pointers dereferenced if the statement dereferences them.
7859 (create_name_tags): Do not create memory tags for pointers
7860 that have PT_ANYTHING set.
7861 Also check if PT_VARS is not empty before creating a name tag.
7862 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
7863 variables that share the same alias set with a pointer that
7864 may point anywhere.
7865 (add_may_alias): Add FIXME comment to remove clobbering
7866 aliased variables and tags.
7867 (replace_may_alias): Likewise.
7868 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
7869 (merge_pointed_to_info): If the original variable has not
7870 points-to information, call set_pt_anything.
7871 (add_pointed_to_var): Do not prevent adding a pointed-to
7872 variable if the pointers is PT_ANYTHING.
7873 If the variable is a global, set PT_GLOBAL_MEM.
7874 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
7875 pointer type only come in PTR+OFFSET flavours.
7876 Always call merge_pointed_to_info on PHI arguments that are
7877 SSA_NAMEs.
7878 (get_nmt_for): Mark call-clobbered tags whose pointer points
7879 to global memory.
7880 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
7881 values.
7882 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
7883 FLAGS.
7884 (add_stmt_operand): Abort if the caller tried to add a killing
7885 definition for a memory tag.
7886 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
7887 unnecessary checks.
7888
62164eb4
R
78892004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
7890
7891 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
7892 from call_used_regs. Update call_really_used_regs.
7893 (CALL_REALLY_USED_REGISTERS): Define.
7894 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
7895 Replace call_used_regs with call_really_used_regs.
7896 (calc_live_regs, sh_media_register_for_return): Likewise.
7897 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
7898 * sh.md (return_media): Likewise.
7899
f9b0ac3b
AP
79002004-08-18 Andrew Pinski <apinski@apple.com>
7901
826c9564 7902 * config/darwin.c (machopic_legitimize_pic_address): Only set
ac9e2cff 7903 MEM_READONLY_P in the non TARGET_TOC case.
f9b0ac3b 7904
f822d252
ZW
79052004-08-18 Zack Weinberg <zack@codesourcery.com>
7906
7907 * rtl.def (NIL): Delete.
7908 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
7909 Tighten the syntax a little.
7910
7911 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
7912 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
7913 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
7914 * config/i386/predicates.md, config/m32r/m32r.h
7915 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
7916 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
7917 * config/sparc/sparc.h, doc/tm.texi:
7918 Replace all occurrences of NIL with UNKNOWN.
7919
6aaf3dde
ZW
79202004-08-18 Zack Weinberg <zack@codesourcery.com>
7921
7922 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
7923 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
7924 sequence inline. Move drop_through_label code into this
7925 block, being the only place it is used. Adjust comments.
7926
d62294f5
FJ
79272004-08-18 Fariborz Jahanian <fjahanian@apple.com>
7928
6aaf3dde
ZW
7929 * config/rs6000/altivec.md: Add new patterns for calls to
7930 save_world/rest_world functions.
7931
7932 * config/rs6000/rs6000-protos.h: (save_world_operation,
7933 restore_world_operation) new declarations.
7934
7935 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
7936 field added.
7937 (rs6000_stack_info): Set world_save_p field.
7938 (save_world_operation): New function.
7939 (restore_world_operation): New function.
7940 (compute_save_world_info): New function.
7941 (rs6000_stack_info): Call compute_save_world_info.
7942 (rs6000_emit_prologue): Check for world_save_p and generate
7943 pattern to call save_world for saving all non-volatile and
7944 special registers.
7945 (rs6000_emit_epilogue): Check for world_save_p and generate
7946 pattern to call rest_world to restore saved registers.
7947
7948 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
7949 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
7950 (rs6000_reg_names): New entries added for save_world_operation and
7951 restore_world_operation.
d62294f5 7952
790ac0e1
CT
79532004-08-18 Caroline Tice <ctice@apple.com>
7954
6aaf3dde 7955 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
790ac0e1
CT
7956 "-freorder-blocks-and-partition" to the flags used in second
7957 stage of profiledbootstrap.
7958 * bb-reorder.c (push_to_next_round_p): Add new variable,
7959 next_round_is_last; set and use variable to make sure, when
7960 partitioning, that the last trace construction round consists
7961 of all (and only) cold basic blocks.
7962 (rotate_loop): Don't copy blocks that end in a section
7963 crossing jump.
7964 (copy_bb): Correctly initialize "partition" of duplicated bb.
7965 (add_unlikely_executed_notes): Add a comment.
7966 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
7967 to make sure, if function contains hot blocks, that the
7968 successors of ENTRY_BLOCK_PTR are hot; also, only look for
7969 crossing edges if the architecture supports named sections.
7970 (mark_bb_for_unlikely_executed_section): Modify to always
7971 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
7972 the basic block note insn.
7973 (fix_crossing_unconditional_branches): Remove extra space.
7974 (fix_edges_for_rarely_executed_code): Modify to only do
7975 partitioning work if the architecture supports named sections.
7976 (reorder_basic_blocks): Modify to only add
7977 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
7978 supports named sections.
7979 * c-common.c (handle_section_attribute): Initialize new global
7980 variable, user_defined_section_attribute, to true if user has
7981 specified one.
7982 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
7983 forward edges that cross section boundaries.
7984 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
7985 partitioning information if the architecture supports named
7986 sections.
7987 * cfgrtl.c (target.h): Add statement to include this.
7988 (rtl_split_block): Make sure newly created bb gets correct
7989 partition.
7990 (try_redirect_by_replacing_jump): Make sure redirection isn't
7991 attempting to cross section boundaries.
7992 (force_nonfallthru_and_redirect): Only do partition fix up if
7993 architecture supports named sections.
7994 (rtl_split_edge): Make sure newly created bb ends up in
7995 correct partition.
7996 (commit_one_edge_insertion): Remove code that incorrectly
7997 updated basic block partition; Make sure partition fix up only
7998 happens if architecture supports named sections and it's not
7999 already done.
8000 (rtl_verify_flow_info_1): Fix if-condition on test/error
8001 condition that fallthru edges are not allowed to cross section
8002 boundaries.
8003 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
8004 * final.c (final_scan_insn): Remove redundant test from if-statement;
8005 change calls to text_section into calls to function_section; add code
8006 to only to partitioning fix up if architecture supports named
8007 sections.
8008 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
8009 partition.
8010 (if_convert): Add targetm.have_named_sections to test.
8011 * output.h (unlikely_section_label): Extern declaration for new global
8012 variable.
8013 (unlikely_text_section_name): Likewise.
8014 * opts.c (decode_options): If both partitioning and DWARF debugging
8015 are turned on, issue a warning that this doesn't work, and change
8016 partitiong to basic block reordering (without hot/cold partitions).
6aaf3dde 8017 * passes.c (rest_of_handle_final): Re-set new global variable,
790ac0e1
CT
8018 user_defined_section_attribute, to false.
8019 (rest_of_compilation): Change options for calling partitioning
8020 function: Don't call if the user defined the section attribute, and
8021 don't call if DECL_ONE_ONLY is true for the current function.
8022 * predict.c (choose_function_section): Return immediately if we
8023 are doing hot/cold partitioning (i.e. let the basic block partitioning
8024 determine where the function belongs).
8025 * reg-stack.c (emit_swap_insn): Add condition to step over
8026 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
8027 * toplev.c (user_defined_section_attribute): New global variable.
89b0433e
NS
8028 * toplev.h (user_defined_section_attribute): Extern declaration
8029 for new global variable.
790ac0e1
CT
8030 * varasm.c (unlikely_section_label): New global variable.
8031 (unlikely_text_section_name): New global variable.
89b0433e
NS
8032 (unlikely_text_section): Add code to initialize
8033 unlikely_text_section_name if necessary; modify to use
8034 unlikely_text_section_name and unlikely_section_label; also to use
8035 named_section properly.
8036 (in_unlikely_text_section): Modify to work correctly with
8037 named_section and to use unlikely_text_section_name.
790ac0e1
CT
8038 (named_section): Add code to work properly with cold section.
8039 (function_section): Clean up if-statement.
89b0433e
NS
8040 * config/darwin.c (darwin_asm_named_section): Return to original
8041 code, removing use of SECTION_FORMAT_STRING.
6aaf3dde 8042 * config/arm/pe.h (switch_to_section): Add case for
790ac0e1
CT
8043 in_unlikely_executed_text to switch statement.
8044 * config/i386/cygming.h (switch_to_section): Likewise.
8045 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
8046 (SECTION_FORMAT_STRING): Likewise.
8047 * config/mcore/mcore.h (switch_to_section): Likewise.
8048 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
8049 (SECTION_FORMAT_STRING): Remove.
8050
3a4416fb
RS
80512004-08-18 Roger Sayle <roger@eyesopen.com>
8052
8053 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
8054 -ffixed-reg safe, by preserving the meanings of zero and one.
8055 (CALL_USED_REGISTERS): Likewise.
8056 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
8057
03904fb3
KK
80582004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
8059
8060 * config/sh/sh.c (split_branches): Check the result of
8061 next_active_insn.
8062 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
8063 Call rtl_register_cfg_hooks.
8064
389fdba0
RH
80652004-08-18 Richard Henderson <rth@redhat.com>
8066
8067 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
8068 * alias.c (true_dependence): Update to match new semantics.
8069 (canon_true_dependence, write_dependence_p): Likewise.
8070 (anti_dependence, output_dependence): Update write_dependence_p args.
8071 (unchanging_anti_dependence): Remove.
8072 * calls.c (purge_mem_unchanging_flag): Remove.
8073 (fixup_tail_calls): Don't call it.
8074 (expand_call): Don't add unchanging memory to function usage.
8075 * expr.c (emit_block_move_via_libcall): Likewise.
8076 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
8077 (get_subtarget): Don't use RTX_UNCHANGING_P.
8078 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
8079 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
8080 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
8081 * cse.c (insert): Don't use RTX_UNCHANGING_P.
8082 (cse_insn, canon_hash): Use MEM_READONLY_P.
8083 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
8084 instead of RTX_UNCHANGING_P.
8085 * explow.c (maybe_set_unchanging): Remove.
8086 * expr.h (maybe_set_unchanging): Remove.
8087 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
8088 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
8089 (assign_parm_setup_reg, expand_function_start): Likewise.
8090 * integrate.c (copy_rtx_and_substitute): Likewise.
8091 * ra-rewrite.c (emit_colors): Likewise.
8092 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
8093 (fixup_match_1): Likewise.
8094 * reload1.c (reload, alter_reg): Likewise.
8095 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
8096 not RTX_UNCHANGING_P.
8097 (equiv_init_varies_p): Likewise.
8098 * loop-invariant.c (check_maybe_invariant): Likewise.
8099 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
8100 * loop.c (note_addr_stored): Likewise.
8101 (prescan_loop): Likewise. Don't check function usage for clobbered
8102 unchanging memory.
8103 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
6aaf3dde 8104 not RTX_UNCHANGING_P.
389fdba0
RH
8105 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
8106 * varasm.c (force_const_mem): Likewise.
8107 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
8108 * web.c (entry_register): Likewise.
8109 * tree-gimple.h (get_base_address): Move decl ...
8110 * tree.h: ... here.
8111 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
8112
8113 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
8114 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
8115 (alpha_set_memflags): Update to match.
8116
8117 * config/darwin.c (machopic_indirect_data_reference): Set
8118 MEM_READONLY_P instead of RTX_UNCHANGING_P.
8119 (machopic_indirect_call_target): Likewise.
8120 (machopic_legitimize_pic_address): Likewise.
6aaf3dde 8121 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
389fdba0
RH
8122 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
8123 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
8124 * config/frv/frv.md (symGOT2reg): Likewise.
8125 * config/i386/i386.c (legitimize_pic_address,
8126 legitimize_tls_address, ix86_split_to_parts): Likewise.
8127 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
8128 * config/ia64/ia64.md (load_fptr): Likewise.
8129 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
8130 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
8131 * config/mcore/mcore.c (block_move_sequence): Likewise.
8132 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
8133 * config/pa/pa.c (legitimize_pic_address): Likewise.
8134 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
8135 (rs6000_emit_move): Likewise.
8136 * config/s390/s390.c (legitimize_pic_address): Likewise.
8137 (legitimize_tls_address): Likewise.
8138 * config/s390/s390.md (casesi): Likewise.
8139 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
8140 * config/sh/sh.md (symGOT2reg): Likewise.
8141 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
8142 * config/v850/v850.md (casesi): Likewise.
8143
8144 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
8145 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
8146 * config/mips/mips.c (mips_restore_gp): Likewise.
8147 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
8148 * config/sh/sh.c (sh_reorg): Likewise.
8149
17ad5b5e
RH
81502004-08-18 Richard Henderson <rth@redhat.com>
8151
8152 * tree.h (struct tree_decl): Add gimple_formal_temp.
8153 (DECL_GIMPLE_FORMAL_TEMP_P): New.
8154 * gimplify.c (pop_gimplify_context): Clear it.
8155 (lookup_tmp_var): Set it, if is_formal.
8156 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
8157 Use is_gimple_val for VECTOR. Simplify return value.
8158 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
8159 (gimplify_expr): Likewise.
8160 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
8161 is_gimple_tmp_rhs for clarity. Update all callers.
8162 (is_gimple_reg_rhs): Simplify logic.
8163 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
8164 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
8165 (is_gimple_formal_tmp_reg): Similarly.
8166 * tree-gimple.h: Update decls.
8167 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
8168 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
8169 * tree-ssa-live.c (var_union, type_var_init): Likewise.
8170
5b0eba61
PB
81712004-08-18 Paolo Bonzini <bonzini@gnu.org>
8172
8173 * c4x.c (legitimize_operands): Remove calls to
8174 preserve_subexpressions_p.
8175
07e15286
DE
81762004-08-18 David Edelsohn <edelsohn@gnu.org>
8177
8178 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
8179 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
8180
ad8c162b
ZL
81812004-08-18 Ziemowit Laski <zlaski@apple.com>
8182
8183 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
8184 Objective-C++ extensions.
8185 * gengtype.c (get_file_basename): Match entire subdirectory name
8186 ('cp', 'objc', 'objcp') rather than just its suffix.
8187 (get_base_file_bitmap): Allow for files to belong to more than one
8188 language.
8189 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
8190 used by more than one front-end.
8191
d56993f2
RE
81922004-08-18 Richard Earnshaw <rearnsha@arm.com>
8193
8194 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
8195 avoid use of preserve_subexpressions_p.
8196
504c0e4f
RH
81972004-08-17 Richard Henderson <rth@redhat.com>
8198
8199 PR 17051
8200 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
8201
54e9a19d
DD
82022004-08-17 DJ Delorie <dj@redhat.com>
8203
8204 * doc/extend.texi: Document new xstormy16 attribute.
8205
8206 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
8207 (xstormy16_splittable_below100_or_register): New.
8208 (combine_bnp): New.
8209 (xstormy16_reorg): New.
8210 (TARGET_MACHINE_DEPENDENT_REORG): Define.
8211
54e9a19d
DD
8212 * config/stormy16/stormy16.md (movqi_internal): Make name public.
8213 (movhi_internal): Likewise.
8214 (cbhranchhi): Likewise.
8215 (cbhranchhi_neg): Likewise.
8216 (andhi3): Only allow splittable below100 operands.
8217 (iorhi3): Likewise.
8218 (peephole2): New and/zero_extend->and peephole.
8219 (peephole2): New load/ior/save->set1 peephole.
8220 (peephole2): New load/and/save->clr1 peephole.
8221 (bclrx, bclrx2, bclr7, bclr15): New.
8222 (bsetx, bsetx2, bset7, bset15): New.
8223
8224 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
8225 liberal about acceptable 'B' masks.
8226
8227 * config/stormy16/stormy16-protos.h
8228 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
8229 xstormy16_below100_operand, xstormy16_below100_or_register,
8230 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
8231 (PREDICATE_CODES): Add new predicates.
6aaf3dde 8232
54e9a19d
DD
8233 * config/stormy16/stormy16.c
8234 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
8235 xstormy16_below100_operand, xstormy16_below100_or_register,
8236 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
8237 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
8238 (xstormy16_legitimate_address_p): Allow below100 symbols.
8239 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
8240 (xstormy16_expand_move): Leave below100 operands as-is.
8241 (xstormy16_encode_section_info): Encode below100 symbols.
8242 (xstormy16_strip_name_encoding): New.
8243 (xstormy16_print_operand): Print 'b' as shift mask.
8244 (xstormy16_attribute_table): Add below100 attributes.
8245 (xstormy16_handle_below100_attribute): New.
8246
8247 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
8248 (XSTORMY16_SECTION_FUNCTION): New.
8249 (EXTRA_SECTION_FUNCTIONS): Define using the above.
8250 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
8251 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
8252 (ASM_OUTPUT_LABELREF): Define.
8253
8254 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
8255 (movhi_internal): Add below100 support.
8256 (andhi3): Add below100 support.
8257 (iorhi3): Add below100 support.
8258 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
8259
4ef47bd8
JW
82602004-08-17 James E Wilson <wilson@specifixinc.com>
8261
8262 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
8263 of VOIDmode for comparison code mode.
8264 * config/mips/mips.md: For conditional move patterns, use mode of
8265 first compare operand for comparison mode, instead of VOIDmode.
e17c734b
JW
8266
8267 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
8268 normal and -ffast-math code.
8269
1a10290c
MM
82702004-08-17 Mark Mitchell <mark@codesourcery.com>
8271
8272 PR c++/15871
8273 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
8274
f4e736dd 82752004-08-17 Robert Bowdidge <bowdidge@apple.com>
6aaf3dde
ZW
8276
8277 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
f4e736dd 8278
13a98f14
AT
82792004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
8280
8281 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
8282 for non Darwin targets.
8283 (*call_value_nonlocal_darwin64): Likewise.
8284
d0b2079e
FJ
82852004-08-17 Fariborz Jahanian <fjahanian@apple.com>
8286
8287 * config/rs6000/rs6000.c (rs6000_function_value): Check for
8288 altivec mode for altivec return register.
8289
feb3dc8b
DE
82902004-08-17 David Edelsohn <edelsohn@gnu.org>
8291
8292 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
ef0e2729 8293 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
feb3dc8b
DE
8294 * config/rs6000/rs6000.md: Include darwin.md.
8295 (builtin_setjmp_receiver): Add DImode case.
8296 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
8297 Darwin bits.
8298
79fe1b3b
DN
82992004-08-17 Dorit Naishlos <dorit@il.ibm.com>
8300
89b0433e
NS
8301 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
8302 trees.
79fe1b3b
DN
8303 * tree-vectorizer.h: New File: Same.
8304 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
8305 * common.opt (ftree-vectorize): New flag to enable vectorization.
89b0433e
NS
8306 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
8307 vectorization pass.
79fe1b3b
DN
8308 * tree-data-ref.h (init_data_ref): Additional argument.
8309 (array_base_name_differ_p): Moved to tree-data-ref.c.
8310 * tree-data-ref.c (array_base_name_differ_p): Revised.
8311 (initialize_data_dependence_relation): Call array_base_name_differ_p
8312 with an extra argument.
8313 (analyze_all_data_dependences): Same.
8314 (init_data_ref): Additional argument is_read to set DR_IS_READ.
89b0433e
NS
8315 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
8316 file.
79fe1b3b
DN
8317 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
8318 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
6aaf3dde 8319 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
79fe1b3b
DN
8320 vectorization pass.
8321 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
8322 (tree_ssa_loop_done): Call scev_finalize.
8323 (tree_vectorize): Define the new vectorization pass.
89b0433e
NS
8324 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
8325 size of the vector they support (until support for multiple vector
8326 sizes is added to the vectorizer).
79fe1b3b
DN
8327 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
8328 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
8329 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
8330 documentation.
8331
e15987c1
NS
83322004-08-17 Nathan Sidwell <nathan@codesourcery.com>
8333
8334 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
8335 usage.
8336 (generate_protocol_list, handle_impent): Likewise.
8337
e3cadb61
RS
83382004-08-17 Roger Sayle <roger@eyesopen.com>
8339
8340 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
8341 ensure that call_used_regs is a superset of both fixed_regs and
8342 call_really_used_regs.
8343
108a579c
DB
83442004-08-17 Daniel Bornstein <danfuzz@milk.com>
8345
8346 PR target/17019
8347 * arm.md (addsi3_cbranch_scratch): Correct case labels.
8348
62fc1d7d
PB
83492004-08-17 Paolo Bonzini <bonzini@gnu.org>
8350
8351 PR middle-end/17036
8352 * fold-const.c (fold): Check for integer operand when
8353 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
8354 Pinski <pinskia@physics.uc.edu>.
8355
7c27e184
PB
83562004-08-17 Paolo Bonzini <bonzini@gnu.org>
8357
8358 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
8359 No need to check if in a cross configuration.
8360 * configure: Regenerate.
8361
8362 * calls.c (precompute_register_parameters):
8363 Inline preserve_subexpressions_p ().
8364 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
8365 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
8366 Likewise.
8367 * expr.c (get_subtarget): Likewise.
8368 * rtl.h (preserve_subexpressions_p): Remove.
8369 * stmt.c (preserve_subexpressions_p): Remove.
8370
8371 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
8372 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
8373 Abort on gimplified cases.
8374
d97c6333
JW
83752004-08-16 James E Wilson <wilson@specifixinc.com>
8376
8377 * tree.h (VECTOR_FLOAT_TYPE_P): New.
8378 (FLOAT_TYPE_P): Use it.
8379 * c-typeck.c (build_binary_op): After convert calls, check for
8380 check for ERROR_MARK operands.
8381
45c8116d
ZW
83822004-08-16 Zack Weinberg <zack@codesourcery.com>
8383
8384 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
8385 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
8386 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
8387 (genobjs static pattern rule): Remove %.c dependency.
8388 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
8389 Rename rules; delete commands; fix dependencies.
8390 (mostlyclean): Do not delete temporary source copies.
8391 * configure.ac: Delete all references to BUILD_PREFIX and
8392 BUILD_PREFIX_1.
8393 * configure: Regenerate.
8394
8395 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
8396 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
8397 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
8398 with #ifndef GENERATOR_FILE so that nothing from those headers
8399 is used.
8400
8401 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
8402
4d73e20b
AN
84032004-08-16 Adam Nemet <anemet@lnxw.com>
8404
8405 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
6aaf3dde 8406
62114438
AP
84072004-08-16 Andrew Pinski <apinski@apple.com>
8408
8409 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
8410 extraneous semicolon.
8411
8e3e233b
DP
84122004-08-16 Devang Patel <dpatel@apple.com>
8413
8414 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
8415 * print-tree.c (print_node): Print DECL_PRESERVE_P.
8416 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
8417 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
8418 * target.h (struct gcc_target): New member, mark_decl_preserved.
45c8116d
ZW
8419 * hooks.c (hook_void_charptr): Rename to ...
8420 (hook_void_constcharptr): ... new name.
8421 * hooks.h (hook_void_charptr): Rename to ..
8422 (hook_void_constcharptr): ... new name.
8e3e233b
DP
8423 * tree.h (DECL_PRESERVE_P): New #define.
8424 (struct tree_decl): New member, preserve_flag.
8425 * varasm.c (assemble_start_function): Mark decl preserved.
8426 (assemble_variable): Same.
8427 * darwin.c (darwin_mark_decl_preserved): New function.
8428 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
8429 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
8430 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
8431
580b3958
JM
84322004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
8433
8434 * c-decl.c (grokdeclarator): Allow for function definition where
8435 innermost declarator has attributes.
8436
93f90be6
FJ
84372004-08-16 Fariborz Jahanian <fjahanian@apple.com>
8438
8439 * except.c (get_exception_filter, build_post_landing_pads,
8440 dw2_build_landing_pads): Use target-specific mode for 'filter'.
8441 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
8442 * target.h (eh_return_filter_mode): New field added.
8443 * targhooks.c (default_eh_return_filter_mode): Defined.
8444 * targhooks.h (default_eh_return_filter_mode): Declared.
8445 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
8446
392765bf
NN
84472004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
8448
8449 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
8450 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
8451 * configure: Regenerate.
8452
49bd1d27
SS
84532004-08-16 Stan Shebs <shebs@apple.com>
8454
8455 Basic support for 64-bit Darwin.
8456 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
8457 (machopic_legitimize_pic_address): Similarly, plus use Pmode
8458 instead of SImode.
8459 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
8460 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
8461 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
8462 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
8463 (PROCESSOR_DEFAULT64): Define.
8464 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
8465 Darwin.
8466 * config/rs6000/rs6000.md: Include darwin.md.
8467 (builtin_setjmp_receiver): Add DImode case.
8468 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
8469 Darwin.
8470 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
8471 (rs6000_emit_move): Add DImode case to Darwin bits.
8472 (machopic_output_stub): Use .quad if 64-bit.
8473 * invoke.texi: Document -m32 and -m64.
8474
4e6e4e4c
JJ
84752004-08-16 Janis Johnson <janis187@us.ibm.com>
8476
8477 * doc/extend.texi (AltiVec builtins): Document additional differences
8478 from the Motorola AltiVec PIM.
8479
092313ae
NS
84802004-08-16 Nathan Sidwell <nathan@codesourcery.com>
8481
8482 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
8483 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
8484 (struct tree_common): Update public_flag documentation.
8485
dffc9ae5
NN
84862004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
8487
8488 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
62fc1d7d 8489 Check for artificial variables, not is_gimple_tmp_var.
dffc9ae5
NN
8490 * tree-ssa-live.c (var_union): Likewise.
8491
16e9be4c
NS
84922004-08-16 Nathan Sidwell <nathan@codesourcery.com>
8493
8494 * calls.c (load_register_parameters): Remove spurious FIXME token.
8495
9a4d6480
ZL
84962004-08-15 Ziemowit Laski <zlaski@apple.com>
8497
8498 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
8499 (c-lang.o): Depend on c-objc-common.h.
45c8116d 8500 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
9a4d6480
ZL
8501 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
8502 * c-lang.c: Include c-objc-common.h.
8503 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
8504 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
8505 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
45c8116d
ZW
8506 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
8507 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
9a4d6480
ZL
8508 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
8509 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
45c8116d 8510 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
9a4d6480
ZL
8511 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
8512 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
8513 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
8514 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
8515 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
8516 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
8517 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
8518 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
8519 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
8520 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
8521 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
8522 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
8523 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
8524 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
8525 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
8526 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
8527 Move to c-objc-common.h.
8528 * c-objc-common.c: Include c-objc-common.h.
8529 * c-objc-common.h: New file.
8530
869464ba
AT
85312004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
8532 Andrew Pinski <pinskia@physics.uc.edu>
8533
8534 PR target/14931
8535 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
8536 style.
8537
4a90aeeb
NS
85382004-08-15 Nathan Sidwell <nathan@codesourcery.com>
8539
8540 * tree.h (build_int_cst): New.
8541 (build_int_2): Remove.
8542 * tree.c (build_int_2): Remove.
8543 (build_int_cst): New.
8544 (make_vector_type, build_common_tree_nodes,
8545 build_common_tree_nodes_2): Use build_int_cst.
8546 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
8547 expand_builtin_strpbrk, expand_builtin_fputs,
8548 build_string_literal, expand_builtin_printf,
8549 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
8550 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
8551 fold_builtin_isdigit, simplify_builtin_strstr,
8552 simplify_builtin_strpbrk, fold_builtin_fputs,
8553 simplify_builtin_sprintf): Use build_int_cst.
8554 * c-common.c (start_fname_decls, fix_string_type,
8555 c_common_nodes_and_builtins, c_init_attributes,
8556 shorten_compare): Likewise.
8557 * c-decl.c (complete_array_type,
8558 check_bitfield_type_and_width): Likewise.
8559 * c-lex.c (interpret_integer, lex_charconst): Likewise.
8560 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
8561 * c-pretty-print.c (pp_c_integer_constant): Likewise.
8562 * c-typeck.c (really_start_incremental_init, push_init_level,
8563 set_nonincremental_init_from_string): Likewise.
8564 * calls.c (load_register_parameters): Likewise.
8565 * convert.c (convert_to_pointer): Likewise.
8566 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
8567 build_fn_info_type, build_ctr_info_value, build_gcov_info):
8568 Likewise.
8569 * except.c (init_eh, assign_filter_values, assign_filter_values):
8570 Likewise.
8571 * expmed.c (store_fixed_bit_field, extract_bit_field,
8572 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
8573 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
8574 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
8575 * expr.c (convert_move, emit_group_load, emit_group_store,
8576 expand_assignment, store_constructor, store_field,
8577 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
8578 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
8579 invert_truthvalue, optimize_bit_field_compare,
8580 decode_field_reference, all_ones_mask_p, constant_boolean_node,
8581 fold_div_compare, fold, fold_read_from_constant_string,
8582 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
8583 * function.c (assign_parm_setup_block): Likewise.
8584 * stmt.c (shift_return_value, expand_end_case_type,
8585 estimate_case_costs): Likewise.
8586 * stor-layout.c (layout_type, initialize_sizetypes,
8587 set_min_and_max_values_for_integral_type): Likewise.
8588 * tree-chrec.c (chrec_fold_multiply_poly_poly,
8589 reset_evolution_in_loop): Likewise.
8590 * tree-chrec.h (build_polynomial_chrec): Likewise.
8591 * tree-complex.c (build_replicated_const): Likewise.
8592 * tree-eh.c (honor_protect_cleanup_actions,
8593 lower_try_finally_onedest, lower_try_finally_copy,
8594 lower_try_finally_switch): Likewise.
8595 * tree-mudflap.c (mf_build_string, mx_register_decls,
8596 mudflap_register_call, mudflap_enqueue_constant): Likewise.
8597 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
8598 * tree-pretty-print.c (dump_generic_node): Likewise.
8599 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
8600 Likewise.
8601 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
8602 * tree-ssa-loop-niter.c (number_of_iterations_cond,
8603 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
8604 Likewise.
45c8116d 8605
4a90aeeb
NS
8606 * config/alpha/alpha.c (alpha_initialize_trampoline,
8607 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
8608 * config/arm/arm.c (arm_get_cookie_size): Likewise.
8609 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
8610 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
8611 * config/i860/i860.c (i860_va_start): Likewise.
8612 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
8613 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
8614 mips_gimplify_va_arg_expr): Likewise.
8615 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
8616 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
8617 add_compiler_branch_island): Likewise.
8618 * config/s390/s390.c (s390_va_start): Likewise.
8619 * config/sh/sh.c (sh_va_start): Likewise.
8620 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
8621 Likewise.
8622 * config/xtensa/xtensa.c (xtensa_va_start,
8623 xtensa_gimplify_va_arg_expr): Likewise.
45c8116d 8624
4a90aeeb
NS
8625 * objc/objc-act.c (build_objc_string_object,
8626 build_objc_symtab_template, init_def_list, init_objc_symtab,
8627 init_module_descriptor, generate_static_references,
8628 build_selector_translation_table, get_proto_encoding,
8629 build_typed_selector_reference, build_selector_reference,
8630 build_next_objc_exception_stuff,
8631 build_method_prototype_list_template, generate_descriptor_table,
8632 generate_protocols, build_protocol_initializer,
8633 build_ivar_list_template, build_method_list_template,
8634 build_ivar_list_initializer, generate_ivars_list,
8635 generate_dispatch_table, generate_protocol_list,
8636 build_category_initializer, build_shared_structure_initializer,
8637 generate_shared_structures, handle_impent,
8638 generate_objc_image_info): Use build_int_cst.
8639
2a68a7de
BE
86402004-08-15 Ben Elliston <bje@au.ibm.com>
8641
8642 * vec.h: Comment improvements.
8643
53fb4de3
RS
86442004-08-14 Roger Sayle <roger@eyesopen.com>
8645
8646 * c-common.c (shorten_compare, pointer_int_sum,
8647 c_common_truthvalue_conversion, boolean_increment): Replace calls
8648 to build with calls to buildN.
8649 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
8650 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
8651 gimplify_switch_stmt): Likewise.
8652 * c-typeck.c (default_function_array_conversion,
8653 build_component_ref, build_array_ref, build_function_call,
8654 pointer_diff, build_unary_op, build_conditional_expr,
8655 build_compound_expr, build_modify_expr, c_finish_goto_label,
8656 c_finish_goto_ptr, c_finish_return, c_finish_loop,
8657 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
8658 build_binary_op): Likewise.
8659
254b17dd
SB
86602004-08-15 Steven Bosscher <stevenb@suse.de>
8661
8662 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
8663
a5252c84
JDA
86642004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8665
8666 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
8667 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
8668 * fixinc/fixincl.x: Rebuilt.
8669
96a30b18
RS
86702004-08-14 Richard Sandiford <rsandifo@redhat.com>
8671
8672 * config/mips/mips-protos.h (mips_symbolic_constant_p)
8673 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
8674 (mips_small_data_pattern_p): Declare.
8675 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
8676 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
8677 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
8678 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
8679 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
8680 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
8681 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
8682 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
8683 (pc_or_label_operand, call_insn_operand, move_operand)
8684 (consttable_operand, symbolic_operand, general_symbolic_operand)
8685 (global_got_operand, local_got_operand, stack_operand)
8686 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
8687 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
8688 (mips_small_data_pattern_p): Replace previous small_data_pattern
8689 predicate. Turn into a bool () (rtx) function.
8690 * config/mips/predicates.md: New file.
8691 * config/mips/mips.md: Include it. Use the target-independent
8692 comparison_operator instead of cmp_op. Rename trap_cmp_op to
8693 trap_comparison_operator and equality_op to equality_operator.
8694 Replace uses of small_int with the equivalent const_arith_operand.
8695 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
8696 const_float_1_operand to const_1_operand. Rename fcc_register_operand
8697 to fcc_reload_operand.
8698 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
8699
e41c9fcb
JDA
87002004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8701
8702 PR libstdc++/17005 partial fix.
8703 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
8704 except when generating ANSI/C89 code.
8705
af9c6659
NS
87062004-08-14 Nathan Sidwell <nathan@codesourcery.com>
8707
8708 * c-common.c (shorten_compare): Use force_fit_type directly.
8709
37de1373
GP
87102004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
8711 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
8712 Dave Korn <dk@artimi.com>
8713
8714 * doc/install.texi (Building): Avoid duplicate reference to GNU
8715 make requirement.
8716 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
8717
06d69cd3
RH
87182004-08-14 Richard Henderson <rth@redhat.com>
8719
8720 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
8721 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
8722
e427abbf
RH
87232004-08-13 Richard Henderson <rth@redhat.com>
8724
8725 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
8726 for constant_call_address_operand.
8727 (call_value_pop_1, call_value_1): Likewise.
8728 (sibcall_value_1, call_value_1_rex64): Likewise.
8729
2b407936
JW
87302004-08-13 James E Wilson <wilson@specifixinc.com>
8731
8732 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
8733 Correct mode from SFmode to DFmode.
8734
3e0d5ae2
ZL
87352004-08-13 Ziemowit Laski <zlaski@apple.com>
8736
8737 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
8738 __cstring_object and __image_info sections with the no_dead_strip
8739 attribute.
8740
e0704143
RS
87412004-08-13 Roger Sayle <roger@eyesopen.com>
8742 David Billinghurst <David.Billinghurst@riotinto.com>
8743
8744 PR libgfortran/15930
8745 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
8746 * fixinc/fixincl.x: Regenerate.
8747 * fixinc/tests/base/internal/math_core.h: New file.
8748
8768c655
RH
87492004-08-13 Richard Henderson <rth@redhat.com>
8750
8751 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
8752 (dbxout_function_end): Remove ifdefs for it.
8753 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
8754
201312c2
RH
87552004-08-13 Richard Henderson <rth@redhat.com>
8756
8757 * Makefile.in (insn-preds.o): Depend on TREE_H.
8758 * genpreds.c (write_insn_preds_c): Include tree.h.
8759 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
8760 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
8761 const48_operand, and_operand, or_operand, mode_width_operand,
8762 mode_mask_operand, mul8_operand, const0_operand,
8763 hard_fp_register_operand, hard_int_register_operand,
8764 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
8765 samegp_function_operand, direct_call_operand, small_symbolic_operand,
45c8116d 8766 global_symbolic_operand, call_operand, symbolic_operand,
201312c2
RH
8767 dtp16_symbolic_operand, dtp32_symbolic_operand,
8768 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
8769 gottp_symbolic_operand, alpha_comparison_operator,
8770 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
8771 signed_comparison_operator, alpha_fp_comparison_operator,
8772 divmod_operator, fix_operator, aligned_memory_operand,
8773 unaligned_memory_operand, reg_or_unaligned_mem_operand,
8774 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
8775 reg_no_subreg_operand, addition_operation): Move to predicates.md.
8776 (reg_or_const_int_operand): Remove. Replace all users with
8777 reg_or_cint_operand.
8778 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
8779 (resolve_reload_operand): Split out of aligned_memory_operand.
8780 * config/alpha/alpha-protos.h: Update for exports.
8781 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
8782 * config/alpha/alpha.md: Include predicates.md.
8783 * config/alpha/predicates.md: New file.
8784
1e9c8405
RS
87852004-08-13 Richard Sandiford <rsandifo@redhat.com>
8786
8787 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
8788 fields with a pointer to the instruction definition.
8789 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
8790 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
8791 (write_attr_case, write_const_num_delay_slots): Update accordingly.
8792 (write_attr_case, write_const_num_delay_slots): Write the name of
8793 an insn next to its case statement.
8794 * genoutput.c (data): Add a filename field.
8795 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
8796 (output_insn_data): Print the location of each insn definition.
8797 * genrecog.c (write_action): Print the name of an insn above
8798 the statement that returns its code.
8799
1e5f1716
AP
88002004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
8801
8802 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
8803 * config/libgloss.h: Likewise.
8804 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
8805 * c4x/c4x-modes.def: Likewise.
8806 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
8807 (c4x_rptb_nop_p): Likewise.
8808 (c4x_rptb_valid_p): Likewise.
8809 (c4x_rptb_insert): Likewise.
8810 (c4x_address_conflict): Likewise.
8811 * config/c4x/c4x.md: Likewise.
8812 * config/frv/frv.md: Likewise.
8813 * config/i386/athlon.md: Likewise.
8814 * config/i386/i386.md: Likewise.
8815 * config/i386/predicates.md: Likewise.
8816 * config/ia64/ia64.c: Likewise.
8817 * config/ia64/itanium1.md: Likewise.
8818 * config/ia64/itanium2.md: Likewise.
8819 * config/iq2000/iq2000.md: Likewise.
8820 * config/mcore/mcore.c: Likewise.
8821 * config/mips/mips.c: Likewise.
8822 * config/mips/r3900.h: Likewise.
8823 * config/mips/sb1.md: Likewise.
8824 * config/pa/milli64.S: Likewise.
8825 * config/pa/pa.c: Likewise.
8826 * config/pa/pa.h: Likewise.
8827 * config/rs6000/8540.md: Likewise.
8828
9bcc9490
DB
88292004-08-13 Daniel Berlin <dberlin@dberlin.org>
8830
8831 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
8832
68fe56fc
R
88332004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
8834
8835 * sh.md (cbranch define_delay) Use cond_delay_slot for
8836 non-anulled condition too.
8837
85d346f1
DE
88382004-08-12 David Edelsohn <edelsohn@gnu.org>
8839
8840 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
8841 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
8842 any_parallel_operand, lmw_operation, stmw_operation,
a688b3ac 8843 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
85d346f1
DE
8844 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
8845 any_parallel_operand.
8846 (return_and_restore_fpregs_{si,di}): Same.
8847
47d2cee5
ZW
88482004-08-12 Zack Weinberg <zack@codesourcery.com>
8849
8850 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
8851 if pred->singleton != PARALLEL, issue a warning and pretend it was.
8852 Also issue a warning for any predicate we don't know about.
8853
8fe75e43
RH
88542004-08-12 Richard Henderson <rth@redhat.com>
8855
8856 * config/i386/i386.c (internal_label_prefix): Export.
8857 (internal_label_prefix_len, struct ix86_address,
8858 ix86_decompose_address, maybe_get_pool_constant,
8859 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
8860 memory_address_length): Export.
47d2cee5 8861 (any_fp_register_operand, fp_register_operand,
8fe75e43 8862 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
47d2cee5 8863 x86_64_general_operand, x86_64_szext_general_operand,
8fe75e43
RH
8864 x86_64_nonmemory_operand, x86_64_movabs_operand,
8865 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
8866 x86_64_zext_immediate_operand, const_int_1_31_operand,
8867 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
8868 tls_symbolic_operand, global_dynamic_symbolic_operand,
8869 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
8870 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
8871 constant_call_address_operand, const0_operand, const1_operand,
8872 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
8873 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
8874 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
8875 general_no_elim_operand, nonmemory_no_elim_operand,
8876 index_register_operand, q_regs_operand, flags_reg_operand,
8877 non_q_regs_operand, zero_extended_scalar_load_operand,
8878 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
47d2cee5 8879 ix86_comparison_operator, ix86_carry_flag_operator,
8fe75e43
RH
8880 fcmov_comparison_operator, promotable_binary_operator,
8881 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
47d2cee5 8882 mult_operator, div_operator, arith_or_logical_operator,
8fe75e43
RH
8883 memory_displacement_operand, cmpsi_operand, long_memory_operand,
8884 aligned_operand): Move to predicates.md as define_predicates.
8885 (tls_symbolic_operand_1): Remove.
8886 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
8887 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
8888 (legitimize_address): Merge tls_symbolic_operand contents.
8889 (ix86_expand_move): Likewise.
8890 * config/i386/i386-protos.h: Update for exports.
8891 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
8892 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
8893 * config/i386/i386.md: Include predicates.md.
8894 * config/i386/predicates.md: New file.
8895
ea3d83a7
MM
88962004-08-13 Mark Mitchell <mark@codesourcery.com>
8897
8898 PR c++/16924
8899 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
8900 SYMBOL_REF_DECL.
8901 (i386_pe_mark_dllimport): Likewise.
8902 (i386_pe_encode_section_info): Likewise, when overriding
8903 dllimport attribute.
8904
414adbdd
GK
89052004-08-12 Geoffrey Keating <geoffk@apple.com>
8906
8907 * configure.ac: When testing for flex, nm, ar, and bison, check
8908 that they will actually be built.
8909 * configure: Regenerate.
8910
c5443745
UW
89112004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
8912
8913 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
8914 (MOVE_MAX_PIECES): Define.
8915
8fa5469d
DP
89162004-08-12 Devang patel <dpatel@apple.com>
8917
8918 * dbxout.c (dbxout_begin_prologue): New function.
8919 (dbx_debug_hooks): Use new begin prologue hook.
8920 (dbxout_function_end): Emit N_ENSYM.
8921 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
47d2cee5 8922
b0b343db
JJ
89232004-08-12 Janis Johnson <janis187@us.ibm.com>
8924
e390eb0a
JJ
8925 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
8926 argument is float*.
8927
e34b6648
JJ
8928 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
8929 for vec_dss.
8930
b0b343db
JJ
8931 * doc/extend.texi (AltiVec builtins): Fix description for recent
8932 changes. Update operation list to match current support.
8933
adf39f8f
AK
89342004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
8935
8936 * config/s390/s390.c (struct s390_frame_layout): New struct as element
8937 of struct machine_function.
8938 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
8939 changed all uses.
8940 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
8941 changed all uses.
8942 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
8943 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
8944 (s390_frame_area, s390_register_info): New functions.
8945 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
8946 for base register.
8947 (s390_return_addr_rtx, s390_return_address_offset)
8948 (s390_va_start, s390_gimplify_va_arg)
8949 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
8950 layouts.
8951 (s390_frame_info): Functionality partly moved to s390_register_info.
8952 Made adaptions for new stack layout.
8953 (save_gprs, restore_gprs): Changed meaning of second parameter and
8954 adapted all callers.
8955
8956 * config/s390/s390.h (s390_backchain_string): New global variable.
8957 (MASK_BACKCHAIN): Removed definition.
8958 (TARGET_BACKCHAIN): Changed check.
8959 (TARGET_KERNEL_BACKCHAIN): New macro.
8960 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
8961 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
8962 "kernel-backchain".
8963 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
8964
8965 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
8966 as condition. Adjusted for new stack layout.
8967
8968 * doc/invoke.texi: Added documentation for new option
8969 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
8970 "-mno-backchain".
8971
db151e9d
PB
89722004-08-12 Paul Brook <paul@codesourcery.com>
8973
8974 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
8975 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
8976
02b75262
DD
89772004-08-12 David Daney <ddaney@avtrex.com>
8978
db151e9d 8979 * java/gcj.texi: Add subsection on signal usage.
02b75262 8980
f64d6991
DE
89812004-08-12 David Edelsohn <edelsohn@gnu.org>
8982
8983 * expr.c (move_by_pieces): Set alignment for move to minimum of
8984 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
8985 alignment, but not less than the original alignment.
8986 (move_by_pieces_ninsns): Same.
8987 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
8988 (store_by_pieces_1): Same.
8989
c597ef4e
DN
89902004-08-12 Diego Novillo <dnovillo@redhat.com>
8991
8992 PR tree-optimization/16867
8993 * tree.c (is_global_var): New function.
8994 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
8995 Call is_global_var.
8996 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
8997 Update all users.
8998 (is_global_var): Declare.
8999 * tree-dfa.c (dump_variable): Display global and addressable
9000 attributes.
9001 (add_referenced_var): Clarify documentation when marking
9002 variables call-clobbered.
9003 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
9004 instead of needs_to_live_in_memory.
9005 (mark_call_clobbered): If the variable is a tag, mark it
9006 DECL_EXTERNAL.
9007 * tree-gimple.c (is_gimple_reg): Don't check for
9008 TREE_ADDRESSABLE.
9009 (is_gimple_non_addressable): Likewise.
9010 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
9011 needs to be marked call-clobbered.
9012 (setup_pointers_and_addressables): Call is_global_var instead
9013 of needs_to_live_in_memory.
9014 * tree-ssa-dce.c (need_to_preserve_store): Remove.
9015 Update all users with is_global_var.
9016 (mark_stmt_if_obviously_necessary): Fix processing of aliased
9017 stores. Don't check the virtual definitions. Rather, check
9018 whether the store is going into global memory.
9019 (find_obviously_necessary_stmts): Get the symbol from the PHI
9020 result.
9021 * tree-ssa-operands.c (get_call_expr_operands): Do not add
9022 clobbering may-defs if the call does not have side effects.
9023
ab5c8549
JJ
90242004-08-12 Jakub Jelinek <jakub@redhat.com>
9025
9026 PR c++/16276
9027 * output.h (default_function_rodata_section,
9028 default_no_function_rodata_section): New prototypes.
9029 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
9030 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
9031 (TARGET_ASM_OUT): Add it.
9032 * varasm.c (default_function_rodata_section,
9033 default_no_function_rodata_section): New functions.
9034 * final.c (final_scan_insn): Call
9035 targetm.asm_out.function_rodata_section instead of
9036 readonly_data_section.
9037 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
9038 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
9039 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
9040 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
9041 Likewise.
9042 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
9043 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
9044 Likewise.
9045 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
9046 Likewise.
9047 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
9048 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
9049 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
9050
5cf58f28
PB
90512004-08-12 Paul Brook <paul@codesourcery.com>
9052
9053 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
9054 frame info.
9055 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
9056 DWARF2_UNWIND_INFO.
9057
87e184d1
BE
90582004-08-12 Ben Elliston <bje@au.ibm.com>
9059
9060 PR target/16286
9061 * config/rs6000/altivec.h: Change vector to __vector throughout.
9062 (Except for the `vector' macro itself).
9063
e543e219
ZW
90642004-08-12 Zack Weinberg <zack@codesourcery.com>
9065
9066 * genpreds.c: Add capability to generate predicate bodies as
9067 well as function prototypes. Write function prototypes for
9068 the generic predicates too.
9069 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
9070 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
9071 (write_match_code, write_predicate_expr, write_one_predicate_function)
9072 (parse_option): New functions.
9073 (output_predicate_decls): Delete.
9074 (main): Read the machine description, process DEFINE_PREDICATE or
9075 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
9076 as appropriate.
9077
9078 * genrecog.c (struct decision_test): Replace index with
9079 struct pred_data pointer.
9080 (next_index): Remove, unused.
9081 (pred_table, preds, special_mode_pred_table): Delete.
9082 (compute_predicate_codes, process_define_predicate): New functions.
9083 (validate_pattern, add_to_sequence, write_switch): Update for
9084 new data structures.
9085 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
9086 Check both error_count and have_error.
9087
9088 * gensupport.c (in_fname, first_predicate): New globals.
9089 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
9090 (predicate_table, last_predicate, old_pred_table)
9091 (old_special_pred_table): New statics.
9092 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
9093 (add_predicate, init_predicate_table): New functions.
9094 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
9095 (init_md_reader_args_cb): Use the global in_fname. No need to zero
9096 it or max_include_len. Call init_predicate_table.
9097 (read_rtx): Run the predicate queue after the attribute queue
9098 but before all the others.
9099 * gensupport.h (in_fname, struct pred_data, first_predicate)
9100 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
9101 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
9102 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
9103 * dummy-conditions.c: Don't include bconfig.h, system.h,
9104 coretypes.h, tm.h, or system.h. Do include stddef.h.
9105 Duplicate declaration of struct c_test from gensupport.h.
9106
9107 * Makefile.in (OBJS-common): Add insn-preds.o.
9108 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
9109 (insn-preds.c, insn-preds.o): New rules.
9110 (s-preds): Also generate insn-preds.c.
9111 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
9112 Update dependencies.
9113 (print-rtl.o, print-rtl1.o): Correct dependencies.
9114
9115 * recog.h: Delete prototypes of predicate functions.
9116
9117 * doc/md.texi (Predicates): New section with complete
9118 documentation of operand/operator predicates. Remove some
9119 incomplete documentation of predicates from other places.
9120 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
9121 PREDICATE_CODES; indicate that both are deprecated in favor
9122 of define_predicate/define_special_predicate.
9123
9124 * config/ia64/ia64.c: All predicate function definitions moved
9125 to ia64.md, except
9126 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
9127 (ia64_expand_load_address, ia64_expand_move):
9128 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
9129
9130 * config/ia64/ia64.md: All predicates now defined here.
9131 (symbolic_operand): Is now a special predicate.
9132
9133 * config/ia64/ia64.h: Declare ia64_section_threshold.
9134 (PREDICATE_CODES): Delete.
9135
174283a3
RH
91362004-08-12 Richard Henderson <rth@redhat.com>
9137
9138 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
9139 * c-semantics.c (add_stmt): Set it.
9140 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
9141 before instantiating a variable sized type.
9142
15931954
RH
91432004-08-12 Richard Henderson <rth@redhat.com>
9144
9145 * stor-layout.c (round_up, round_down): Move ...
e543e219 9146 * fold-const.c (round_up, round_down): ... here. Use
15931954
RH
9147 multiple_of_p to avoid any arithmetic at all.
9148
57d1dd87
RH
91492004-08-12 Richard Henderson <rth@redhat.com>
9150
9151 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
9152 (gimplify_init_ctor_preeval_1): New.
9153 (gimplify_init_ctor_preeval): New.
9154 (gimplify_init_ctor_eval): New.
9155 (gimplify_init_constructor): Use them. Always gimplify the LHS
9156 object first.
9157
46e34f96
ZL
91582004-08-12 Ziemowit Laski <zlaski@apple.com>
9159
9160 (This patch is part of merge of objc-improvements-branch
9161 into mainline.)
9162
9163 * doc/frontends.texi: Mention Objective-C++ in addition to
9164 Objective-C.
9165 * doc/install.texi: Add 'obj-c++' to list of configurable
9166 languages.
9167 * doc/invoke.texi: Rename Objective-C option headings to
9168 indicate they also apply to Objective-C++. List file
9169 extensions for Objective-C++ sources. Mention that
9170 ObjC and ObjC++ compilations may also use C and C++ options,
9171 respectively. Point users to doc/standards.texi for
9172 further info on ObjC and ObjC++.
9173 * doc/sourcebuild.texi: Mention the objcp/ directory and
9174 the Objective-C++ sources it contains.
9175 * doc/standards.texi: Update link to Apple ObjC site;
9176 add link to gcc readings.html WWW doc.
9177
07f12d8b
AM
91782004-08-12 Alan Modra <amodra@bigpond.net.au>
9179
9180 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
9181 and 2004-07-14 changes.
9182
89aa5a20
PB
91832004-08-12 Paul Brook <paul@codesourcery.com>
9184
9185 * doc/invoke.texi: Fix typo.
9186
5079843a
DP
91872004-08-11 Devang Patel <dpatel@apple.com>
9188
9189 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
9190 and -no_dead_strip_inits_and_terms.
9191 (LINK_SPEC): Same.
9192 * doc/invoke.texi (Darwin Options): Document -dead_strip and
9193 -no_dead_strip_inits_and_terms.
e543e219 9194
876f13b0
PB
91952004-08-11 Paul Brook <paul@codesourcery.com>
9196
9197 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
9198 (arm_load_pic_register): ... to this.
9199 * config/arm/arm.c (arm_finalize_pic): Rename ...
9200 (arm_load_pic_register): ... to this. Always output insns at the
9201 current location. Load via low reg in thumb mode.
9202 (arm_expand_prologue): Call arm_load_pic_register.
9203 (thumb_expand_prologue): Ditto.
9204 * config/arm/arm.h (FINALIZE_PIC): Remove.
9205 * config/arm/arm.md (builtin_setjmp_receiver): Call
9206 arm_load_pic_register.
9207
57934c39
PB
92082004-08-11 Paul Brook <paul@codesourcery.com>
9209
9210 * arm.c (thumb_force_lr_save): Add prototype.
9211 (thumb_compute_save_reg_mask): New function.
9212 (thumb_find_work_register): New function.
9213 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
9214 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
9215 Don't clobber r3 when removing pretend args.
9216 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
9217 (thumb_output_function_prologue): Use new functions.
9218 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
9219 * arm.h (THUMB_REG_PUSHED_P): Remove.
9220
af874237
JW
92212004-08-11 James E Wilson <wilson@specifixinc.com>
9222
9223 PR rtl-optimization/16490
9224 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
9225 global_live_at_end for new basic block if already set for other blocks.
9226
c1618c0c
DE
92272004-08-11 David Edelsohn <edelsohn@gnu.org>
9228
9229 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
9230
9231 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
9232 (mfcr rlwinm rlwinm patterns): Set length to 12.
9233
1a24f92f
AM
92342004-08-11 Andrew MacLeod <amacleod@redhat.com>
9235
9236 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
9237 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
9238 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
9239 (start_ssa_stmt_operands): Delete.
e543e219 9240 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
1a24f92f
AM
9241 struct stmt_operands_d.
9242 (build_ssa_operands): New extern entry point.
e543e219 9243 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
1a24f92f
AM
9244 building code, replace with create_ssa_artficial_load_stmt().
9245 * tree-ssa-operands.c (struct voperands_d): Delete.
9246 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
9247 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
e543e219 9248 (free_uses, free_defs, free_vuses, free_v_may_defs,
1a24f92f
AM
9249 free_v_must_defs): Remove dealloc parameter.
9250 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
9251 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
9252 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
9253 vector comparisons, ssa_name reuse, and allocations here.
9254 (verify_start_operands): Delete.
9255 (finalize_ssa_stmt_operands): Set new operands by calling finalize
9256 routines.
9257 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
9258 (append_def, append_usei): Simplify to simple accumulation.
9259 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
9260 duplicates and simple accumulation.
9261 (free_ssa_operands): Free vectors in a stmt_operand structure.
9262 (build_ssa_operands): New. Create a new stmt_operand structure from
e543e219 9263 a stmt and an old set of stmt_operands.
1a24f92f
AM
9264 (get_stmt_operands): Simplify and call build_ssa_operands.
9265 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
9266 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
9267 add_call_read_ops): Don't pass prev_vops around anymore.
9268 (note_addressable): Return if no stmt annotation.
9269 (copy_virtual_operands): Access v_may_def operands through a struct.
9270 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
9271 hash tables without treating the stmt as a real stmt.
9272 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
9273 v_may_def def and use through a struct instead of 2 array elements.
9274 (struct v_may_def_optype_d): Use v_may_def_operand_type.
9275 (struct stmt_operands_d): New. Struct for storing all operand vectors.
9276
a77655b1
NC
92772004-08-11 Nick Clifton <nickc@redhat.com>
9278
9279 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
9280 this funciton's behaviour. Return true when the current function
9281 has a section attribute and -mlong-calls is in effect.
9282 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
9283 short-call marker when -mlong-calls is in effect and the function
9284 has a section attribute.
9285
6f4a43e0
ZW
92862004-08-10 Zack Weinberg <zack@codesourcery.com>
9287
9288 * stmt.c (expand_return): If asked to return the RESULT_DECL,
9289 just call expand_value_return on result_rtl.
9290
1a186ec5
RH
92912004-08-10 Richard Henderson <rth@redhat.com>
9292
9293 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
9294 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
9295 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
9296 (add_location_or_const_value_attribute): ... not here. Use
9297 loc_descriptor_from_tree if possible.
9298 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
9299 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
9300 values specially.
9301 (loc_descriptor_from_tree): New. Update callers.
9302 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
9303 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
9304 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
9305 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
9306 and BUILT_IN_STACK_RESTORE.
9307 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
9308 * stmt.c (expand_stack_alloc): Remove.
9309 * tree-mudflap.c (mx_register_decls): Don't look for
9310 BUILT_IN_STACK_ALLOC.
9311 * tree-nested.c (convert_local_reference): Likewise.
9312 * tree.h (DECL_VALUE_EXPR): New.
9313
7109c195
RH
93142004-08-10 Richard Henderson <rth@redhat.com>
9315
bf4ccdd6
RH
9316 * stor-layout.c (round_up): Check for 0/1 before dividing.
9317 (round_down): Likewise.
9318
7109c195
RH
9319 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
9320
b3f8d95d
MM
93212004-08-09 Mark Mitchell <mark@codesourcery.com>
9322
9323 * config.gcc (arm*-*-eabi*): New target.
9324 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
9325 (TARGET_LIB_INT_CMP_BIASED): Likewise.
9326 * expmed.c (expand_divmod): Try a two-valued divmod function as a
9327 last resort.
9328 * gthr.h: Remove bogus tokens at end of #pragma.
9329 * optabs.c (expand_twoval_binop_libfunc): New function.
9330 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
9331 (prepare_float_lib_cmp): Try reversing the condition.
9332 (debug_optab_libfuncs): New function.
9333 * optabs.h (expand_twoval_binop_libfunc): Declare.
9334 * config/arm/arm.c (arm_init_libfuncs): New function.
9335 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
9336 (TARGET_INIT_LIBFUNCS): Define it.
9337 * config/arm/arm.h (TARGET_BPABI): New macro.
9338 * config/arm/arm-protos.h
9339 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
9340 * config/arm/bpabi.S: New file.
9341 * config/arm/bpabi.c: Likewise.
9342 * config/arm/bpabi.h: Likewise.
9343 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
9344 (__aeabi_drsub): Likewise.
9345 (__aeabi_dsub): Likewise.
9346 (__aeabi_dadd): Likewise.
9347 (__aeabi_ui2d): Likewise.
9348 (__aeabi_i2d): Likewise.
9349 (__aeabi_f2d): Likewise.
9350 (__aeabi_dmul): Likewise.
9351 (__aeabi_ddiv): Likewise.
9352 (__aeabi_cdrcmple): Likewise.
9353 (__aeabi_cdcmpeq): Likewise.
9354 (__aeabi_cdcmple): Likewise.
9355 (__aeabi_dcmpeq): Likewise.
9356 (__aeabi_dcmplt): Likewise.
9357 (__aeabi_dcmple): Likewise.
9358 (__aeabi_dcmpge): Likewise.
9359 (__aeabi_dcmpgt): Likewise.
9360 (__aeabi_dcmpun): Likewise.
9361 (__aeabi_d2iz): Likewise.
9362 (__aeabi_d2uiz): Likewise.
9363 (__aeabi_d2f): Likewise.
9364 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
9365 (__aeabi_frsub): Likewise.
9366 (__aeabi_fsub): Likewise.
9367 (__aeabi_fadd): Likewise.
9368 (__aeabi_ui2f): Likewise.
9369 (__aeabi_i2f): Likewise.
9370 (__aeabi_fmul): Likewise.
9371 (__aeabi_fdiv): Likewise.
9372 (__aeabi_cfrcmple): Likewise.
9373 (__aeabi_cfcmpeq): Likewise.
9374 (__aeabi_cfcmple): Likewise.
9375 (__aeabi_fcmpeq): Likewise.
9376 (__aeabi_fcmplt): Likewise.
9377 (__aeabi_fcmple): Likewise.
9378 (__aeabi_fcmpge): Likewise.
9379 (__aeabi_fcmpgt): Likewise.
9380 (__aeabi_fcmpun): Likewise.
9381 (__aeabi_f2iz): Likewise.
9382 (__aeabi_f2uiz): Likewise.
9383 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
9384 (__aeabi_uidivmod): New function or alias.
9385 (__aeabi_idivmod): Likewise.
9386 (__aeabi_idiv0): Likewise.
9387 (__aeabi_ldiv0): Likewise.
9388 (__aeabi_llsr): Likewise.
9389 (__aeabi_lasr): Likewise.
9390 (__aeabi_llsl): Likewise.
9391 (bpabi.S): Include it.
9392 * config/arm/libgcc-bpabi.ver: New file.
9393 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
9394 (LINK_SPEC): Remove.
9395 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
9396 __aeabi_ulcmp.
9397 * config/arm/t-bpabi: New file.
9398 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
9399 (TARGET_LIB_INT_CMP_BIASED): Likewise.
6f4a43e0 9400
fba73eb1
DE
94012004-08-10 David Edelsohn <edelsohn@gnu.org>
9402
9403 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
9404 * config/rs6000/rs6000.md (clrmemsi): New pattern.
9405 * config/rs6000/rs6000.c (expand_block_clear): New function.
9406 (expand_block_move): Convert alignment to bits. Use SImode and
9407 HImode for unaligned addresses if not STRICT_ALIGNMENT.
9408
94092004-08-10 Caroline Tice <ctice@apple.com>
c295317d
CT
9410
9411 * varasm.c (unlikely_section_label): New global variable.
9412 (unlikely_text_section_name): New global variable.
9413 (text_section): Remove alignment statement.
6f4a43e0 9414 (unlikely_text_section): Remove alignment statement; use
c295317d
CT
9415 unlikely_section_label rather than hard-coded string.
9416 (assemble_start_function): Initialize unlikely_section_label and
9417 unlikely_text_section_name; make sure cold section is properly
9418 aligned at start of function; output unlikely_section_label if
9419 appropriate.
9420
68f9c5e2
UW
94212004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
9422
9423 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
9424 * config/s390/s390.c (s390_canonicalize_comparison): New function.
9425 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
9426 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
9427 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
9428 ("*tmqi_mem"): Remove SUBREG from pattern.
9429 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
9430 ("*andsi3_cconly"): Likewise.
6f4a43e0 9431
22116d84
L
94322004-08-10 H.J. Lu <hongjiu.lu@intel.com>
9433
9434 PR target/16909
9435 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
9436
c75095b2
JJ
94372004-08-10 Janis Johnson <janis187@us.ibm.com>
9438
9439 * doc/sourcebuild.texi (compat testing): Document available test
9440 framework commands. Use the preferred spelling of DejaGnu.
9441
98975653
DB
94422004-08-10 Daniel Berlin <dberlin@dberlin.org>
9443
9444 * lambda.h: Add matrix type, and prototypes for remainder of
9445 matrix and vector functions.
9446 (lambda_vector_mult_const): New function.
9447 (lambda_vector_negate): Ditto.
9448 (lambda_vector_add): Ditto.
9449 (lambda_vector_add_mc): Ditto.
9450 (lambda_vector_copy): Ditto.
9451 (lambda_vector_zerop): Ditto.
9452 (lambda_vector_equal): Ditto.
9453 (lambda_vector_min_nz): Ditto.
9454 (lambda_vector_first_nz): Ditto.
9455 (lambda_vector_matrix_mult): Ditto.
9456 * lambda-mat.c: New file.
9457 * Makefile.in (lambda-mat.o): New.
9458
68b9f53b
AM
94592004-08-10 Andrew MacLeod <amacleod@redhat.com>
9460
9461 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
9462 after linking stmt into the program.
9463 (bsi_remove): Don't call modify_stmt.
6f4a43e0 9464 * tree-complex.c (update_complex_assignment,
68b9f53b 9465 expand_complex_comparison): Call modify_stmt after changing the stmt.
6f4a43e0 9466 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
68b9f53b
AM
9467 removing the stmt.
9468 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
9469 the stmt, and only if needed.
9470 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
9471 expression.
9472 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
9473 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
9474 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
6f4a43e0 9475 (eliminate_redundant_computations): Don't pass an annotation. Call
68b9f53b
AM
9476 modify_stmt rather than setting the annotation directly.
9477 (record_equivalences_from_stmt): Remove unused local 'j'.
9478 (cprop_operand): Take a stmt rather than an annotation as a parameter.
9479 Call modify_stmt.
9480 (cprop_into_stmt): Pass stmt rather than annotation.
9481 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
6f4a43e0 9482 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
68b9f53b
AM
9483 modify_stmt.
9484 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
9485
01c98570
JM
94862004-08-10 Jason Merrill <jason@redhat.com>
9487
6c9c4526 9488 PR middle-end/16948
01c98570
JM
9489 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
9490 the RESULT_DECL.
9491
b2ddaebb
GK
94922004-08-10 Geoffrey Keating <geoffk@apple.com>
9493
9494 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
9495 hash function.
9496
23657388
RS
94972004-08-10 Roger Sayle <roger@eyesopen.com>
9498
9499 * config/mips/mips.md: New reciprocal square root patterns that
9500 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
9501
c9ca9b88
PB
95022004-08-10 Paul Brook <paul@codesourcery.com>
9503
9504 * config/arm/arm-protos.h (arm_set_return_address,
9505 thumb_set_return_address): Add prototypes.
9506 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
9507 * config/arm/arm.c (arm_compute_func_type,
9508 use_return_insn, arm_compute_save_reg0_reg12_mask,
9509 arm_compute_save_reg_mask, arm_output_function_prologue,
9510 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
9511 current_function_calls_eh_return.
9512 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
9513 old eh code.
9514 (arm_set_return_address, thumb_set_return_address): New functions.
9515 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
9516 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
9517 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
9518 (epilogue): Use the stackadj register.
9519 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
9520
45d78e7f
JJ
95212004-08-10 Jakub Jelinek <jakub@redhat.com>
9522
9523 PR target/3144
9524 * expr.c (move_by_pieces_ninsns): Add max_size argument.
9525 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
9526 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
9527 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
9528 but using MOVE_RATIO.
9529 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
9530 (can_store_by_pieces): Change max_size type to unsigned int.
9531 (store_by_pieces_1): Likewise. Pass max_size to
9532 move_by_pieces_ninsns.
9533 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
9534 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
9535 to move_by_pieces_ninsns.
9536 (STORE_BY_PIECES_P): Define.
9537 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
9538 to move_by_pieces_ninsns.
9539 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
9540
9541 * config/i386/i386.h (CLEAR_RATIO): Define.
9542
25f3e06c
PB
95432004-08-09 Paolo Bonzini <bonzini@gnu.org>
9544
9545 * expr.c (expand_expr_real_1): Add back code that was not dead.
9546
6a3203c8
AP
95472004-08-09 Andrew Pinski <apinski@apple.com>
9548
9549 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
9550 which is found to be compatible before returning the aliasing set.
9551
b9bfca81
DJ
95522004-08-09 Daniel Jacobowitz <dan@debian.org>
9553
9554 * ggc-zone.c (struct alloc_zone): Add statistics counters.
9555 (always_collect): New flag.
9556 (ggc_alloc_zone_1): Update statistics support. Don't include
9557 overhead in allocated counter.
9558 (sweep_pages): Update allocated counter for large pages. Don'y
9559 include overhead.
9560 (ggc_collect_1): Always collect.
9561 (ggc_collect): Honor always_collect flag. Sum all zones to decide
9562 whether to collect.
9563 (SCALE, LABEL): New macros.
9564 (ggc_print_statistics): Add statistics support.
9565
fdded401
RS
95662004-08-09 Roger Sayle <roger@eyesopen.com>
9567
9568 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
9569 (init_expmed): Fix potential overrun problem with "all.reg".
9570 (expand_sdiv2_pow2): Add an alternate implementation for signed
9571 division, if the target provides a suitable conditional move insn.
9572
9d8646d7
PB
95732004-08-09 Paul Brook <paul@codesourcery.com>
9574 Richard Henderson <rth@redhat.com>
9575
9576 * unwind-dw2.c (uw_install_context_1): Update target saved stack
9577 pointer.
9578
d37e6b50
GK
95792004-08-09 Geoffrey Keating <geoffk@apple.com>
9580
9581 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
9582 Check DATA limit only if there's no AS limit. Ignore insanely
9583 low DATA limits.
9584 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
9585 but take care that the AS limit isn't overrun.
9586 * doc/invoke.texi: Update documentation of min-heapsize parameter.
9587
56b043c8
JL
95882004-08-09 Jeff Law <law@redhat.com>
9589
9590 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
9591 (tree-ssa-threadupdate.o): Add dependencies.
9592 * tree-ssa-threadupdate.c: New file.
9593 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
9594 (rewrite_vars_out_of_ssa): Remove prototype.
9595 (cleanup_tree_cfg): Returns a bool.
9596 * tree.h (thread_through_all_blocks): Prototype.
9597 * tree-outof-ssa.c (SSANORM_*): Move into here.
9598 (remove_ssa_form): Now static.
9599 (rewrite_vars_out_of_ssa): Kill.
9600 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
9601 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
9602 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
9603 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
9604 anything was changed.
9605 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
9606 from the PHI's annotation rather than the edge associated with
9607 the new argument.
9608 * tree-ssa-dom.c (redirection_edges): Kill.
9609 (redirect_edges_and_update_ssa_graph): Kill.
9610 (tree_ssa_dominator_optimize): Do not reset forwardable flag
9611 for blocks anymore. Do not initialize redirection_edges.
9612 Call thread_through_all_blocks. Simplify code for cleanup
9613 of the CFG and iterating. No longer call cleanup_tree_cfg
9614 outside the iteration loop.
9615 (thread_across_edge): No longer mess with forwardable blocks.
9616
9b305d55
ZW
96172004-08-09 Zack Weinberg <zack@codesourcery.com>
9618
9619 * explow.c (memory_address): Use memory_address_p.
9620 * recog.c (general_operand): Likewise.
9621 * regrename.c: No need to define REG_OK_STRICT.
9622
27fb79ad
SB
96232004-08-09 Steven Bosscher <stevenb@suse.de>
9624
9625 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
9626 New timers.
9627 * gcse.c: Include timevar.h.
9628 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
9629 and global_copy_prop_count.
9630 (local_const_prop_count, local_copy_prop_count): New static globals.
9631 (gcse_main): Set the right timevar for each pass.
9632 (cprop_jump): Increment global_const_prop_count when a constant is
9633 propagated. Add "GLOBAL" to dump output.
9634 (cprop_insn): Increment global_const_prop_count when a constant is
9635 propagated, or global_copy_prop_count when a copy is propagated.
9636 (do_local_cprop): Likewise for local_const_prop_count and
9637 local_copy_prop_count.
9638 (one_cprop_pass): Initialize const/cprop counters to zero.
9639 Print out results of local and global const/cprop separately.
9640 (bypass_block): Break over-length line.
702d4b73
SB
9641 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
9642 for bb-reorder.o and tracer.o.
27fb79ad 9643
7efcb746
PB
96442004-08-09 Paolo Bonzini <bonzini@gnu.org>
9645
9646 * Makefile.in (GTFILES): Remove stmt.c
9647 (stmt.o): Do not depend on gt-stmt.h.
9648 * emit-rtl.c (emit_line_note): Do not call
9649 set_file_and_line_for_stmt.
9650 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
9651 do everything.
9652 * function.c (free_after_parsing): Do not free STMT field.
9653 (allocate_struct_function): Do not call init_stmt_for_function.
9654 (assign_stack_temp_for_type): Do not accept values of keep
9655 other than 0 or 1.
9656 (init_temp_slots): Do not initialize removed variables.
9657 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
9658 and X_VAR_TEMP_SLOT_LEVEL fields.
9659 * rtl.h (set_file_and_line_for_stmt): Remove.
9660 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
9661 struct stmt_status, cond_stack, case_stack, nesting_stack,
9662 nesting_depth, emit_locus, set_file_and_line_for_stmt,
9663 same_case_target_p, init_stmt_for_function, emit_nop,
9664 expand_start_cond, expand_start_elseif, expand_start_else,
9665 expand_elseif, expand_end_cond): Remove.
9666 (preserve_subexpressions_p): Remove references to CFUN->STMT.
9667 (expand_start_case, expand_end_case_type): Remove, merge into...
9668 (expand_case): ... this one, including other bits from
9669 expand_expr_real_1. Inline same_case_target_p. Turn members
9670 of CASE_STACK into local variables.
9671 (emit_case_bit_tests): Inline same_case_target_p.
9672 (add_case_node): Add HEAD argument, return new head of the list,
9673 do not handle default label here.
9674 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
9675 expand_start_elseif, current_nesting_level, expand_start_case,
9676 expand_end_case_type, expand_end_case, add_case_node,
9677 init_stmt_for_function, expand_elseif): Remove prototypes.
9678 (expand_case): Add prototype.
9679
c4d70ce3
PB
96802004-08-09 Paolo Bonzini <bonzini@gnu.org>
9681
9682 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
9683
96842004-08-09 Paolo Bonzini <bonzini@gnu.org>
e5bacf32
PB
9685
9686 * expr.c (var_rtx): Remove.
9687 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
9688 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
9689 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
9690 Abort.
9691 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
9692 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
9693 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
9694
d72372e4
MH
96952004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
9696 Ayal Zaks <zaks@il.ibm.com>
9697
9698 * common.opt (freschedule-modulo-scheduled-loops): New flag.
9699 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
9700 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
9701 when -freschedule-modulo-scheduled-loops flag is not specified.
9702 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
9703 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
9704 More accurate placing of insn in row of partial schedule.
9705 (ps_insn_find_column): New function.
9706 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
9707 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
9708 (schedule_region): Use sched_is_disabled_for_current_region_p.
9709 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
9710
0737fbff
L
97112004-08-07 H.J. Lu <hongjiu.lu@intel.com>
9712
9713 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
9714 change.
9715
11c4576f
L
97162004-08-07 H.J. Lu <hongjiu.lu@intel.com>
9717
9718 * config/i386/i386.c (ix86_expand_clrmem): Properly call
9719 gen_strset for 64bit target.
9720
34def210
OH
97212004-08-07 Olivier Hainque <hainque@act-europe.fr>
9722
9723 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
9724
5201931e
JM
97252004-08-07 Jason Merrill <jason@redhat.com>
9726
cc77ae10
JM
9727 Make return in memory explicit.
9728 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
9729 (assign_parm_find_data_types): Remove code for old front end
9730 invisible reference handling.
9731 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
9732 (expand_function_end): Likewise.
9733 * gimplify.c (gimplify_return_expr): Handle a dereferenced
9734 RESULT_DECL.
9735 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
9736 (declare_return_variable): Handle DECL_BY_REFERENCE.
9737 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
9738 (cp_genericize_r): Use convert_from_reference.
9739 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
9740 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
9741
5201931e
JM
9742 * c-common.c (c_warn_unused_result): Check TREE_USED before
9743 warning about a CALL_EXPR with an unused value.
9744
2ed9e527
MM
97452004-08-06 Mark Mitchell <mark@codesourcery.com>
9746
9747 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
9748 to the compiler. Use -fshort-wchar by default.
9749
12183e0f
PH
97502004-08-06 Pat Haugen <pthaugen@us.ibm.com>
9751
9752 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
9753 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
9754 threshhold.
9755 * doc/invoke.texi (param): Document min-crossjump-insns.
9756
eaac4679
RS
97572004-08-06 Richard Sandiford <rsandifo@redhat.com>
9758
9759 PR c/13282
9760 * c.opt (Wmissing-field-initializers): New option.
9761 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
9762 * c-typeck.c (pop_init_level): Guard the missing field warning with
9763 warn_missing_field_initializers rather than extra_warnings.
9764 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
9765 some of the explanation from...
9766 (-Wextra): ...here. Say that the missing field warning can be
9767 seperately controlled by -Wmissing-field-initializers.
9768
caad9f81
PB
97692004-08-06 Paolo Bonzini <bonzini@gnu.org>
9770
9771 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
9772 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
9773 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
9774 * tree.def (ENTRY_VALUE_EXPR): Remove.
9775
6b32b628
JJ
97762004-08-06 Jakub Jelinek <jakub@redhat.com>
9777
9778 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
9779 the places where it is actually needed. Don't use repz; stosb
9780 for -Os with sufficiently small constant sizes.
9781 For sufficiently small repz; stos{l,q} repeat counts use a sequence
9782 of stos{l,q} instructions instead.
9783
6797f908
ZD
97842004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9785
9786 PR tree-optimization/16807
9787 * loop-iv.c (dump_iv_info): Dump invariants correctly.
9788 (iv_subreg, iv_extend): Express value of invariant purely in
9789 base field.
9790
866cf037
MM
97912004-08-06 Mark Mitchell <mark@codesourcery.com>
9792
9793 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
9794 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
9795
9652c531 97962004-08-06 Roman Zippel <zippel@linux-m68k.org>
9b305d55 9797
27fb79ad
SB
9798 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
9799 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
9800 pre_dec_operand.
9801 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
9802 pattern until reload is finished to allow better code generation
9803 and split them completely into separate instrunctions.
9804 (*andsi3_split): New pattern.
9652c531 9805
b2ca3702
MM
98062004-08-05 Mark Mitchell <mark@codesourcery.com>
9807
9808 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
9809 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
9810 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
9811 * tree.h (handle_dll_attribute): Declare. Test
9812 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
9813 * c-common.h (c_determine_visibility): Declare.
9814 * c-common.c (c_determine_visibility): New function.
9815 * c-decl.c (finish_decl): Use it.
9816 (finish_function): Likewise.
9817 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
9818 zero, by default. Use #if, not #ifdef, to test it.
9819 * config/arm/arm.c (arm_attribute_table): Use
9820 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
9821 #if.
9822 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
9823 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
9824 to 1.
9825 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
9826 * config/i386/i386.c (ix86_attribute_table): Use
9827 handle_dll_attribute for dllimport/dllexport. Test
9828 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
9829 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
9830 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
9831 it to 1.
9832 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
9833 with #if.
9834 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
9835 it to 1.
9836 * doc/extend.texi (dllexport): Clarify and correct documentation.
9837 (dllimport): Likewise.
9838 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
9839 handle_dll_attribute.
9b305d55 9840
c913f08a
ZD
98412004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9842
9843 * tree-ssa-loop-manip.c: New file.
9844 * Makefile.in (tree-ssa-loop-manip.o): Add.
9845 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
9846 Declare.
9847 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
9848 form.
9849 (tree_ssa_loop_done): Verify loop closed ssa form.
9850 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
9851
d4482715
JDA
98522004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9853
9854 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
9855 pa_asm_output_aligned_local): New functions.
9856 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
9857 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
9858 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
9859 pa_asm_output_aligned_common.
9860 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
9861 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
9862 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
9863 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
9864 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
9865 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
9866 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
9867 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
9868 common data.
9869
21149a79
AP
98702004-08-05 Andrew Pinski <apinski@apple.com>
9871
9872 * objc/objc-act.c (build_objc_string_object): Mark the address
9873 expression as constant.
9874
d5861a7a
DE
98752004-08-05 David Edelsohn <edelsohn@gnu.org>
9876
9877 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
9878 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
9879 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
9880
0a2b72a6
JM
98812004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
9882
9883 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
9884 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
9885 out, and associated obsolete comments.
9886
ca7a3bd7
NS
98872004-08-05 Nathan Sidwell <nathan@codesourcery.com>
9888
9889 * tree.h (force_fit_type): Return a tree, take three flags.
9890 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
9891 TREE_CONSTANT_OVERFLOW here.
9892 (int_const_binop, const_binop): Adjust.
9893 (size_int_type): Do sign extension here.
9894 (fold_convert_const, optimize_bit_field_compare,
9895 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
9896 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
9897 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
9898
d36837f4
ZD
98992004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9900
9901 PR tree-optimization/16864
9902 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
9903 for ssa names without default_def.
9904
ea5f7a19
RS
99052004-08-05 Richard Sandiford <rsandifo@redhat.com>
9906
9907 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
9908 frame pointer, restore eax with an ebp-relative address.
9909
0e6df31e
GK
99102004-08-04 Geoffrey Keating <geoffk@apple.com>
9911
9912 PR 14516
9913 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
9914 * c-common.h (make_rtl_for_local_static): Delete.
9915 * c-decl.c (shadow_tag_warned): Clean up comment.
9916 (finish_decl): Clean up spacing. Use set_user_assembler_name when
9917 appropriate. Don't pass asmspec to rest_of_decl_compilation.
9918 * c-semantics.c (make_rtl_for_local_static): Delete.
9919 * expr.c (init_block_move_fn): Use set_user_assembler_name.
9920 (init_block_clear_fn): Likewise.
9921 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
9922 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
9923 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
9924 * tree.h (make_decl_rtl): Remove second parameter.
9925 (set_user_assembler_name): New.
9926 * varasm.c (set_user_assembler_name): New.
9927 (make_decl_rtl): Remove second parameter. Update callers in many
9928 files.
9929
4f587cb0
AN
99302004-08-05 Adam Nemet <anemet@lnxw.com>
9931
9932 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
9933 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
9934 to LynxOS 4.0.
9935 * gthr-lynx.h: New file.
9936 * config/lynx-ng.h: Remove file.
9937 * config/lynx.h: Update to LynxOS 4.0.
9938 * config/t-lynx: New file.
9939 * config/i386/lynx-ng.h: Remove file.
9940 * config/i386/lynx.h: Update to LynxOS 4.0.
9941 * config/rs6000/lynxbase.h: Remove file.
9942 * config/rs6000/lynx.h: Update to LynxOS 4.0.
9943 * config/rs6000/t-lynx: New file.
9944 * doc/install.texi (Options specification): Remove reference to
9945 LynxOS from systems where --with-gnu-as makes a difference.
9946
85291069
JM
99472004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
9948
9949 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
9950 __UINTMAX_TYPE__.
9951 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
9952 __INTMAX_MAX__.
9953 (c_cpp_builtins): Call it.
9954 * doc/cpp.texi: Update.
9955
30a555d9
DE
99562004-08-04 David Edelsohn <edelsohn@gnu.org>
9957
9958 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
9959 cost.
9960
878f99d2
JH
99612004-08-04 Jan Hubicka <jh@suse.cz>
9962
9963 * basic-block.h (profile_staus): New global variable.
9964 * cfg.c (profile_status): Declare.
9965 (check_bb_profile): Break out from ....; use profile_status
9966 (dump_flow_info): ... here.
9967 * cfgbuild.c (find_basic_blocks): Set profile_status.
9968 * cfgexpand.c (tree_expand_cfg): Likewise.
9969 * predict.c (estimate_probability): Likewise.
9970 * profile.c (branch_prob): Likewise.
9971 * tree-cfg.c (build_tree_cfg): Likewise.
9972 (dump_function_to_file): Use check_bb_profile.
9973 * tree-pretty-print (dump_bb_header): Likewise.
9974 * tree-profile.c (do_tree_profiling): Cleanup.
9975
7e7ec48e
ZW
99762004-08-04 Zack Weinberg <zack@codesourcery.com>
9977
9978 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
9979 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
9980 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
9981 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
9982 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
9983 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
9984 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
9985 (ggc-none.o, errors.o): Move rule to generators section;
9986 correct dependencies.
9987 (min-insn-modes.o): Move rule to generators section; remove
9988 unnecessary explicit command; correct dependencies.
9989 (print-rtl.o, print-rtl1.o): Correct dependencies.
9990 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
9991 (mostlyclean): Update.
9992
9993 * errors.c: Include bconfig.h not config.h. Correct comment.
9994 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
9995 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
9996 * print-rtl.c: Don't include tm_p.h.
9997
9998 * rtl.h: Move forward-decl of struct function down where it's
9999 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
10000 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
10001
b0382c67
ZD
100022004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10003 Jeff Law <law@redhat.com>
10004
10005 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
10006 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
10007 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
10008 manipulate the duplicated ssa names.
10009 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
10010 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
10011 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
10012 New functions.
10013 (release_ssa_name): Do not release ssa names that may have multiple
10014 definitions.
10015 * tree.h (release_ssa_name_force, mark_for_rewrite,
10016 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
10017 marked_ssa_names): Declare.
10018 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
10019 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
10020 Update call to rewrite_ssa_into_ssa.
10021
63c5b495
MM
100222004-08-04 Mark Mitchell <mark@codesourcery.com>
10023
10024 * defaults.h (TARGET_DECLSPEC): New macro.
10025 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
10026 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
b2ca3702 10027 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
63c5b495
MM
10028 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
10029 __declspec support.
10030 (TARGET_DECLSPEC): Define.
10031 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
10032 __declspec support.
10033 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
10034 __declspec support.
10035 (TARGET_DECLSPEC): Define.
10036 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
10037 __declspec support.
10038 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
10039 support.
10040 * doc/tm.texi (TARGET_DECLSPEC): Document.
10041
10042 * doc/extend.texi: Fix typo in comment.
10043
44d10c10
PB
100442004-08-04 Paul Brook <paul@codesourcery.com>
10045
10046 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
10047 (TARGET_CXX): Use it.
10048 * target.h (struct gcc_target): Add cdtor_returns_this.
10049 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
10050 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
10051 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
10052
5e9754af
NS
100532004-08-03 Nathan Sidwell <nathan@codesourcery.com>
10054
10055 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
10056 low/high pair. Do range checking directly.
10057 (interpret_integer): Adjust.
10058
2acc29bd
NC
100592004-08-04 Nick Clifton <nickc@redhat.com>
10060
10061 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
10062 GCC ABI.
10063 * doc/invoke.texi: Document this new switch and also the -mrenesas
10064 switch.
10065
2496942a
NS
100662004-08-04 Nathan Sidwell <nathan@codesourcery.com>
10067
10068 * cfglayout.c (insn_locators_initialize): Update the current
10069 location before initializing a location.
10070
7e2e8179
ZW
100712004-08-03 Zack Weinberg <zack@codesourcery.com>
10072
403f8503
ZW
10073 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
10074 (dbxout_function_end): Return after emitting the "Lscope" symbol
10075 under the same conditions that this function formerly wasn't called.
10076 Add explanatory comments.
10077
bcc7f708 10078 PR 14860
ca043393
ZW
10079 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
10080 on the new decl.
10081
bcc7f708 10082 PR 13956
7e2e8179
ZW
10083 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
10084 functions, broken out of dbxout_block.
10085 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
10086 stabs too, if it contains symbols. Use the begin_label and
10087 the Lscope label (emitted by dbxout_function_end) for the
10088 range of this block.
10089
5d75ba94
NN
100902004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
10091
10092 * doc/install.texi: Update autoconf version requirements.
10093
2e4e72b1
ZW
100942004-08-03 Zack Weinberg <zack@codesourcery.com>
10095
10096 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
10097 * recog.c (general_operand, immediate_operand, nonmemory_operand)
10098 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
10099 * regclass.c (record_reg_classes): Likewise.
10100 * reload.c (find_reloads): Likewise.
10101 * reload1.c (reload): Likewise.
10102
f9942f4e
ZW
101032004-08-03 Zack Weinberg <zack@codesourcery.com>
10104
10105 * gensupport.c (init_md_reader_args_cb): Renamed from
10106 init_md_reader_args. Add third option, callback function for
10107 parsing program-specific options. Add diagnosis of incorrect
10108 number of input files.
10109 (init_md_reader): Fold into init_md_reader_args_cb.
10110 (init_md_reader_args): Now a thin wrapper around
10111 init_md_reader_args_cb.
10112 * gensupport.h: Update prototypes.
10113
10114 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
10115 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
10116 * genrecog.c: No need to diagnose lack of an input file;
10117 init_md_reader_args will handle it.
10118 * genconditions.c: Likewise, and use init_md_reader_args.
10119 * genconstants.c: Likewise, and no need to call read_md_rtx.
10120
9cbe78fb
JM
101212004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
10122
10123 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
10124 declarations.
10125
3e558e80
MS
101262004-08-03 Mike Stump <mrs@apple.com>
10127
10128 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
10129 for frameworks.
10130 * doc/invoke.texi (Darwin Options): Update to reflect above.
10131
a0fac73d
RS
101322004-08-03 Roger Sayle <roger@eyesopen.com>
10133
10134 PR middle-end/16790
10135 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
10136 truncations, not just global truncations.
10137
cddbddb7
AP
101382004-08-03 Andrew Pinski <apinski@apple.com>
10139
10140 PR bootstrap/16865
10141 * loop-iv.c (simplify_using_assignment): Initialize lhs.
10142
bebf829d
PB
101432004-08-03 Paul Brook <paul@codesourcery.com>
10144
10145 * gcc/doc/install.texi: Document MPFR requirement.
10146
cddbddb7 101472004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
3b0727a0 10148
f9942f4e
ZW
10149 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
10150 and mmap() explicitly instead of relying on preset autoconf cache
3b0727a0
MR
10151 variables.
10152 * configure: Regenerate.
10153
f6bc51cb
L
101542004-08-03 H.J. Lu <hongjiu.lu@intel.com>
10155
10156 PR target/16570
10157 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
10158 to tmake_file.
10159 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
10160 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
10161 to tmake_file.
10162
10163 * config/i386/t-gmm_malloc: New file.
10164 * config/i386/t-pmm_malloc: Likewise.
f9942f4e 10165
f6bc51cb
L
10166 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
10167
101682004-08-03 H.J. Lu <hongjiu.lu@intel.com>
0ddcd94f 10169