1 2005-12-22 Andrew Pinski <pinskia@physics.uc.edu>
4 * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
7 2005-12-22 Zdenek Dvorak <dvorakz@suse.cz>
8 Steven Bosscher <stevenb@suse.de>
10 * df.c (df_bitmaps_free): Only work for bbs for that structures are
12 (df_bb_modify): Realloc tables to the new index.
13 (df_find_use): New function.
14 (df_find_def, df_reg_used): Handle subregs.
15 * df.h (df_find_use): Declare.
17 * loop-invariant.c: Include hashtab.h.
18 (struct invariant): Remove processed field, add eqto and reg fields.
19 (struct invariant_expr_entry): New.
20 (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
21 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
22 find_identical_invariants, merge_identical_invariants): New functions.
23 (create_new_invariant): Return the new invariant. Initialize new
25 (find_invariants): Call merge_identical_invariants.
26 (get_inv_cost, best_gain_for_invariant, set_move_mark,
27 move_invariant_reg): Handle equivalent invariants.
28 * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
30 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
33 * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
34 number is a single digit '0'.
36 2005-12-22 Kazu Hirata <kazu@codesourcery.com>
38 PR tree-optimization/23518
39 * fold-const.c (make_range): Don't move a constant to the
40 other side of the comparison if the type is signed and -fwrapv
43 2005-12-22 Kazu Hirata <kazu@codesourcery.com>
45 * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
48 2005-12-21 Joseph S. Myers <joseph@codesourcery.com>
51 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
54 2005-12-21 Andrew Haley <aph@redhat.com>
57 * recog.c (peephole2_optimize): Don't peephole any
58 RTX_FRAME_RELATED_P insns.
60 2005-12-21 Kazu Hirata <kazu@codesourcery.com>
62 * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
63 fold_build2 with fold_binary.
64 * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
65 Replace fold_build1 with fold_unary.
66 * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
69 2005-12-21 Steven Bosscher <stevenb@suse.de>
71 PR rtl-optimization/25196
72 * postreload-gcse.c (record_last_set_info): Notice stack pointer
73 changes in push insns without REG_INC notes.
75 2005-12-21 Kazu Hirata <kazu@codesourcery.com>
77 PR tree-optimization/25382.
78 * tree-vrp.c (extract_range_from_binary_expr): Extract a range
81 2005-12-21 Janis Johnson <janis187@us.ibm.com>
82 Ben Elliston <bje@au.ibm.com>
84 * configure.ac: Enable C extension for decimal float if invoked
85 with --enable-decimal-float.
86 * doc/install.texi (Configuration): Document it.
87 * configure, config.in: Regenerate.
89 2005-12-20 Mike Stump <mrs@apple.com>
91 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
92 ambiguity between -seg_addr_table and -seg_addr_table_filename.
93 (WORD_SWITCH_TAKES_ARG): Likewise.
94 (LINK_SPEC): Likewise.
96 2005-12-20 Kenneth Zadeck <zadeck@naturalbridge.com>
98 * cfganal.c (flow_reverse_top_sort_order_compute):
99 Renamed to post_order_compute and additional parameter added which
100 allows the inclusion of entry and exit blocks into list.
101 (mark_dfs_back_edges): Fixed comment.
102 (flow_depth_first_order_compute): Renamed to
103 pre_and_rev_post_order_compute additional parameter added which
104 allows the inclusion of entry and exit blocks into list.
105 * global.c (set_up_bb_rts_numbers): Call to
106 flow_reverse_top_sort_order_compute renamed to
108 * var-tracking.c (vt_stack_adjustments): Fixed comment.
109 (vt_find_locations): Call to
110 flow_depth_first_order_compute renamed to
111 pre_and_rev_post_order_compute.
112 * cfgloop.c (flow_find_loops): Ditto.
113 * tree-ssa-reassoc.c (init_reassoc): Ditto.
114 * df.c (df_analyze_1, df_analyze_subcfg): Calls to
115 flow_reverse_top_sort_order_compute renamed to post_order_compute
116 and calls to flow_reverse_top_sort_order_compute renamed to
118 * basic_block.h: Ditto.
121 2005-12-20 Roger Sayle <roger@eyesopen.com>
122 Paolo Bonzini <bonzini@gnu.org>
124 PR rtl-optimization/25115
125 * gcse.c (pre_insert_copy_insn): Fall back to the sole
126 SET in the insn if there is no SET for an
127 expression that is equivalent to EXPR.
129 2005-12-20 Richard Guenther <rguenther@suse.de>
132 * builtins.c (std_gimplify_va_arg_expr): Do not align
133 va frame for zero sized types.
134 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
136 2005-12-20 Kazu Hirata <kazu@codesourcery.com>
138 PR tree-optimization/25501
139 * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
140 used in the PHI argument corresponding to the edge from BB to
143 2005-12-20 Richard Guenther <rguenther@suse.de>
146 2005-12-02 Richard Guenther <rguenther@suse.de>
148 * tree-cfg.c (mark_used_vars): New function.
149 (dump_function_to_file): Dump only used VAR_DECLs.
151 2005-12-19 Roger Sayle <roger@eyesopen.com>
153 * combine.c (try_combine): Improve splitting of binary operators
154 by taking advantage of reassociative transformations.
156 2005-12-19 Jeff Law <law@redhat.com>
158 * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
159 Strip away all type conversions after simplifying the
162 * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
163 cases the forwarder block dominates the destination.
165 2005-12-19 DJ Delorie <dj@redhat.com>
167 * reload1.c (spill_failure): Dump reload data to dump file.
168 (find_reload_regs): Likewise.
170 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
172 PR tree-optimization/24793
173 * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
174 original reference if there are subvars.
175 * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
177 2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com>
179 * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
180 Corrected basic block number calculations for changes in entry and
183 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
185 * tree-flow.h (struct var_ann_d): Change type of
186 may_aliases field to VEC(tree, gc) *.
187 (may_aliases): Declaration changed.
188 * tree-ssa-alias.c (group_aliases, add_may_alias,
189 replace_may_alias, dump_may_aliases_for,
190 is_aliased_with, add_type_alias, new_type_alias):
191 Work with VEC(tree, gc) * instead of varray.
192 * tree-flow-inline.h (may_aliases): Ditto.
193 * tree-ssa.c (verify_flow_insensitive_alias_info,
194 verify_name_tags): Ditto.
195 * tree-ssa-operands.c (add_stmt_operand): Ditto.
197 2005-12-19 J"orn Rennecke <joern.rennecke@st.com>
199 * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
202 2005-12-19 J"orn Rennecke <joern.rennecke@st.com>
204 * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
207 2005-12-19 Ben Elliston <bje@au.ibm.com>
209 * doc/install.texi (Configuration): Typo in Fortran subheading.
211 2005-12-19 Nathan Sidwell <nathan@codesourcery.com>
213 * config/mt/mt.md (decrement_and_branch_until_zero): Add another
214 scratch. Correct its reload split. Adjust its peephole.
215 (doloop_end): Add additional scratch.
217 * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
218 (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
219 (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
220 (mt_builtin_saveregs): Replace with ...
221 (mt_setup_incoming_varargs): ... here. Save just the varadic
223 (mt_va_start): Remove.
224 (mt_reorg_hazard): Ignore USE insns. Don't call set_noop_p.
225 (mt_machine_reorg): Split all insns here.
226 (TARGET_SETUP_INCOMING_VARARGS): Override.
227 * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
229 (EXPAND_BUILTIN_VA_START): Remove.
231 2005-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
233 * flow.c (update_life_info, count_or_remove_death_notes): Fixed
234 latent bug that could happen if update_life_info was called with a
235 blocks parameter and the call to cleanup_cfg actually deleted one
238 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
240 * tree-ssa-structalias.c (update_alias_info): Remove handling
241 of may_be_aliased (SSA_NAME_VAR (op)) case.
243 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz>
245 * tree-flow.h (struct stmt_ann_d): Remove
246 makes_aliased_loads and makes_aliased_stores fields.
247 * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
248 and makes_aliased_loads fields.
249 * tree-ssa-dom.c (eliminate_redundant_computations): Do not
250 use makes_aliased_stores.
251 * tree-ssa-operands.c (clobbered_aliased_loads,
252 clobbered_aliased_stores, ro_call_aliased_loads): Removed.
253 (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
254 add_call_read_ops): Do not set makes_aliased_stores and
255 makes_aliased_loads fields.
256 * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
259 2005-12-18 Geoffrey Keating <geoffk@apple.com>
261 * config/darwin.h: Don't include darwin-sections.def to declare
262 global variables; instead create darwin_section_enum.
263 (darwin_section_enum): New.
264 (darwin_sections): New.
265 * config/darwin.c: Don't include darwin-sections.def to define
267 (darwin_sections): New.
268 (output_objc_section_asm_op): Rewrite to take advantage of
270 (darwin_init_sections): Rewrite to use darwin_sections.
271 (machopic_output_indirection): Update for darwin_sections array.
272 (machopic_select_section): Likewise.
273 (machopic_select_rtx_section): Likewise.
274 (machopic_asm_out_constructor): Likewise.
275 (machopic_asm_out_destructor): Likewise.
276 (darwin_file_end): Likewise.
277 * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
278 * config/i386/i386.c (machopic_output_stub): Likewise.
280 2005-12-18 Richard Guenther <rguenther@suse.de>
282 PR tree-optimization/25481
283 * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
284 don't have a varinfo for.
286 2005-12-18 Jon Grimm <jgrimm2@us.ibm.com>
287 Janis Johnson <janis187@us.ibm.com>
288 Ben Elliston <bje@au.ibm.com>
290 * optabs.c (init_floating_libfuncs): Handle decimal float modes.
291 (init_optabs): Handle libfuncs for decimal float.
292 * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
293 * stor-layout.c (int_mode_for_mode): Likewise.
294 * simplify-rtx.c (simplify_immed_subreg): Likewise.
295 (simplify_unary_operation_1): Skip optimisations for decimal float
297 * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
298 * emit-rtl.c (gen_const_vector): Add assertion check.
299 (init_emit_once): Populate const_tiny_rtx with constants in each
301 * expmed.c (extract_high_half, expand_mult_highpart_optab,
302 expand_mult_highpart): Assert that mode is not a scalar float
304 * expr.c (convert_move): Handle conversion between decimal and
305 binary floats of the same size.
306 * convert.c (convert_to_real): Consider decimal float types when
308 * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
309 describe decimal floating point types.
311 2005-12-18 Ulrich Weigand <uweigand@de.ibm.com>
313 PR rtl-optimization/21041
314 * reload.c (find_reloads_subreg_address): Replace paradoxical
315 subreg of MEM by widened access only if the resulting memory
316 is properly aligned, even on !STRICT_ALIGNMENT targets.
318 2005-12-18 Andreas Krebbel <krebbel1@de.ibm.com>
320 * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
322 2005-12-18 Steven Bosscher <stevenb@suse.de>
324 * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
325 the 2005-12-17 patch to renumber the entry and exit blocks.
327 2005-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
329 * doc/objc.texi (Type encoding): Fix typo.
331 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
333 * tree-tailcall.c (find_tail_calls): Use XNEW.
334 * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
335 (free_all_edge_infos): Use explicit cast to convert from void *.
336 (vrp_free): Likewise.
337 (dom_opt_finalize_block): Likewise.
338 (record_equivalences_from_incoming_edge): Likewise.
339 (thread_across_edge): Likewise. Use XCNEWVEC.
340 (record_cond): Use XCNEW.
341 (record_conditions): Use XNEWVEC.
342 (record_edge_info): Use XCNEWVEC.
343 (lookup_avail_expr): Use XNEW.
344 (record_range): Likewise. Use GGC_NEW.
345 * tree-nested.c (var_map_hash): Use explicit cast to convert from
347 (var_map_eq): Likewise.
348 (lookup_field_for_decl): Likewise.
349 (convert_nonlocal_reference): Likewise.
350 (convert_local_reference): Likewise.
351 (convert_nl_goto_reference): Likewise.
352 (convert_nl_goto_receiver): Likewise.
353 (convert_call_expr): Likewise.
354 (convert_tramp_reference): Likewise.
355 (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
356 (convert_nl_goto_reference): Likewise.
357 (lookup_field_for_decl): Use GGC_NEW.
358 (create_nesting_tree): Use GGC_CNEW.
359 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
360 * tree-ssa-alias.c (init_alias_info): Use XCNEW.
361 (create_alias_map_for): Likewise.
362 (setup_pointers_and_addressables): Use XCNEWVEC.
363 (get_ptr_info): Use GGC_NEW.
364 (used_part_map_eq): Use explicit cast to convert from void *.
365 (up_lookup): Likewise.
366 (up_insert): Use XNEW.
367 (get_or_create_used_part_for): Use XCNEW.
368 (get_tmt_for): Likewise.
369 * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
370 * tree-ssa-pre.c (phi_trans_add): Use XNEW.
371 (bitmap_set_new): Use explicit cast to convert from void *.
373 (insert_into_set): Likewise.
374 (pool_copy_list): Likewise.
375 (phi_translate): Likewise.
376 (create_value_expr_from): Likewise.
377 (insert_aux): Use XCNEWVEC.
378 (compute_avail): Use XNEWVEC.
379 * tree-ssa-live.c (calculate_live_on_entry): Likewise.
380 (sort_coalesce_list): Likewise.
381 (build_tree_conflict_graph): Use XCNEWVEC.
382 * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
383 * tree-ssa-copy.c (init_copy_prop): Likewise.
384 (fini_copy_prop): Likewise.
385 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
387 (record_equiv): Use XNEW.
388 (uncprop_into_successor_phis): Use explicit cast to convert from
390 (uncprop_initialize_block): Likewise.
392 2005-12-18 Dorit Nuzman <dorit@il.ibm.com>
394 PR tree-optimization/24378
395 * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
396 basic-block after loop-versioning.
398 2005-12-18 Jeff Law <law@redhat.com>
400 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
401 to simplify SWITCH_EXPR_CODE moved from here to ...
402 * tree-ssa-forwprop.c (simplify_switch_expr): Here.
403 (tree-ssa-forward_propagate_single_use_vars): Call
404 simplify_switch_expr when appropriate.
406 2005-12-17 Andrew Pinski <pinskia@physics.uc.edu>
408 * doc/objc.texi (Type encoding): Add documentation about encoding
409 complex types and _Bool.
411 2005-12-17 Paul Brook <paul@codesourcery.com>
413 * config/m68k/m68k.md (m68k_output_function_prologue): Always call
414 dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
415 when frame_pointer_needed.
417 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
419 * tree-vn.c (vn_add): Use XNEW.
420 * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
421 (ccp_fold): Likewise.
422 (fold_stmt_r): Use explicit cast to convert from void *.
423 * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
424 (new_temp_expr_table): Likewise.
425 * gimplify.c (lookup_tmp_var): Use XNEW.
426 (gimplify_asm_expr): Use explcit cast to convert from void *.
427 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
428 (get_def_blocks_for): Use XNEW.
429 (add_to_repl_tbl): Likewise.
430 (mark_def_sites): Use explicit cast to convert from void *.
431 (def_blocks_free): Likewise.
432 (mark_def_sites_initialize_block): Likewise.
433 (update_ssa): Use XNEWVEC.
434 * tree-dfa.c (create_var_ann): Use GGC_NEW.
435 (create_stmt_ann): Likewise.
436 (create_tree_ann): Likewise.
437 (referenced_var_insert): Likewise.
438 (set_default_def): Likewise.
439 (referenced_var_lookup_if_exists): Use explicit cast to convert
441 (referenced_var_lookup): Likewise.
442 (default_def): Likewise.
443 (set_default_def): Likewise.
444 * tree-cfg.c (create_bb): Likewise.
445 (edge_to_cases_cleanup): Likewise.
446 (verify_node_sharing): Likewise.
447 (record_switch_edge): Use XNEW.
448 (cleanup_dead_labels): Use XCNEWVEC.
449 (tree_duplicate_sese_region): Use XNEWVEC.
450 * tree-scalar-evolution.c (get_instantiated_value): Likewise.
451 * tree-ssa.c (verify_ssa): Use XCNEWVEC.
452 (int_tree_map_eq): Use explicit cast to convert from void *.
453 * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
454 (__gcov_execl): Likewise.
455 (__gcov_execlp): Likewise.
456 (__gcov_execle): Likewise.
457 * tree-eh.c (struct_ptr_eq): Likewise.
458 (struct_ptr_hash): Likewise.
459 (lookup_stmt_eh_region_fn): Likewise.
460 (outside_finally_tree): Likewise.
461 (find_goto_replacement): Likewise.
462 (make_eh_edge): Likewise.
463 (mark_eh_edge): Likewise.
464 (add_stmt_to_eh_region_fn): Use GGC_NEW.
465 (record_in_finally_tree): Use XNEW.
466 (maybe_record_in_goto_queue): Use XRESIZEVEC.
467 (lower_try_finally_copy): Use XCNEWVEC.
469 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
471 * tree-inline.c (copy_body_r): Use explicit cast when converting
474 (copy_edges_for_bb): Likewise.
475 (remap_decl_1): Likewise.
476 (estimate_num_insns_1): Likewise.
477 * cgraph.c (hash_node): Use explicit cast when converting from
480 (cgraph_create_node): Use GGC_CNEW.
481 (cgraph_create_edge): Use GGC_NEW.
482 (cgraph_remove_node): Use explicit cast when converting from void *.
483 (hash_varpool_node): Likewise.
484 (eq_varpool_node): Likewise.
485 (cgraph_varpool_node): Use GGC_CNEW.
486 * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
487 * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
488 (eq_scev_info): Use explicit cast when converting from void *.
489 (find_var_scev_info): Likewise.
490 (set_instantiated_value): Likewise.
491 (gather_stats_on_scev_database_1): Likewise.
492 * cfgloop.h (simple_loop_desc): Use explicit cast when converting
494 * c-pch.c (c_common_write_pch): Use XNEWVEC.
495 (c_common_read_pch): Likewise.
496 * prefix.c (save_string): Use XNEWVEC.
497 (translate_name): Use explicit cast when converting from void *.
498 * c-ppoutput.c (print_line): Use explicit cast when converting
500 (pp_dir_change): Likewise.
501 * c-cppbuiltin.c (builtin_define_std): Likewise.
502 (builtin_define_with_value): Likewise.
503 (builtin_define_with_value_n): Likewise.
504 (builtin_define_with_int_value): Likewise.
505 (builtin_define_type_max): Likewise.
506 * c-incpath.c (add_env_var_paths): Use XNEWVEC.
507 (add_path): Use XNEW.
508 * c-format.c (check_format_info_main): Use GGC_NEW.
509 (format_type_warning): Use explicit cast when converting from void *.
510 * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
512 (start_init): Likewise.
513 * tree-flow-inline.h (first_referenced_var): Use explicit cast
514 when converting from void *.
515 (next_referenced_var): Likewise.
516 * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
517 * gensupport.c (lookup_predicate): Use explicit cast to convert
519 (init_predicate_table): Use XCNEW instead of xcalloc.
520 * genpreds.c (process_define_predicate): Likewise.
522 2005-12-17 Danny Berlin <dberlin@dberlin.org>
523 Kenneth Zadeck <zadeck@naturalbridge.com>
525 * basic-block.h: Changed basic block numbering so that the entry
526 block is 0 and the exit block is 1. Changed insn iterators so
527 that they are tolerant of blocks with no insns.
528 * regrename.c (copyprop_hardreg_forward): Changed basic block
529 numbering so that the entry block is 0 and the exit block is 1.
530 * sched-ebb.c (sehedule_ebbs): Ditto.
531 * tracer.c (branch_ratio_cutoff): Ditto.
532 * cfgloopmanip.c (fix_loop_structure): Ditto.
533 * cfghooks.c (verify_flow_info): Ditto.
534 * cfg.c (compact_blocks): Ditto.
535 * reorg.c (dbr_schedule): Ditto.
536 * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
537 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
538 calculate_dominance_info): Ditto.
539 * cfganal.c (create_edge_list, print_edge_list,
540 flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
541 flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
542 dfs_enumerate_from): Ditto.
543 * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
544 * ifcvt.c (find_if_case_2): Ditto.
545 * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
546 find_basic_blocks): Ditto.
547 * predict.c (predict_loops, tree_bb_level_predictions,
548 predict_paths_leading_to, propagate_freq): Ditto.
549 * lcm.c (compute_antinout_edge, compute_laterin,
550 compute_available): Ditto.
551 * function.c (thread_prologue_and_epilogue_insns): Ditto.
552 * gcse.c (gcse_main, bypass_jumps): Ditto.
553 * profile.c (compute_branch_probabilities,
554 compute_value_histograms, branch_prob): Ditto.
555 * tree-flow-inline.h (bsi_start, bsi_after_labels,
557 * tree-ssa-phiopt.c (tree_ssa_phiopt,
558 blocks_in_phiopt_order): Ditto.
559 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
560 compute_out, link_btr_uses, migrate_btr_defs): Ditto.
561 * tree-dfa.c (collect_dfa_stats): Ditto.
562 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
563 * cfglayout.c (fixup_reorder_chain): Ditto.
564 * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
565 partition_hot_cold_basic_blocks): Ditto.
566 * var-tracking.c (vt_find_locations): Ditto.
567 * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
568 * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
569 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
570 label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
571 * tree-ssa-reassoc.c (init_reassoc): Ditto.
572 * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
573 rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
574 * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
575 and removed unused reverse orders.
577 * combine.c: Fix document typo.
579 2005-12-17 Jan Hubicka <jh@suse.cz>
581 * tree-flow-inline.h (set_default_def, default_def): Kill.
582 * tree-dfa.c (default_defs): New global variable.
583 (default_def, set_default_def): New functions.
584 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
585 * tree-flow.h (struct var_ann_d): Kill default_def field.
586 (set_default_def, default_def): Update prototype.
587 (default_defs): Declare.
589 2005-12-16 Jeff Law <law@redhat.com>
591 * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
592 (simplify_rhs_and_lookup_avail_expr): Kill. Remnants moved
593 into tree-ssa-forwprop.c.
594 (eliminate_redundant_computations): Do not call
595 simplify_rhs_and_lookup_avail_expr anymore.
596 * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
597 extracted from remnants of simplify_rhs_and_lookup_avail_expr.
598 (tree_ssa_forward_propagate_single_use_vars): Call
599 simplify_not_neg_expr appropriately.
601 2005-12-16 Bernd Trog <berndtrog@yahoo.com>
604 * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
606 2005-12-17 Kazu Hirata <kazu@codesourcery.com>
608 PR rtl-optimization/25456
609 * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
610 info->x_start with p->x_start.
612 2005-12-17 Alan Modra <amodra@bigpond.net.au>
614 * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
615 introduced 2005-12-16.
617 2005-12-16 Steven Bosscher <stevenb@suse.de>
619 PR rtl-optimization/23837
620 * optabs.c (expand_binop): For a multi-word rotate, never emit
621 a REG_NO_CONFLICT block.
623 2005-12-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
626 * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
629 * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
632 2005-12-16 Steven Bosscher <stevenb@suse.de>
634 * loop-invariant.c (move_loop_invariants): Add missing hunk from
635 the previous patch, to nullify df.
637 2005-12-16 Steven Bosscher <stevenb@suse.de>
639 * reorg.c (mostly_true_jump): Clean up code depending on
640 LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing
641 poor man's branch prediction, instead rely on REG_BR_PROB
642 notes to be available.
644 2005-12-16 Jakub Jelinek <jakub@redhat.com>
646 PR rtl-optimization/24899
647 * loop.c (strength_reduce): Don't reduce giv that is not always
648 computable and where add_val or mult_val can trap.
650 * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
652 2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
654 * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
655 names of ms1-16-002 files.
657 2005-12-16 Alan Modra <amodra@bigpond.net.au>
660 * gcc.c (for_each_path): New function.
661 (add_to_obstack, file_at_path): New functions.
662 (struct file_at_path_info, struct add_to_obstack_info): New.
663 (build_search_list): Rewrite using for_each_path. Constify struct
664 path_prefix pointer. Add do_multi param. Adjust all callers.
665 (find_a_file): Similarly, but just change existing param to bool.
666 (putenv_from_prefixes): Add do_multi param, make "paths" const.
667 (do_spec_path): Delete.
668 (struct spec_path_info): New.
669 (spec_path): New function.
670 (do_spec_1): Use for_each_path for %D and %I.
671 (find_file): Adjust for find_a_file changes.
672 (main): Search multilibs for specs. Print multilib lib path for
673 -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV.
674 (read_specs): Search multilibs for %include and %include_noerr.
675 (is_directory): Remove second string param. Change last param
676 to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always
677 check path is a dir. Update all callers.
678 * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
679 * system.h (SMALL_ARG_MAX): Poison.
680 * config.gcc: Don't define SMALL_ARG_MAX.
681 * config.host: Likewise.
682 * config.build: Likewise.
684 2005-12-16 Paolo Bonzini <bonzini@gnu.org>
686 * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
687 FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
688 ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
689 simplify_logical): Move simplifications that do not require
690 additional infrastructure...
691 * simplify-rtx.c (simplify_unary_operation_1,
692 simplify_binary_operation_1): ... here.
694 2005-12-16 Andreas Krebbel <krebbel1@de.ibm.com>
697 * flow.c (mark_used_dest_regs): New function.
698 (mark_used_regs): Call mark_used_dest_regs.
700 2005-12-16 Jeff Law <law@redhat.com>
702 * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
703 represent a use and definition of the same SSA_NAME.
705 2005-12-16 Jon Grimm <jgrimm2@us.ibm.com>
706 Janis Johnson <janis187@us.ibm.com>
707 Ben Elliston <bje@au.ibm.com>
709 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
710 (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
711 * target.h (struct gcc_target): Add decimal_float_supported_p.
712 * targhooks.c (default_scalar_mode_supported_p): Handle
714 * builtins.def: Add new builtins for 32, 64 and 128 bit variants
715 of inf, nan, finite, isinf and isnan.
716 * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
717 BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
718 BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
719 BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
720 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
721 BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
722 BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
723 * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
724 Pedwarn if decimal floating point types are used. Error if
725 decimal floating point is not supported by the target.
726 (finish_declspecs): Return type from DFP typespec_word.
727 * c-typeck.c (c_common_type): Choose the decimal floating point
728 type with the greater precision when determining a common type.
729 (convert_arguments): Warn if there is a mismatch between argument
730 and prototype for decimal float types. Warn of conversions with
731 binary float types and of precision narrowing due to prototype.
732 * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
733 (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
734 (c_token_starts_declspecs): Likewise.
735 (c_parser_attributes): Likewise.
736 * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
737 RID_DFLOAT64, RID_DFLOAT128.
738 (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
739 * c-common.c (c_common_type_for_mode): Handle decimal float modes.
740 (shorten_compare): Convert DFP/BFP operands to a common type.
741 (c_common_modes_and_builtins): Register built-in decimal float
742 types if the target supports them.
743 (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
744 * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
745 inf, nan, finite, isinf and isnan builtins.
746 * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
747 (builtin_define_float_constants): Assert non-decimal radix.
748 (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
749 Call builtin_define_decimal_float_constants for each type.
750 * c-lex.c (interpret_float): Decode decimal float types from CPP_N
751 flags. Use real_from_string3, which can handle binary or decimal
753 * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
754 cts_dfloat64, cts_dfloat128.
755 * tree.c (build_common_tree_nodes_2): Add decimal float types.
756 * tree.h (enum tree_index): Add new enumeration values
757 TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
758 TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
759 (dfloat32_type_node): New macro.
760 (dfloat64_type_node, dfloat128_type_node): Likewise.
761 (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
762 (dfloat128_ptr_type_node): Likewise.
763 * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
764 bit decimal floating point types with "df", "dd" and "dl".
765 * c-format.h (enum format_lengths): Add new enumeration values
766 FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
767 * c-format.c (printf_length_specs, scanf_length_specs): Add
768 entries for H, D, DD.
769 (print_char_table, scan_char_table): Use new entries.
770 (asm_fprintf_char_table, gcc_diag_char_table,
771 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
773 * defaults.h (DECIMAL32_TYPE_SIZE): Define.
774 (DECIMAL64_TYPE_SIZE): Likewise.
775 (DECIMAL128_TYPE_SIZE): Likewise.
776 (TARGET_DEC_EVAL_METHOD): Likewise.
777 * doc/extend.texi (Decimal Float): New node.
778 (Constructing Calls): Document decimal float built-ins.
779 * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
780 * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
781 * ginclude/decfloat.h: New file.
783 2005-12-16 Alan Modra <amodra@bigpond.net.au>
785 * reload.c (find_reloads): Fix comment typo.
786 * recog.h (recog_memoized): Correct comment.
788 2005-12-16 Kazu Hirata <kazu@codesourcery.com>
790 * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
791 config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
792 reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
793 tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
794 * doc/invoke.texi, doc/tm.texi: Fix typos.
796 2005-12-16 Ben Elliston <bje@au.ibm.com>
798 * real.c (decimal_quad_format): Correct values for emin, emax.
800 2005-12-15 DJ Delorie <dj@redhat.com>
802 * config/m32c/predicates.md (m32c_psi_scale): New.
803 * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
804 * config/m32c/muldiv.md (mulpsi3): Support negative constants.
806 2005-12-16 Jan Hubicka <jh@suse.cz>
808 PR rtl-optimization/25224
809 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
812 2005-12-15 Zdenek Dvorak <dvorakz@suse.cz>
813 Steven Bosscher <stevenb@suse.de>
815 * loop-invariant.c (df): New global variable.
816 (find_defs, check_dependencies, find_invariant_insn, record_uses,
817 find_invariants_bb, find_invariants_body, find_invariants,
818 find_invariants_to_move, move_invariants, free_inv_motion_data,
819 move_single_loop_invariants, move_loop_invariants): Do not pass df in
822 2005-12-15 Jakub Jelinek <jakub@redhat.com>
824 * varasm.c (default_unique_section_1): Use special section
825 names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
827 2005-12-16 Ben Elliston <bje@au.ibm.com>
829 * doc/invoke.texi (Warning Options): Document -Walways-true being
832 2005-12-15 Joseph S. Myers <joseph@codesourcery.com>
835 * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
836 * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
837 __floatunditf): Use #error if type sizes don't match requirements
839 (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode
840 as wider floating-point type. Use #error if type sizes don't
841 match requirements of implementation. Avoid overflow in computing
842 Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion,
843 shift one more bit. Cast 1 to DWtype or UDWtype for shifting.
844 (__floatundisf, __floatundidf): Likewise.
845 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
846 * config/ia64/ia64.c (ia64_init_libfuncs): Use
847 _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
848 TFmode-TImode conversions.
849 * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
851 2005-12-14 Craig Rodrigues <rodrigc@gcc.gnu.org>
853 * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
854 Use builtin_define_with_int_value() instead of
855 adding a new check for every new major FreeBSD version.
857 2005-12-14 Andrew Pinski <pinskia@physics.uc.edu>
859 * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
861 2005-12-15 Richard Sandiford <richard@codesourcery.com>
863 * config/arm/predicates.md (call_memory_operand): New.
864 * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
866 2005-12-15 Andrew Haley <aph@redhat.com>
868 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
869 against prev_cache_entry == NULL when moving a cache entry to the
872 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
874 * config/mt/mt.c (mt_override_options): Require lower case
875 architectures. Revert accidental default to ms2.
876 * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
877 ENDFILE_SPEC): Require lower case architectures. Revert default
880 * doc/invoke.texi (MT Options): Rename and update.
881 * doc/md.texi (MorphoTech family): Rename and update.
883 2005-12-15 Olivier Hainque <hainque@adacore.com>
885 * stor-layout.c (layout_type): Don't complain about a too small
886 an array element type size compared to its alignment when the
889 2005-12-15 Jan Hubicka <jh@suse.cz>
892 * i386.c (classify_argument): Properly adjust offset of bitfield for
895 2005-12-15 Richard Sandiford <richard@codesourcery.com>
897 * final.c (final_scan_insn): Flip in_cold_section_p when changing
898 between the hot and cold sections. Use current_function_section
899 to get the new section.
900 * dwarf2out.c (output_line_info): Use in_cold_section_p to
901 determine whether we are assembling hot or cold code.
902 (secname_for_decl, dwarf2out_var_location): Likewise.
903 (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
904 * varasm.c (last_text_section): Delete.
905 (in_cold_section_p): New variable.
906 (hot_function_section): New function.
907 (current_function_section): Pass in_cold_section_p as the
908 reloc argument to select_section. Use it to decide between
909 unlikely_function_section and hot_function_section.
910 (assemble_start_function): Use switch_to_section. Set
911 in_cold_section_p instead of last_text_section.
912 (assemble_end_function): Use switch_to_section.
913 (switch_to_section): Don't set last_text_section.
914 * config/darwin/darwin.c (machopic_select_section): Trust the reloc
915 argument to make the right choice between hot and cold sections.
917 2005-12-15 Nathan Sidwell <nathan@codesourcery.com>
919 Second part of MS1->MT renaming
920 * config/mt/mt.md (doloop_end): Call mt_add_loop.
921 (movqi, movhi): Call mt_set_memflags.
922 (*movdf_internal): Call mt_split_words.
923 (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
925 (cmpsi): Store to mt_compare_op[01].
926 (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
927 bungt, bunle, bunlt): Call mt_emit_cbranch.
928 (prologue): Call mt_expand_prologue.
929 (epilogu): Call mt_expend_epilogue.
930 (eh_return): Call mt_expand_eh_return.
931 (eh_epilogue): Call me_emit_eh_epilogue.
932 (conditional_trap): Store to mt_compare_op[01].
933 * config/mt/crti.asm: Adjust comment.
934 * config/mt/crtn.asm: Adjust comment.
935 * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
936 (mt_compare_op0, mt_compare_op1): Renamed.
937 (current_frame_info, zero_frame_info): Adjust type.
938 (mt_ucmpsi3_libcall): Renamed.
939 (mt_flag_delayed_branch): Renamed.
940 (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
941 (mt_nops_required, mt_nop_reasons): Renamed.
942 (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
943 mt_debug_stack, mt_print_operand_simple_address,
944 mt_print_operand_address, mt_print_operand): Renamed, adjusted.
945 (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
946 mt_function_arg_advance, mt_arg_partial_bytes,
947 mt_pass_by_reference, mt_function_arg_boundary,
948 mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
949 mt_legitimate_address_p): Renamed, adjusted.
951 (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
952 mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
953 mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p,
954 mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
955 mt_expand_eh_return, mt_emit_eh_prologue,
956 mt_handl_interrupt_attribute): Renamed, adjusted.
957 (mt_attribute_table): Renamed, adjusted.
958 (mt_initial_elimination_offset, mt_generate_compare,
959 mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
960 mt_secondary_reload_class, mt_function_value, mt_split_words,
961 mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
962 mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
963 (mt_labels): Renamed.
964 (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
965 mt_machine_reorg): Renamed, adjusted.
966 (mt_attribute_table: Renamed.
967 (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
968 TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
969 TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
970 * config/mt/mt.opt (march): Set mt_cpu_string.
971 * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
972 (TARGET_CPU_CPP_BUILTINS): Adjust.
973 (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
975 (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
976 (MT_MIN_INT): Renamed.
977 (RETURN_ADDR_RTX): Adjust.
978 (struct mt_frame_info): Renamed.
979 (current_frame_info): Adjust type.
980 (INITIAL_ELIMINATION_OFFSET): Adjust.
981 (MT_NUM_ARG_REGS): Renamed.
982 (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
983 FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
984 LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
985 GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
986 FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
987 (mt_compare_op0, mt_compare_op1): Renamed.
988 * config/mt/mt-protos.h: Rename prototypes.
990 2005-12-15 Richard Guenther <rguenther@suse.de>
992 * tree-flow.h (okay_component_ref_for_subvars): Remove.
993 (get_ref_base_and_extent): Declare.
994 * tree-dfa.c (okay_component_ref_for_subvars): Remove.
995 (get_ref_base_and_extent): New function.
996 * tree-ssa-alias.c (find_used_portions): Use it.
997 * tree-ssa-structalias.c (get_constraint_for_component_ref):
999 * tree-ssa-operands.c (get_expr_operands): Likewise.
1001 2005-12-15 Paolo Bonzini <bonzini@gnu.org>
1003 * combine.c: Remove force_to_mode's fourth parameter.
1004 (force_to_mode): Do not handle REG.
1005 (canon_reg_for_combine): New.
1006 (make_field_assignment): Use it where the removed argument was non-NULL.
1008 2005-12-15 Alan Modra <amodra@bigpond.net.au>
1011 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
1012 error_mark_node. Make alignment params unsigned.
1013 * config/rs6000/rs6000-protos.h
1014 (rs6000_special_round_type_align): Update prototype.
1015 (rs6000_machopic_legitimize_pic_address): Remove arg names.
1017 2005-12-14 Ulrich Weigand <uweigand@de.ibm.com>
1019 PR rtl-optimization/25310
1020 * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
1021 of the eliminable register when substituting into a PLUS.
1023 2005-12-14 Jakub Jelinek <jakub@redhat.com>
1026 * config/i386/i386.c (ix86_force_to_memory): Always use
1027 SImode push for HImode in -m32.
1028 (ix86_free_from_memory): Likewise.
1030 2005-12-14 Richard Sandiford <richard@codesourcery.com>
1032 * gcc/config/arm/arm.md: Provide a big-endian version of the
1033 (zero_extend:SI (subreg:QI ...)) splitter.
1035 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
1037 * struct-equiv.c (note_local_live): Handle hard regs with different
1040 2005-12-14 Jeff Law <law@redhat.com>
1042 * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
1043 to a structure containing state rather than a pointer to bool.
1044 (case ARRAY_REF): New code to handle folding some array references.
1045 (case ADDR_EXPR): Note when we are processing expressions found
1046 within an ADDRE_EXPR.
1047 (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
1048 for state variables rather than just a pointer to a boolean.
1049 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1050 handling of constant string references.
1052 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1054 * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
1055 ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
1056 ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
1057 Move other tst* patterns to retain partial order.
1059 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1061 * config/s390/s390.md ("d0", "1"): New mode attributes.
1062 ("<shift>di3", "<shift>si3"): Merge.
1063 ("*<shift>di3_and", "*<shift>si3_and"): Merge.
1064 ("ashrdi3", "ashrsi3"): Merge.
1065 ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
1066 ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
1067 ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
1068 ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
1069 ("*ashrdi3", "*ashrsi3"): Merge.
1070 ("*ashrdi3_and", "*ashrsi3_and"): Merge.
1072 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1074 * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
1075 ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
1076 ("*extendqidi2", "*extendqisi2") Merge.
1077 ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
1078 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1079 ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
1080 Move some patterns to retain partial ordering.
1082 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
1084 * config/s390/s390.md ("atype", "length"): Rewrite.
1085 ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
1087 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
1089 * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
1091 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
1093 * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
1094 PARALLELs with a mode.
1096 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
1098 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1099 cond_expr parameter.
1101 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
1103 * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1105 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
1109 * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1112 * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1114 2005-12-14 Jakub Jelinek <jakub@redhat.com>
1118 * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1119 DECL_P, call get_section rather than get_named_section. Supply
1120 section flags to it.
1122 2005-12-14 Ben Elliston <bje@au.ibm.com>
1124 * c-common.c (c_common_truthvalue_conversion): Generalise warning
1125 for addresses converted to booleans; not just function addresses.
1126 * c-typeck.c (build_binary_op): Warn for address comparisons which
1127 can never be NULL (eg. func == NULL or &var == NULL).
1128 * common.opt (Walways-true): New option.
1129 * c-opts.c (c_common_handle_option): Set it with -Wall.
1130 * doc/invoke.texi: Document it.
1132 2005-12-13 Paul Brook <paul@codesourcery.com>
1134 * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1135 __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1137 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
1139 * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1140 (EXTRA_MULTILIB_PARTS): Define.
1142 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
1144 PR rtl-optimization/20070 / part1
1145 * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1146 count_or_remove_death_notes with kill == -1.
1147 (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1148 registers if PROP_POST_REGSTACK is set.
1149 (mark_used_reg): Likewise.
1150 (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1151 REG_UNUSED notes for stack regs.
1152 * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1153 to match rtx_equiv_p machinery. Change caller.
1154 (outgoing_edges_match): Likewise.
1155 (try_crossjump_to_edge): Use struct_equiv_block_eq
1156 instead of flow_find_cross_jump.
1157 * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1158 (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1159 (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1160 (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1161 (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1162 (insns_match_p): Update prototype.
1163 (flow_find_cross_jump): Remove prototype.
1164 (struct_equiv_block_eq, struct_equiv_init): Declare.
1165 (rtx_equiv_p, condjump_equiv_p): Likewise.
1166 * struct-equiv.c: Include reload.h.
1167 (IMPOSSIBLE_MOVE_FACTOR): Define.
1168 (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1169 (struct_equiv_improve_checkpoint): Likewise.
1170 (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1171 (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1172 (struct_equiv_merge, find_dying_input): Likewise.
1173 (resolve_input_conflict, note_local_live): Likewise.
1174 (death_notes_match_p): Change parameters and processing
1175 to match rtx_equiv_p machinery. Change caller.
1176 (insns_match_p): Likewise.
1177 (flow_find_cross_jump): Replace with:
1178 (struct_equiv_block_eq).
1180 Back out this change:
1181 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
1182 * recog.c (verify_changes): Make it static.
1183 * recog.h: Remove the corresponding prototype.
1185 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
1187 * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1190 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
1192 * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1193 (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'.
1194 * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1195 TARGET_MS1_64_001 appropriately.
1196 (ms1_machine_reorg): Use TARGET_MS2.
1198 2005-12-13 Jakub Jelinek <jakub@redhat.com>
1202 * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1203 and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1204 Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1205 * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1206 Set mode to SI, adjust constraints.
1207 (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1208 * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1211 2005-12-13 Carlos O'Donell <carlos@codesourcery.com>
1213 * c-cppbuiltin.c (builtin_define_float_constants): Add
1214 fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1215 Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1216 (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1217 (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1218 to "((double)%sL)" otherwise "%s".
1220 2005-12-13 Paul Brook <paul@codesourcery.com>
1222 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1225 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1227 * tree-flow.h: Allow compilation with a C++ compiler.
1228 (struct edge_prediction): Prefix all field names with "ep_".
1229 * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1230 (tree_predict_edge, combine_predictions_for_bb): Likewise.
1231 (remove_predictions_associated_with_edge): Likewise.
1233 2005-12-12 Jeff Law <law@redhat.com>
1235 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1237 * passes.c (init_optimization_passes): Run reassociation again
1238 after loop optimizations.
1240 2005-12-12 Daniel Berlin <dberlin@dberlin.org>
1242 * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1244 (optimize_stmt): Ditto.
1245 (canonicalize_comparison): New function.
1246 * tree-ssa-operands.c (swap_tree_operands): Make external.
1247 (get_expr_operands): Stop auto-canonicalization.
1248 * tree-ssa-reassoc.c: Rewrite.
1249 (init_optimization_passes):
1250 * tree-flow.h (swap_tree_operands): Prototype.
1251 * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1253 2005-12-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1255 * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1256 indicate function epilogue has been output.
1257 (pa_asm_output_mi_thunk): Likewise.
1258 (output_deferred_plabels): Put plabels in readonly data section when
1259 not generating PIC code.
1260 (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1261 information. Add assert.
1262 (som_output_comdat_data_section_asm_op): New function.
1263 (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1264 instead of output_section_asm_op for COMDAT sections.
1266 2005-12-12 J"orn Rennecke <joern.rennecke@st.com>
1268 * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1269 Fix whitespace in vincinity of to-be-installed changes.
1270 * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1271 (insns_match_p): Likewise.
1273 2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
1275 * config.gcc (ms1): Replace with ...
1277 * config/ms1: Rename to ...
1278 * config/mt: ... here. Rename ms1 files to mt.
1279 * config/mt/mt.c: Adjust gt-mt.h #include.
1280 * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1281 (crti.o, crtn.o): Adjust file names.
1283 2005-12-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
1285 * varray.h: Allow compilation with a C++ compiler.
1286 (union varray_data_tag): Prefix all field names with "vdt_".
1287 (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1288 VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1289 VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1290 VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1291 VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1292 VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1293 (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1294 VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
1295 VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
1296 VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
1297 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
1298 VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
1299 VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
1300 VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1301 (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
1302 VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
1303 VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
1304 VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
1305 VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
1306 VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
1307 VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
1308 VARRAY_TOP_TREE_PTR): Likewise.
1309 * varray.c (varray_grow): Likewise.
1310 (varray_clear): Likewise.
1312 2005-12-12 Alan Modra <amodra@bigpond.net.au>
1315 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1316 alignment to doubleword if the first field is a double array.
1317 * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1319 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1321 * tree-ssa-structalias.c (process_constraint): Remove code to
1322 transform addressofs into scalar.
1323 (create_variable_info_for): In whole-program IPA, globals don't
1324 point to ANYTHING by default.
1326 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1328 * timevar.def (TV_IPA_PTA): New.
1329 * tree-pass.h (pass_ipa_pta): New
1330 * tree-ssa-structalias.c: Include cgraph.h
1332 (predbitmap_obstack): New.
1333 (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1334 (struct constraint_stats): Add num_edges.
1335 (new_var_info): Don't call bitmap_clear.
1336 (struct constraint_edge): Update docs.
1337 (new_constraint_edge): Remove src param.
1338 (struct constraint_graph): Add zero_weight_succs,
1339 zero_weight_preds. Update docs.
1340 (constraint_expr_equal): Reformat.
1341 (constraint_edge_equal): Update for removal of src.
1342 (constraint_edge_less): Ditto.
1343 (constraint_edge_vec_find): Ditto.
1344 (erase_graph_self_edge): Update for removal of src and and zero
1346 (clear_edges_for_node): Ditto.
1347 (add_graph_edge): Ditto.
1348 (get_graph_weights): Ditto.
1349 (allocate_graph_weights): Ditto.
1350 (merge_graph_nodes): Ditto.
1351 (int_add_graph_edge): Ditto.
1352 (valid_graph_edge): Ditto.
1353 (valid_weighted_graph_edge): Ditto.
1354 (build_constraint_graph): Ditto.
1356 (collapse_nodes): Ditto.
1357 (process_unification_queue): Ditto.
1358 (topo_visit): Ditto.
1359 (solve_graph): Ditto.
1360 (do_structure_copy): Ditto.
1361 (perform_var_substitution): Ditto.
1362 Init and release obstack.
1363 (handle_ptr_arith): Try to resolve directly.
1364 (find_func_aliases): Don't call update_alias_info here
1365 Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1366 (do_sd_constraint): Add code for propagating faster.
1368 (do_ds_constraint): Ditto.
1369 (count_num_arguments): New function.
1370 (create_function_info_for): Ditto.
1371 (create_variable_info_for): Handle FUNCTION_DECL.
1372 (intra_create_variable_infos): Use make_constraint_to_anything.
1373 (init_alias_vars): Init obstacks here.
1374 (need_to_solve): Handle zero weight graph changes.
1375 (compute_points_to_sets): Call update_alias_info here.
1376 (delete_points_to_sets): Free zero weight preds/succs here.
1377 (gate_ipa_pta): New.
1378 (ipa_pta_execute): New
1380 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
1382 * tree-ssa-structalias.c (var_anyoffset): Removed.
1383 (anyoffset_tree): Ditto.
1384 (anyoffset_id): Ditto.
1385 (do_deref): Take vector of constraints, no return value.
1386 Update to work on vector.
1387 (get_constraint_for): Ditto.
1388 (get_constraint_for_component_ref): Ditto.
1389 (do_structure_copy): Ditto.
1390 (handle_ptr_arith): Ditto.
1391 (find_func_aliases): Ditto.
1392 (set_uids_in_ptset): Remove anyoffset handling.
1393 (init_base_vars): Ditto.
1395 2005-12-10 Mark Mitchell <mark@codesourcery.com>
1398 * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1399 DECL_EXTERNAL functions have no bodies. Tidy.
1401 2005-12-10 Andreas Schwab <schwab@suse.de>
1403 * except.c (switch_to_exception_section): Only define if
1404 TARGET_UNWIND_INFO is not defined.
1406 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1408 * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1409 (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1411 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1413 * output.h (init_section, fini_section): Delete.
1414 * varasm.c (init_section, fini_section): Delete.
1415 (init_varasm_once): Don't initialize them.
1416 * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1417 there are no corresponding varasm.c variables.
1419 2005-12-10 Richard Sandiford <richard@codesourcery.com>
1421 * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1422 of EH_FRAME_SECTION_NAME into...
1423 (switch_to_eh_frame_section): ...here. Try to set eh_frame_section
1424 if it is still null.
1425 * except.c (default_exception_section): Delete, moving most
1427 (switch_to_exception_section): ...this new function. Set
1428 exception_section if it is still null, then switch to it.
1429 (output_function_exception_table): Use switch_to_exception_section.
1430 * varasm.c (exception_section, eh_frame_section): Update comments.
1431 (get_section): Hoist use of SECTION_NAMED.
1432 (init_varasm_once): Don't set exception_section and eh_frame_section.
1433 * output.h (default_exception_section): Delete.
1434 (default_eh_frame_section): Delete.
1436 2005-12-09 Bernd Schmidt <bernd.schmidt@analog.com>
1438 * config/bfin/bfin.c: Include "cgraph.h".
1439 (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1440 Return the reg that holds the pointer to the GOT.
1441 (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1442 doing stack checking.
1444 2005-12-09 Diego Novillo <dnovillo@redhat.com>
1446 * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1447 recompute_tree_invarant_for_addr_expr.
1448 Update uses everywhere.
1450 2005-12-09 Aldy Hernandez <aldyh@redhat.com>
1452 * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1453 (MULTILIB_DIRNAMES): Define.
1455 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
1458 * config/s390/s390.c (struct s390_address): New field literal_pool.
1459 (s390_decompose_address): Compute literal_pool field. Do not
1460 assume register %r13 is always (and solely) used as pool base.
1461 (s390_extra_constraint_str): Use literal_pool field.
1463 2005-12-09 Thiemo Seufer <ths@networkno.de>
1465 * config/mips/mips.c (override_options): Don't allow too small
1466 integers in FP registers.
1468 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
1470 * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1471 targetm.binds_local_p to check for local function calls.
1473 2005-12-09 Alan Modra <amodra@bigpond.net.au>
1476 * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1477 call_used_regs can't be used to save reg in another reg.
1479 2005-12-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1480 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
1482 * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1484 * except.c (output_ttype): Likewise.
1485 * tree-object-size.c (collect_object_sizes_for): Likewise.
1486 (check_for_plus_in_loops_1): Likewise.
1487 (check_for_plus_in_loops): Likewise.
1488 (compute_object_sizes): Use gcc_unreachable instead of abort.
1490 2005-12-08 Nathan Sidwell <nathan@codesourcery.com>
1492 * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1493 (loop_end, loop_init, doloop_end): New insns.
1494 * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1495 (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1496 (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1497 (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1498 * config/ms1/ms1.c: #include basic-block.h
1499 (struct machine_function): Add has_loops field.
1500 (ms1_add_loop): New.
1501 (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1502 (struct loop_info, struct loop_work): New.
1503 (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1504 (ms1_reorg_loops): New loop optimization.
1505 (ms1_machine_reorg): Call it.
1506 * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1508 2005-12-08 Zdenek Dvorak <dvorakz@suse.cz>
1510 PR tree-optimization/25248
1511 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1512 evolution_of_loop from the failed attempt. Remove handling
1515 2005-12-08 Gabriel Dos Reis <gdr@integrable-solutions.net>
1517 * tree.h (DECL_EXTERNAL): Clarify documentation.
1519 2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
1520 Jakub Jelinek <jakub@redhat.com>
1523 * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1524 argument. Don't drop outer ANDs.
1525 (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1526 * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1528 * config/s390/predicates.md (setmem_operand): Remove.
1529 (shift_count_operand): Rename to...
1530 (shift_count_or_setmem_operand): ... this. Adjust
1531 s390_decompose_shift_count caller.
1532 * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1533 ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1534 ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1535 <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1536 rotl<mode>3_and, setmem_long_and): New insns.
1537 (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1538 ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1539 <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1540 <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1541 of shift_count_operand.
1542 (setmem_long): Use shift_count_or_setmem_operand instead of
1545 2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
1546 Andreas Tobler <a.tobler@schweiz.ch>
1548 * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1551 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1553 * expr.c (force_operand): Use convert_to_mode for conversions.
1555 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1557 * reload.h (reg_equiv_invariant): Declare.
1558 * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1559 register also when reg_equiv_invariant[R] is set.
1561 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1562 Andreas Tobler <a.tobler@schweiz.ch>
1564 * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1566 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
1568 * tree-ssa-pre.c (bitmap_set_and): New function.
1569 (bitmap_set_and_compl): New function.
1570 (bitmap_set_empty_p): New function.
1571 (insert_extra_phis): New function.
1572 (compute_avail): Use insert_extra_phis.
1574 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
1576 * config/s390/s390.c (s390_expand_atomic): New function.
1577 Adjust comment of helper functions.
1578 * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1579 * config/s390/s390.md ("ATOMIC"): New code macro.
1580 ("atomic"): Corresponding new code attribute.
1581 ("sync_lock_test_and_set[hq]i",
1582 "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1584 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
1586 * config/s390/s390.c (s390_expand_mask_and_shift,
1587 struct alignment_context, init_alignment_context,
1588 s390_expand_cs_hqi): New.
1589 * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1590 * config/s390/s390.md ("sync_compare_and_swaphi",
1591 "sync_compare_and_swapqi"): New pattern.
1593 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
1595 Fix PR tree-optimization/25291
1596 * tree-ssa-operands.c (add_call_clobber_ops): Remove
1597 redundant and crashing check.
1599 2005-12-08 Alan Modra <amodra@bigpond.net.au>
1602 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1603 tests further when !strict && reload_in_progress.
1604 (print_operand): Check that both operands of indexed address are regs.
1605 (print_operand_address): Likewise.
1606 * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1607 (INT_REG_OK_FOR_BASE_P): Correct.
1609 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
1611 Preparation for PR rtl-optimization/20070 / part1
1612 * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1613 * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1614 outgoing_edges_match.
1615 (outgoing_edges_match): Use condjump_equiv_p.
1616 (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1618 * struct-equiv.c: New file.
1619 (death_notes_match_p) New function, broken out of insns_match_p.
1620 * Makefile.in (OBJS-common): Add struct-equiv.o.
1621 (struct-equiv.o): New target.
1623 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1625 * coretypes.h: Revert previous change.
1626 * config/darwin.h: Revert previous reversion.
1627 * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1629 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1631 * coretypes.h (section): Provide dummy definition for target files.
1632 * config/darwin.h: Revert previous change.
1634 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1636 * doc/sourcebuild.texi (all.build, install-normal): Remove.
1637 * configure.ac: Remove all.build and install-normal from target_list
1638 * configure: Regenerate.
1639 * Makefile.in (install): Don't depend on install-normal.
1641 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1643 * Makefile.in: Document the use of stamps.
1645 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com>
1647 * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1648 * Makefile.in: Add code to compute some dependencies on s-gtype
1649 automatically. Remove the declaration of those dependencies.
1651 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1653 * gcc/reload.c (push_secondary_reload): Fix typo:
1654 s/insn_constraint/scratch_constraint/.
1656 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1658 * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1660 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1662 * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1663 (alpha_elf_select_rtx_section): Return the selected section rather
1664 than emitting assembly code.
1665 (alpha_write_linkage): Emit a ".link" directive directly and then
1666 set in_section to NULL.
1667 (vms_asm_out_constructor): Use switch_to_section.
1668 (vms_asm_out_destructor): Likewise.
1669 (unicosmk_output_common): Set in_section to NULL instead of calling
1670 the dummy common_section function.
1671 (unicosmk_text_section): Delete in favor of...
1672 (unicosmk_output_text_section_asm_op): ...this new function.
1673 (unicosmk_data_section): Delete in favor of...
1674 (unicosmk_output_data_section_asm_op): ...this new function.
1675 (unicosmk_init_sections): New function.
1676 (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1677 (unicosmk_output_ssib): Set in_section to NULL instead of calling
1678 the dummy ssib_section function.
1679 (unicosmk_section_buf): Delete.
1680 * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1681 (unicosmk_data_section): Delete.
1682 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1683 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1684 (SECTION_FUNCTION_TEMPLATE): Delete.
1685 * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1686 (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1687 (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1688 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1689 (TARGET_ASM_INIT_SECTIONS): Define.
1690 * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1691 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1692 (link_section, literals_section): Delete.
1693 (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1694 set in_section to NULL.
1696 * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1697 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1698 (COMMON_SECTION): Delete.
1699 (TARGET_ASM_INIT_SECTIONS): Define.
1700 (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1701 the dummy common_section function.
1702 * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1703 * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1704 between readonly_data_section and text_section to check whether
1705 read-only data is being put in the text section.
1706 (arm_output_function_epilogue): Use switch_to_section.
1707 (arm_elf_asm_constructor): Likewise.
1708 (thumb_call_via_reg): Replace call to in_text_section with
1709 a comparison between in_section and text_section.
1710 (arm_file_end): Use switch_to_section.
1711 (aof_text_section): Delete in favor of...
1712 (aof_output_text_section_asm_op): ...this new function.
1713 (aof_data_section): Delete in favor of...
1714 (aof_output_data_section_asm_op): ...this new function.
1715 (aof_asm_init_sections): New function.
1716 (zero_init_section): Moved from config/arm/aof.h.
1717 (aof_dump_imports, aof_file_start): Use switch_to_section.
1718 * config/arm/arm.h (thumb_call_via_label): Update comment.
1719 * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1720 (common_section): Delete.
1721 * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1722 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1723 global switch_to_section function instead of the old port-local one.
1724 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1725 (SWITCH_TO_SECTION_FUNCTION): Delete.
1726 (drectve_section): Redefine as a macro.
1727 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1728 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1731 * config/avr/avr.c (progmem_section): New variable.
1732 (avr_output_progmem_section_asm_op): New function.
1733 (avr_asm_init_sections): New function.
1734 (avr_output_addr_vec_elt): Use switch_to_section.
1735 * config/avr/avr.h (progmem_section): Declare.
1736 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1737 (READONLY_DATA_SECTION): Delete.
1738 (TARGET_ASM_INIT_SECTIONS): Define.
1739 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1740 * config/avr/avr-protos.h (progmem_section): Delete.
1742 * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1744 * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1745 (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1747 * config/darwin-sections.def: New file.
1748 * config/darwin.c: Define all sections in darwin-sections.def.
1749 (output_objc_section_asm_op, darwin_init_sections): New functions.
1750 (machopic_output_indirection): Use switch_to_section.
1751 (machopic_select_section): Return the selected section rather than
1752 emitting assembly code. Replace the static function table with
1753 inline conditional expressions. Update the tests of last_text_section
1754 and move them into the FUNCTION_DECL block.
1755 (machopic_select_rtx_section): Return the selected section rather than
1756 emitting assembly code.
1757 (machopic_asm_out_constructor, machopic_asm_out_destructor)
1758 (darwin_file_end): Use switch_to_section.
1759 * config/darwin.h: Use darwin-sections.def to declare sections.
1760 (INIT_SECTION_ASM_OP): Remove empty definition.
1761 (HAS_INIT_SECTION): Define this instead.
1762 (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1763 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1764 (TARGET_ASM_EH_FRAME_SECTION): Delete.
1765 (TARGET_ASM_INIT_SECTIONS): Define.
1766 * config/darwin-protos.h (darwin_init_sections): Declare.
1767 (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1768 (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1769 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1770 (constructor_section, destructor_section, mod_init_section): Delete.
1771 (mod_term_section): Delete.
1772 (darwin_exception_section, darwin_eh_frame_section): Delete.
1773 (machopic_select_section): Return a section.
1774 (machopic_select_rtx_section): Likewise.
1775 (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1776 (const_section, const_coal_section, const_data_section): Delete.
1777 (const_data_coal_section, data_coal_section, cstring_section): Delete.
1778 (literal4_section, literal8_section, constructor_section): Delete.
1779 (mod_init_section, mod_term_section, destructor_section): Delete.
1780 (objc_class_section, objc_meta_class_section, objc_category_section)
1781 (objc_class_vars_section, objc_instance_vars_section): Delete.
1782 (objc_cls_meth_section, objc_inst_meth_section): Delete.
1783 (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1784 (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1785 (objc_symbols_section, objc_module_info_section): Delete.
1786 (objc_image_info_section, objc_protocol_section): Delete.
1787 (objc_string_object_section, objc_constant_string_object_section)
1788 (objc_class_names_section, objc_meth_var_names_section): Delete.
1789 (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1790 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1791 (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1792 (darwin_exception_section, darwin_eh_frame_section): Delete.
1793 * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1795 * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1796 (frv_asm_out_destructor): Likewise.
1797 * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1798 (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1799 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1801 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1802 * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1803 (data_section): Delete.
1805 * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1806 (DRECTVE_SECTION_FUNCTION): Delete.
1807 (drectve_section): Redefine as a macro that sets in_section after
1808 emitting the directive.
1809 (SWITCH_TO_SECTION_FUNCTION): Delete.
1810 * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1811 in_text_section with comparison between in_section and text_section.
1812 * config/i386/i386.c (x86_64_elf_select_section): Return the section
1813 rather than emitting assembly code. Use get_named_section.
1814 (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1816 (machopic_output_stub): Use switch_to_section.
1817 * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1818 (nwld_named_section_asm_out_destructor): Use get_section and
1821 * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1822 rather than emitting assembly code.
1823 (ia64_rwreloc_select_section): Likewise.
1824 (ia64_rwreloc_select_rtx_section): Likewise.
1825 * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1826 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1828 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1829 (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1831 * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1832 section rather than emitting assembly code.
1833 (iq2000_select_section): Likewise.
1834 * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1835 (sbss_section): Delete.
1837 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1838 and get_named_section.
1839 * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1841 * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1842 (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1843 (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1844 (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1846 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1847 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1848 global switch_to_section function instead of the old port-local one.
1849 * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1850 (SWITCH_SECTION_FUNCTION): Delete.
1851 * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1852 (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1853 (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1854 (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1856 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
1857 global switch_to_section function instead of the old port-local one.
1858 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1860 * config/mips/mips.c (mips_file_start): Update comment.
1861 (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1862 (mips_output_aligned_decl_common): Use switch_to_section.
1863 (mips_select_rtx_section): Return the section rather than emitting
1864 assembly code. Use get_named_section.
1865 (mips_function_rodata_section: Likewise get_section.
1866 (build_mips16_function_stub): Use switch_to_section.
1867 * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1868 (SDATA_SECTION_ASM_OP): Delete.
1869 * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1870 (EXTRA_SECTION_FUNCTIONS): Delete.
1872 * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1873 (mmix_asm_output_aligned_local): Use switch_to_section.
1875 * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1876 (som_one_only_readonly_data_section): New variables.
1877 (pa_output_function_epilogue): Set in_section to NULL instead of
1878 calling forget_section.
1879 (output_deferred_plabels): Use select_section.
1880 (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
1881 of calling forget_section.
1882 (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1883 (pa_asm_output_aligned_local): Use select_section.
1884 (som_text_section_asm_op): Delete in favor of...
1885 (som_output_text_section_asm_op): ...this new function.
1886 (pa_som_asm_init_sections): New function.
1887 (pa_select_section): Return the section rather than emitting
1889 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1890 (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1891 (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1892 (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1893 * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1894 (som_readonly_data_section, som_one_only_readonly_data_section)
1895 (som_one_only_data_section, forget_section): Delete.
1896 * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1897 (TARGET_ASM_INIT_SECTIONS): Define.
1898 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1900 * config/rs6000/rs6000.c (read_only_data_section): New variable.
1901 (private_data_section, read_only_private_data_section): New variables.
1902 (sdata2_section, toc_section): New variables.
1903 (rs6000_file_start): Use switch_to_section.
1904 (rs6000_assemble_integer): Use comparisons against in_section
1905 instead of calling in_toc_section and in_text_section. Use
1906 unlikely_text_section_p.
1907 (rs6000_elf_output_toc_section_asm_op): New function, derived
1908 from the old rs6000/sysv4.h toc_section function.
1909 (rs6000_elf_asm_init_sections): New function.
1910 (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1911 the section rather than emitting assembly code.
1912 (machopic_output_stub): Use switch_to_section.
1913 (toc_section): Delete dummy function.
1914 (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1915 switch_to_section and get_section.
1916 (rs6000_xcoff_output_readonly_section_asm_op): New function.
1917 (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1918 (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1919 the old rs6000/xcoff.h toc_section function.
1920 (rs6000_xcoff_asm_init_sections): New function.
1921 (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1922 the section rather than emitting assembly code.
1923 (rs6000_xcoff_file_start): Use switch_to_section.
1924 (rs6000_xcoff_file_end): Likewise.
1925 * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1926 (sdata2_section, sbss_section, private_data_section): Delete.
1927 (read_only_data_section, read_only_private_data_section): Delete.
1928 * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1929 (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1930 (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1931 (FINI_SECTION_FUNCTION): Delete.
1932 (TARGET_ASM_INIT_SECTIONS): Define.
1933 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1934 * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1935 (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1936 (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1937 (READONLY_DATA_SECTION): Delete.
1938 (TARGET_ASM_INIT_SECTIONS): Define.
1939 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
1940 to NULL rather than no_section.
1941 (TARGET_ASM_EXCEPTION_SECTION): Delete.
1943 * config/sh/sh.c (sh_file_start): Use switch_to_section.
1945 * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1946 (sparc_output_deferred_case_vectors): Likewise. Remove argument
1947 from call to current_function_section.
1949 * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1950 (bss100_section): New variable.
1951 (xstormy16_asm_output_aligned_common): Use switch_to_section.
1952 (xstormy16_asm_init_sections): New function.
1953 (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1954 switch_to_section and get_section.
1955 (xstormy16_output_addr_vec): Use switch_to_section. Remove argument
1956 from calls to current_function_section.
1957 * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1958 (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1959 (TARGET_ASM_INIT_SECTIONS): Define.
1960 * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1962 * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1963 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1964 (FINI_SECTION_FUNCTION): Delete.
1966 * config/v850/v850.c: Include gt-v850.h.
1967 (rosdata_section, rozdata_section, tdata_section, zdata_section)
1968 (zbss_section): New variables.
1969 (v850_output_aligned_bss): Use switch_to_section.
1970 (v850_asm_init_sections): New function.
1971 (v850_select_section): Return the section rather than emitting
1973 * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1974 (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1975 (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1976 (TARGET_ASM_INIT_SECTIONS): Define.
1977 * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1978 (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1979 (zbss_section): Delete.
1981 * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1983 * config/vx-common.h (vxworks_exception_section): Delete.
1984 (TARGET_ASM_EXCEPTION_SECTION): Delete.
1986 * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1987 section rather than emitting assembly code.
1988 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1991 * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1992 * coretypes.h (section): New union and typedef.
1993 * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
1994 from call to current_function_section.
1995 (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1996 (dbxout_symbol_location): Use switch_to_section.
1997 * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1998 most of the code into...
1999 (default_eh_frame_section): ...here. Return a section.
2000 (collect2_eh_frame_section): Delete, moving most of the code into..
2001 (switch_to_eh_frame_section): ...this new function.
2002 (debug_info_section, debug_abbrev_section, debug_aranges_section)
2003 (debug_macinfo_section, debug_line_section, debug_loc_section)
2004 (debug_pubnames_section, debug_str_section, debug_ranges_section): New
2006 (output_call_frame_info): Call switch_to_eh_frame_section instead of
2007 eh_frame_section. Use switch_to_section and get_section.
2008 (dwarf2out_begin_prologue): Use switch_to_section.
2009 (AT_string_form): Check the flags in debug_str_section instead of
2010 DEBUG_STR_SECTION_FLAGS.
2011 (output_comp_unit): Use switch_to_section, get_section, and
2013 (output_line_info, secname_for_decl): Use unlikely_text_section_p.
2014 (dwarf2out_begin_block): Use switch_to_section. Remove argument
2015 from call to current_function_section.
2016 (dwarf2out_var_location): Use unlikely_text_section_p.
2017 (dwarf2out_source_line): Use switch_to_section. Remove argument
2018 from call to current_function_section.
2019 (dwarf2out_start_source_file, dwarf2out_end_source_file)
2020 (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
2021 debug_macinfo_section.
2022 (dwarf2out_init): Initialize the new section variables. Use them
2023 instead of calls to named_section_flags. Use switch_to_section.
2024 (output_indirect_string): Use switch_to_section and debug_str_section.
2025 (dwarf2out_finish): Use switch_to_section and the new section
2027 * except.c (default_exception_section): Return the section instead
2028 of emitting assembly code.
2029 (output_function_exception_table): Use the global exception_section
2030 variable instead of the target hook. Use switch_to_section. Remove
2031 argument from call to current_function_section.
2032 * final.c (HAVE_READONLY_DATA_SECTION): Delete.
2033 (shorten_branches): Use pointer comparisons to detect whether the
2034 text section is the same as readonly_data_section.
2035 (profile_function): Use switch_to_section. Remove argument from
2036 call to current_function_section.
2037 (final_scan_insn): Likewise. Update use of last_text_section.
2038 * gengtype.c (open_base_files): Add an include of output.h.
2039 * output.h (text_section, data_section, readonly_data_section)
2040 (ctors_section, dtors_section, bss_section, init_section)
2041 (fini_section, sdata_section): Turn into section pointers.
2042 (in_text_section, in_unlikely_text_section, exports_section)
2043 (drectve_section, named_section, mergeable_string_section)
2044 (last_text_section_name): Delete.
2045 (default_exception_section, default_eh_frame_section): Return sections.
2046 (SECTION_DECLARED, SECTION_NAMED): New macros.
2047 (SECTION_MACH_DEP): Bump value.
2048 (section_common, named_section, unnamed_section): New structures.
2049 (unnamed_section_callback): New typedef.
2050 (section): New union.
2051 (sbss_section, exception_section, eh_frame_section): New variables.
2052 (in_section, last_text_section): Turn into section pointers.
2053 (get_unnamed_section, get_section, get_named_section): New functions.
2054 (mergeable_constant_section, function_section): Return a section.
2055 (unlikely_text_section): Likewise.
2056 (current_function_section): Likewise. Remove the decl argument.
2057 (unlikely_text_section_p, switch_to_section): New functions.
2058 (output_section_asm_op): New function.
2059 (set_named_section_flags, named_section_flags, named_section_real)
2060 (named_section_first_declaration): Delete.
2061 (default_select_section, default_elf_select_section): Return a section.
2062 (default_elf_select_section_1, default_function_rodata_section)
2063 (default_no_function_rodata_section, default_select_rtx_section)
2064 (default_elf_select_rtx_section): Likewise.
2065 * rtl.h (in_data_section): Delete.
2066 * sdbout.c (sdbout_one_type): Use switch_to_section.
2067 * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
2068 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
2069 (TARGET_ASM_EH_FRAME_SECTION): Poison.
2070 * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
2071 (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
2072 (TARGET_ASM_OUT): Update after above changes.
2073 * target.h (init_sections): New hook.
2074 (exception_section, eh_frame_section): Delete.
2075 (select_section, select_rtx_section, function_rodata_section): Return
2076 a section rather than emitting assembly code.
2077 * varasm.c (text_section, data_section, readonly_data_section)
2078 (ctors_section, dtors_section, bss_section, init_section)
2079 (fini_section): Turn into section pointers.
2080 (sdata_section, sbss_section, exception_section): New variables.
2081 (eh_frame_section): New variable.
2082 (in_section): Make global and turn into a section pointer.
2083 (last_text_section): Turn into a section pointer.
2084 (unnamed_sections): New variable.
2085 (in_named_name, last_text_section_name): Delete.
2086 (EXTRA_SECTION_FUNCTIONS): Delete.
2087 (in_named_entry): Delete.
2088 (section_htab): New variable, replacing...
2089 (in_named_htab): ...this deleted variable.
2090 (section_entry_eq, section_entry_hash): New functions, based on...
2091 (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
2092 (get_unnamed_section, get_section): New functions.
2093 (unlikely_text_section): Return a section instead of emitting
2095 (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2096 (get_named_section_flags, named_section_first_declaration): Delete.
2097 (unlikely_text_section_p): New function.
2098 (named_section_real, named_section): Delete.
2099 (get_named_section): New function.
2100 (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2101 (function_section): Return a section rather than emitting
2103 (current_function_section): Likewise. Remove argument. Use
2104 last_text_section if nonnull, otherwise use function_section.
2105 (default_function_rodata_section): Return a section rather than
2106 emitting assembly code. Use get_section.
2107 (default_no_function_rodata_section): Return a section rather than
2108 emitting assembly code.
2109 (variable_section): Use switch_to_section and get_named_section.
2110 (mergeable_string_section): Return a section rather than emitting
2111 assembly code. Use get_section. Make static. Don't take special
2112 countermeasures for empty strings.
2113 (mergeable_constant_section): Return a section rather than emitting
2114 assembly code. Use get_section.
2115 (default_named_section_asm_out_destructor): Use switch_to_section
2117 (default_dtor_section_asm_out_destructor): Use switch_to_section.
2118 (default_named_section_asm_out_constructor): Use switch_to_section
2120 (default_ctor_section_asm_out_constructor): Use switch_to_section.
2121 (assemble_start_function): Likewise. Set last_text_section to
2122 NULL rather than no_section. Change the type of save_section.
2123 (assemble_zeros, assemble_variable): Use the section flags to detect
2124 whether or not a section is text.
2125 (assemble_static_space): Use switch_to_section.
2126 (assemble_trampoline_template): Likewise.
2127 (output_constant_def_contents): Use switch_to_section and
2129 (output_constant_pool_1): Use switch_to_section. Use the section
2130 flags to see whether sections contain mergeable data.
2131 (init_varasm_once): Initialize section_htab instead of in_named_htab.
2132 Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
2133 (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2134 whether a section has already been declared.
2135 (default_select_section, default_elf_select_section): Return a
2136 section rather than emitting assembly code.
2137 (default_elf_select_section_1): Likewise. Use bss_section for
2138 SECCAT_BSS if nonnull. Use get_named_section.
2139 (default_select_rtx_section): Return a section rather than
2140 emitting assembly code.
2141 (default_elf_select_rtx_section): Likewise. Use get_named_section.
2142 (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2143 (output_section_asm_op, switch_to_section): New functions.
2144 * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2147 * doc/tm.texi: Expand the introduction to the sections documentation.
2148 (TRAMPOLINE_SECTION): Document new interface.
2149 (SDATA_SECTION_ASM_OP): Document new macro.
2150 (READONLY_DATA_SECTION): Delete.
2151 (SDATA_SECTION_ASM_OP): Document new macro.
2152 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2153 (TARGET_ASM_INIT_SECTIONS): Document new hook.
2154 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2155 (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2156 (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2158 2005-12-07 Alan Modra <amodra@bigpond.net.au>
2160 * gcc.c (init_gcc_specs): Match braces inside conditionally
2163 2005-12-06 Geoffrey Keating <geoffk@apple.com>
2165 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2167 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
2170 * tree.c (integer_all_onesp): Always return true if all bits on.
2172 * testsuite/g++.dg/init/array0.C: New.
2174 2005-12-06 Adrian Straetling <straetling@de.ibm.com>
2176 * doc/md.texi: Adapt to implementation.
2178 2005-12-06 Andreas Schwab <schwab@suse.de>
2180 * opts.c (decode_options): Fix typo in message.
2182 2005-12-06 Alan Modra <amodra@bigpond.net.au>
2185 * longlong.h: Merge PPC tests from upstream.
2187 2005-12-06 Richard Guenther <rguenther@suse.de>
2189 * fold-const.c (fold_convert): Do not build and fold
2190 CONVERT_EXPR, but always use NOP_EXPR.
2192 2005-12-06 Jan Beulich <jbeulich@novell.com>
2194 * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2195 __builtin_ia32_paddq and __builtin_ia32_subq.
2196 (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2197 __builtin_ia32_pshufw.
2198 * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2200 2005-12-05 James E Wilson <wilson@specifix.com>
2203 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2206 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
2208 * print-tree.c (print_node): Ditto.
2209 * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2210 * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2211 before accessing DECL_ARTIFICIAL.
2212 Handle new tag tree codes.
2213 * tree-flow-inline.h (clear_call_clobbered): Update for tag
2215 (unmodifiable_var_p): Ditto.
2216 * tree-flow.h (mem_tag_kind): Remove.
2217 (struct var_ann_d): Remove mem_tag_kind member.
2218 * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2219 * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2220 * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2221 (group_aliases): Ditto.
2222 (setup_pointers_and_addressables): Ditto.
2223 (is_escape_site): Ditto.
2224 (may_alias_p): Ditto.
2225 (create_tag_raw): New function.
2226 (create_memory_tag): Use it.
2227 (dump_alias_info): Update for tags.
2228 (may_be_aliased): Ditto.
2229 (add_type_alias): Ditto.
2230 (new_type_alias): Ditto.
2231 (create_sft): Ditto.
2232 (create_structure_vars): Ditto.
2233 * tree-ssa-ccp.c (get_default_value): Ditto.
2234 * tree-ssa-operands.c (get_expr_operands): Ditto.
2235 (add_stmt_operand): Ditto.
2236 (add_call_clobber_ops): Remove duplicated condition.
2237 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2239 * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2240 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2241 * tree.c (init_ttree): Update structures for new tree codes.
2242 (tree_code_size): Update sizes for new tree codes.
2243 (make_node_stat): Don't try to set common things on minimal
2245 (tree_node_structure): Update for tags.
2246 (is_global_var): Ditto.
2247 * tree.def: Add new tree codes.
2248 * tree.h (MTAG_P): New macro.
2249 (TREE_MEMORY_TAG_CHECK): Ditto.
2250 (SSA_VAR_P): Update for tags.
2251 (struct tree_memory_tag): New structure.
2252 (MTAG_GLOBAL): New macro.
2253 (union tree_node): Add memory tag member.
2254 * treestruct.def (TS_MEMORY_TAG): New.
2256 2005-12-05 Dale Johannesen <dalej@apple.com>
2258 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
2259 what was approved (PR 24323).
2261 2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
2263 * doc/c-tree.texi (Function Bodies): Remove description of
2266 2005-12-05 Joseph S. Myers <joseph@codesourcery.com>
2268 * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2269 __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2270 __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2271 __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2272 __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2273 __divxc3): Document.
2275 2005-12-05 Geoffrey Keating <geoffk@apple.com>
2277 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2279 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2280 hook_bool_void_false.
2281 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2282 * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2284 * config/darwin.c (machopic_select_section): It's not defined
2285 as weak if it's only marked as weak_import.
2287 * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2290 * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2291 A hidden weak object does bind locally. Strong linkonce data
2292 counts like any other strong symbol for binding.
2293 (weak_finish_1): Don't specially handle weakrefs, they no longer
2295 (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2296 * c-common.c (handle_alias_attribute): Allow static aliases
2298 (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2299 * gthr-dce.h: Make weakrefs static.
2300 * gthr-tpf.h: Likewise.
2301 * gthr-solaris.h: Likewise.
2302 * gthr-posix.h: Likewise.
2303 * gthr-posix95.h: Likewise.
2304 * config/darwin.c (darwin_encode_section_info): static weakref
2305 variables are not necessarily defined in this translation unit.
2306 * doc/extend.texi (Function Attributes): Mention that an alias
2307 attribute creates a definition for the thing it's attached to.
2308 Change the documentation for weakref to say that the thing
2309 it's attached to must be static.
2311 * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2312 we don't go into an infinite loop.
2314 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
2316 * config/rs6000/predicates.md (logical_const_operand): Split
2317 out of logical_operand.
2318 (logical_operand): Use it.
2319 * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2320 logical_const_operand.
2322 2005-12-05 Jan Beulich <jbeulich@novell.com>
2324 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2325 and IX86_BUILTIN_CMPNESS.
2326 (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2327 * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2328 * config/i386/i386.md (movti_internal): Correct type attribute.
2329 Simplify mode attribute.
2330 (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2331 Correct type attribute.
2332 (absxf2): Correct operator.
2333 * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2334 movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2335 * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2337 (sse2_vmsqrtv2df2): Correct mode attribute.
2339 2005-12-05 Jan Beulich <jbeulich@novell.com>
2341 * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2342 16 bits. Provide insn pattern for this case.
2344 2005-12-05 Jan Beulich <jbeulich@novell.com>
2346 * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2348 (__popcountDI2): Likewise.
2350 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2353 * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2354 _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2355 * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2358 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
2360 * c-typeck.c (null_pointer_constant_p): New function.
2361 (build_conditional_expr, build_c_cast, convert_for_assignment,
2362 build_binary_op): Use it.
2364 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
2366 * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2367 (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2369 (check_function_arguments_recurse): Allow both NOP_EXPR and
2370 CONVERT_EXPR but check conversions preserve precision.
2371 * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2372 but check conversions preserve precision.
2373 (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
2376 2005-12-04 Roger Sayle <roger@eyesopen.com>
2379 * common.opt (Wstring-literal-comparison): New command line option.
2380 * c-opts.c (c_common_handle_option): Set it with -Wall.
2381 * c-typeck.c (parser_build_binary_op): Issue warning if either
2382 operand of a comparison operator is a string literal, except for
2383 testing equality or inequality against NULL.
2385 * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2387 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
2389 * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2390 of building a NOP_EXPR.
2391 (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
2393 * c-convert.c (convert): Use fold_convert instead of building
2394 NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
2395 c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
2397 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2398 NOP_EXPR the same as CONVERT_EXPR.
2399 * c-typeck.c (build_function_call): Use fold_convert instead of
2400 building a NOP_EXPR directly.
2401 (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2403 2005-12-03 Alan Modra <amodra@bigpond.net.au>
2405 PR rtl-optimization/25197
2406 * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2409 2005-12-02 Stuart Hastings <stuart@apple.com>
2411 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2414 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
2416 * c-typeck.c (default_function_array_conversion,
2417 build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2418 (build_conditional_expr): Apply integer_zerop to orig_op1 and
2419 orig_op2. Don't check them for NOP_EXPR.
2420 (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2421 around integer zero.
2423 2005-12-03 Alan Modra <amodra@bigpond.net.au>
2425 * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2426 toc_save_offset, toc_size, lr_size.
2427 (rs6000_stack_info): Use memset rather than bss struct copy to init.
2428 Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2429 Adjust for removal of unused rs6000_stack_t fields.
2430 (debug_stack_info): Adjust.
2431 (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls
2432 first, and don't bother checking for set/inc of lr on sibcalls.
2433 (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2435 2005-12-02 Jakub Jelinek <jakub@redhat.com>
2438 * config/i386/i386.md (movqi_1): Only force imovx for alternative
2439 5 if operand 1 is not aligned. Undo previous constraint change.
2440 * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2442 2005-12-02 Richard Guenther <rguenther@suse.de>
2444 * tree.h (build): Remove prototype.
2445 (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2446 * tree.c (build): Remove.
2447 (build0_stat): Update comment.
2449 2005-12-02 Richard Guenther <rguenther@suse.de>
2451 * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2452 * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2454 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2455 maybe_fold_offset_to_component_ref): Likewise.
2456 * tree-ssa-dom.c (thread_across_edge,
2457 simplify_rhs_and_lookup_avail_expr,
2458 find_equivalent_equality_comparison, record_equivalences_from_stmt):
2460 * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2461 * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2462 lower_try_finally_switch): Likewise.
2463 * tree-if-conv.c (add_to_dst_predicate_list,
2464 replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2465 * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2466 voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2467 gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2468 gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2469 shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2470 gimplify_init_ctor_eval, gimplify_init_constructor,
2471 gimplify_variable_sized_compare, gimplify_boolean_expr,
2472 gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2473 gimplify_expr, gimplify_body, gimplify_function_tree,
2474 force_gimple_operand): Likewise.
2475 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2476 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2477 mx_register_decls): Likewise.
2478 * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2479 get_frame_field, finalize_nesting_tree_1): Likewise.
2480 * tree-inline.c (setup_one_parameter): Likewise.
2481 * tree-vect-transform.c (vectorizable_condition): Likewise.
2482 * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2484 * tree-profile.c (tree_gen_edge_profiler): Likewise.
2485 * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2486 * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2487 * tree-chrec.h (build_polynomial_chrec): Likewise.
2489 2005-12-02 Richard Guenther <rguenther@suse.de>
2491 * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2492 alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2493 * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2494 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2495 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2496 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2497 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2499 * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2500 sh_adjust_unroll_max): Likewise.
2501 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2502 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2503 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2505 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2507 * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2510 2005-12-02 Richard Guenther <rguenther@suse.de>
2512 * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2513 simplify_cond_using_ranges): Use buildN instead of build.
2514 * tree-tailcall.c (adjust_accumulator_values,
2515 adjust_return_value): Likewise.
2516 * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2517 generate_element_copy, generate_element_zero,
2518 generate_one_element_init): Likewise.
2519 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2520 * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2521 lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2522 perfect_nestify): Likewise.
2524 2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2526 * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2528 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
2530 * ggc.h (GGC_RESIZEVEC): New.
2532 2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2534 * gcc.c (execute): Improve readability.
2536 2005-12-02 Richard Guenther <rguenther@suse.de>
2538 * tree-cfg.c (mark_used_vars): New function.
2539 (dump_function_to_file): Dump only used VAR_DECLs.
2541 2005-12-02 Richard Guenther <rguenther@suse.de>
2543 * convert.c (convert_to_integer): Fix compare for nonpositive
2544 constant to use tree_int_cst_sgn <= 0.
2546 2005-12-02 Richard Guenther <rguenther@suse.de>
2548 * convert.c (convert_to_integer): Use fold_convert instead
2549 of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0
2550 instead of comparing against 0. Use build_int_cst instead
2551 of converting integer_zero_node.
2553 2005-12-02 Richard Guenther <rguenther@suse.de>
2555 * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2558 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2561 * combine.c (simplify_logical <IOR>): Simplify more patterns to
2564 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2567 * function.c (expand_function_end): Emit blockage for unwinder
2570 2005-12-01 Roger Sayle <roger@eyesopen.com>
2572 * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2573 constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2574 * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2575 integer constant comparisons.
2577 2005-12-02 Jon Grimm <jgrimm2@us.ibm.com>
2578 Janis Johnson <janis187@us.ibm.com>
2579 David Edelsohn <dje@watson.ibm.com>
2580 Ben Elliston <bje@au.ibm.com>
2582 * dfp.h, dfp.c: New files.
2583 * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2584 (DECNUM_H): Likewise.
2585 (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2586 (INCLUDES): Append $(DECNUMINC).
2587 (OBJS-common): Add dfp.o.
2589 * real.h (EXP_BITS): Pinch one bit to ..
2590 (struct real_value): Add decimal field.
2591 (real_format): Change table size, update documentation.
2592 (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2593 (real_from_string3): Declare.
2594 (decimal_single_format): Declare.
2595 (decimal_double_format): Declare.
2596 (decimal_quad_format): Declare.
2597 (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2598 (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2599 (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2600 * real.c: Include dfp.h.
2601 (normalize): Early return for decimal floats.
2602 (do_add): Zero decimal field.
2603 (do_compare): Call do_decimal_compare for decimal floats.
2604 (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2605 (real_arithmetic): Call decimal_real_arithmetic for decimal
2606 floating point operands.
2607 (real_identical): If a and b are of differing radix, return false.
2608 (real_to_integer): Call decimal_real_to_integer if the value is a
2610 (real_to_integer2): Likewise, call decimal_real_to_integer2.
2611 (real_to_decimal): Likewise, call decimal_real_to_decimal.
2612 (real_to_hexadecimal): Place "N/A" in the return string for
2614 (real_from_string3): New variant, given a mode.
2615 (real_maxval): Use decimal_real_maxval for decimal floats.
2616 (round_for_format): Use decimal_round_for_format for decimals.
2617 (real_convert): Use decimal_real_convert where appropriate.
2618 (significand_size): Handle base 10.
2619 (encode_decimal_single, decode_decimal_single,
2620 encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2621 decode_decimal_quad): New functions.
2622 (decimal_single_format): New.
2623 (decimal_double_format): New.
2624 (decimal_quad_format): New.
2625 * machmode.def: Add SD, DD and TD decimal floating point modes.
2626 * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2627 Include MODE_DECIMAL_FLOAT.
2628 (DECIMAL_FLOAT_MODE_P): New.
2629 * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2630 * genmodes.c (struct mode_data): Add counter field.
2631 (struct mode_data): Update comment for format.
2632 (blank_mode): Initialise counter field.
2633 (new_mode): Increment counter field for each mode defined.
2634 (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2636 (make_complex_modes): Handle modes containing `D'.
2637 (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2638 (make_decimal_float_mode): New.
2639 (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2640 (cmp_modes): Compare counter field if other characteristics
2642 (emit_real_format_for_mode): Support formats for decimal floats.
2643 * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2644 Document MODE_DECIMAL_FLOAT.
2646 2005-12-02 Alan Modra <amodra@bigpond.net.au>
2648 * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2651 2005-12-01 Richard Henderson <rth@redhat.com>
2653 * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2655 2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2657 * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2659 * config/pa/pa.c (pa_init_builtins): If we detect
2660 DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2663 2005-12-01 Richard Guenther <rguenther@suse.de>
2665 * fold-const.c (fold_binary): Use fold_build2, not
2668 2005-12-01 Nathan Sidwell <nathan@codesourcery.com>
2670 * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2672 * vec.h (VEC_block_remove): New.
2674 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
2677 * c-common.c (lvalue_error): Fix wording.
2679 2005-12-01 Richard Guenther <rguenther@suse.de>
2681 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2682 thinko in last patch.
2684 2005-12-01 Geoffrey Keating <geoffk@apple.com>
2686 * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2687 than -flat_namespace.
2689 2005-12-01 Ben Elliston <bje@au.ibm.com>
2691 * mklibgcc.in: Parameterise the script to build soft float
2692 functions by iterating over each type, rather than cloning the
2695 2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2698 * builtins.c (fold_builtin_fputs): Defer check for missing
2699 replacement functions.
2701 2005-11-30 Kean Johnston <jkj@sco.com>
2703 * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2704 simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2706 2005-11-30 Richard Guenther <rguenther@suse.de>
2708 PR tree-optimization/22501
2709 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2710 function split out from ...
2711 (forward_propagate_addr_expr): ... here. Use it to propagate
2712 ADDR_EXPRs to all uses.
2714 2005-11-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2716 * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2717 * builtins.c (expand_builtin_mathfn): Use them.
2718 (expand_builtin_mathfn_2): Likewise.
2719 (expand_builtin_mathfn_3): Likewise.
2720 (expand_builtin_int_roundingfn): Likewise.
2721 (expand_builtin): Likewise.
2722 (integer_valued_real_p): Likewise.
2723 (fold_builtin_int_roundingfn): Likewise.
2724 (fold_builtin_bitop): Likewise.
2725 (fold_builtin_logarithm): Likewise.
2726 (fold_builtin_1): Likewise.
2727 * convert.c (convert_to_integer): Likewise.
2728 * fold-const.c (negate_mathfn_p): Likewise.
2729 (tree_expr_nonnegative_p): Likewise.
2731 2005-11-30 Dale Johannesen <dalej@apple.com>
2732 Andrew Pinski <pinskia@physics.uc.edu>
2734 * combine.c (find_split_point): Sign extend bitmask
2735 when changing bitfield assignment to IOR of AND.
2737 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2739 * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2740 clobber to scratch reg.
2741 (*decrement_and_branch_until_zero_no_clobber): Remove.
2742 (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2743 (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2744 * config/ms1/ms1.opt (mmul): Remove.
2745 * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2746 (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2748 2005-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2749 Bernd Schmidt <bernd.schmidt@analog.com>
2751 * pa/predicates.md (symbolic_operand): Add comment.
2752 * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2753 * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2754 * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2755 (pa_secondary_reload_class): Delete.
2756 (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2757 and pa_secondary_reload_class. Reorder some checks. Update inline
2758 copy of symbolic operand.
2759 * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2761 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
2763 * loop-doloop.c (add_test): Only add jump notes if we did emit a
2766 2005-11-30 Jeff Law <law@redhat.com>
2768 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2769 handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2771 2005-11-30 Jakub Jelinek <jakub@redhat.com>
2773 * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2774 Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2775 (ia64_expand_move): Adjust caller.
2777 * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2778 fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2781 2005-11-30 Paolo Bonzini <bonzini@gnu.org>
2783 * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2784 Always produce an output if we can remove NEGs or canonicalize
2785 (minus (minus ...)) expressions. Provide a fast path for the
2787 (simplify_gen_binary): Do not call simplify_plus_minus.
2788 (simplify_binary_operation_1): Reassociate at the end of the
2791 2005-11-29 Evan Cheng <evan.cheng@apple.com>
2793 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2794 moves and unpack to speed up.
2796 2005-11-29 David S. Miller <davem@sunset.davemloft.net>
2798 * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2799 argument, they are always sparc_compare_op0 and sparc_compare_op1.
2800 (gen_v9_scc): Update callers.
2801 * config/sparc/sparc.md: Likewise.
2802 * config/sparc/sparc-protos.h: Update extern declaration.
2804 * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2806 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2808 * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2811 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2813 * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2814 (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2815 (negate_expr): Here.
2817 2005-11-29 Ben Elliston <bje@au.ibm.com>
2819 * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2820 Fix typo in comment.
2822 2005-11-29 Ben Elliston <bje@au.ibm.com>
2824 * Makefile.in (clean-target): Depend on clean-target-libgcc.
2825 (clean-target-libgcc): Import rule from the top-level Makefile.in.
2827 2005-11-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2831 * builtins.c (init_target_chars): New.
2832 (expand_builtin_printf, expand_builtin_fprintf,
2833 expand_builtin_sprintf, fold_builtin_sprintf,
2834 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2835 fold_builtin_snprintf_chk, fold_builtin_printf,
2836 fold_builtin_fprintf): Check for matching format strings using
2839 2005-11-29 Paul Brook <paul@codesourcery.com>
2841 * config.gcc: Do not use fixproto on m68k-elf.
2843 2005-11-28 Roger Sayle <roger@eyesopen.com>
2845 * expmed.c (div_cost): Replace with...
2846 (sdiv_cost, udiv_cost): New.
2847 (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2848 Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2849 and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2850 (expand_divmod): Replace use of div_cost with either sdiv_cost
2851 or udiv_cost depending upon the signedness of the operation.
2853 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
2856 * config/darwin.c (machopic_indirection_name,
2857 machopic_output_indirection): Follow transparent alias chain.
2859 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
2861 * varasm.c (ultimate_transparent_alias_target): Add comment.
2863 2005-11-28 Kazu Hirata <kazu@codesourcery.com>
2865 * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2866 SET_SRC instead of XEXP where appropriate.
2868 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
2870 * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2873 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
2875 * config/fp-bit.h (LSHIFT): Take shift count parameter.
2876 * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2879 2005-11-28 Bernd Schmidt <bernd.schmidt@analog.com>
2881 * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2882 secondary_input_reload_class, made static. Adapt to new
2884 (secondary_output_reload_class): Delete.
2885 (TARGET_SECONDARY_RELOAD): New macro.
2886 * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2887 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2889 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
2892 * c-decl.c (finish_struct): Only set DECL_PACKED on a field
2893 when its natural alignment is > BITS_PER_UNIT.
2894 * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2895 * c-common.c (handle_packed_attribute): Ignore packing on a field
2896 whose type is naturally char aligned.
2898 2005-11-28 Richard Guenther <rguenther@suse.de>
2900 * c-common.c (strict_aliasing_warning): Handle all
2901 component-ref like accesses.
2903 2005-11-28 Roger Sayle <roger@eyesopen.com>
2904 Uros Bizjak <uros@kss-loka.si>
2907 * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2908 sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2909 when flag_unsafe_math_optimizations is set and
2910 we don't care about NaNs or Infinities.
2912 Move x/expN(y) and x/pow(y,z) transformation into common
2913 flag_unsafe_math_optimizations section.
2915 2005-11-27 Mark Mitchell <mark@codesourcery.com>
2917 * gcc.c (main): Change type of argv to "char **".
2919 2005-11-28 Alan Modra <amodra@bigpond.net.au>
2921 * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2922 small data sections.
2923 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2924 * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2925 * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2926 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
2927 output locals to sbss if !rs6000_elf_in_small_data_p.
2928 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2930 2005-11-28 Alan Modra <amodra@bigpond.net.au>
2933 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2934 generated by reload.
2935 * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2936 indexed_or_indirect_address.
2937 (indexed_or_indirect_address): Don't test for base reg. Call
2938 address_operand last. Make it a special predicate.
2940 2005-11-27 Kazu Hirata <kazu@codesourcery.com>
2942 * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2944 2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
2947 * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2949 (negate_expr): Likewise.
2951 2005-11-27 Andreas Schwab <schwab@suse.de>
2953 * config/m68k/m68k.c: Reindent and fix whitespace, remove
2956 2005-11-27 Steven Bosscher <stevenb@suse.de>
2958 * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2959 has EH predecessor edges.
2961 2005-11-26 Eric Christopher <echristo@apple.com>
2963 * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2964 register stalls by zero extending to the full register.
2966 2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
2968 * config/floatunsisf.c, config/floatunsidf.c,
2969 config/floatunsixf.c, config/floatunsitf.c: New files.
2970 * config/ia64/t-hpux: Add floatunsitf.c.
2971 * config/ia64/ia64.c (ia64_init_libfuncs): Use
2972 _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2974 2005-11-26 Richard Henderson <rth@redhat.com>
2976 * c-lex.c (pragma_lex): Rename from c_lex.
2977 * c-pch.c: Update for pragma_lex rename.
2978 * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2979 * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2980 * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2981 * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2982 * doc/tm.texi: Likewise.
2984 2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
2987 * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2988 when overflow is undefined.
2990 2005-11-26 Hans-Peter Nilsson <hp@axis.com>
2992 * doc/md.texi (Insn Canonicalizations): Refer to the
2993 function commutative_operand_precedence for further rules.
2995 2005-11-25 Roger Sayle <roger@eyesopen.com>
2998 * expmed.c (choose_mult_variant): Return immediately when mult_cost
2999 is less than zero. Limit mult_cost to a reasonable upper bound for
3000 the synthetic multiplication sequence.
3002 2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3005 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
3006 fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
3007 Lookup the explicit replacement functions for any unlocked
3008 stdio builtin transformations.
3010 2005-11-25 Hans-Peter Nilsson <hp@axis.com>
3012 * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
3014 * targhooks.c (default_secondary_reload): Don't require operand 2
3015 for an input reload to be earlyclobber.
3017 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3019 * fold-const.c (negate_mathfn_p): Fix comment and add support
3020 for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
3023 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
3026 * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
3027 _Q_ulltoq for unsigned conversions from SImode and DImode to
3030 2005-11-25 Alan Modra <amodra@bigpond.net.au>
3032 * config/rs6000/ppc64-fp.c (__floatunditf): New function.
3033 (__floatundidf, __floatundisf): Likewise.
3035 2005-11-25 David Edelsohn <edelsohn@gnu.org>
3037 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
3038 (rs6000_override_options): Remove initialization of
3039 rs6000_sr_alias_set.
3040 (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
3041 (rs6000_emit_stack_tie): Same.
3042 (emit_frame_save): Same.
3043 (gen_frame_mem_offset): Same.
3044 (rs6000_emit_prologue): Same.
3045 (rs6000_emit_epilogue): Same.
3047 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3050 * fold-const.c (fold_build): Convert bool_var != 1 and
3051 bool_var == 0 to !bool_var.
3053 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3056 * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
3057 for C being INTEGER_CST. Likewise for !=.
3059 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
3062 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
3063 unsigned conversions from SImode to TFmode.
3065 2005-11-24 Bernd Schmidt <bernd.schmidt@analog.com>
3067 * expr.c (expand_expr_real_1): Fix error in last change.
3069 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
3071 * caller-save.c: (this_insn_sets): Move into:
3072 (save_call_clobbered_regs).
3073 (mark_set_regs): Get this_insn_sets from data.
3075 (save_call_clobbered_regs): Take sets of the return value by
3076 sibcalls into account.
3078 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
3081 * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
3082 SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
3083 (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
3084 (memory_move_secondary_cost, init_reg_autoinc): Remove
3085 SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
3086 Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
3087 secondary_reload_class call.
3088 (copy_cost): Likewise. Add new parameter prev_sri. Changed all
3090 * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
3091 (push_secondary_reload): Use secondary_reload target hook.
3092 (secondary_reload_class, scratch_reload_class): New functions.
3093 (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
3094 SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
3095 SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
3096 * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
3097 (secondary_reload_class, scratch_reload_class): Declare.
3098 * reload1.c: Include target.h.
3099 (reload_adjust_reg_for_temp): New function.
3100 (reload_adjust_reg_for_icode): Likewise.
3101 (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
3102 Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
3104 (emit_input_reload_insns): Likewise. Rewrite secondary reload checks
3105 for inheritance. Support case when both secondary & tertiary reloads
3106 are for intermediate registers.
3107 (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
3108 with secondary_reload_class call. Support case when both secondary
3109 & tertiary reloads are for intermediate registers.
3110 * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
3111 (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
3112 * target.h (secondary_reload_info): New struct / typedef.
3113 (struct gcc_target): New member secondary_reload.
3114 * targhooks.c Include reload.h, optabs.h and recog.h.
3115 (default_secondary_reload): New function.
3116 * targhooks.h (default_secondary_reload): Declare.
3117 * doc/tm.texi: Document secondary_reload target hook. Update
3118 description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
3119 * doc/md.texi: Likewise.
3121 * sh-protos.h (sh_secondary_reload): Declare.
3122 * sh.c (TARGET_SECONDARY_RELOAD): Override.
3123 (sh_secondary_reload): New function.
3124 * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
3125 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3126 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3127 (HAVE_SECONDARY_RELOADS): Define.
3128 * sh.md (reload_indf): Rename to:
3130 (reload_outdf): Rename to:
3131 (reload_outdf__RnFRm).
3132 (reload_insf): Rename to:
3134 (reload_insi): Rename to:
3135 (reload_insi__i_fpul).
3137 2005-11-24 Uros Bizjak <uros@kss-loka.si>
3139 * configure.ac: Require at least texinfo 4.4.
3140 * configure: Regenerate.
3142 * doc/install.texi (Tools/packages necessary for building GCC):
3143 Update required version of texinfo to at least 4.4.
3144 (Installing GCC: Building): Update required version of texinfo
3146 (Installing GCC: Final installation): Update required version
3147 of texi2dvi to at least 4.4.
3148 (Host/target specific installation notes for GCC): Update required
3149 version of texinfo to at least 4.4.
3151 2005-11-24 Richard Guenther <rguenther@suse.de>
3152 Dirk Mueller <dmueller@suse.de>
3155 * c-common.h (strict_aliasing_warning): Declare.
3156 * c-common.c (strict_aliasing_warning): New function,
3158 * c-typeck.c (build_c_cast): ... here.
3160 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
3162 * optabs.c (expand_binop): Use swap_commutative_operands_with_target
3164 (swap_commutative_operands_with_target): New.
3166 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
3168 * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
3169 also when doing PRE, rather than only for global CPROP.
3171 2005-11-24 Ben Elliston <bje@au.ibm.com>
3173 * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
3174 * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
3176 (expand_twoval_unop): Likewise.
3177 (widen_clz): Likewise.
3178 (expand_parity): Likewise.
3179 (expand_unop): Likewise.
3180 (emit_cmp_and_jmp_insn_1): Likewise.
3181 (prepare_float_lib_cmp): Likewise.
3183 2005-11-24 Ben Elliston <bje@au.ibm.com>
3185 * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
3186 Remove unused `class' variable.
3188 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3191 * c-typeck.c (build_array_ref): Avoid code duplicate. Use common
3192 C/C++ diagnostic function warn_array_subscript_with_type_char.
3193 * c-common.h (warn_array_subscript_with_type_char): Declare.
3194 * c-common.c (warn_array_subscript_with_type_char): Define.
3196 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3199 * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
3200 compiling at the intersection of C and C++.
3202 2005-11-23 Mark Mitchell <mark@codesourcery.com>
3204 * doc/invoke.texi: For man pages, include gcc-vers.texi.
3205 List @file in the option summary. Include the libiberty
3206 documentation for @file.
3207 * gcc.c (main): Call expandargv.
3208 * Makefile.in (gcc-vers.texi): Define srcdir.
3210 2005-11-23 Diego Novillo <dnovillo@redhat.com>
3212 * passes.c (init_optimization_passes): Document
3213 sequencing of passes.
3215 2005-11-23 Kazu Hirata <kazu@codesourcery.com>
3217 * config/m68k/predicates.md (pcrel_address, extend_operator,
3218 post_inc_operand, pre_dec_operand): Remove redundant
3220 (const_uint32_operand, const_sint32_operand): Use gcc_assert
3222 (valid_dbcc_comparison_p): Rewrite in the lisp style.
3224 2005-11-23 Ben Elliston <bje@au.ibm.com>
3226 * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
3228 2005-11-22 J"orn Rennecke <joern.rennecke@st.com>
3230 Preparatory work for PR target/21623:
3231 * alpha.c (secondary_reload_class): Rename to:
3232 (alpha_secondary_reload_class).
3233 * alpha.h, alpha-protos.h: Likewise.
3234 * mn10300.c (secondary_reload_class): Rename to:
3235 (mn10300_secondary_reload_class).
3236 * mn10300.h, mn10300-protos.h: Likewise.
3237 * pa.c (secondary_reload_class): Rename to:
3238 (pa_secondary_reload_class).
3239 * pa.h, pa-protos.h: Likewise.
3240 * rs6000.c (secondary_reload_class): Rename to:
3241 rs6000_secondary_reload_class.
3242 * rs6000.h, rs6000-protos.h: Likewise.
3244 2005-11-22 Eric Botcazou <ebotcazou@adacore.com>
3247 * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
3249 2005-11-22 Ian Lance Taylor <ian@airs.com>
3251 * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
3253 (prepare_cmp_insn): Likewise.
3255 2005-11-22 Kazu Hirata <kazu@codesourcery.com>
3258 * m68k.md (zero_extendsidi2): Force operands[1] to a register
3259 if both operands[0] and operands[1] are memory.
3261 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
3264 * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
3265 COMPARISON_CLASS_P and an integral types create create a new
3266 expression with the new type and fold that.
3268 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
3271 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
3272 to SUBTARGET_OS_CPP_BUILTINS.
3274 2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com>
3276 * arm.c (emit_set_insn): New function.
3277 (arm_split_constant): Call it.
3278 (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
3279 (arm_legitimize_address): Likewise. Use plus_constant.
3280 (arm_expand_prologue): Likewise. Use VOIDmode in SET.
3281 (thumb_expand_prologue): Likewise.
3282 (arm_gen_load_multiple): Use VOIDmode in SET.
3283 (arm_gen_store_multiple): Likewise.
3284 (vfp_emit_fstmx): Likewise. Use plus_constant.
3285 (emit_multi_reg_push): Likewise.
3286 (emit_sfm): Use plus_constant.
3288 2005-11-23 Alan Modra <amodra@bigpond.net.au>
3291 * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
3294 2005-11-22 Alan Modra <amodra@bigpond.net.au>
3297 * expmed.c (store_bit_field): Don't attempt to insv a field
3298 larger than the reg.
3300 2005-11-22 Alan Modra <amodra@bigpond.net.au>
3303 * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
3304 explicit sign extension, not a (char) cast.
3306 2005-11-22 Ben Elliston <bje@au.ibm.com>
3308 * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
3309 GET_MODE_CLASS (x) == MODE_FLOAT.
3310 * config/i386/i386.c: Likewise.
3311 * config/rs6000/xcoff.h: Likewise.
3312 * config/rs6000/linux64.h: Likewise.
3313 * config/rs6000/rs6000.c: Likewise.
3314 * config/rs6000/rs6000.h: Likewise.
3315 * config/rs6000/predicates.md: Likewise.
3316 * config/rs6000/sysv4.h: Likewise.
3318 2005-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3320 * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
3323 * config/alpha/freebsd.h, config/alpha/linux.h,
3324 config/arm/linux-elf.h, config/bfin/bfin.h,
3325 config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
3326 config/i386/beos-elf.h, config/i386/gnu.h,
3327 config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
3328 config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
3329 config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
3330 config/rs6000/linux64.h, config/rs6000/sysv4.h,
3331 config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
3332 config/sh/linux.h, config/sh/sh.h, config/sol2.h,
3333 config/sparc/linux.h, config/sparc/linux64.h,
3334 config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
3336 * doc/invoke.texi: Document that the macros __pic__ and __PIC__
3337 are both defined when either flag -fpic or -fPIC are used.
3339 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
3341 * config/fp-bit.c (clzusi): New function.
3342 (si_to_float, usi_to_float): Use it to compute proper shift.
3343 (usi_to_float): Preserve guard bits when shifting right.
3344 * libgcc-std.ver (GCC_4.2.0): New version.
3345 * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
3346 __floatundisf): New functions.
3347 * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
3348 __floatundisf): Declare.
3349 * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
3350 _floatundixf, and _floatunditf.
3351 * optabs.c (expand_float): If target does not define a pattern for
3352 signed or unsigned conversion, use an unsigned libcall instead of
3354 (init_optabs): Initialize ufloat_optab.
3356 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
3358 * config/rs6000/rs6000.opt (mmulhw): New option.
3359 * doc/invoke.texi (-mmulhw): Document.
3360 * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
3362 * config/rs6000/rs6000.md: Add half-word multiply and
3363 multiply-accumulate instructions for 405 and 440.
3365 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
3367 * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
3368 which matches behavior of gcc 4.0 and older for RTEMS targets. The
3369 default now includes a linker group which makes the RTEMS one nest.
3371 2005-11-22 Ben Elliston <bje@au.ibm.com>
3373 * cse.c (fold_rtx): Typo fix.
3374 (find_comparison_args): Pass the mode of arg1, not arg1 itself.
3376 2005-11-21 Richard Henderson <rth@redhat.com>
3378 * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
3379 langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
3381 * c-tree.h (lookup_name): Move declaration ...
3382 * c-common.h (lookup_name): ... here.
3383 * config/darwin-c.c: Include c-common.h.
3384 * config/t-darwin: Update dependencies.
3386 2005-11-22 Ben Elliston <bje@au.ibm.com>
3388 * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
3389 explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
3390 * genopinit.c (gen_insn): Likewise.
3391 * reload.c (find_equiv_reg): Likewise.
3392 * loop.c (load_mems): Likewise.
3393 * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
3394 * cse.c (find_comparison_args, fold_rtx): Likewise.
3395 * dwarf2out.c (add_const_value_attribute): Likewise.
3396 * expr.c (convert_move): Likewise.
3397 * recog.c (general_operand, register_operand): Likewise.
3398 * reg-stack.c (replace_reg): Likewise.
3399 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3400 * c-common.c (handle_vector_size_attribute): Likewise.
3401 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3402 (simplify_binary_operation_1): Likewise.
3403 (simplify_const_binary_operation): Likewise.
3404 (simplify_relational_operation): Likewise.
3405 (simplify_const_relational_operation): Likewise.
3406 (simplify_immed_subreg): Likewise.
3407 * emit-rtl.c (gen_lowpart_common): Likewise.
3408 * expmed.c (expand_mult): Likewise.
3409 * stor-layout.c (layout_type): Likewise.
3411 2005-11-21 Paolo Bonzini <bonzini@gnu.org>
3414 * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
3415 cst2 only for SPE vectors.
3417 2005-11-21 David Edelsohn <edelsohn@gnu.org>
3420 * config/rs6000/predicates.md (vrsave_operation): Check
3421 UNSPEC_VOLATILE value.
3423 2005-11-21 Jan Hubicka <jh@suse.cz>
3425 PR tree-optimization/24653
3426 * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
3428 2005-11-21 Uros Bizjak <uros@kss-loka.si>
3430 * config/i386/predicates.md (ax_reg_operand): New predicate.
3431 (memory_displacement_only_operand): New predicate.
3432 * config/i386/i386.md ("modrm" attribute): Return 0 if one
3433 operand is AX register and the other operand is memory operand
3434 with displacement only.
3436 2005-11-21 Uros Bizjak <uros@kss-loka.si>
3438 * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
3439 if we don't care about NaNs or Infinities.
3441 2005-11-20 Ian Lance Taylor <ian@airs.com>
3443 PR rtl-optimization/24883
3444 * combine.c (combinable_i3pat): When checking whether the
3445 destination of i3 is used in i3, consider paradoxical subregs.
3447 2005-11-21 Kazu Hirata <kazu@codesourcery.com>
3450 * cse.c (cse_insn): Reject invalid forms of CONST earlier.
3452 2005-11-20 Joseph S. Myers <joseph@codesourcery.com>
3454 * combine.c (try_combine): Do not run subst on i1src and i2src in
3455 the case of generating a PARALLEL for a comparison.
3457 2005-11-20 Richard Henderson <rth@redhat.com>
3460 * tree-sra.c (struct sra_elt): Add all_no_warning.
3461 (struct sra_walk_fns) <use>: Add use_all argument.
3462 (sra_walk_expr): Pass it.
3463 (sra_walk_modify_expr): Likewise.
3464 (scalarize_ldst): Likewise.
3465 (scan_use): Update for new argument.
3466 (mark_no_warning): New.
3467 (scalarize_use): Use it.
3469 2005-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
3471 * expr.c (expand_expr_real): Use usmul_optab for widening
3472 signed * unsigned multiplies.
3473 * genopinit.c (optabs): Add usmul_widen_optab.
3474 * optabs.c (init_optabs): Likewise.
3475 * optabs.h (enum optab_index): Add OTI_usmul_widen.
3476 (usmul_widen_optab): Define.
3477 * config/bfin/bfin.md (usmulhisi3): New pattern.
3479 * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
3481 2005-11-20 Graham Stott <btinternet.com>
3483 * gensupport.c (std_preds): Fixed extraneous `false` in last change.
3485 2005-11-20 Andreas Schwab <schwab@suse.de>
3488 * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
3491 2005-11-19 Richard Henderson <rth@redhat.com>
3494 * tree-gimple.c (is_gimple_id): Export.
3495 * tree-gimple.h (is_gimple_id): Declare.
3496 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
3497 (get_default_value): Use it.
3498 (maybe_fold_stmt_indirect): Likewise.
3500 2005-11-19 James A. Morrison <phython@gcc.gnu.org>
3502 * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
3503 than VR1 or vice-versa.
3505 2005-11-19 Hans-Peter Nilsson <hp@axis.com>
3509 * reload.c (find_reloads_address_1): Mention dependency on
3511 * reload1.c (gen_reload): For IN with an unary operation, try
3512 moving inner expression to OUT if trivial SET is not valid.
3513 Confirm that the result is valid. Move common code block into...
3514 (emit_insn_if_valid_for_reload): New function.
3516 2005-11-19 Richard Guenther <rguenther@suse.de>
3518 * fold-const.c (fold_indirect_ref_1): Make sure we fold
3519 ARRAY_REFs of constant strings.
3521 2005-11-19 Jakub Jelinek <jakub@redhat.com>
3523 * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
3524 fatal format string.
3526 2005-11-19 Joseph S. Myers <joseph@codesourcery.com>
3528 * combine.c (make_compound_operation): Swap operands of
3529 commutative operation if necessary before returning.
3531 2005-11-19 Richard Guenther <rguenther@suse.de>
3534 * fold-const.c (fold_plusminus_mult_expr): New function.
3535 (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
3536 cases, remove now unnecessary code.
3538 2005-11-19 Paolo Bonzini <bonzini@gcc.gnu.org>
3540 * gensupport.c (old_preds): Rename to std_preds, add special field.
3541 (struct old_pred_table): Rename to struct std_pred_table, add special
3543 (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
3544 (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
3545 (init_predicate_table): Adjust, and set along the way whether a
3546 predicate is special.
3548 2005-11-18 Mark Mitchell <mark@codesourcery.com>
3550 * BASE-VER: Change to 4.2.0.
3552 2005-11-18 James E Wilson <wilson@specifix.com>
3554 * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
3557 2005-11-18 Mike Stump <mrs@apple.com>
3559 * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
3560 * config/darwin-c.c (darwin_pragma_unused): Likewise.
3561 * c-decl.c (lookup_name_two) Remove.
3562 * c-tree.h (lookup_name_two): Remove.
3563 * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3564 * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
3565 (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
3566 * langhooks.h (lang_hooks_for_decls): Add lookup_name.
3568 2005-11-18 Richard Earnshaw <richard.earnshaw@arm.com>
3571 * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
3572 when not generating code to use that co-processor.
3574 2005-11-18 James A. Morrison <phython@gcc.gnu.org>
3576 * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
3577 add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
3578 these functions are now in tree-phinodes.c.
3580 2005-11-18 Jie Zhang <jie.zhang@analog.com>
3582 * config/bfin/bfin.md (trap): New pattern.
3584 2005-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3586 * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
3589 * expr.c (expand_expr_real): Don't call record_block_change unless
3590 ib_boundaries_block is non-null
3592 * postreload.c (reload_cse_move2add): Don't try to work with BImode.
3594 * fold-const.c (build_range_check): Use proper type for subtraction
3595 when merging lower bound.
3597 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
3599 PR rtl-optimization/24497
3600 * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
3603 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
3605 * tree-scalar-evolution.c (expression_expensive_p): New function.
3606 (scev_const_prop): Use compute_overall_effect_of_inner_loop.
3608 2005-11-18 Bernd Schmidt <bernd.schmidt@analog.com>
3610 * config/bfin/crtlibid.s: New file.
3612 2005-11-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3615 * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3616 when not using sjlj exceptions.
3617 * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3618 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3619 * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3620 * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3621 DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3622 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3623 * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3624 DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3625 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3626 * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3627 (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3628 DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3629 ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3631 * config/pa/hpux-unwind.h: New file.
3633 2005-11-17 Alexandre Oliva <aoliva@redhat.com>
3635 * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3636 * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3637 * varasm.c (do_assemble_alias): Adjust call.
3638 (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3640 * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3642 2005-11-17 James E Wilson <wilson@specifix.com>
3644 * tree.def (FUNCTION_DECL): Correct typo in comment.
3646 2005-11-17 Richard Henderson <rth@redhat.com>
3648 * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3649 (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3650 and DW_CFA_def_cfa_sf.
3651 (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3652 (dbx_reg_number): Don't assert particular registers here.
3653 (based_loc_descr): ... do it here instead. Fold in ...
3654 (eliminate_reg_to_offset): ... this function.
3655 (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3656 of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3657 * unwind-dw2.c (execute_cfa_program): Apply data align factor
3658 to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3659 * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3660 (instantiate_virtual_regs): Likewise.
3661 * var-tracking.c (adjust_stack_reference): Likewise.
3662 * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3664 2005-11-17 Bernd Schmidt <bernd.schmidt@analog.com>
3666 * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3667 * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3668 * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3670 ($(T)crtlibid.o): New rule.
3672 2005-11-16 Richard Guenther <rguenther@suse.de>
3675 * fold-const.c (extract_array_ref): Return byte offset
3677 (fold_binary): Fold &x[a] CMP &x[b] to
3678 a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3681 2005-11-16 Richard Henderson <rth@redhat.com>
3684 * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3685 parts of an SSA_NAME.
3687 2005-11-16 Richard Earnshaw <richard.earnshaw@arm.com>
3690 * arm.md (split for movsf with immediate): Restrict split to insns
3691 that set a general register.
3693 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3695 * config/ia64/unwind-ia64.c (uw_advance_context): New. Call
3697 * unwind-dw2.c (uw_advance_context): Likewise.
3698 * unwind-sjlj.c (uw_advance_context): Likewise. Also call
3699 _Unwind_SjLj_Unregister.
3700 * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3702 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3704 * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3706 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3708 * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3709 langhook to get a DImode integer type.
3711 2005-11-16 Richard Henderson <rth@redhat.com>
3712 J"orn Rennecke <joern.rennecke@st.com>
3713 Ulrich Weigand <uweigand@de.ibm.com>
3717 * reload1.c (reg_equiv_invariant): New.
3718 (reload): Allocate, initialize, and free it.
3719 (calculate_needs_all_insns): Check it when skipping equivalence
3721 (alter_reg): Likewise.
3722 (eliminate_regs_1): Rename from eliminate_regs. Add new
3723 may_use_invariant argument; only use reg_equiv_invariant when true.
3724 (eliminate_regs): New.
3725 (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3726 a context for which may_use_invariant may be true.
3728 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3730 * fold-const.c (const_binop): Don't constant fold the operation
3731 if the result has overflowed and flag_trapping_math.
3732 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3734 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
3736 * config/arm/unwind-arm.c (abort): Add prototype here.
3737 (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3738 (struct phase1_vrs): Add prev_sp.
3739 (unwind_phase2_forced): Save the original core registers instead of
3740 modifying entry_vrs. Take a new flag argument for resuming unwinding
3741 and set action flags accordingly. Always set _US_END_OF_STACK when
3742 get_eit_entry fails. Unwind before calling the stop function.
3743 (_Unwind_GetCFA): New function.
3744 (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3745 (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3746 (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3747 just call unwind_phase2_forced.
3748 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3749 * config/arm/unwind-arm.h (abort): Remove prototype.
3750 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3752 (_Unwind_GetCFA): New prototype.
3753 * config/arm/pr-support.c (abort): Add prototype here.
3754 * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3756 * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3757 not schedule the prologue with non-call exceptions and EABI.
3759 2005-11-16 Nathan Sidwell <nathan@codesourcery.com>
3761 * config/arm/unwind-arm.h: Reorder interface function declarations.
3762 (_URC_END_OF_STACK): New enumeration value.
3763 (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3764 (struct _Unwind_Control_Block): Document reserved field use.
3765 (_Unwind_Stop_Fn): New typedef.
3766 (_Unwind_ForcedUnwind): Declare.
3767 (_Unwind_Resume_or_Rethrow): Declare.
3768 * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3770 (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3771 * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3772 (UCB_FORCED_STOP_ARG): New.
3773 (search_EIT_table): Update boundary condition checks.
3774 (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3775 (unwind_phase2): Replace for with do..while.
3776 (unwind_phase2_forced): New.
3777 (__gnu_Unwind_RaiseException): Replace for with do..while.
3778 (__gnu_Unwind_ForcedUnwind): New.
3779 (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3780 Use appropriate phase2 unwinder.
3781 (__gnu_Unwind_Resume_or_Rethrow): New.
3782 (__gnu_unwind_pr_common): Cope with forced unwinding.
3784 2005-11-16 David Edelsohn <edelsohn@gnu.org>
3787 * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3789 * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3790 roundsf2): Remove "s" from mnemonic.
3792 2005-11-16 Bernd Schmidt <bernd.schmidt@analog.com>
3794 * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3796 * config/bfin/crtn.s: Change epilogues to match.
3797 * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3798 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3799 __PIC__ and __pic__.
3801 2005-11-16 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
3804 * doc/invoke.texi: Distinguish between free and fixed form instead of
3805 Fortran and Fortran 90/95. Remove ratfor from the list of supported
3807 * gcc.c (default_compilers): Remove double entries, add entries for
3808 suffixes '.F90' and '.F95'.
3810 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
3812 * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3813 in the stack probing loop.
3815 2005-11-15 David Edelsohn <edelsohn@gnu.org>
3817 * configure.ac: Use .machine power5 not power5x.
3818 * configure: Regenerate.
3820 2005-11-15 Mike Stump <mrs@apple.com>
3822 * c-decl.c (lookup_name_two): Add.
3823 * c-tree.h (lookup_name_two): Likewise.
3824 * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3825 * config/darwin-c.c (darwin_pragma_unused): Likewise.
3827 2005-11-16 Alan Modra <amodra@bigpond.net.au>
3829 PR rtl-optimization/23392
3830 * regrename.c (enum scan_actions) Add mark_access.
3831 (scan_actions_name): Ditto.
3832 (scan_rtx_reg): Handle mark_access.
3833 (scan_rtx_address): Do nothing for mark_access.
3834 (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3835 and regs in REG_INC notes before closing chains for dead regs.
3836 Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3837 opening chains for new writes.
3839 2005-11-15 David Edelsohn <edelsohn@gnu.org>
3841 * c.opt (ffixed-line-length-none): New.
3843 2005-11-15 Steve Ellcey <sje@cup.hp.com>
3845 * mklibgcc.in: Change contents of eh_dummy.c.
3847 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
3849 * loop.c (scan_loop): Do not insert temporaries for hard registers.
3851 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
3853 * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3855 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also.
3857 2005-11-15 Jan Hubicka <jh@suse.cz>
3859 * invoke.texi (large-unit-insns): Document.
3860 * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3861 * params.def (large-unit-insns): New param.
3863 2005-11-15 Hans-Peter Nilsson <hp@axis.com>
3866 * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3867 special register for operand 3. Reindent constraints to align
3870 2005-11-14 David Edelsohn <edelsohn@gnu.org>
3872 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3873 -mpopcntb, -mfprnd. Add -mcpu=power5+.
3874 * configure.ac: Add test for FP rounding instructions.
3875 * configure: Regenerate.
3876 * config.in: Regenerate.
3877 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3878 _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3880 * config/rs6000/rs6000.opt (mfprnd): New.
3881 * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3882 (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3883 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3884 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3885 (TARGET_FPRND): New.
3886 * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3888 (btrunc<mode>2): New.
3890 (floor<mode>2): New.
3891 (round<mode>2): New.
3893 2005-11-14 Geoffrey Keating <geoffk@apple.com>
3895 * gcc.c (version_compare_spec_function): Use fatal() rather than
3898 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3899 (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3900 * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3902 * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3905 * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3906 on -mmacosx-version-min setting.
3908 2005-11-14 Diego Novillo <dnovillo@redhat.com>
3911 * tree-vrp.c (infer_value_range): Return false if STMT is a
3912 block terminator and its basic block has no successors.
3914 2005-11-14 Mike Stump <mrs@apple.com>
3916 * config/i386/i386.c (override_options): -masm=intel isn't
3917 supported on darwin.
3918 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3920 2005-11-15 Joseph S. Myers <joseph@codesourcery.com>
3922 * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3923 vfork after including auto-host.h.
3925 2005-11-15 Alan Modra <amodra@bigpond.net.au>
3927 PR rtl-optimization/22002
3928 * combine.c (distribute_notes): Detect cases where a reg dies
3929 two or more times in a bb, including on the insn we are combining,
3930 and place the death note on the correct range.
3932 2005-11-14 Dale Johannesen <dalej@apple.com>
3934 * expmed.c (store_bit_field): Add offset unconditionally for
3936 (extract_bit_field): Don't force extzv or extv operand into
3937 a register if field is too big.
3939 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
3941 * config/arm/arm.c (pic_labelno): New.
3942 (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3943 LABEL_REF. Pass only the labelno to PIC insns.
3944 (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3945 (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3946 * arm.md (UNSPEC_PIC_LABEL): New constant.
3947 (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3948 (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3949 Use the correct label prefix.
3951 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
3953 * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3956 2005-11-14 Richard Earnshaw <richard.earnshaw@arm.com>
3958 * loop-invariant.c: Include tm_p.h.
3959 * Makefile.in: Updated.
3961 2005-11-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3963 * pa.c (store_reg): Revise generation of frame notes in large frames.
3964 (set_reg_plus_d): Likewise.
3966 2005-11-13 Andrew MacLeod <amacleod@redhat.com>
3968 PR tree-optimization/24709
3969 * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3972 2005-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3974 * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3975 and duplicate declaration of pthread_self.
3977 2005-11-13 Eric Botcazou <ebotcazou@adacore.com>
3978 Ian Lance Taylor <ian@airs.com>
3981 * calls.c (expand_call): If TARGET is a MEM and some part of the
3982 argument area has been saved, force TARGET to a register.
3984 2005-11-13 Razya Ladelsky <razya@il.ibm.com>
3986 * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type