OSDN Git Service

2005-12-20 Kenneth Zadeck <zadeck@naturalbridge.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>
2
3         * cfganal.c (flow_reverse_top_sort_order_compute):
4         Renamed to post_order_compute and additional parameter added which
5         allows the inclusion of entry and exit blocks into list.
6         (mark_dfs_back_edges): Fixed comment.
7         (flow_depth_first_order_compute): Renamed to
8         pre_and_rev_post_order_compute additional parameter added which
9         allows the inclusion of entry and exit blocks into list.
10         * global.c (set_up_bb_rts_numbers): Call to
11         flow_reverse_top_sort_order_compute renamed to
12         post_order_compute.
13         * var-tracking.c (vt_stack_adjustments): Fixed comment.
14         (vt_find_locations): Call to
15         flow_depth_first_order_compute renamed to
16         pre_and_rev_post_order_compute.
17         * cfgloop.c (flow_find_loops): Ditto.
18         * tree-ssa-reassoc.c (init_reassoc): Ditto.
19         * df.c (df_analyze_1, df_analyze_subcfg): Calls to
20         flow_reverse_top_sort_order_compute renamed to post_order_compute
21         and calls to flow_reverse_top_sort_order_compute renamed to
22         post_order_compute.
23         * basic_block.h: Ditto.
24
25
26 2005-12-20  Roger Sayle  <roger@eyesopen.com>
27             Paolo Bonzini  <bonzini@gnu.org>
28
29         PR rtl-optimization/25115
30         * gcse.c (pre_insert_copy_insn): Fall back to the sole
31         SET in the insn if there is no SET for an
32         expression that is equivalent to EXPR.
33
34 2005-12-20  Richard Guenther  <rguenther@suse.de>
35
36         PR middle-end/24306
37         * builtins.c (std_gimplify_va_arg_expr): Do not align
38         va frame for zero sized types.
39         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
40
41 2005-12-20  Kazu Hirata  <kazu@codesourcery.com>
42
43         PR tree-optimization/25501
44         * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
45         used in the PHI argument corresponding to the edge from BB to
46         DEST.
47
48 2005-12-20  Richard Guenther  <rguenther@suse.de>
49
50         Revert
51         2005-12-02  Richard Guenther  <rguenther@suse.de>
52
53         * tree-cfg.c (mark_used_vars): New function.
54         (dump_function_to_file): Dump only used VAR_DECLs.
55
56 2005-12-19  Roger Sayle  <roger@eyesopen.com>
57
58         * combine.c (try_combine): Improve splitting of binary operators
59         by taking advantage of reassociative transformations.
60
61 2005-12-19  Jeff Law  <law@redhat.com>
62
63         * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
64         Strip away all type conversions after simplifying the
65         condition.
66
67         * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
68         cases the forwarder block dominates the destination.
69
70 2005-12-19  DJ Delorie  <dj@redhat.com>
71
72         * reload1.c (spill_failure): Dump reload data to dump file.
73         (find_reload_regs): Likewise.
74
75 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
76
77         PR tree-optimization/24793
78         * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
79         original reference if there are subvars.
80         * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
81
82 2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>
83
84         * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
85         Corrected basic block number calculations for changes in entry and
86         exit numbering.
87         
88 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
89
90         * tree-flow.h (struct var_ann_d): Change type of
91         may_aliases field to VEC(tree, gc) *.
92         (may_aliases): Declaration changed.
93         * tree-ssa-alias.c (group_aliases, add_may_alias,
94         replace_may_alias, dump_may_aliases_for,
95         is_aliased_with, add_type_alias, new_type_alias):
96         Work with VEC(tree, gc) * instead of varray.
97         * tree-flow-inline.h (may_aliases): Ditto.
98         * tree-ssa.c (verify_flow_insensitive_alias_info,
99         verify_name_tags): Ditto.
100         * tree-ssa-operands.c (add_stmt_operand): Ditto.
101
102 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
103
104         * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
105         comes back.
106
107 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
108
109         * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
110         check.
111
112 2005-12-19  Ben Elliston  <bje@au.ibm.com>
113
114         * doc/install.texi (Configuration): Typo in Fortran subheading.
115
116 2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>
117
118         * config/mt/mt.md (decrement_and_branch_until_zero): Add another
119         scratch.  Correct its reload split. Adjust its peephole.
120         (doloop_end): Add additional scratch.
121         (nop): Use 'nop'.
122         * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
123         (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
124         (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
125         (mt_builtin_saveregs): Replace with ...
126         (mt_setup_incoming_varargs): ... here.  Save just the varadic
127         args.
128         (mt_va_start): Remove.
129         (mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
130         (mt_machine_reorg): Split all insns here.
131         (TARGET_SETUP_INCOMING_VARARGS): Override.
132         * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
133         Set to CPU type.
134         (EXPAND_BUILTIN_VA_START): Remove.
135
136 2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
137
138         * flow.c (update_life_info, count_or_remove_death_notes): Fixed
139         latent bug that could happen if update_life_info was called with a
140         blocks parameter and the call to cleanup_cfg actually deleted one
141         of those blocks. 
142
143 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
144
145         * tree-ssa-structalias.c (update_alias_info): Remove handling
146         of may_be_aliased (SSA_NAME_VAR (op)) case.
147
148 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
149
150         * tree-flow.h (struct stmt_ann_d): Remove
151         makes_aliased_loads and makes_aliased_stores fields.
152         * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
153         and makes_aliased_loads fields.
154         * tree-ssa-dom.c (eliminate_redundant_computations): Do not
155         use makes_aliased_stores.
156         * tree-ssa-operands.c (clobbered_aliased_loads,
157         clobbered_aliased_stores, ro_call_aliased_loads): Removed.
158         (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
159         add_call_read_ops): Do not set makes_aliased_stores and
160         makes_aliased_loads fields.
161         * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
162         field.
163
164 2005-12-18  Geoffrey Keating  <geoffk@apple.com>
165
166         * config/darwin.h: Don't include darwin-sections.def to declare
167         global variables; instead create darwin_section_enum.
168         (darwin_section_enum): New.
169         (darwin_sections): New.
170         * config/darwin.c: Don't include darwin-sections.def to define
171         global variables.
172         (darwin_sections): New.
173         (output_objc_section_asm_op): Rewrite to take advantage of
174         darwin_sections.
175         (darwin_init_sections): Rewrite to use darwin_sections.
176         (machopic_output_indirection): Update for darwin_sections array.
177         (machopic_select_section): Likewise.
178         (machopic_select_rtx_section): Likewise.
179         (machopic_asm_out_constructor): Likewise.
180         (machopic_asm_out_destructor): Likewise.
181         (darwin_file_end): Likewise.
182         * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
183         * config/i386/i386.c (machopic_output_stub): Likewise.
184
185 2005-12-18  Richard Guenther  <rguenther@suse.de>
186
187         PR tree-optimization/25481
188         * tree-ssa-structalias.c (handle_ptr_arith): Handle
189         accesses we don't have a varinfo for.
190
191 2005-12-17  Jon Grimm  <jgrimm2@us.ibm.com>
192             Janis Johnson  <janis187@us.ibm.com>
193             Ben Elliston  <bje@au.ibm.com>
194
195         * optabs.c (init_floating_libfuncs): Handle decimal float modes.
196         (init_optabs): Handle libfuncs for decimal float.
197         * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
198         * stor-layout.c (int_mode_for_mode): Likewise.
199         * simplify-rtx.c (simplify_immed_subreg): Likewise.
200         (simplify_unary_operation_1): Skip optimisations for decimal float
201         modes.
202         * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
203         * emit-rtl.c (gen_const_vector): Add assertion check.
204         (init_emit_once): Populate const_tiny_rtx with constants in each
205         decimal float mode.
206         * expmed.c (extract_high_half, expand_mult_highpart_optab,
207         expand_mult_highpart): Assert that mode is not a scalar float
208         mode.
209         * expr.c (convert_move): Handle conversion between decimal and
210         binary floats of the same size.
211         * convert.c (convert_to_real): Consider decimal float types when
212         folding.
213         * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
214         describe decimal floating point types.
215         
216 2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
217
218         PR rtl-optimization/21041
219         * reload.c (find_reloads_subreg_address): Replace paradoxical
220         subreg of MEM by widened access only if the resulting memory
221         is properly aligned, even on !STRICT_ALIGNMENT targets.
222
223 2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
224
225         * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
226
227 2005-12-18  Steven Bosscher  <stevenb@suse.de>
228
229         * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
230         the 2005-12-17 patch to renumber the entry and exit blocks.
231
232 2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
233
234         * doc/objc.texi (Type encoding): Fix typo.
235
236 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
237
238         * tree-tailcall.c (find_tail_calls): Use XNEW.
239         * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
240         (free_all_edge_infos): Use explicit cast to convert from void *.
241         (vrp_free): Likewise.
242         (dom_opt_finalize_block): Likewise.
243         (record_equivalences_from_incoming_edge): Likewise.
244         (thread_across_edge): Likewise.  Use XCNEWVEC.
245         (record_cond): Use XCNEW.
246         (record_conditions): Use XNEWVEC.
247         (record_edge_info): Use XCNEWVEC.
248         (lookup_avail_expr): Use XNEW.
249         (record_range): Likewise.  Use GGC_NEW.
250         * tree-nested.c (var_map_hash): Use explicit cast to convert from
251         void *.
252         (var_map_eq): Likewise.
253         (lookup_field_for_decl): Likewise.
254         (convert_nonlocal_reference): Likewise.
255         (convert_local_reference): Likewise.
256         (convert_nl_goto_reference): Likewise.
257         (convert_nl_goto_receiver): Likewise.
258         (convert_call_expr): Likewise.
259         (convert_tramp_reference): Likewise.
260         (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
261         (convert_nl_goto_reference): Likewise.
262         (lookup_field_for_decl): Use GGC_NEW.
263         (create_nesting_tree): Use GGC_CNEW.
264         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
265         * tree-ssa-alias.c (init_alias_info): Use XCNEW.
266         (create_alias_map_for): Likewise.
267         (setup_pointers_and_addressables): Use XCNEWVEC.
268         (get_ptr_info): Use GGC_NEW.
269         (used_part_map_eq): Use explicit cast to convert from void *.
270         (up_lookup): Likewise.
271         (up_insert): Use XNEW.
272         (get_or_create_used_part_for): Use XCNEW.
273         (get_tmt_for): Likewise.
274         * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
275         * tree-ssa-pre.c (phi_trans_add): Use XNEW.
276         (bitmap_set_new): Use explicit cast to convert from void *.
277         (set_new): Likewise.
278         (insert_into_set): Likewise.
279         (pool_copy_list): Likewise.
280         (phi_translate): Likewise.
281         (create_value_expr_from): Likewise.
282         (insert_aux): Use XCNEWVEC.
283         (compute_avail): Use XNEWVEC.
284         * tree-ssa-live.c (calculate_live_on_entry): Likewise.
285         (sort_coalesce_list): Likewise.
286         (build_tree_conflict_graph): Use XCNEWVEC.
287         * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
288         * tree-ssa-copy.c (init_copy_prop): Likewise.
289         (fini_copy_prop): Likewise.
290         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
291         and XCNEWVEC.
292         (record_equiv): Use XNEW.
293         (uncprop_into_successor_phis): Use explicit cast to convert from
294         void *.
295         (uncprop_initialize_block): Likewise.
296
297 2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>
298
299         PR tree-optimization/24378      
300         * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
301         basic-block after loop-versioning. 
302
303 2005-12-18  Jeff Law  <law@redhat.com>
304
305         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
306         to simplify SWITCH_EXPR_CODE moved from here to ...
307         * tree-ssa-forwprop.c (simplify_switch_expr): Here.
308         (tree-ssa-forward_propagate_single_use_vars): Call
309         simplify_switch_expr when appropriate.
310
311 2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>
312
313         * doc/objc.texi (Type encoding): Add documentation about encoding
314         complex types and _Bool.
315
316 2005-12-17  Paul Brook  <paul@codesourcery.com>
317
318         * config/m68k/m68k.md (m68k_output_function_prologue): Always call
319         dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
320         when frame_pointer_needed. 
321
322 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
323
324         * tree-vn.c (vn_add): Use XNEW.
325         * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
326         (ccp_fold): Likewise.
327         (fold_stmt_r): Use explicit cast to convert from void *.
328         * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
329         (new_temp_expr_table): Likewise.
330         * gimplify.c (lookup_tmp_var): Use XNEW.
331         (gimplify_asm_expr): Use explcit cast to convert from void *.
332         * tree-into-ssa.c (get_ssa_name_ann): Likewise.
333         (get_def_blocks_for): Use XNEW.
334         (add_to_repl_tbl): Likewise.
335         (mark_def_sites): Use explicit cast to convert from void *.
336         (def_blocks_free): Likewise.
337         (mark_def_sites_initialize_block): Likewise.
338         (update_ssa): Use XNEWVEC.
339         * tree-dfa.c (create_var_ann): Use GGC_NEW.
340         (create_stmt_ann): Likewise.
341         (create_tree_ann): Likewise.
342         (referenced_var_insert): Likewise.
343         (set_default_def): Likewise.
344         (referenced_var_lookup_if_exists): Use explicit cast to convert
345         from void *.
346         (referenced_var_lookup): Likewise.
347         (default_def): Likewise.
348         (set_default_def): Likewise.
349         * tree-cfg.c (create_bb): Likewise.
350         (edge_to_cases_cleanup): Likewise.
351         (verify_node_sharing): Likewise.
352         (record_switch_edge): Use XNEW.
353         (cleanup_dead_labels): Use XCNEWVEC.
354         (tree_duplicate_sese_region): Use XNEWVEC.
355         * tree-scalar-evolution.c (get_instantiated_value): Likewise.
356         * tree-ssa.c (verify_ssa): Use XCNEWVEC.
357         (int_tree_map_eq): Use explicit cast to convert from void *.
358         * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
359         (__gcov_execl): Likewise.
360         (__gcov_execlp): Likewise.
361         (__gcov_execle): Likewise.
362         * tree-eh.c (struct_ptr_eq): Likewise.
363         (struct_ptr_hash): Likewise.
364         (lookup_stmt_eh_region_fn): Likewise.
365         (outside_finally_tree): Likewise.
366         (find_goto_replacement): Likewise.
367         (make_eh_edge): Likewise.
368         (mark_eh_edge): Likewise.
369         (add_stmt_to_eh_region_fn): Use GGC_NEW.
370         (record_in_finally_tree): Use XNEW.
371         (maybe_record_in_goto_queue): Use XRESIZEVEC.
372         (lower_try_finally_copy): Use XCNEWVEC.
373
374 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
375
376         * tree-inline.c (copy_body_r): Use explicit cast when converting
377         from void *.
378         (copy_bb): Likewise.
379         (copy_edges_for_bb): Likewise.
380         (remap_decl_1): Likewise.
381         (estimate_num_insns_1): Likewise.
382         * cgraph.c (hash_node): Use explicit cast when converting from
383         void *.
384         (eq_node): Likewise.
385         (cgraph_create_node): Use GGC_CNEW.
386         (cgraph_create_edge): Use GGC_NEW.
387         (cgraph_remove_node): Use explicit cast when converting from void *.
388         (hash_varpool_node): Likewise.
389         (eq_varpool_node): Likewise.
390         (cgraph_varpool_node): Use GGC_CNEW.
391         * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
392         * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
393         (eq_scev_info): Use explicit cast when converting from void *.
394         (find_var_scev_info): Likewise.
395         (set_instantiated_value): Likewise.
396         (gather_stats_on_scev_database_1): Likewise.
397         * cfgloop.h (simple_loop_desc): Use explicit cast when converting
398         from void *.
399         * c-pch.c (c_common_write_pch): Use XNEWVEC.
400         (c_common_read_pch): Likewise.
401         * prefix.c (save_string): Use XNEWVEC.
402         (translate_name): Use explicit cast when converting from void *.
403         * c-ppoutput.c (print_line): Use explicit cast when converting
404         from void *.
405         (pp_dir_change): Likewise.
406         * c-cppbuiltin.c (builtin_define_std): Likewise.
407         (builtin_define_with_value): Likewise.
408         (builtin_define_with_value_n): Likewise.
409         (builtin_define_with_int_value): Likewise.
410         (builtin_define_type_max): Likewise.
411         * c-incpath.c (add_env_var_paths): Use XNEWVEC.
412         (add_path): Use XNEW.
413         * c-format.c (check_format_info_main): Use GGC_NEW.
414         (format_type_warning): Use explicit cast when converting from void *.
415         * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
416         xmalloc. 
417         (start_init): Likewise.
418         * tree-flow-inline.h (first_referenced_var): Use explicit cast
419         when converting from void *.
420         (next_referenced_var): Likewise.
421         * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
422         * gensupport.c (lookup_predicate): Use explicit cast to convert
423         from void *.
424         (init_predicate_table): Use XCNEW instead of xcalloc.
425         * genpreds.c (process_define_predicate): Likewise.
426
427 2005-12-17  Danny Berlin <dberlin@dberlin.org>
428             Kenneth Zadeck <zadeck@naturalbridge.com>
429
430         * basic-block.h: Changed basic block numbering so that the entry
431         block is 0 and the exit block is 1.  Changed insn iterators so
432         that they are tolerant of blocks with no insns.
433         * regrename.c (copyprop_hardreg_forward): Changed basic block
434         numbering so that the entry block is 0 and the exit block is 1.
435         * sched-ebb.c (sehedule_ebbs): Ditto.
436         * tracer.c (branch_ratio_cutoff): Ditto.
437         * cfgloopmanip.c (fix_loop_structure): Ditto.
438         * cfghooks.c (verify_flow_info): Ditto.
439         * cfg.c (compact_blocks): Ditto.
440         * reorg.c (dbr_schedule): Ditto.
441         * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
442         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
443         calculate_dominance_info): Ditto.
444         * cfganal.c (create_edge_list, print_edge_list,
445         flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
446         flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
447         dfs_enumerate_from): Ditto.
448         * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
449         * ifcvt.c (find_if_case_2): Ditto.
450         * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
451         find_basic_blocks): Ditto.
452         * predict.c (predict_loops, tree_bb_level_predictions,
453         predict_paths_leading_to, propagate_freq): Ditto.
454         * lcm.c (compute_antinout_edge, compute_laterin,
455         compute_available): Ditto.
456         * function.c (thread_prologue_and_epilogue_insns): Ditto.
457         * gcse.c (gcse_main, bypass_jumps): Ditto.
458         * profile.c (compute_branch_probabilities,
459         compute_value_histograms, branch_prob): Ditto.
460         * tree-flow-inline.h (bsi_start, bsi_after_labels,
461         bsi_last): Ditto.
462         * tree-ssa-phiopt.c (tree_ssa_phiopt,
463         blocks_in_phiopt_order): Ditto.
464         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
465         compute_out, link_btr_uses, migrate_btr_defs): Ditto.
466         * tree-dfa.c (collect_dfa_stats): Ditto.
467         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
468         * cfglayout.c (fixup_reorder_chain): Ditto.
469         * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
470         partition_hot_cold_basic_blocks): Ditto.
471         * var-tracking.c (vt_find_locations): Ditto.
472         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
473         * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
474         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
475         label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
476         * tree-ssa-reassoc.c (init_reassoc): Ditto.
477         * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
478         rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
479         * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
480         and removed unused reverse orders.
481         * df.h (): Ditto.
482         * combine.c: Fix document typo.
483
484 2005-12-17  Jan Hubicka  <jh@suse.cz>
485
486         * tree-flow-inline.h (set_default_def, default_def): Kill.
487         * tree-dfa.c (default_defs): New global variable.
488         (default_def, set_default_def): New functions.
489         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
490         * tree-flow.h (struct var_ann_d): Kill default_def field.
491         (set_default_def, default_def): Update prototype.
492         (default_defs): Declare.
493
494 2005-12-16  Jeff Law  <law@redhat.com>
495
496         * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
497         (simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
498         into tree-ssa-forwprop.c.
499         (eliminate_redundant_computations): Do not call
500         simplify_rhs_and_lookup_avail_expr anymore.
501         * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
502         extracted from remnants of simplify_rhs_and_lookup_avail_expr.
503         (tree_ssa_forward_propagate_single_use_vars): Call
504         simplify_not_neg_expr appropriately.
505
506 2005-12-16  Bernd Trog  <berndtrog@yahoo.com>
507
508         PR target/20016
509         * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
510
511 2005-12-17  Kazu Hirata  <kazu@codesourcery.com>
512
513         PR rtl-optimization/25456
514         * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
515         info->x_start with p->x_start.
516
517 2005-12-17  Alan Modra  <amodra@bigpond.net.au>
518
519         * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
520         introduced 2005-12-16.
521
522 2005-12-16  Steven Bosscher  <stevenb@suse.de>
523
524         PR rtl-optimization/23837
525         * optabs.c (expand_binop): For a multi-word rotate, never emit
526         a REG_NO_CONFLICT block.
527
528 2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
529
530         PR middle-end/25457
531         * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
532
533         PR target/25447
534         * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
535         MODE_DECIMAL_FLOAT.
536
537 2005-12-16  Steven Bosscher  <stevenb@suse.de>
538
539         * loop-invariant.c (move_loop_invariants): Add missing hunk from
540         the previous patch, to nullify df.
541
542 2005-12-16  Steven Bosscher  <stevenb@suse.de>
543
544         * reorg.c (mostly_true_jump): Clean up code depending on
545         LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
546         poor man's branch prediction, instead rely on REG_BR_PROB
547         notes to be available.
548
549 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
550
551         PR rtl-optimization/24899
552         * loop.c (strength_reduce): Don't reduce giv that is not always
553         computable and where add_val or mult_val can trap.
554
555         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
556
557 2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
558
559         * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
560         names of ms1-16-002 files.
561
562 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
563
564         PR driver/20425
565         * gcc.c (for_each_path): New function.
566         (add_to_obstack, file_at_path): New functions.
567         (struct file_at_path_info, struct add_to_obstack_info): New.
568         (build_search_list): Rewrite using for_each_path.  Constify struct
569         path_prefix pointer.  Add do_multi param.  Adjust all callers.
570         (find_a_file): Similarly, but just change existing param to bool.
571         (putenv_from_prefixes): Add do_multi param, make "paths" const.
572         (do_spec_path): Delete.
573         (struct spec_path_info): New.
574         (spec_path): New function.
575         (do_spec_1): Use for_each_path for %D and %I.
576         (find_file): Adjust for find_a_file changes.
577         (main): Search multilibs for specs.  Print multilib lib path for
578         -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
579         (read_specs): Search multilibs for %include and %include_noerr.
580         (is_directory): Remove second string param.  Change last param
581         to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
582         check path is a dir.  Update all callers.
583         * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
584         * system.h (SMALL_ARG_MAX): Poison.
585         * config.gcc: Don't define SMALL_ARG_MAX.
586         * config.host: Likewise.
587         * config.build: Likewise.
588
589 2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
590
591         * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
592         FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
593         ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
594         simplify_logical): Move simplifications that do not require
595         additional infrastructure...
596         * simplify-rtx.c (simplify_unary_operation_1,
597         simplify_binary_operation_1): ... here.
598
599 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
600
601         PR 24823
602         * flow.c (mark_used_dest_regs): New function.
603         (mark_used_regs): Call mark_used_dest_regs.
604
605 2005-12-16  Jeff Law  <law@redhat.com>
606
607         * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
608         represent a use and definition of the same SSA_NAME.
609
610 2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
611             Janis Johnson  <janis187@us.ibm.com>
612             Ben Elliston  <bje@au.ibm.com>
613
614         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
615         (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
616         * target.h (struct gcc_target): Add decimal_float_supported_p.
617         * targhooks.c (default_scalar_mode_supported_p): Handle
618         MODE_DECIMAL_FLOAT.
619         * builtins.def: Add new builtins for 32, 64 and 128 bit variants
620         of inf, nan, finite, isinf and isnan.
621         * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
622         BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
623         BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
624         BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
625         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
626         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
627         BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
628         * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
629         Pedwarn if decimal floating point types are used.  Error if
630         decimal floating point is not supported by the target.
631         (finish_declspecs): Return type from DFP typespec_word.
632         * c-typeck.c (c_common_type): Choose the decimal floating point
633         type with the greater precision when determining a common type.
634         (convert_arguments): Warn if there is a mismatch between argument
635         and prototype for decimal float types.  Warn of conversions with
636         binary float types and of precision narrowing due to prototype.
637         * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
638         (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
639         (c_token_starts_declspecs): Likewise.
640         (c_parser_attributes): Likewise.
641         * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
642         RID_DFLOAT64, RID_DFLOAT128.
643         (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
644         * c-common.c (c_common_type_for_mode): Handle decimal float modes.
645         (shorten_compare): Convert DFP/BFP operands to a common type.
646         (c_common_modes_and_builtins): Register built-in decimal float
647         types if the target supports them.
648         (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
649         * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
650         inf, nan, finite, isinf and isnan builtins.
651         * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
652         (builtin_define_float_constants): Assert non-decimal radix.
653         (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
654         Call builtin_define_decimal_float_constants for each type.
655         * c-lex.c (interpret_float): Decode decimal float types from CPP_N
656         flags.  Use real_from_string3, which can handle binary or decimal
657         floats.
658         * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
659         cts_dfloat64, cts_dfloat128.
660         * tree.c (build_common_tree_nodes_2): Add decimal float types.
661         * tree.h (enum tree_index): Add new enumeration values
662         TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
663         TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
664         (dfloat32_type_node): New macro.
665         (dfloat64_type_node, dfloat128_type_node): Likewise.
666         (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
667         (dfloat128_ptr_type_node): Likewise.
668         * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
669         bit decimal floating point types with "df", "dd" and "dl".
670         * c-format.h (enum format_lengths): Add new enumeration values
671         FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
672         * c-format.c (printf_length_specs, scanf_length_specs): Add
673         entries for H, D, DD.
674         (print_char_table, scan_char_table): Use new entries.
675         (asm_fprintf_char_table, gcc_diag_char_table,
676         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
677         length arrays.
678         * defaults.h (DECIMAL32_TYPE_SIZE): Define.
679         (DECIMAL64_TYPE_SIZE): Likewise.
680         (DECIMAL128_TYPE_SIZE): Likewise.
681         (TARGET_DEC_EVAL_METHOD): Likewise.
682         * doc/extend.texi (Decimal Float): New node.
683         (Constructing Calls): Document decimal float built-ins.
684         * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
685         * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
686         * ginclude/decfloat.h: New file.
687
688 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
689
690         * reload.c (find_reloads): Fix comment typo.
691         * recog.h (recog_memoized): Correct comment.
692
693 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
694
695         * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
696         config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
697         reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
698         tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
699         * doc/invoke.texi, doc/tm.texi: Fix typos.
700
701 2005-12-16  Ben Elliston  <bje@au.ibm.com>
702
703         * real.c (decimal_quad_format): Correct values for emin, emax.
704
705 2005-12-15  DJ Delorie  <dj@redhat.com>
706
707         * config/m32c/predicates.md (m32c_psi_scale): New.
708         * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
709         * config/m32c/muldiv.md (mulpsi3): Support negative constants.
710
711 2005-12-16  Jan Hubicka  <jh@suse.cz>
712
713         PR rtl-optimization/25224
714         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
715         tables.
716
717 2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
718             Steven Bosscher <stevenb@suse.de>
719
720         * loop-invariant.c (df): New global variable.
721         (find_defs, check_dependencies, find_invariant_insn, record_uses,
722         find_invariants_bb, find_invariants_body, find_invariants,
723         find_invariants_to_move, move_invariants, free_inv_motion_data,
724         move_single_loop_invariants, move_loop_invariants): Do not pass df in
725         arguments.
726
727 2005-12-15  Jakub Jelinek  <jakub@redhat.com>
728
729         * varasm.c (default_unique_section_1): Use special section
730         names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
731
732 2005-12-16  Ben Elliston  <bje@au.ibm.com>
733
734         * doc/invoke.texi (Warning Options): Document -Walways-true being
735         enabled by -Wall.
736
737 2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
738
739         PR other/25028
740         * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
741         * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
742         __floatunditf): Use #error if type sizes don't match requirements
743         of implementation.
744         (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
745         as wider floating-point type.  Use #error if type sizes don't
746         match requirements of implementation.  Avoid overflow in computing
747         Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
748         shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
749         (__floatundisf, __floatundidf): Likewise.
750         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
751         * config/ia64/ia64.c (ia64_init_libfuncs): Use
752         _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
753         TFmode-TImode conversions.
754         * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
755
756 2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
757
758         * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
759         Use builtin_define_with_int_value() instead of
760         adding a new check for every new major FreeBSD version.
761
762 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
763
764         * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
765
766 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
767
768         * config/arm/predicates.md (call_memory_operand): New.
769         * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
770
771 2005-12-15  Andrew Haley  <aph@redhat.com>
772
773         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
774         against prev_cache_entry == NULL when moving a cache entry to the
775         head of the list.
776         
777 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
778
779         * config/mt/mt.c (mt_override_options): Require lower case
780         architectures.  Revert accidental default to ms2.
781         * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
782         ENDFILE_SPEC): Require lower case architectures.  Revert default
783         to ms2.
784
785         * doc/invoke.texi (MT Options): Rename and update.
786         * doc/md.texi (MorphoTech family): Rename and update.
787
788 2005-12-15  Olivier Hainque  <hainque@adacore.com>
789
790         * stor-layout.c (layout_type): Don't complain about a too small
791         an array element type size compared to its alignment when the
792         size overflows.
793
794 2005-12-15  Jan Hubicka  <jh@suse.cz>
795
796         PR target/24969
797         * i386.c (classify_argument): Properly adjust offset of bitfield for
798         substructures.
799
800 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
801
802         * final.c (final_scan_insn): Flip in_cold_section_p when changing
803         between the hot and cold sections.  Use current_function_section
804         to get the new section.
805         * dwarf2out.c (output_line_info): Use in_cold_section_p to
806         determine whether we are assembling hot or cold code.
807         (secname_for_decl, dwarf2out_var_location): Likewise.
808         (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
809         * varasm.c (last_text_section): Delete.
810         (in_cold_section_p): New variable.
811         (hot_function_section): New function.
812         (current_function_section): Pass in_cold_section_p as the
813         reloc argument to select_section.  Use it to decide between
814         unlikely_function_section and hot_function_section.
815         (assemble_start_function): Use switch_to_section.  Set
816         in_cold_section_p instead of last_text_section.
817         (assemble_end_function): Use switch_to_section.
818         (switch_to_section): Don't set last_text_section.
819         * config/darwin/darwin.c (machopic_select_section): Trust the reloc
820         argument to make the right choice between hot and cold sections.
821
822 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
823
824         Second part of MS1->MT renaming
825         * config/mt/mt.md (doloop_end): Call mt_add_loop.
826         (movqi, movhi): Call mt_set_memflags.
827         (*movdf_internal): Call mt_split_words. 
828         (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
829         mt_set_memflags.
830         (cmpsi): Store to mt_compare_op[01].
831         (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
832         bungt, bunle, bunlt): Call mt_emit_cbranch.
833         (prologue): Call mt_expand_prologue.
834         (epilogu): Call mt_expend_epilogue.
835         (eh_return): Call mt_expand_eh_return.
836         (eh_epilogue): Call me_emit_eh_epilogue.
837         (conditional_trap): Store to mt_compare_op[01].
838         * config/mt/crti.asm: Adjust comment.
839         * config/mt/crtn.asm: Adjust comment.
840         * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
841         (mt_compare_op0, mt_compare_op1): Renamed.
842         (current_frame_info, zero_frame_info): Adjust type.
843         (mt_ucmpsi3_libcall): Renamed.
844         (mt_flag_delayed_branch): Renamed.
845         (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
846         (mt_nops_required, mt_nop_reasons): Renamed.
847         (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
848         mt_debug_stack, mt_print_operand_simple_address,
849         mt_print_operand_address, mt_print_operand): Renamed, adjusted.
850         (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
851         mt_function_arg_advance, mt_arg_partial_bytes,
852         mt_pass_by_reference, mt_function_arg_boundary,
853         mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
854         mt_legitimate_address_p): Renamed, adjusted.
855         (mt_cpu): Renamed.
856         (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
857         mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
858         mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
859         mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
860         mt_expand_eh_return, mt_emit_eh_prologue,
861         mt_handl_interrupt_attribute): Renamed, adjusted.
862         (mt_attribute_table): Renamed, adjusted.
863         (mt_initial_elimination_offset, mt_generate_compare,
864         mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
865         mt_secondary_reload_class, mt_function_value, mt_split_words,
866         mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
867         mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
868         (mt_labels): Renamed.
869         (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
870         mt_machine_reorg): Renamed, adjusted.
871         (mt_attribute_table: Renamed.
872         (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
873         TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
874         TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
875         * config/mt/mt.opt (march): Set mt_cpu_string.
876         * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
877         (TARGET_CPU_CPP_BUILTINS): Adjust.
878         (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
879         TARGET_MS2): Adjust.
880         (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
881         (MT_MIN_INT): Renamed.
882         (RETURN_ADDR_RTX): Adjust.
883         (struct mt_frame_info): Renamed.
884         (current_frame_info): Adjust type.
885         (INITIAL_ELIMINATION_OFFSET): Adjust.
886         (MT_NUM_ARG_REGS): Renamed.
887         (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
888         FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
889         LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
890         GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
891         FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
892         (mt_compare_op0, mt_compare_op1): Renamed.
893         * config/mt/mt-protos.h: Rename prototypes.
894
895 2005-12-15  Richard Guenther  <rguenther@suse.de>
896
897         * tree-flow.h (okay_component_ref_for_subvars): Remove.
898         (get_ref_base_and_extent): Declare.
899         * tree-dfa.c (okay_component_ref_for_subvars): Remove.
900         (get_ref_base_and_extent): New function.
901         * tree-ssa-alias.c (find_used_portions): Use it.
902         * tree-ssa-structalias.c (get_constraint_for_component_ref):
903         Likewise.
904         * tree-ssa-operands.c (get_expr_operands): Likewise.
905
906 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
907
908         * combine.c: Remove force_to_mode's fourth parameter.
909         (force_to_mode): Do not handle REG.
910         (canon_reg_for_combine): New.
911         (make_field_assignment): Use it where the removed argument was non-NULL.
912
913 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
914
915         PR target/25406
916         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
917         error_mark_node.  Make alignment params unsigned.
918         * config/rs6000/rs6000-protos.h
919         (rs6000_special_round_type_align): Update prototype.
920         (rs6000_machopic_legitimize_pic_address): Remove arg names.
921
922 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
923
924         PR rtl-optimization/25310
925         * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
926         of the eliminable register when substituting into a PLUS.
927
928 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
929
930         PR debug/25023
931         * config/i386/i386.c (ix86_force_to_memory): Always use
932         SImode push for HImode in -m32.
933         (ix86_free_from_memory): Likewise.
934
935 2005-12-14  Richard Sandiford  <richard@codesourcery.com>
936
937         * gcc/config/arm/arm.md: Provide a big-endian version of the
938         (zero_extend:SI (subreg:QI ...)) splitter.
939
940 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
941
942         * struct-equiv.c (note_local_live): Handle hard regs with different
943         hard_regno_nregs.
944
945 2005-12-14  Jeff Law  <law@redhat.com>
946
947         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
948         to a structure containing state rather than a pointer to bool.
949         (case ARRAY_REF): New code to handle folding some array references.
950         (case ADDR_EXPR): Note when we are processing expressions found
951         within an ADDRE_EXPR.
952         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
953         for state variables rather than just a pointer to a boolean.
954         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
955         handling of constant string references.
956
957 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
958
959         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
960         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
961         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
962         Move other tst* patterns to retain partial order.
963
964 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
965
966         * config/s390/s390.md ("d0", "1"): New mode attributes.
967         ("<shift>di3", "<shift>si3"): Merge.
968         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
969         ("ashrdi3", "ashrsi3"): Merge.
970         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
971         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
972         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
973         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
974         ("*ashrdi3", "*ashrsi3"): Merge.
975         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
976
977 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
978
979         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
980         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
981         ("*extendqidi2", "*extendqisi2") Merge.
982         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
983         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
984         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
985         Move some patterns to retain partial ordering.
986
987 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
988
989         * config/s390/s390.md ("atype", "length"): Rewrite.
990         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
991
992 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
993
994         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
995
996 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
997
998         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
999         PARALLELs with a mode.
1000
1001 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1002
1003         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1004         cond_expr parameter.
1005
1006 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1007
1008         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1009
1010 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1011
1012         PR bootstrap/25397:
1013
1014         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1015         of STACK_REGS bits.
1016
1017         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1018
1019 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1020
1021         PR target/25254
1022         PR target/24188
1023         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1024         DECL_P, call get_section rather than get_named_section.  Supply
1025         section flags to it.
1026
1027 2005-12-14  Ben Elliston  <bje@au.ibm.com>
1028
1029         * c-common.c (c_common_truthvalue_conversion): Generalise warning
1030         for addresses converted to booleans; not just function addresses.
1031         * c-typeck.c (build_binary_op): Warn for address comparisons which
1032         can never be NULL (eg. func == NULL or &var == NULL).
1033         * common.opt (Walways-true): New option.
1034         * c-opts.c (c_common_handle_option): Set it with -Wall.
1035         * doc/invoke.texi: Document it.
1036
1037 2005-12-13  Paul Brook  <paul@codesourcery.com>
1038
1039         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1040         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1041
1042 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1043
1044         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1045         (EXTRA_MULTILIB_PARTS): Define.
1046
1047 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1048
1049         PR rtl-optimization/20070 / part1
1050         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1051         count_or_remove_death_notes with kill == -1.
1052         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1053         registers if PROP_POST_REGSTACK is set.
1054         (mark_used_reg): Likewise.
1055         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1056         REG_UNUSED notes for stack regs.
1057         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1058         to match rtx_equiv_p machinery.  Change caller.
1059         (outgoing_edges_match): Likewise.
1060         (try_crossjump_to_edge): Use struct_equiv_block_eq
1061         instead of flow_find_cross_jump.
1062         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1063         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1064         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1065         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1066         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1067         (insns_match_p): Update prototype.
1068         (flow_find_cross_jump): Remove prototype.
1069         (struct_equiv_block_eq, struct_equiv_init): Declare.
1070         (rtx_equiv_p, condjump_equiv_p): Likewise.
1071         * struct-equiv.c: Include reload.h.
1072         (IMPOSSIBLE_MOVE_FACTOR): Define.
1073         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1074         (struct_equiv_improve_checkpoint): Likewise.
1075         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1076         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1077         (struct_equiv_merge, find_dying_input): Likewise.
1078         (resolve_input_conflict, note_local_live): Likewise.
1079         (death_notes_match_p): Change parameters and processing
1080         to match rtx_equiv_p machinery.  Change caller.
1081         (insns_match_p): Likewise.
1082         (flow_find_cross_jump): Replace with:
1083         (struct_equiv_block_eq).
1084
1085         Back out this change:
1086         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1087           * recog.c (verify_changes): Make it static.
1088           * recog.h: Remove the corresponding prototype.
1089
1090 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1091
1092         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1093         values.
1094
1095 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1096
1097         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1098         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
1099         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1100         TARGET_MS1_64_001 appropriately.
1101         (ms1_machine_reorg): Use TARGET_MS2.
1102
1103 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
1104
1105         PR debug/25023
1106         PR target/25293
1107         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1108         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1109         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1110         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1111         Set mode to SI, adjust constraints.
1112         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1113         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1114         32-bit code.
1115
1116 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
1117
1118         * c-cppbuiltin.c (builtin_define_float_constants): Add
1119         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1120         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1121         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1122         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1123         to "((double)%sL)" otherwise "%s".
1124
1125 2005-12-13  Paul Brook  <paul@codesourcery.com>
1126
1127         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1128         apcs/atpcs.
1129
1130 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1131
1132         * tree-flow.h: Allow compilation with a C++ compiler.
1133         (struct edge_prediction): Prefix all field names  with "ep_".
1134         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1135         (tree_predict_edge, combine_predictions_for_bb): Likewise.
1136         (remove_predictions_associated_with_edge): Likewise.
1137         
1138 2005-12-12  Jeff Law  <law@redhat.com>
1139
1140         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1141         reassociation code.
1142         * passes.c (init_optimization_passes): Run reassociation again
1143         after loop optimizations.
1144
1145 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
1146
1147         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1148         if necessary.
1149         (optimize_stmt): Ditto.
1150         (canonicalize_comparison): New function.
1151         * tree-ssa-operands.c (swap_tree_operands): Make external.
1152         (get_expr_operands): Stop auto-canonicalization.
1153         * tree-ssa-reassoc.c: Rewrite.
1154         (init_optimization_passes): 
1155         * tree-flow.h (swap_tree_operands): Prototype.
1156         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1157
1158 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1159
1160         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1161         indicate function epilogue has been output.
1162         (pa_asm_output_mi_thunk): Likewise.
1163         (output_deferred_plabels): Put plabels in readonly data section when
1164         not generating PIC code.
1165         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1166         information.  Add assert.
1167         (som_output_comdat_data_section_asm_op): New function.
1168         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1169         instead of output_section_asm_op for COMDAT sections.
1170
1171 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
1172
1173         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1174         Fix whitespace in vincinity of to-be-installed changes.
1175         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1176         (insns_match_p): Likewise.
1177
1178 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1179
1180         * config.gcc (ms1): Replace with ...
1181         (mt): ... this.
1182         * config/ms1: Rename to ...
1183         * config/mt: ... here.  Rename ms1 files to mt.
1184         * config/mt/mt.c: Adjust gt-mt.h #include.
1185         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1186         (crti.o, crtn.o): Adjust file names.
1187
1188 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1189
1190         * varray.h: Allow compilation with a C++ compiler.
1191         (union varray_data_tag): Prefix all field names with "vdt_".
1192         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1193         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1194         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1195         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1196         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1197         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1198         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1199         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
1200         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
1201         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
1202         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
1203         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
1204         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
1205         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1206         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
1207         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
1208         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
1209         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
1210         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
1211         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
1212         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
1213         VARRAY_TOP_TREE_PTR): Likewise.
1214         * varray.c (varray_grow): Likewise.
1215         (varray_clear): Likewise.
1216
1217 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
1218
1219         PR target/25299
1220         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1221         alignment to doubleword if the first field is a double array.
1222         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1223
1224 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1225
1226         * tree-ssa-structalias.c (process_constraint): Remove code to
1227         transform addressofs into scalar.
1228         (create_variable_info_for): In whole-program IPA, globals don't
1229         point to ANYTHING by default.
1230
1231 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1232
1233         * timevar.def (TV_IPA_PTA): New.
1234         * tree-pass.h (pass_ipa_pta): New
1235         * tree-ssa-structalias.c: Include cgraph.h
1236         (in_ipa_mode): New.
1237         (predbitmap_obstack): New.
1238         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1239         (struct constraint_stats): Add num_edges.
1240         (new_var_info): Don't call bitmap_clear.
1241         (struct constraint_edge): Update docs.
1242         (new_constraint_edge): Remove src param.
1243         (struct constraint_graph): Add zero_weight_succs,
1244         zero_weight_preds.  Update docs.
1245         (constraint_expr_equal): Reformat.
1246         (constraint_edge_equal): Update for removal of src.
1247         (constraint_edge_less): Ditto.
1248         (constraint_edge_vec_find): Ditto.
1249         (erase_graph_self_edge): Update for removal of src and and zero
1250         weight bitmap.
1251         (clear_edges_for_node): Ditto.
1252         (add_graph_edge): Ditto.
1253         (get_graph_weights): Ditto.
1254         (allocate_graph_weights): Ditto.
1255         (merge_graph_nodes): Ditto.
1256         (int_add_graph_edge): Ditto.
1257         (valid_graph_edge): Ditto.
1258         (valid_weighted_graph_edge): Ditto.
1259         (build_constraint_graph): Ditto.
1260         (scc_visit): Ditto.
1261         (collapse_nodes): Ditto.
1262         (process_unification_queue): Ditto.
1263         (topo_visit): Ditto.
1264         (solve_graph): Ditto.
1265         (do_structure_copy): Ditto.
1266         (perform_var_substitution): Ditto.
1267         Init and release obstack.
1268         (handle_ptr_arith): Try to resolve directly.
1269         (find_func_aliases): Don't call update_alias_info here
1270         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1271         (do_sd_constraint): Add code for propagating faster.
1272         Update.
1273         (do_ds_constraint): Ditto.
1274         (count_num_arguments): New function.
1275         (create_function_info_for): Ditto.
1276         (create_variable_info_for): Handle FUNCTION_DECL.
1277         (intra_create_variable_infos): Use make_constraint_to_anything.
1278         (init_alias_vars): Init obstacks here.
1279         (need_to_solve): Handle zero weight graph changes.
1280         (compute_points_to_sets): Call update_alias_info here.
1281         (delete_points_to_sets): Free zero weight preds/succs here.
1282         (gate_ipa_pta): New.
1283         (ipa_pta_execute): New
1284
1285 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1286
1287         * tree-ssa-structalias.c (var_anyoffset): Removed.
1288         (anyoffset_tree): Ditto.
1289         (anyoffset_id): Ditto.
1290         (do_deref): Take vector of constraints, no return value.
1291         Update to work on vector.                
1292         (get_constraint_for): Ditto.
1293         (get_constraint_for_component_ref): Ditto.
1294         (do_structure_copy): Ditto.
1295         (handle_ptr_arith): Ditto.
1296         (find_func_aliases): Ditto.
1297         (set_uids_in_ptset): Remove anyoffset handling.
1298         (init_base_vars): Ditto.
1299
1300 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
1301
1302         PR c++/25010
1303         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1304         DECL_EXTERNAL functions have no bodies.  Tidy.
1305
1306 2005-12-10  Andreas Schwab  <schwab@suse.de>
1307
1308         * except.c (switch_to_exception_section): Only define if
1309         TARGET_UNWIND_INFO is not defined.
1310
1311 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1312
1313         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1314         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1315
1316 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1317
1318         * output.h (init_section, fini_section): Delete.
1319         * varasm.c (init_section, fini_section): Delete.
1320         (init_varasm_once): Don't initialize them.
1321         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1322         there are no corresponding varasm.c variables.
1323
1324 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1325
1326         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1327         of EH_FRAME_SECTION_NAME into...
1328         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
1329         if it is still null.
1330         * except.c (default_exception_section): Delete, moving most
1331         of the code to...
1332         (switch_to_exception_section): ...this new function.  Set
1333         exception_section if it is still null, then switch to it.
1334         (output_function_exception_table): Use switch_to_exception_section.
1335         * varasm.c (exception_section, eh_frame_section): Update comments.
1336         (get_section): Hoist use of SECTION_NAMED.
1337         (init_varasm_once): Don't set exception_section and eh_frame_section.
1338         * output.h (default_exception_section): Delete.
1339         (default_eh_frame_section): Delete.
1340
1341 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1342
1343         * config/bfin/bfin.c: Include "cgraph.h".
1344         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1345         Return the reg that holds the pointer to the GOT.
1346         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1347         doing stack checking.
1348
1349 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
1350
1351         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1352         recompute_tree_invarant_for_addr_expr.
1353         Update uses everywhere.
1354
1355 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
1356
1357         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1358         (MULTILIB_DIRNAMES): Define.
1359
1360 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1361
1362         PR target/25311
1363         * config/s390/s390.c (struct s390_address): New field literal_pool.
1364         (s390_decompose_address): Compute literal_pool field.  Do not 
1365         assume register %r13 is always (and solely) used as pool base.
1366         (s390_extra_constraint_str): Use literal_pool field.
1367
1368 2005-12-09  Thiemo Seufer  <ths@networkno.de>
1369
1370         * config/mips/mips.c (override_options): Don't allow too small
1371         integers in FP registers.
1372
1373 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1374
1375         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1376         targetm.binds_local_p to check for local function calls.
1377
1378 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
1379
1380         PR debug/24908
1381         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1382         call_used_regs can't be used to save reg in another reg.
1383
1384 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1385             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1386
1387         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1388         abort.
1389         * except.c (output_ttype): Likewise.
1390         * tree-object-size.c (collect_object_sizes_for): Likewise.
1391         (check_for_plus_in_loops_1): Likewise.
1392         (check_for_plus_in_loops): Likewise.
1393         (compute_object_sizes): Use gcc_unreachable instead of abort.
1394
1395 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1396
1397         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1398         (loop_end, loop_init, doloop_end): New insns.
1399         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1400         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1401         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1402         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1403         * config/ms1/ms1.c: #include basic-block.h
1404         (struct machine_function): Add has_loops field.
1405         (ms1_add_loop): New.
1406         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1407         (struct loop_info, struct loop_work): New.
1408         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1409         (ms1_reorg_loops): New loop optimization.
1410         (ms1_machine_reorg): Call it.
1411         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1412
1413 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
1414
1415         PR tree-optimization/25248
1416         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1417         evolution_of_loop from the failed attempt.  Remove handling
1418         of MULT_EXPR.
1419
1420 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1421
1422         * tree.h (DECL_EXTERNAL): Clarify documentation.
1423
1424 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1425             Jakub Jelinek  <jakub@redhat.com>
1426
1427         PR target/25268
1428         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1429         argument.  Don't drop outer ANDs.
1430         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1431         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1432         prototype.
1433         * config/s390/predicates.md (setmem_operand): Remove.
1434         (shift_count_operand): Rename to...
1435         (shift_count_or_setmem_operand): ... this.  Adjust
1436         s390_decompose_shift_count caller.
1437         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1438         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1439         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1440         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1441         rotl<mode>3_and, setmem_long_and): New insns.
1442         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1443         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1444         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1445         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1446         of shift_count_operand.
1447         (setmem_long): Use shift_count_or_setmem_operand instead of
1448         setmem_operand.
1449
1450 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
1451             Andreas Tobler  <a.tobler@schweiz.ch>
1452
1453         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1454         tr expression.
1455
1456 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1457
1458         * expr.c (force_operand): Use convert_to_mode for conversions.
1459
1460 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1461
1462         * reload.h (reg_equiv_invariant): Declare.
1463         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1464         register also when reg_equiv_invariant[R] is set.
1465
1466 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1467             Andreas Tobler  <a.tobler@schweiz.ch>
1468
1469         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1470
1471 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
1472
1473         * tree-ssa-pre.c (bitmap_set_and): New function.
1474         (bitmap_set_and_compl): New function.
1475         (bitmap_set_empty_p): New function.
1476         (insert_extra_phis): New function.
1477         (compute_avail): Use insert_extra_phis.
1478
1479 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1480
1481         * config/s390/s390.c (s390_expand_atomic): New function.
1482         Adjust comment of helper functions.
1483         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1484         * config/s390/s390.md ("ATOMIC"): New code macro.
1485         ("atomic"): Corresponding new code attribute.
1486         ("sync_lock_test_and_set[hq]i", 
1487         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1488
1489 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1490
1491         * config/s390/s390.c (s390_expand_mask_and_shift, 
1492         struct alignment_context, init_alignment_context, 
1493         s390_expand_cs_hqi): New.
1494         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1495         * config/s390/s390.md ("sync_compare_and_swaphi",
1496         "sync_compare_and_swapqi"): New pattern.
1497
1498 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
1499
1500         Fix PR tree-optimization/25291
1501         * tree-ssa-operands.c (add_call_clobber_ops): Remove
1502         redundant and crashing check.
1503
1504 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
1505
1506         PR target/25212
1507         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1508         tests further when !strict && reload_in_progress.
1509         (print_operand): Check that both operands of indexed address are regs.
1510         (print_operand_address): Likewise.
1511         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1512         (INT_REG_OK_FOR_BASE_P): Correct.
1513
1514 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1515
1516         Preparation for PR rtl-optimization/20070 / part1
1517         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1518         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1519         outgoing_edges_match.
1520         (outgoing_edges_match): Use condjump_equiv_p.
1521         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1522         into..
1523         * struct-equiv.c: New file.
1524         (death_notes_match_p) New function, broken out of insns_match_p.
1525         * Makefile.in (OBJS-common): Add struct-equiv.o.
1526         (struct-equiv.o): New target.
1527
1528 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1529
1530         * coretypes.h: Revert previous change.
1531         * config/darwin.h: Revert previous reversion.
1532         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1533
1534 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1535
1536         * coretypes.h (section): Provide dummy definition for target files.
1537         * config/darwin.h: Revert previous change.
1538
1539 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1540
1541         * doc/sourcebuild.texi (all.build, install-normal): Remove.
1542         * configure.ac: Remove all.build and install-normal from target_list
1543         * configure: Regenerate.
1544         * Makefile.in (install): Don't depend on install-normal.
1545
1546 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1547
1548         * Makefile.in: Document the use of stamps.
1549
1550 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1551
1552         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1553         * Makefile.in: Add code to compute some dependencies on s-gtype
1554         automatically.  Remove the declaration of those dependencies.
1555
1556 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1557
1558         * gcc/reload.c (push_secondary_reload): Fix typo:
1559         s/insn_constraint/scratch_constraint/.
1560
1561 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1562
1563         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1564
1565 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1566
1567         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1568         (alpha_elf_select_rtx_section): Return the selected section rather
1569         than emitting assembly code.
1570         (alpha_write_linkage): Emit a ".link" directive directly and then
1571         set in_section to NULL.
1572         (vms_asm_out_constructor): Use switch_to_section.
1573         (vms_asm_out_destructor): Likewise.
1574         (unicosmk_output_common): Set in_section to NULL instead of calling
1575         the dummy common_section function.
1576         (unicosmk_text_section): Delete in favor of...
1577         (unicosmk_output_text_section_asm_op): ...this new function.
1578         (unicosmk_data_section): Delete in favor of...
1579         (unicosmk_output_data_section_asm_op): ...this new function.
1580         (unicosmk_init_sections): New function.
1581         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1582         (unicosmk_output_ssib): Set in_section to NULL instead of calling
1583         the dummy ssib_section function.
1584         (unicosmk_section_buf): Delete.
1585         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1586         (unicosmk_data_section): Delete.
1587         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1588         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1589         (SECTION_FUNCTION_TEMPLATE): Delete.
1590         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1591         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1592         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1593         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1594         (TARGET_ASM_INIT_SECTIONS): Define.
1595         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1596         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1597         (link_section, literals_section): Delete.
1598         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1599         set in_section to NULL.
1600
1601         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1602         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1603         (COMMON_SECTION): Delete.
1604         (TARGET_ASM_INIT_SECTIONS): Define.
1605         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1606         the dummy common_section function.
1607         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1608         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1609         between readonly_data_section and text_section to check whether
1610         read-only data is being put in the text section.
1611         (arm_output_function_epilogue): Use switch_to_section.
1612         (arm_elf_asm_constructor): Likewise.
1613         (thumb_call_via_reg): Replace call to in_text_section with
1614         a comparison between in_section and text_section.
1615         (arm_file_end): Use switch_to_section.
1616         (aof_text_section): Delete in favor of...
1617         (aof_output_text_section_asm_op): ...this new function.
1618         (aof_data_section): Delete in favor of...
1619         (aof_output_data_section_asm_op): ...this new function.
1620         (aof_asm_init_sections): New function.
1621         (zero_init_section): Moved from config/arm/aof.h.
1622         (aof_dump_imports, aof_file_start): Use switch_to_section.
1623         * config/arm/arm.h (thumb_call_via_label): Update comment.
1624         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1625         (common_section): Delete.
1626         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1627         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1628         global switch_to_section function instead of the old port-local one.
1629         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1630         (SWITCH_TO_SECTION_FUNCTION): Delete.
1631         (drectve_section): Redefine as a macro.
1632         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1633         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1634         switch_to_section.
1635
1636         * config/avr/avr.c (progmem_section): New variable.
1637         (avr_output_progmem_section_asm_op): New function.
1638         (avr_asm_init_sections): New function.
1639         (avr_output_addr_vec_elt): Use switch_to_section.
1640         * config/avr/avr.h (progmem_section): Declare.
1641         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1642         (READONLY_DATA_SECTION): Delete.
1643         (TARGET_ASM_INIT_SECTIONS): Define.
1644         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1645         * config/avr/avr-protos.h (progmem_section): Delete.
1646
1647         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1648
1649         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1650         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1651
1652         * config/darwin-sections.def: New file.
1653         * config/darwin.c: Define all sections in darwin-sections.def.
1654         (output_objc_section_asm_op, darwin_init_sections): New functions.
1655         (machopic_output_indirection): Use switch_to_section.
1656         (machopic_select_section): Return the selected section rather than
1657         emitting assembly code.  Replace the static function table with
1658         inline conditional expressions.  Update the tests of last_text_section
1659         and move them into the FUNCTION_DECL block.
1660         (machopic_select_rtx_section): Return the selected section rather than
1661         emitting assembly code.
1662         (machopic_asm_out_constructor, machopic_asm_out_destructor)
1663         (darwin_file_end): Use switch_to_section.
1664         * config/darwin.h: Use darwin-sections.def to declare sections.
1665         (INIT_SECTION_ASM_OP): Remove empty definition.
1666         (HAS_INIT_SECTION): Define this instead.
1667         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1668         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1669         (TARGET_ASM_EH_FRAME_SECTION): Delete.
1670         (TARGET_ASM_INIT_SECTIONS): Define.
1671         * config/darwin-protos.h (darwin_init_sections): Declare.
1672         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1673         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1674         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1675         (constructor_section, destructor_section, mod_init_section): Delete.
1676         (mod_term_section): Delete.
1677         (darwin_exception_section, darwin_eh_frame_section): Delete.
1678         (machopic_select_section): Return a section.
1679         (machopic_select_rtx_section): Likewise.
1680         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1681         (const_section, const_coal_section, const_data_section): Delete.
1682         (const_data_coal_section, data_coal_section, cstring_section): Delete.
1683         (literal4_section, literal8_section, constructor_section): Delete.
1684         (mod_init_section, mod_term_section, destructor_section): Delete.
1685         (objc_class_section, objc_meta_class_section, objc_category_section)
1686         (objc_class_vars_section, objc_instance_vars_section): Delete.
1687         (objc_cls_meth_section, objc_inst_meth_section): Delete.
1688         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1689         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1690         (objc_symbols_section, objc_module_info_section): Delete.
1691         (objc_image_info_section, objc_protocol_section): Delete.
1692         (objc_string_object_section, objc_constant_string_object_section)
1693         (objc_class_names_section, objc_meth_var_names_section): Delete.
1694         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1695         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1696         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1697         (darwin_exception_section, darwin_eh_frame_section): Delete.
1698         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1699
1700         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1701         (frv_asm_out_destructor): Likewise.
1702         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1703         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1704         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1705         get_named_section.
1706         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1707         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1708         (data_section): Delete.
1709
1710         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1711         (DRECTVE_SECTION_FUNCTION): Delete.
1712         (drectve_section): Redefine as a macro that sets in_section after
1713         emitting the directive.
1714         (SWITCH_TO_SECTION_FUNCTION): Delete.
1715         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1716         in_text_section with comparison between in_section and text_section.
1717         * config/i386/i386.c (x86_64_elf_select_section): Return the section
1718         rather than emitting assembly code.  Use get_named_section.
1719         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1720         get_named_section.
1721         (machopic_output_stub): Use switch_to_section.
1722         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1723         (nwld_named_section_asm_out_destructor): Use get_section and
1724         switch_to_section.
1725
1726         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1727         rather than emitting assembly code.
1728         (ia64_rwreloc_select_section): Likewise.
1729         (ia64_rwreloc_select_rtx_section): Likewise.
1730         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1731         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1732         switch_to_section.
1733         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1734         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1735
1736         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1737         section rather than emitting assembly code.
1738         (iq2000_select_section): Likewise.
1739         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1740         (sbss_section): Delete.
1741
1742         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1743         and get_named_section.
1744         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1745
1746         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1747         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1748         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1749         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1750         in_section to NULL.
1751         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1752         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1753         global switch_to_section function instead of the old port-local one.
1754         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1755         (SWITCH_SECTION_FUNCTION): Delete.
1756         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1757         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1758         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1759         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1760         in_section to NULL.
1761         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1762         global switch_to_section function instead of the old port-local one.
1763         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1764
1765         * config/mips/mips.c (mips_file_start): Update comment.
1766         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1767         (mips_output_aligned_decl_common): Use switch_to_section.
1768         (mips_select_rtx_section): Return the section rather than emitting
1769         assembly code.  Use get_named_section.
1770         (mips_function_rodata_section: Likewise get_section.
1771         (build_mips16_function_stub): Use switch_to_section.
1772         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1773         (SDATA_SECTION_ASM_OP): Delete.
1774         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1775         (EXTRA_SECTION_FUNCTIONS): Delete.
1776
1777         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1778         (mmix_asm_output_aligned_local): Use switch_to_section.
1779
1780         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1781         (som_one_only_readonly_data_section): New variables.
1782         (pa_output_function_epilogue): Set in_section to NULL instead of
1783         calling forget_section.
1784         (output_deferred_plabels): Use select_section.
1785         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
1786         of calling forget_section.
1787         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1788         (pa_asm_output_aligned_local): Use select_section.
1789         (som_text_section_asm_op): Delete in favor of...
1790         (som_output_text_section_asm_op): ...this new function.
1791         (pa_som_asm_init_sections): New function.
1792         (pa_select_section): Return the section rather than emitting
1793         assembly code.
1794         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1795         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1796         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1797         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1798         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1799         (som_readonly_data_section, som_one_only_readonly_data_section)
1800         (som_one_only_data_section, forget_section): Delete.
1801         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1802         (TARGET_ASM_INIT_SECTIONS): Define.
1803         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1804
1805         * config/rs6000/rs6000.c (read_only_data_section): New variable.
1806         (private_data_section, read_only_private_data_section): New variables.
1807         (sdata2_section, toc_section): New variables.
1808         (rs6000_file_start): Use switch_to_section.
1809         (rs6000_assemble_integer): Use comparisons against in_section
1810         instead of calling in_toc_section and in_text_section.  Use
1811         unlikely_text_section_p.
1812         (rs6000_elf_output_toc_section_asm_op): New function, derived
1813         from the old rs6000/sysv4.h toc_section function.
1814         (rs6000_elf_asm_init_sections): New function.
1815         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1816         the section rather than emitting assembly code.
1817         (machopic_output_stub): Use switch_to_section.
1818         (toc_section): Delete dummy function.
1819         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1820         switch_to_section and get_section.
1821         (rs6000_xcoff_output_readonly_section_asm_op): New function.
1822         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1823         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1824         the old rs6000/xcoff.h toc_section function.
1825         (rs6000_xcoff_asm_init_sections): New function.
1826         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1827         the section rather than emitting assembly code.
1828         (rs6000_xcoff_file_start): Use switch_to_section.
1829         (rs6000_xcoff_file_end): Likewise.
1830         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1831         (sdata2_section, sbss_section, private_data_section): Delete.
1832         (read_only_data_section, read_only_private_data_section): Delete.
1833         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1834         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1835         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1836         (FINI_SECTION_FUNCTION): Delete.
1837         (TARGET_ASM_INIT_SECTIONS): Define.
1838         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1839         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1840         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1841         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1842         (READONLY_DATA_SECTION): Delete.
1843         (TARGET_ASM_INIT_SECTIONS): Define.
1844         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
1845         to NULL rather than no_section.
1846         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1847
1848         * config/sh/sh.c (sh_file_start): Use switch_to_section.
1849
1850         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1851         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
1852         from call to current_function_section.
1853
1854         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1855         (bss100_section): New variable.
1856         (xstormy16_asm_output_aligned_common): Use switch_to_section.
1857         (xstormy16_asm_init_sections): New function.
1858         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1859         switch_to_section and get_section.
1860         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
1861         from calls to current_function_section.
1862         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1863         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1864         (TARGET_ASM_INIT_SECTIONS): Define.
1865         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1866
1867         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1868         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1869         (FINI_SECTION_FUNCTION): Delete.
1870
1871         * config/v850/v850.c: Include gt-v850.h.
1872         (rosdata_section, rozdata_section, tdata_section, zdata_section)
1873         (zbss_section): New variables.
1874         (v850_output_aligned_bss): Use switch_to_section.
1875         (v850_asm_init_sections): New function.
1876         (v850_select_section): Return the section rather than emitting
1877         assembly code.
1878         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1879         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1880         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1881         (TARGET_ASM_INIT_SECTIONS): Define.
1882         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1883         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1884         (zbss_section): Delete.
1885
1886         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1887
1888         * config/vx-common.h (vxworks_exception_section): Delete.
1889         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1890
1891         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1892         section rather than emitting assembly code.
1893         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1894         switch_to_section.
1895
1896         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1897         * coretypes.h (section): New union and typedef.
1898         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
1899         from call to current_function_section.
1900         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1901         (dbxout_symbol_location): Use switch_to_section.
1902         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1903         most of the code into...
1904         (default_eh_frame_section): ...here.  Return a section.
1905         (collect2_eh_frame_section): Delete, moving most of the code into..
1906         (switch_to_eh_frame_section): ...this new function.
1907         (debug_info_section, debug_abbrev_section, debug_aranges_section)
1908         (debug_macinfo_section, debug_line_section, debug_loc_section)
1909         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
1910         variables.
1911         (output_call_frame_info): Call switch_to_eh_frame_section instead of
1912         eh_frame_section.  Use switch_to_section and get_section.
1913         (dwarf2out_begin_prologue): Use switch_to_section.
1914         (AT_string_form): Check the flags in debug_str_section instead of
1915         DEBUG_STR_SECTION_FLAGS.
1916         (output_comp_unit): Use switch_to_section, get_section, and
1917         debug_info_section.
1918         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
1919         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
1920         from call to current_function_section.
1921         (dwarf2out_var_location): Use unlikely_text_section_p.
1922         (dwarf2out_source_line): Use switch_to_section.  Remove argument
1923         from call to current_function_section.
1924         (dwarf2out_start_source_file, dwarf2out_end_source_file)
1925         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
1926         debug_macinfo_section.
1927         (dwarf2out_init): Initialize the new section variables.  Use them
1928         instead of calls to named_section_flags.  Use switch_to_section.
1929         (output_indirect_string): Use switch_to_section and debug_str_section.
1930         (dwarf2out_finish): Use switch_to_section and the new section
1931         variables.
1932         * except.c (default_exception_section): Return the section instead
1933         of emitting assembly code.
1934         (output_function_exception_table): Use the global exception_section
1935         variable instead of the target hook.  Use switch_to_section.  Remove
1936         argument from call to current_function_section.
1937         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
1938         (shorten_branches): Use pointer comparisons to detect whether the
1939         text section is the same as readonly_data_section.
1940         (profile_function): Use switch_to_section.  Remove argument from
1941         call to current_function_section.
1942         (final_scan_insn): Likewise.  Update use of last_text_section.
1943         * gengtype.c (open_base_files): Add an include of output.h.
1944         * output.h (text_section, data_section, readonly_data_section)
1945         (ctors_section, dtors_section, bss_section, init_section)
1946         (fini_section, sdata_section): Turn into section pointers.
1947         (in_text_section, in_unlikely_text_section, exports_section)
1948         (drectve_section, named_section, mergeable_string_section)
1949         (last_text_section_name): Delete.
1950         (default_exception_section, default_eh_frame_section): Return sections.
1951         (SECTION_DECLARED, SECTION_NAMED): New macros.
1952         (SECTION_MACH_DEP): Bump value.
1953         (section_common, named_section, unnamed_section): New structures.
1954         (unnamed_section_callback): New typedef.
1955         (section): New union.
1956         (sbss_section, exception_section, eh_frame_section): New variables.
1957         (in_section, last_text_section): Turn into section pointers.
1958         (get_unnamed_section, get_section, get_named_section): New functions.
1959         (mergeable_constant_section, function_section): Return a section.
1960         (unlikely_text_section): Likewise.
1961         (current_function_section): Likewise.  Remove the decl argument.
1962         (unlikely_text_section_p, switch_to_section): New functions.
1963         (output_section_asm_op): New function.
1964         (set_named_section_flags, named_section_flags, named_section_real)
1965         (named_section_first_declaration): Delete.
1966         (default_select_section, default_elf_select_section): Return a section.
1967         (default_elf_select_section_1, default_function_rodata_section)
1968         (default_no_function_rodata_section, default_select_rtx_section)
1969         (default_elf_select_rtx_section): Likewise.
1970         * rtl.h (in_data_section): Delete.
1971         * sdbout.c (sdbout_one_type): Use switch_to_section.
1972         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
1973         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
1974         (TARGET_ASM_EH_FRAME_SECTION): Poison.
1975         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
1976         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
1977         (TARGET_ASM_OUT): Update after above changes.
1978         * target.h (init_sections): New hook.
1979         (exception_section, eh_frame_section): Delete.
1980         (select_section, select_rtx_section, function_rodata_section): Return
1981         a section rather than emitting assembly code.
1982         * varasm.c (text_section, data_section, readonly_data_section)
1983         (ctors_section, dtors_section, bss_section, init_section)
1984         (fini_section): Turn into section pointers.
1985         (sdata_section, sbss_section, exception_section): New variables.
1986         (eh_frame_section): New variable.
1987         (in_section): Make global and turn into a section pointer.
1988         (last_text_section): Turn into a section pointer.
1989         (unnamed_sections): New variable.
1990         (in_named_name, last_text_section_name): Delete.
1991         (EXTRA_SECTION_FUNCTIONS): Delete.
1992         (in_named_entry): Delete.
1993         (section_htab): New variable, replacing...
1994         (in_named_htab): ...this deleted variable.
1995         (section_entry_eq, section_entry_hash): New functions, based on...
1996         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
1997         (get_unnamed_section, get_section): New functions.
1998         (unlikely_text_section): Return a section instead of emitting
1999         assembly code.
2000         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2001         (get_named_section_flags, named_section_first_declaration): Delete.
2002         (unlikely_text_section_p): New function.
2003         (named_section_real, named_section): Delete.
2004         (get_named_section): New function.
2005         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2006         (function_section): Return a section rather than emitting
2007         assembly code.
2008         (current_function_section): Likewise.  Remove argument.  Use
2009         last_text_section if nonnull, otherwise use function_section.
2010         (default_function_rodata_section): Return a section rather than
2011         emitting assembly code.  Use get_section.
2012         (default_no_function_rodata_section): Return a section rather than
2013         emitting assembly code.
2014         (variable_section): Use switch_to_section and get_named_section.
2015         (mergeable_string_section): Return a section rather than emitting
2016         assembly code.  Use get_section.  Make static.  Don't take special
2017         countermeasures for empty strings.
2018         (mergeable_constant_section): Return a section rather than emitting
2019         assembly code.  Use get_section.
2020         (default_named_section_asm_out_destructor): Use switch_to_section
2021         and get_section.
2022         (default_dtor_section_asm_out_destructor): Use switch_to_section.
2023         (default_named_section_asm_out_constructor): Use switch_to_section
2024         and get_section.
2025         (default_ctor_section_asm_out_constructor): Use switch_to_section.
2026         (assemble_start_function): Likewise.  Set last_text_section to
2027         NULL rather than no_section.  Change the type of save_section.
2028         (assemble_zeros, assemble_variable): Use the section flags to detect
2029         whether or not a section is text.
2030         (assemble_static_space): Use switch_to_section.
2031         (assemble_trampoline_template): Likewise.
2032         (output_constant_def_contents): Use switch_to_section and
2033         get_named_section.
2034         (output_constant_pool_1): Use switch_to_section.  Use the section
2035         flags to see whether sections contain mergeable data.
2036         (init_varasm_once): Initialize section_htab instead of in_named_htab.
2037         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
2038         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2039         whether a section has already been declared.
2040         (default_select_section, default_elf_select_section): Return a
2041         section rather than emitting assembly code.
2042         (default_elf_select_section_1): Likewise.  Use bss_section for
2043         SECCAT_BSS if nonnull.  Use get_named_section.
2044         (default_select_rtx_section): Return a section rather than
2045         emitting assembly code.
2046         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
2047         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2048         (output_section_asm_op, switch_to_section): New functions.
2049         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2050         get_named_section.
2051
2052         * doc/tm.texi: Expand the introduction to the sections documentation.
2053         (TRAMPOLINE_SECTION): Document new interface.
2054         (SDATA_SECTION_ASM_OP): Document new macro.
2055         (READONLY_DATA_SECTION): Delete.
2056         (SDATA_SECTION_ASM_OP): Document new macro.
2057         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2058         (TARGET_ASM_INIT_SECTIONS): Document new hook.
2059         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2060         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2061         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2062
2063 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
2064
2065         * gcc.c (init_gcc_specs): Match braces inside conditionally
2066         compiled strings.
2067
2068 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
2069
2070         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2071
2072 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
2073
2074         PR C++/24138
2075         * tree.c (integer_all_onesp): Always return true if all bits on.
2076
2077         * testsuite/g++.dg/init/array0.C: New.
2078
2079 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
2080
2081         * doc/md.texi: Adapt to implementation.
2082
2083 2005-12-06  Andreas Schwab  <schwab@suse.de>
2084
2085         * opts.c (decode_options): Fix typo in message.
2086
2087 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
2088
2089         PR other/13873
2090         * longlong.h: Merge PPC tests from upstream.
2091
2092 2005-12-06  Richard Guenther  <rguenther@suse.de>
2093
2094         * fold-const.c (fold_convert): Do not build and fold
2095         CONVERT_EXPR, but always use NOP_EXPR.
2096
2097 2005-12-06  Jan Beulich  <jbeulich@novell.com>
2098
2099         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2100         __builtin_ia32_paddq and __builtin_ia32_subq.
2101         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2102         __builtin_ia32_pshufw.
2103         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2104
2105 2005-12-05  James E Wilson  <wilson@specifix.com>
2106
2107         PR target/24934
2108         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2109         is set.
2110
2111 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
2112         
2113         * print-tree.c (print_node): Ditto.
2114         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2115         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2116         before accessing DECL_ARTIFICIAL. 
2117         Handle new tag tree codes.
2118         * tree-flow-inline.h (clear_call_clobbered): Update for tag
2119         changes.
2120         (unmodifiable_var_p): Ditto.
2121         * tree-flow.h (mem_tag_kind): Remove.
2122         (struct var_ann_d): Remove mem_tag_kind member.
2123         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2124         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2125         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2126         (group_aliases): Ditto.
2127         (setup_pointers_and_addressables): Ditto.
2128         (is_escape_site): Ditto.                                          
2129         (may_alias_p): Ditto.
2130         (create_tag_raw): New function.
2131         (create_memory_tag): Use it.
2132         (dump_alias_info): Update for tags.
2133         (may_be_aliased): Ditto.
2134         (add_type_alias): Ditto.
2135         (new_type_alias): Ditto.
2136         (create_sft): Ditto.
2137         (create_structure_vars): Ditto.
2138         * tree-ssa-ccp.c (get_default_value): Ditto.
2139         * tree-ssa-operands.c (get_expr_operands): Ditto.
2140         (add_stmt_operand): Ditto.
2141         (add_call_clobber_ops): Remove duplicated condition.
2142         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2143         tags.
2144         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2145         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2146         * tree.c (init_ttree): Update structures for new tree codes.
2147         (tree_code_size): Update sizes for new tree codes.
2148         (make_node_stat): Don't try to set common things on minimal
2149         structures.
2150         (tree_node_structure): Update for tags.
2151         (is_global_var): Ditto.
2152         * tree.def: Add new tree codes.
2153         * tree.h (MTAG_P): New macro.
2154         (TREE_MEMORY_TAG_CHECK): Ditto.
2155         (SSA_VAR_P): Update for tags.
2156         (struct tree_memory_tag): New structure.
2157         (MTAG_GLOBAL): New macro.
2158         (union tree_node): Add memory tag member.
2159         * treestruct.def (TS_MEMORY_TAG): New.
2160         
2161 2005-12-05  Dale Johannesen  <dalej@apple.com>
2162
2163         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
2164         what was approved (PR 24323).
2165
2166 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2167
2168         * doc/c-tree.texi (Function Bodies): Remove description of
2169         RETURN_INIT.
2170
2171 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
2172
2173         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2174         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2175         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2176         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2177         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2178         __divxc3): Document.
2179
2180 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
2181
2182         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2183         previous behaviour.
2184         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2185         hook_bool_void_false.
2186         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2187         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2188
2189         * config/darwin.c (machopic_select_section): It's not defined
2190         as weak if it's only marked as weak_import.
2191         
2192         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2193         Prototype.
2194
2195         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2196         A hidden weak object does bind locally.  Strong linkonce data
2197         counts like any other strong symbol for binding.
2198         (weak_finish_1): Don't specially handle weakrefs, they no longer
2199         arrive here.
2200         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2201         * c-common.c (handle_alias_attribute): Allow static aliases
2202         of variables.
2203         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2204         * gthr-dce.h: Make weakrefs static.
2205         * gthr-tpf.h: Likewise.
2206         * gthr-solaris.h: Likewise.
2207         * gthr-posix.h: Likewise.
2208         * gthr-posix95.h: Likewise.
2209         * config/darwin.c (darwin_encode_section_info): static weakref
2210         variables are not necessarily defined in this translation unit.
2211         * doc/extend.texi (Function Attributes): Mention that an alias
2212         attribute creates a definition for the thing it's attached to.
2213         Change the documentation for weakref to say that the thing
2214         it's attached to must be static.
2215
2216         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2217         we don't go into an infinite loop.
2218
2219 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2220
2221         * config/rs6000/predicates.md (logical_const_operand): Split
2222         out of logical_operand.
2223         (logical_operand): Use it.
2224         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2225         logical_const_operand.
2226
2227 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2228
2229         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2230         and IX86_BUILTIN_CMPNESS.
2231         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2232         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2233         * config/i386/i386.md (movti_internal): Correct type attribute.
2234         Simplify mode attribute.
2235         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2236         Correct type attribute.
2237         (absxf2): Correct operator.
2238         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2239         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2240         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2241         mode attribute.
2242         (sse2_vmsqrtv2df2): Correct mode attribute.
2243
2244 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2245
2246         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2247         16 bits. Provide insn pattern for this case.
2248
2249 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2250
2251         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2252         result.
2253         (__popcountDI2): Likewise.
2254
2255 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2256
2257         PR target/25166
2258         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2259         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2260         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2261         functions.
2262
2263 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2264
2265         * c-typeck.c (null_pointer_constant_p): New function.
2266         (build_conditional_expr, build_c_cast, convert_for_assignment,
2267         build_binary_op): Use it.
2268
2269 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2270
2271         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2272         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2273         CONVERT_EXPR.
2274         (check_function_arguments_recurse): Allow both NOP_EXPR and
2275         CONVERT_EXPR but check conversions preserve precision.
2276         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2277         but check conversions preserve precision.
2278         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
2279         default case.
2280
2281 2005-12-04  Roger Sayle  <roger@eyesopen.com>
2282
2283         PR c/7776
2284         * common.opt (Wstring-literal-comparison): New command line option.
2285         * c-opts.c (c_common_handle_option): Set it with -Wall.
2286         * c-typeck.c (parser_build_binary_op): Issue warning if either
2287         operand of a comparison operator is a string literal, except for
2288         testing equality or inequality against NULL.
2289
2290         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2291
2292 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2293
2294         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2295         of building a NOP_EXPR.
2296         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
2297         NOP_EXPR.
2298         * c-convert.c (convert): Use fold_convert instead of building
2299         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
2300         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
2301         #if 0 code.
2302         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2303         NOP_EXPR the same as CONVERT_EXPR.
2304         * c-typeck.c (build_function_call): Use fold_convert instead of
2305         building a NOP_EXPR directly.
2306         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2307
2308 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2309
2310         PR rtl-optimization/25197
2311         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2312         have a reg.
2313
2314 2005-12-02  Stuart Hastings  <stuart@apple.com>
2315
2316         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2317         warning.
2318
2319 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2320
2321         * c-typeck.c (default_function_array_conversion,
2322         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2323         (build_conditional_expr): Apply integer_zerop to orig_op1 and
2324         orig_op2.  Don't check them for NOP_EXPR.
2325         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2326         around integer zero.
2327
2328 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2329
2330         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2331         toc_save_offset, toc_size, lr_size.
2332         (rs6000_stack_info): Use memset rather than bss struct copy to init.
2333         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2334         Adjust for removal of unused rs6000_stack_t fields.
2335         (debug_stack_info): Adjust.
2336         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
2337         first, and don't bother checking for set/inc of lr on sibcalls.
2338         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2339
2340 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
2341
2342         PR target/25199
2343         * config/i386/i386.md (movqi_1): Only force imovx for alternative
2344         5 if operand 1 is not aligned.  Undo previous constraint change.
2345         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2346
2347 2005-12-02  Richard Guenther  <rguenther@suse.de>
2348
2349         * tree.h (build): Remove prototype.
2350         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2351         * tree.c (build): Remove.
2352         (build0_stat): Update comment.
2353
2354 2005-12-02  Richard Guenther  <rguenther@suse.de>
2355
2356         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2357         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2358         Likewise.
2359         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2360         maybe_fold_offset_to_component_ref): Likewise.
2361         * tree-ssa-dom.c (thread_across_edge,
2362         simplify_rhs_and_lookup_avail_expr,
2363         find_equivalent_equality_comparison, record_equivalences_from_stmt):
2364         Likewise.
2365         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2366         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2367         lower_try_finally_switch): Likewise.
2368         * tree-if-conv.c (add_to_dst_predicate_list,
2369         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2370         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2371         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2372         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2373         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2374         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2375         gimplify_init_ctor_eval, gimplify_init_constructor,
2376         gimplify_variable_sized_compare, gimplify_boolean_expr,
2377         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2378         gimplify_expr, gimplify_body, gimplify_function_tree,
2379         force_gimple_operand): Likewise.
2380         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2381         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2382         mx_register_decls): Likewise.
2383         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2384         get_frame_field, finalize_nesting_tree_1): Likewise.
2385         * tree-inline.c (setup_one_parameter): Likewise.
2386         * tree-vect-transform.c (vectorizable_condition): Likewise.
2387         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2388         Likewise.
2389         * tree-profile.c (tree_gen_edge_profiler): Likewise.
2390         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2391         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2392         * tree-chrec.h (build_polynomial_chrec): Likewise.
2393
2394 2005-12-02  Richard Guenther  <rguenther@suse.de>
2395
2396         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2397         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2398         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2399         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2400         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2401         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2402         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2403         Likewise.
2404         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2405         sh_adjust_unroll_max): Likewise.
2406         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2407         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2408         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2409         Likewise.
2410         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2411         Likewise.
2412         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2413         Likewise.
2414
2415 2005-12-02  Richard Guenther  <rguenther@suse.de>
2416
2417         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2418         simplify_cond_using_ranges): Use buildN instead of build.
2419         * tree-tailcall.c (adjust_accumulator_values,
2420         adjust_return_value): Likewise.
2421         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2422         generate_element_copy, generate_element_zero,
2423         generate_one_element_init): Likewise.
2424         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2425         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2426         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2427         perfect_nestify): Likewise.
2428
2429 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2430
2431         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2432
2433 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2434
2435         * ggc.h (GGC_RESIZEVEC): New.
2436
2437 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2438
2439         * gcc.c (execute): Improve readability.
2440
2441 2005-12-02  Richard Guenther  <rguenther@suse.de>
2442
2443         * tree-cfg.c (mark_used_vars): New function.
2444         (dump_function_to_file): Dump only used VAR_DECLs.
2445
2446 2005-12-02  Richard Guenther  <rguenther@suse.de>
2447
2448         * convert.c (convert_to_integer): Fix compare for nonpositive
2449         constant to use tree_int_cst_sgn <= 0.
2450
2451 2005-12-02  Richard Guenther  <rguenther@suse.de>
2452
2453         * convert.c (convert_to_integer): Use fold_convert instead
2454         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
2455         instead of comparing against 0.  Use build_int_cst instead
2456         of converting integer_zero_node.
2457
2458 2005-12-02  Richard Guenther  <rguenther@suse.de>
2459
2460         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2461         and RROTATE_EXPR.
2462  
2463 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2464
2465         PR target/21017
2466         * combine.c (simplify_logical <IOR>): Simplify more patterns to
2467         rotates.
2468
2469 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2470
2471         PR middle-end/25176
2472         * function.c (expand_function_end): Emit blockage for unwinder
2473         after return label.
2474
2475 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2476
2477         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2478         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2479         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2480         integer constant comparisons.
2481
2482 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
2483             Janis Johnson  <janis187@us.ibm.com>
2484             David Edelsohn  <dje@watson.ibm.com>
2485             Ben Elliston  <bje@au.ibm.com>
2486
2487         * dfp.h, dfp.c: New files.
2488         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2489         (DECNUM_H): Likewise.
2490         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2491         (INCLUDES): Append $(DECNUMINC).
2492         (OBJS-common): Add dfp.o.
2493         (dfp.o): New rule.
2494         * real.h (EXP_BITS): Pinch one bit to ..
2495         (struct real_value): Add decimal field.
2496         (real_format): Change table size, update documentation.
2497         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2498         (real_from_string3): Declare.
2499         (decimal_single_format): Declare.
2500         (decimal_double_format): Declare.
2501         (decimal_quad_format): Declare.
2502         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2503         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2504         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2505         * real.c: Include dfp.h.
2506         (normalize): Early return for decimal floats.
2507         (do_add): Zero decimal field.
2508         (do_compare): Call do_decimal_compare for decimal floats.
2509         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2510         (real_arithmetic): Call decimal_real_arithmetic for decimal
2511         floating point operands.
2512         (real_identical): If a and b are of differing radix, return false.
2513         (real_to_integer): Call decimal_real_to_integer if the value is a
2514         decimal float.
2515         (real_to_integer2): Likewise, call decimal_real_to_integer2.
2516         (real_to_decimal): Likewise, call decimal_real_to_decimal.
2517         (real_to_hexadecimal): Place "N/A" in the return string for
2518         decimal float.
2519         (real_from_string3): New variant, given a mode.
2520         (real_maxval): Use decimal_real_maxval for decimal floats.
2521         (round_for_format): Use decimal_round_for_format for decimals.
2522         (real_convert): Use decimal_real_convert where appropriate.
2523         (significand_size): Handle base 10.
2524         (encode_decimal_single, decode_decimal_single,
2525         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2526         decode_decimal_quad): New functions.
2527         (decimal_single_format): New.
2528         (decimal_double_format): New.
2529         (decimal_quad_format): New.
2530         * machmode.def: Add SD, DD and TD decimal floating point modes.
2531         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2532         Include MODE_DECIMAL_FLOAT.
2533         (DECIMAL_FLOAT_MODE_P): New.
2534         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2535         * genmodes.c (struct mode_data): Add counter field.
2536         (struct mode_data): Update comment for format.
2537         (blank_mode): Initialise counter field.
2538         (new_mode): Increment counter field for each mode defined.
2539         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2540         using a format.
2541         (make_complex_modes): Handle modes containing `D'.
2542         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2543         (make_decimal_float_mode): New.
2544         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2545         (cmp_modes): Compare counter field if other characteristics
2546         similar.
2547         (emit_real_format_for_mode): Support formats for decimal floats.
2548         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2549         Document MODE_DECIMAL_FLOAT.
2550
2551 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2552
2553         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2554         Delete dead code.
2555
2556 2005-12-01  Richard Henderson  <rth@redhat.com>
2557
2558         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2559
2560 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2561
2562         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2563
2564         * config/pa/pa.c (pa_init_builtins): If we detect
2565         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2566         putc_unlocked.
2567
2568 2005-12-01  Richard Guenther  <rguenther@suse.de>
2569
2570         * fold-const.c (fold_binary): Use fold_build2, not
2571         fold (build (...)).
2572
2573 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2574
2575         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2576
2577         * vec.h (VEC_block_remove): New.
2578
2579 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2580
2581         PR c/13384
2582         * c-common.c (lvalue_error): Fix wording.
2583
2584 2005-12-01  Richard Guenther  <rguenther@suse.de>
2585
2586         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2587         thinko in last patch.
2588
2589 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
2590
2591         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2592         than -flat_namespace.
2593
2594 2005-12-01  Ben Elliston  <bje@au.ibm.com>
2595
2596         * mklibgcc.in: Parameterise the script to build soft float
2597         functions by iterating over each type, rather than cloning the
2598         code for each type.
2599
2600 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2601
2602         PR middle-end/25158
2603         * builtins.c (fold_builtin_fputs): Defer check for missing
2604         replacement functions.
2605
2606 2005-11-30  Kean Johnston  <jkj@sco.com>
2607
2608         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2609         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2610
2611 2005-11-30  Richard Guenther  <rguenther@suse.de>
2612
2613         PR tree-optimization/22501
2614         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2615         function split out from ...
2616         (forward_propagate_addr_expr): ... here.  Use it to propagate
2617         ADDR_EXPRs to all uses.
2618
2619 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2620
2621         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2622         * builtins.c (expand_builtin_mathfn): Use them.
2623         (expand_builtin_mathfn_2): Likewise.
2624         (expand_builtin_mathfn_3): Likewise.
2625         (expand_builtin_int_roundingfn): Likewise.
2626         (expand_builtin): Likewise.
2627         (integer_valued_real_p): Likewise.
2628         (fold_builtin_int_roundingfn): Likewise.
2629         (fold_builtin_bitop): Likewise.
2630         (fold_builtin_logarithm): Likewise.
2631         (fold_builtin_1): Likewise.
2632         * convert.c (convert_to_integer): Likewise.
2633         * fold-const.c (negate_mathfn_p): Likewise.
2634         (tree_expr_nonnegative_p): Likewise.
2635
2636 2005-11-30  Dale Johannesen  <dalej@apple.com>
2637             Andrew Pinski  <pinskia@physics.uc.edu>
2638
2639         * combine.c (find_split_point):  Sign extend bitmask
2640         when changing bitfield assignment to IOR of AND.
2641
2642 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2643
2644         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2645         clobber to scratch reg.
2646         (*decrement_and_branch_until_zero_no_clobber): Remove.
2647         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2648         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2649         * config/ms1/ms1.opt (mmul): Remove.
2650         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2651         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2652
2653 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2654             Bernd Schmidt  <bernd.schmidt@analog.com>
2655
2656         * pa/predicates.md (symbolic_operand): Add comment.
2657         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2658         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2659         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2660         (pa_secondary_reload_class): Delete.
2661         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2662         and pa_secondary_reload_class.  Reorder some checks.  Update inline
2663         copy of symbolic operand.
2664         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2665
2666 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2667
2668         * loop-doloop.c (add_test): Only add jump notes if we did emit a
2669         jump.
2670
2671 2005-11-30  Jeff Law  <law@redhat.com>
2672
2673         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2674         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2675
2676 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
2677
2678         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2679         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2680         (ia64_expand_move): Adjust caller.
2681
2682         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2683         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2684         negate VAL.
2685
2686 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
2687
2688         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2689         Always produce an output if we can remove NEGs or canonicalize
2690         (minus (minus ...)) expressions.  Provide a fast path for the
2691         two-operand case.
2692         (simplify_gen_binary): Do not call simplify_plus_minus.
2693         (simplify_binary_operation_1): Reassociate at the end of the
2694         function.
2695
2696 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
2697
2698         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2699         moves and unpack to speed up.
2700
2701 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
2702
2703         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2704         argument, they are always sparc_compare_op0 and sparc_compare_op1.
2705         (gen_v9_scc): Update callers.
2706         * config/sparc/sparc.md: Likewise.
2707         * config/sparc/sparc-protos.h: Update extern declaration.
2708
2709         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2710
2711 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2712
2713         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2714         the if.
2715
2716 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2717
2718         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2719         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2720         (negate_expr): Here.
2721
2722 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2723
2724         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2725         Fix typo in comment.
2726
2727 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2728
2729         * Makefile.in (clean-target): Depend on clean-target-libgcc.
2730         (clean-target-libgcc): Import rule from the top-level Makefile.in.
2731
2732 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2733
2734         PR middle-end/20109
2735         PR middle-end/25120
2736         * builtins.c (init_target_chars): New.
2737         (expand_builtin_printf, expand_builtin_fprintf,
2738         expand_builtin_sprintf, fold_builtin_sprintf,
2739         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2740         fold_builtin_snprintf_chk, fold_builtin_printf,
2741         fold_builtin_fprintf): Check for matching format strings using
2742         the target charset.
2743
2744 2005-11-29  Paul Brook  <paul@codesourcery.com>
2745
2746         * config.gcc: Do not use fixproto on m68k-elf.
2747
2748 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2749
2750         * expmed.c (div_cost): Replace with...
2751         (sdiv_cost, udiv_cost): New.
2752         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2753         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2754         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2755         (expand_divmod): Replace use of div_cost with either sdiv_cost
2756         or udiv_cost depending upon the signedness of the operation.
2757
2758 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2759
2760         PR libfortran/24991
2761         * config/darwin.c (machopic_indirection_name,
2762         machopic_output_indirection): Follow transparent alias chain.
2763
2764 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2765
2766         * varasm.c (ultimate_transparent_alias_target): Add comment.
2767
2768 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
2769
2770         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2771         SET_SRC instead of XEXP where appropriate.
2772
2773 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2774
2775         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2776         __builtin_expect.
2777
2778 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2779
2780         * config/fp-bit.h (LSHIFT): Take shift count parameter.
2781         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2782         bit at a time.
2783
2784 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
2785
2786         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2787         secondary_input_reload_class, made static.  Adapt to new
2788         infrastructure.
2789         (secondary_output_reload_class): Delete.
2790         (TARGET_SECONDARY_RELOAD): New macro.
2791         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2792         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2793
2794 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
2795
2796         PR c++/21166
2797         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
2798         when its natural alignment is > BITS_PER_UNIT.
2799         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2800         * c-common.c (handle_packed_attribute): Ignore packing on a field
2801         whose type is naturally char aligned.
2802
2803 2005-11-28  Richard Guenther  <rguenther@suse.de>
2804
2805         * c-common.c (strict_aliasing_warning): Handle all
2806         component-ref like accesses.
2807
2808 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2809             Uros Bizjak  <uros@kss-loka.si>
2810
2811         PR middle-end/20219
2812         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2813         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2814         when flag_unsafe_math_optimizations is set and
2815         we don't care about NaNs or Infinities.
2816
2817         Move x/expN(y) and x/pow(y,z) transformation into common
2818         flag_unsafe_math_optimizations section.
2819
2820 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
2821
2822         * gcc.c (main): Change type of argv to "char **".
2823
2824 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2825
2826         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2827         small data sections.
2828         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2829         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2830         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2831         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
2832         output locals to sbss if !rs6000_elf_in_small_data_p.
2833         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2834
2835 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2836
2837         PR target/24997
2838         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2839         generated by reload.
2840         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2841         indexed_or_indirect_address.
2842         (indexed_or_indirect_address): Don't test for base reg.  Call
2843         address_operand last.  Make it a special predicate.
2844
2845 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
2846
2847         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2848
2849 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
2850
2851         PR middle-end/24575
2852         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2853         is undefined.
2854         (negate_expr): Likewise.
2855
2856 2005-11-27  Andreas Schwab  <schwab@suse.de>
2857
2858         * config/m68k/m68k.c: Reindent and fix whitespace, remove
2859         redundant parens.
2860
2861 2005-11-27  Steven Bosscher  <stevenb@suse.de>
2862
2863         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2864         has EH predecessor edges.
2865
2866 2005-11-26  Eric Christopher  <echristo@apple.com>
2867
2868         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2869         register stalls by zero extending to the full register.
2870
2871 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
2872
2873         * config/floatunsisf.c, config/floatunsidf.c,
2874         config/floatunsixf.c, config/floatunsitf.c: New files.
2875         * config/ia64/t-hpux: Add floatunsitf.c.
2876         * config/ia64/ia64.c (ia64_init_libfuncs): Use
2877         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2878
2879 2005-11-26  Richard Henderson  <rth@redhat.com>
2880
2881         * c-lex.c (pragma_lex): Rename from c_lex.
2882         * c-pch.c: Update for pragma_lex rename.
2883         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2884         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2885         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2886         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2887         * doc/tm.texi: Likewise.
2888
2889 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
2890
2891         PR middle-end/23669
2892         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2893         when overflow is undefined.
2894
2895 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
2896
2897         * doc/md.texi (Insn Canonicalizations): Refer to the
2898         function commutative_operand_precedence for further rules.
2899
2900 2005-11-25  Roger Sayle  <roger@eyesopen.com>
2901
2902         PR middle-end/21309
2903         * expmed.c (choose_mult_variant): Return immediately when mult_cost
2904         is less than zero.  Limit mult_cost to a reasonable upper bound for
2905         the synthetic multiplication sequence.
2906
2907 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2908
2909         PR middle-end/25022
2910         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
2911         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
2912         Lookup the explicit replacement functions for any unlocked
2913         stdio builtin transformations.
2914
2915 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
2916
2917         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
2918         earlyclobber.
2919         * targhooks.c (default_secondary_reload): Don't require operand 2
2920         for an input reload to be earlyclobber.
2921
2922 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2923
2924         * fold-const.c (negate_mathfn_p): Fix comment and add support
2925         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
2926         BUILT_IN_ATANH.
2927
2928 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2929
2930         PR middle-end/24998
2931         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
2932         _Q_ulltoq for unsigned conversions from SImode and DImode to
2933         TFmode.
2934
2935 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
2936
2937         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
2938         (__floatundidf, __floatundisf): Likewise.
2939
2940 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
2941
2942         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
2943         (rs6000_override_options): Remove initialization of
2944         rs6000_sr_alias_set.
2945         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
2946         (rs6000_emit_stack_tie): Same.
2947         (emit_frame_save): Same.
2948         (gen_frame_mem_offset): Same.
2949         (rs6000_emit_prologue): Same.
2950         (rs6000_emit_epilogue): Same.
2951
2952 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2953
2954         PR middle-end/24989
2955         * fold-const.c (fold_build): Convert bool_var != 1 and
2956         bool_var == 0 to !bool_var.
2957
2958 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2959
2960         PR middle-end/24990
2961         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
2962         for C being INTEGER_CST.  Likewise for !=.
2963
2964 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2965
2966         PR middle-end/24998
2967         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
2968         unsigned conversions from SImode to TFmode.
2969
2970 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2971
2972         * expr.c (expand_expr_real_1): Fix error in last change.
2973
2974 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
2975
2976         * caller-save.c: (this_insn_sets): Move into:
2977         (save_call_clobbered_regs).
2978         (mark_set_regs): Get this_insn_sets from data.
2979
2980         (save_call_clobbered_regs): Take sets of the return value by
2981         sibcalls into account.
2982
2983 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
2984         PR target/21623:
2985
2986         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
2987         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
2988         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
2989         (memory_move_secondary_cost, init_reg_autoinc): Remove
2990         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
2991         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
2992         secondary_reload_class call.
2993         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
2994         callers.
2995         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
2996         (push_secondary_reload): Use secondary_reload target hook.
2997         (secondary_reload_class, scratch_reload_class): New functions.
2998         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
2999         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
3000         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
3001         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
3002         (secondary_reload_class, scratch_reload_class): Declare.
3003         * reload1.c: Include target.h.
3004         (reload_adjust_reg_for_temp): New function.
3005         (reload_adjust_reg_for_icode): Likewise.
3006         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
3007         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
3008         call.
3009         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
3010         for inheritance.  Support case when both secondary & tertiary reloads
3011         are for intermediate registers.
3012         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
3013         with secondary_reload_class call.  Support case when both secondary
3014         & tertiary reloads are for intermediate registers.
3015         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
3016         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
3017         * target.h (secondary_reload_info): New struct / typedef.
3018         (struct gcc_target): New member secondary_reload.
3019         * targhooks.c Include reload.h, optabs.h and recog.h.
3020         (default_secondary_reload): New function.
3021         * targhooks.h (default_secondary_reload): Declare.
3022         * doc/tm.texi: Document secondary_reload target hook.  Update
3023         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
3024         * doc/md.texi: Likewise.
3025
3026         * sh-protos.h (sh_secondary_reload): Declare.
3027         * sh.c (TARGET_SECONDARY_RELOAD): Override.
3028         (sh_secondary_reload): New function.
3029         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
3030         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3031         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3032         (HAVE_SECONDARY_RELOADS): Define.
3033         * sh.md (reload_indf): Rename to:
3034         (reload_indf__frn).
3035         (reload_outdf): Rename to:
3036         (reload_outdf__RnFRm).
3037         (reload_insf): Rename to:
3038         (reload_insf__frn).
3039         (reload_insi): Rename to:
3040         (reload_insi__i_fpul).
3041
3042 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
3043
3044         * configure.ac: Require at least texinfo 4.4.
3045         * configure: Regenerate.
3046
3047         * doc/install.texi (Tools/packages necessary for building GCC):
3048         Update required version of texinfo to at least 4.4.
3049         (Installing GCC: Building): Update required version of texinfo
3050         to at least 4.4.
3051         (Installing GCC: Final installation): Update required version
3052         of texi2dvi to at least 4.4.
3053         (Host/target specific installation notes for GCC): Update required
3054         version of texinfo to at least 4.4.
3055
3056 2005-11-24  Richard Guenther  <rguenther@suse.de>
3057         Dirk Mueller <dmueller@suse.de>
3058
3059         PR c++/14024
3060         * c-common.h (strict_aliasing_warning): Declare.
3061         * c-common.c (strict_aliasing_warning): New function,
3062         split out from ...
3063         * c-typeck.c (build_c_cast): ... here.
3064
3065 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3066
3067         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
3068         to order operands.
3069         (swap_commutative_operands_with_target): New.
3070
3071 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3072
3073         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
3074         also when doing PRE, rather than only for global CPROP.
3075
3076 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3077
3078         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
3079         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
3080         formatting.
3081         (expand_twoval_unop): Likewise.
3082         (widen_clz): Likewise.
3083         (expand_parity): Likewise.
3084         (expand_unop): Likewise.
3085         (emit_cmp_and_jmp_insn_1): Likewise.
3086         (prepare_float_lib_cmp): Likewise.
3087
3088 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3089
3090         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
3091         Remove unused `class' variable.
3092
3093 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3094
3095         PR c++/21667
3096         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
3097         C/C++ diagnostic function warn_array_subscript_with_type_char.
3098         * c-common.h (warn_array_subscript_with_type_char): Declare.
3099         * c-common.c (warn_array_subscript_with_type_char): Define.
3100
3101 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3102
3103         PR c/21668
3104         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
3105         compiling at the intersection of C and C++.
3106
3107 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
3108
3109         * doc/invoke.texi: For man pages, include gcc-vers.texi.
3110         List @file in the option summary.  Include the libiberty
3111         documentation for @file.
3112         * gcc.c (main): Call expandargv.
3113         * Makefile.in (gcc-vers.texi): Define srcdir.
3114
3115 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
3116
3117         * passes.c (init_optimization_passes): Document
3118         sequencing of passes.
3119
3120 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
3121
3122         * config/m68k/predicates.md (pcrel_address, extend_operator,
3123         post_inc_operand, pre_dec_operand): Remove redundant
3124         conditionals.
3125         (const_uint32_operand, const_sint32_operand): Use gcc_assert
3126         instead of abort.
3127         (valid_dbcc_comparison_p): Rewrite in the lisp style.
3128
3129 2005-11-23  Ben Elliston  <bje@au.ibm.com>
3130
3131         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
3132
3133 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
3134
3135         Preparatory work for PR target/21623:
3136         * alpha.c (secondary_reload_class): Rename to:
3137         (alpha_secondary_reload_class).
3138         * alpha.h, alpha-protos.h: Likewise.
3139         * mn10300.c (secondary_reload_class): Rename to:
3140         (mn10300_secondary_reload_class).
3141         * mn10300.h, mn10300-protos.h: Likewise.
3142         * pa.c (secondary_reload_class): Rename to:
3143         (pa_secondary_reload_class).
3144         * pa.h, pa-protos.h: Likewise.
3145         * rs6000.c (secondary_reload_class): Rename to:
3146         rs6000_secondary_reload_class.
3147         * rs6000.h, rs6000-protos.h: Likewise.
3148
3149 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
3150
3151         PR middle-end/22561
3152         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
3153
3154 2005-11-22  Ian Lance Taylor  <ian@airs.com>
3155
3156         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
3157         a mode_class.
3158         (prepare_cmp_insn): Likewise.
3159
3160 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
3161
3162         PR target/23435
3163         * m68k.md (zero_extendsidi2): Force operands[1] to a register
3164         if both operands[0] and operands[1] are memory.
3165
3166 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3167
3168         PR middle-end/23606
3169         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
3170         COMPARISON_CLASS_P and an integral types create create a new
3171         expression with the new type and fold that.
3172
3173 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3174
3175         PR target/24988
3176         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
3177         to SUBTARGET_OS_CPP_BUILTINS.
3178
3179 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3180
3181         * arm.c (emit_set_insn): New function.
3182         (arm_split_constant): Call it.
3183         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
3184         (arm_legitimize_address): Likewise.  Use plus_constant.
3185         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
3186         (thumb_expand_prologue): Likewise.
3187         (arm_gen_load_multiple): Use VOIDmode in SET.
3188         (arm_gen_store_multiple): Likewise.
3189         (vfp_emit_fstmx): Likewise.  Use plus_constant.
3190         (emit_multi_reg_push): Likewise.
3191         (emit_sfm): Use plus_constant.
3192
3193 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
3194
3195         PR target/24954
3196         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
3197         typo last change.
3198
3199 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3200
3201         PR middle-end/24950
3202         * expmed.c (store_bit_field): Don't attempt to insv a field
3203         larger than the reg.
3204
3205 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3206
3207         PR target/24954
3208         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
3209         explicit sign extension, not a (char) cast.
3210
3211 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3212
3213         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
3214         GET_MODE_CLASS (x) == MODE_FLOAT.
3215         * config/i386/i386.c: Likewise.
3216         * config/rs6000/xcoff.h: Likewise.
3217         * config/rs6000/linux64.h: Likewise.
3218         * config/rs6000/rs6000.c: Likewise.
3219         * config/rs6000/rs6000.h: Likewise.
3220         * config/rs6000/predicates.md: Likewise.
3221         * config/rs6000/sysv4.h: Likewise.
3222
3223 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3224
3225         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
3226         flag_pic is set.
3227
3228         * config/alpha/freebsd.h, config/alpha/linux.h,
3229         config/arm/linux-elf.h, config/bfin/bfin.h,
3230         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
3231         config/i386/beos-elf.h, config/i386/gnu.h,
3232         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
3233         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
3234         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
3235         config/rs6000/linux64.h, config/rs6000/sysv4.h,
3236         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
3237         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
3238         config/sparc/linux.h, config/sparc/linux64.h,
3239         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
3240
3241         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
3242         are both defined when either flag -fpic or -fPIC are used.
3243
3244 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3245
3246         * config/fp-bit.c (clzusi): New function.
3247         (si_to_float, usi_to_float): Use it to compute proper shift.
3248         (usi_to_float): Preserve guard bits when shifting right.
3249         * libgcc-std.ver (GCC_4.2.0): New version.
3250         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
3251         __floatundisf): New functions.
3252         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
3253         __floatundisf): Declare.
3254         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
3255         _floatundixf, and _floatunditf.
3256         * optabs.c (expand_float): If target does not define a pattern for
3257         signed or unsigned conversion, use an unsigned libcall instead of
3258         a signed one.
3259         (init_optabs): Initialize ufloat_optab.
3260
3261 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3262
3263         * config/rs6000/rs6000.opt (mmulhw): New option.
3264         * doc/invoke.texi (-mmulhw): Document.
3265         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
3266         for 405 and 440.
3267         * config/rs6000/rs6000.md: Add half-word multiply and
3268         multiply-accumulate instructions for 405 and 440.
3269
3270 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
3271
3272         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
3273         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
3274         default now includes a linker group which makes the RTEMS one nest.
3275
3276 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3277
3278         * cse.c (fold_rtx): Typo fix.
3279         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
3280
3281 2005-11-21  Richard Henderson  <rth@redhat.com>
3282
3283         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
3284         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
3285
3286         * c-tree.h (lookup_name): Move declaration ...
3287         * c-common.h (lookup_name): ... here.
3288         * config/darwin-c.c: Include c-common.h.
3289         * config/t-darwin: Update dependencies.
3290
3291 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3292
3293         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
3294         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
3295         * genopinit.c (gen_insn): Likewise.
3296         * reload.c (find_equiv_reg): Likewise.
3297         * loop.c (load_mems): Likewise.
3298         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
3299         * cse.c (find_comparison_args, fold_rtx): Likewise.
3300         * dwarf2out.c (add_const_value_attribute): Likewise.
3301         * expr.c (convert_move): Likewise.
3302         * recog.c (general_operand, register_operand): Likewise.
3303         * reg-stack.c (replace_reg): Likewise.
3304         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3305         * c-common.c (handle_vector_size_attribute): Likewise.
3306         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3307         (simplify_binary_operation_1): Likewise.
3308         (simplify_const_binary_operation): Likewise.
3309         (simplify_relational_operation): Likewise.
3310         (simplify_const_relational_operation): Likewise.
3311         (simplify_immed_subreg): Likewise.
3312         * emit-rtl.c (gen_lowpart_common): Likewise.
3313         * expmed.c (expand_mult): Likewise.
3314         * stor-layout.c (layout_type): Likewise.
3315
3316 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
3317
3318         PR target/24951
3319         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
3320         cst2 only for SPE vectors.
3321
3322 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
3323
3324         PR target/24953
3325         * config/rs6000/predicates.md (vrsave_operation): Check
3326         UNSPEC_VOLATILE value.
3327
3328 2005-11-21  Jan Hubicka  <jh@suse.cz>
3329
3330         PR tree-optimization/24653
3331         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
3332
3333 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3334
3335         * config/i386/predicates.md (ax_reg_operand): New predicate.
3336         (memory_displacement_only_operand): New predicate.
3337         * config/i386/i386.md ("modrm" attribute): Return 0 if one
3338         operand is AX register and the other operand is memory operand
3339         with displacement only.
3340
3341 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3342
3343         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
3344         if we don't care about NaNs or Infinities.
3345
3346 2005-11-20  Ian Lance Taylor  <ian@airs.com>
3347
3348         PR rtl-optimization/24883
3349         * combine.c (combinable_i3pat): When checking whether the
3350         destination of i3 is used in i3, consider paradoxical subregs.
3351
3352 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
3353
3354         PR middle-end/20583
3355         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
3356
3357 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
3358
3359         * combine.c (try_combine): Do not run subst on i1src and i2src in
3360         the case of generating a PARALLEL for a comparison.
3361
3362 2005-11-20  Richard Henderson  <rth@redhat.com>
3363
3364         PR 24931
3365         * tree-sra.c (struct sra_elt): Add all_no_warning.
3366         (struct sra_walk_fns) <use>: Add use_all argument.
3367         (sra_walk_expr): Pass it.
3368         (sra_walk_modify_expr): Likewise.
3369         (scalarize_ldst): Likewise.
3370         (scan_use): Update for new argument.
3371         (mark_no_warning): New.
3372         (scalarize_use): Use it.
3373
3374 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
3375
3376         * expr.c (expand_expr_real): Use usmul_optab for widening
3377         signed * unsigned multiplies.
3378         * genopinit.c (optabs): Add usmul_widen_optab.
3379         * optabs.c (init_optabs): Likewise.
3380         * optabs.h (enum optab_index): Add OTI_usmul_widen.
3381         (usmul_widen_optab): Define.
3382         * config/bfin/bfin.md (usmulhisi3): New pattern.
3383
3384         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
3385
3386 2005-11-20  Graham Stott <btinternet.com>
3387
3388         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
3389
3390 2005-11-20  Andreas Schwab  <schwab@suse.de>
3391
3392         PR target/24757
3393         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
3394         insn.
3395
3396 2005-11-19  Richard Henderson  <rth@redhat.com>
3397
3398         PR tree-opt/24665
3399         * tree-gimple.c (is_gimple_id): Export.
3400         * tree-gimple.h (is_gimple_id): Declare.
3401         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
3402         (get_default_value): Use it.
3403         (maybe_fold_stmt_indirect): Likewise.
3404
3405 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
3406
3407         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
3408         than VR1 or vice-versa.
3409
3410 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
3411
3412         PR middle-end/24912
3413         PR middle-end/24750
3414         * reload.c (find_reloads_address_1): Mention dependency on
3415         gen_reload.
3416         * reload1.c (gen_reload): For IN with an unary operation, try
3417         moving inner expression to OUT if trivial SET is not valid.
3418         Confirm that the result is valid.  Move common code block into...
3419         (emit_insn_if_valid_for_reload): New function.
3420
3421 2005-11-19  Richard Guenther  <rguenther@suse.de>
3422
3423         * fold-const.c (fold_indirect_ref_1): Make sure we fold
3424         ARRAY_REFs of constant strings.
3425
3426 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
3427
3428         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
3429         fatal format string.
3430
3431 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
3432
3433         * combine.c (make_compound_operation): Swap operands of
3434         commutative operation if necessary before returning.
3435
3436 2005-11-19  Richard Guenther  <rguenther@suse.de>
3437
3438         PR middle-end/23294
3439         * fold-const.c (fold_plusminus_mult_expr): New function.
3440         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
3441         cases, remove now unnecessary code.
3442
3443 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
3444
3445         * gensupport.c (old_preds): Rename to std_preds, add special field.
3446         (struct old_pred_table): Rename to struct std_pred_table, add special
3447         field.
3448         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
3449         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
3450         (init_predicate_table): Adjust, and set along the way whether a
3451         predicate is special.
3452
3453 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
3454
3455         * BASE-VER: Change to 4.2.0.
3456
3457 2005-11-18  James E Wilson  <wilson@specifix.com>
3458
3459         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
3460         returning it.
3461
3462 2005-11-18  Mike Stump  <mrs@apple.com>
3463
3464         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
3465         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3466         * c-decl.c (lookup_name_two) Remove.
3467         * c-tree.h (lookup_name_two): Remove.
3468         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3469         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
3470         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
3471         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
3472
3473 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
3474
3475         PR target/24914
3476         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
3477         when not generating code to use that co-processor.
3478
3479 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
3480
3481         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
3482         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
3483         these functions are now in tree-phinodes.c.
3484
3485 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
3486
3487         * config/bfin/bfin.md (trap): New pattern.
3488
3489 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3490
3491         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
3492         on types.
3493
3494         * expr.c (expand_expr_real): Don't call record_block_change unless
3495         ib_boundaries_block is non-null
3496
3497         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
3498
3499         * fold-const.c (build_range_check): Use proper type for subtraction
3500         when merging lower bound.
3501
3502 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3503
3504         PR rtl-optimization/24497
3505         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
3506         the copied insn.
3507
3508 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3509
3510         * tree-scalar-evolution.c (expression_expensive_p): New function.
3511         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
3512
3513 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
3514
3515         * config/bfin/crtlibid.s: New file.
3516
3517 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3518
3519         PR target/24348
3520         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3521         when not using sjlj exceptions.
3522         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3523         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3524         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3525         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3526         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3527         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3528         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3529         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3530         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3531         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3532         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3533         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3534         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3535         defines.
3536         * config/pa/hpux-unwind.h: New file.
3537
3538 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
3539
3540         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3541         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3542         * varasm.c (do_assemble_alias): Adjust call.
3543         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3544         is defined.
3545         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3546
3547 2005-11-17  James E Wilson  <wilson@specifix.com>
3548
3549         * tree.def (FUNCTION_DECL): Correct typo in comment.
3550
3551 2005-11-17  Richard Henderson  <rth@redhat.com>
3552
3553         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3554         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3555         and DW_CFA_def_cfa_sf.
3556         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3557         (dbx_reg_number): Don't assert particular registers here.
3558         (based_loc_descr): ... do it here instead.  Fold in ...
3559         (eliminate_reg_to_offset): ... this function.
3560         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3561         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3562         * unwind-dw2.c (execute_cfa_program): Apply data align factor
3563         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3564         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3565         (instantiate_virtual_regs): Likewise.
3566         * var-tracking.c (adjust_stack_reference): Likewise.
3567         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3568
3569 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3570
3571         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3572         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3573         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3574         crtlibid.o.
3575         ($(T)crtlibid.o): New rule.
3576
3577 2005-11-16  Richard Guenther  <rguenther@suse.de>
3578
3579         PR middle-end/24851
3580         * fold-const.c (extract_array_ref): Return byte offset
3581         in all cases.
3582         (fold_binary): Fold &x[a] CMP &x[b] to
3583         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3584         behavior.
3585
3586 2005-11-16  Richard Henderson  <rth@redhat.com>
3587
3588         PR middle-end/23497
3589         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3590         parts of an SSA_NAME.
3591
3592 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
3593
3594         PR target/24861
3595         * arm.md (split for movsf with immediate): Restrict split to insns
3596         that set a general register.
3597
3598 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3599
3600         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
3601         uw_update_context.
3602         * unwind-dw2.c (uw_advance_context): Likewise.
3603         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
3604         _Unwind_SjLj_Unregister.
3605         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3606
3607 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3608
3609         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3610
3611 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3612
3613         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3614         langhook to get a DImode integer type.
3615
3616 2005-11-16  Richard Henderson  <rth@redhat.com>
3617             J"orn Rennecke <joern.rennecke@st.com>
3618             Ulrich Weigand  <uweigand@de.ibm.com>
3619
3620         PR rtl-opt/24160
3621         PR target/24621
3622         * reload1.c (reg_equiv_invariant): New.
3623         (reload): Allocate, initialize, and free it.
3624         (calculate_needs_all_insns): Check it when skipping equivalence
3625         setting insns.
3626         (alter_reg): Likewise.
3627         (eliminate_regs_1): Rename from eliminate_regs.  Add new
3628         may_use_invariant argument; only use reg_equiv_invariant when true.
3629         (eliminate_regs): New.
3630         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3631         a context for which may_use_invariant may be true.
3632
3633 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3634
3635         * fold-const.c (const_binop): Don't constant fold the operation
3636         if the result has overflowed and flag_trapping_math.
3637         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3638
3639 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3640
3641         * config/arm/unwind-arm.c (abort): Add prototype here.
3642         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3643         (struct phase1_vrs): Add prev_sp.
3644         (unwind_phase2_forced): Save the original core registers instead of
3645         modifying entry_vrs.  Take a new flag argument for resuming unwinding
3646         and set action flags accordingly.  Always set _US_END_OF_STACK when
3647         get_eit_entry fails.  Unwind before calling the stop function.
3648         (_Unwind_GetCFA): New function.
3649         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3650         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3651         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3652         just call unwind_phase2_forced.
3653         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3654         * config/arm/unwind-arm.h (abort): Remove prototype.
3655         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3656         prototypes.
3657         (_Unwind_GetCFA): New prototype.
3658         * config/arm/pr-support.c (abort): Add prototype here.
3659         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3660         forced unwinding.
3661         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3662         not schedule the prologue with non-call exceptions and EABI.
3663
3664 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
3665
3666         * config/arm/unwind-arm.h: Reorder interface function declarations.
3667         (_URC_END_OF_STACK): New enumeration value.
3668         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3669         (struct _Unwind_Control_Block): Document reserved field use.
3670         (_Unwind_Stop_Fn): New typedef.
3671         (_Unwind_ForcedUnwind): Declare.
3672         (_Unwind_Resume_or_Rethrow): Declare.
3673         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3674         argument.  Adjust.
3675         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3676         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3677         (UCB_FORCED_STOP_ARG): New.
3678         (search_EIT_table): Update boundary condition checks.
3679         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3680         (unwind_phase2): Replace for with do..while.
3681         (unwind_phase2_forced): New.
3682         (__gnu_Unwind_RaiseException): Replace for with do..while.
3683         (__gnu_Unwind_ForcedUnwind): New.
3684         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3685         Use appropriate phase2 unwinder.
3686         (__gnu_Unwind_Resume_or_Rethrow): New.
3687         (__gnu_unwind_pr_common): Cope with forced unwinding.
3688
3689 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
3690
3691         PR target/24772
3692         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3693
3694         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3695         roundsf2): Remove "s" from mnemonic.
3696
3697 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3698
3699         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3700         __PIC__ is defined.
3701         * config/bfin/crtn.s: Change epilogues to match.
3702         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3703         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3704         __PIC__ and __pic__.
3705
3706 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3707
3708         PR 24357
3709         * doc/invoke.texi: Distinguish between free and fixed form instead of
3710         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
3711         languages.
3712         * gcc.c (default_compilers): Remove double entries, add entries for
3713         suffixes '.F90' and '.F95'.
3714
3715 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
3716
3717         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3718         in the stack probing loop.
3719
3720 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3721
3722         * configure.ac: Use .machine power5 not power5x.
3723         * configure: Regenerate.
3724
3725 2005-11-15  Mike Stump  <mrs@apple.com>
3726
3727         * c-decl.c (lookup_name_two): Add.
3728         * c-tree.h (lookup_name_two): Likewise.
3729         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3730         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3731
3732 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
3733
3734         PR rtl-optimization/23392
3735         * regrename.c (enum scan_actions) Add mark_access.
3736         (scan_actions_name): Ditto.
3737         (scan_rtx_reg): Handle mark_access.
3738         (scan_rtx_address): Do nothing for mark_access.
3739         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3740         and regs in REG_INC notes before closing chains for dead regs.
3741         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3742         opening chains for new writes.
3743
3744 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3745
3746         * c.opt (ffixed-line-length-none): New.
3747
3748 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
3749
3750         * mklibgcc.in: Change contents of eh_dummy.c.
3751
3752 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3753
3754         * loop.c (scan_loop): Do not insert temporaries for hard registers.
3755
3756 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3757
3758         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3759         of making syscalls.
3760         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
3761
3762 2005-11-15  Jan Hubicka  <jh@suse.cz>
3763
3764         * invoke.texi (large-unit-insns): Document.
3765         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3766         * params.def (large-unit-insns): New param.
3767
3768 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
3769
3770         PR target/24869
3771         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3772         special register for operand 3.  Reindent constraints to align
3773         them vertically.
3774
3775 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
3776
3777         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3778         -mpopcntb, -mfprnd. Add -mcpu=power5+.
3779         * configure.ac: Add test for FP rounding instructions.
3780         * configure: Regenerate.
3781         * config.in: Regenerate.
3782         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3783         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3784         features enabled.
3785         * config/rs6000/rs6000.opt (mfprnd): New.
3786         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3787         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3788         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3789         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3790         (TARGET_FPRND): New.
3791         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3792         UNSPEC_FRIZ): New.
3793         (btrunc<mode>2): New.
3794         (ceil<mode>2): New.
3795         (floor<mode>2): New.
3796         (round<mode>2): New.
3797
3798 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
3799
3800         * gcc.c (version_compare_spec_function): Use fatal() rather than
3801         abort().
3802
3803         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3804         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3805         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3806         as empty.
3807         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3808         link in crt2.o.
3809
3810         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3811         on -mmacosx-version-min setting.
3812
3813 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3814
3815         PR 24840
3816         * tree-vrp.c (infer_value_range): Return false if STMT is a
3817         block terminator and its basic block has no successors.
3818
3819 2005-11-14  Mike Stump  <mrs@apple.com>
3820
3821         * config/i386/i386.c (override_options): -masm=intel isn't
3822         supported on darwin.
3823         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3824
3825 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3826
3827         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3828         vfork after including auto-host.h.
3829
3830 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
3831
3832         PR rtl-optimization/22002
3833         * combine.c (distribute_notes): Detect cases where a reg dies
3834         two or more times in a bb, including on the insn we are combining,
3835         and place the death note on the correct range.
3836
3837 2005-11-14  Dale Johannesen  <dalej@apple.com>
3838
3839         * expmed.c (store_bit_field):  Add offset unconditionally for
3840         memory targets.
3841         (extract_bit_field):  Don't force extzv or extv operand into
3842         a register if field is too big.
3843
3844 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3845
3846         * config/arm/arm.c (pic_labelno): New.
3847         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3848         LABEL_REF.  Pass only the labelno to PIC insns.
3849         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3850         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3851         * arm.md (UNSPEC_PIC_LABEL): New constant.
3852         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3853         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3854         Use the correct label prefix.
3855
3856 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3857
3858         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3859         REQ_EQUIV note.
3860
3861 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
3862
3863         * loop-invariant.c: Include tm_p.h.
3864         * Makefile.in: Updated.
3865
3866 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3867
3868         * pa.c (store_reg): Revise generation of frame notes in large frames.
3869         (set_reg_plus_d): Likewise.
3870
3871 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
3872
3873         PR tree-optimization/24709
3874         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3875         loop check.
3876
3877 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3878
3879         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3880         and duplicate declaration of pthread_self.
3881
3882 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3883             Ian Lance Taylor  <ian@airs.com>
3884
3885         PR middle-end/24003
3886         * calls.c (expand_call): If TARGET is a MEM and some part of the
3887         argument area has been saved, force TARGET to a register.
3888
3889 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
3890
3891         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
3892         checking.
3893
3894 2005-11-13  Jason Merrill  <jason@redhat.com>
3895
3896         PR c++/22489
3897         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
3898         lazily declared methods.
3899         (force_decl_die): Stop if forcing out the context already make a
3900         DIE for the decl.
3901         (force_type_die): Likewise.
3902
3903 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
3904
3905         PR middle-end/24820
3906         * builtins.c (integer_valued_real_p): Add break in
3907         REAL_CST having TREE_OVERFLOW set.
3908
3909 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
3910
3911         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
3912         addressing modes during calculation of costs.
3913
3914 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3915
3916         * function.c (assign_stack_local_1): Restrict sanity check
3917         on frame size overflow to 32-bit and above platforms.
3918
3919 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3920
3921         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
3922         * config/cris/cris.c: Include reload.h.
3923         (cris_initial_elimination_offset): New function.
3924         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
3925         Prototype.
3926
3927 2005-11-12  Richard Guenther  <rguenther@suse.de>
3928
3929         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
3930
3931 2005-11-12  Jan Hubicka  <jh@suse.cz>
3932
3933         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
3934         to compare against 0 when possible.
3935
3936 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
3937
3938         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
3939         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3940         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
3941         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
3942         in the new order.
3943
3944 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3945
3946         * recog.c (constrain_operands) <case 'g'>: For a match, require
3947         that a non-register matches general_operand when strict >= 0.
3948
3949 2005-11-11  Steven Bosscher  <stevenb@suse.de>
3950
3951         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
3952         previous checkin.
3953
3954 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
3955
3956         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
3957         (memory_address_same): New.
3958         (dse_optimize_stmt): Call memory_address_same.
3959
3960 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3961
3962         PR middle-end/24750
3963         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
3964         ZERO_EXTEND>: New cases.
3965
3966 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
3967
3968         * longlong.h (__clz_tab): Always provide.
3969
3970 2005-11-11  Steven Bosscher  <stevenb@suse.de>
3971
3972         PR 24265
3973         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
3974         can be assigned to.
3975         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
3976         before check_maybe_invariant.
3977         (move_invariant_reg): Use gen_move_insn instead of replacing
3978         SET_DEST with the temporary for the invariant.
3979         (move_loop_invariants): If checking is enabled, do internal
3980         consistency checks after completing the pass.
3981
3982 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
3983
3984         PR 24644
3985         * common.opt (Wvolatile-register-var): New.
3986         * varasm.c (make_decl_rtl): Only emit warning when option
3987         specified.  Clarify warning message.
3988         * doc/invoke.texi (Wvolatile-register-var): Document new option.
3989
3990         * doc/md.texi (copysign): Document standard named pattern.
3991
3992 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
3993
3994         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
3995         bytes when align is 2.
3996         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
3997         by the first instruction of the loop.
3998
3999 2005-11-11  Jason Merrill  <jason@redhat.com>
4000
4001         PR c++/24686
4002         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
4003         the cleanup list.
4004
4005 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
4006
4007         PR rtl-optimization/22509
4008         * local-alloc.c (memref_used_between_p): Check whether a function call
4009         could not reference the memref.
4010
4011 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
4012
4013         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
4014         algorithm so as to choose the best, not the worst, alternative.
4015         Reset accumulated register class before processing next alternative.
4016
4017 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4018
4019         PR target/24445
4020         * calls.c (expand_call): Copy a return value to a plain register
4021         if needed.
4022
4023 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
4024
4025         PR target/24778
4026         * varasm.c (assemble_name): Recompute name only for transparent
4027         aliases.
4028
4029 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
4030
4031         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
4032
4033 2005-11-04  Jeff Law  <law@redhat.com>
4034
4035         PR middle-end/23181
4036         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
4037         perform reassociation if the parent statement will not die as
4038         a result of the optimization.
4039
4040 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
4041
4042         * tree-ssa-alias.c (compute_may_aliases): Remove call to
4043         delete_old_heap_vars.
4044         * tree-dfa.c (referenced_var_remove): Remove function.
4045         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
4046         (delete_tree_ssa): Remove call to delete_old_heapvars.
4047         Add call to delete_alias_heapvars.
4048         * tree-flow.h (referenced_var_remove): Remove prototype
4049         (init_alias_heapvars): New prototype.
4050         (delete_alias_heapvars): Ditto.
4051         * Makefile.in (tree-ssa-structalias.o): Add
4052         gt-tree-ssa-structalias.o
4053         (GTFILES): Add tree-ssa-structalias.h and
4054         tree-ssa-structalias.c.
4055         (s-gtype): Add gt-tree-ssa-structalias.h.
4056         * tree-ssa-structalias.c (heapvars): Remove.
4057         (oldheapvars): Remove.
4058         (heapvar_for_stmt): New variable.
4059         (heapvar_lookup): New function.
4060         (heapvar_insert): Ditto.
4061         (get_constraint_for): See if we have an old heapvar
4062         to reuse.
4063         (init_alias_heapvars): New function.
4064         (delete_alias_heapvars): Ditto.
4065         Add include of gt-tree-ssa-structalias.h.
4066
4067 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4068
4069         PR middle-end/22127
4070         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
4071
4072 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4073
4074         * tree.c (int_fits_type_p): Only look at the base type
4075         if it has the same precision as the original type.
4076
4077 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
4078
4079         PR other/4372
4080         * varasm.c (assemble_alias): Use %q+D in the error
4081         message instead of %J and %qD.
4082
4083 2005-11-10  Richard Guenther  <rguenther@suse.de>
4084
4085         * gcse.c (free_ldst_entry): Only free hashtable if
4086         it exists.
4087
4088 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4089
4090         * function.c (assign_stack_local_1): Issue an error message if
4091         the frame size overflows in the signed target arithmetics.
4092
4093 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4094
4095         * tree.c (build_qualified_type): Chain the new type to the original
4096         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
4097         a POINTER_TYPE or a REFERENCE_TYPE respectively.
4098         (build_pointer_type_for_mode): Only return unqualified types.
4099         (build_reference_type_for_mode): Likewise.
4100
4101 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4102
4103         * Makefile.in (gnucompare): Do comparison of all files using one of
4104         the chosen methods and only afterwards decide if just warning should
4105         be issued or comparison failure raised.
4106
4107 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4108
4109         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
4110         (noce_try_abs): Negate if the comparison is reversed.
4111         Look only one instruction backwards for a REG_EQUAL note.
4112
4113 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4114
4115         PR other/4372
4116         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
4117         gthr-tpf.h: Define __gthrw.  For all identifiers that might
4118         be weak, introduce weakrefs or non-weak aliases with __gthrw,
4119         and prefix all uses with __ghtrw.
4120
4121 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4122
4123         PR other/4372
4124         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
4125         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
4126         * c-common.c (handle_weakref_attribute): New.
4127         (c_common_attribute_table): Add weakref.
4128         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
4129         in the assembler.
4130         * configure, config.in: Rebuilt.
4131         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
4132         * doc/extend.texi: Document weakref attribute.
4133         * varasm.c (ultimate_transparent_alias_target): New
4134         (assemble_name): Use it.
4135         (weak_finish_1): Split out of...
4136         (weak_finish): ... and deal with weakrefs in...
4137         (weakref_targets): ... new list.
4138         (globalize_decl): Clean up weakref_targets.
4139         (do_assemble_alias): Handle weakrefs.
4140         (finish_aliases_1): Do not reject weakrefs to external symbols.
4141         (assemble_alias): Handle weakrefs.
4142
4143 2005-11-09  Richard Guenther  <rguenther@suse.de>
4144
4145         PR tree-optimization/24716
4146         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
4147         t_bool to track results from follow_ssa_edge.
4148
4149 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4150
4151         * final.c (force_source_line): New global variable.
4152         (final_scan_insn): Set it to true instead of clearing last_filename.
4153         (notice_source_line): Return true if force_source_line is true,
4154         unless source info is absent.
4155
4156 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
4157
4158         PR c/24644
4159         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
4160         a linkage name for a variable if it a register variable.
4161         * c-decl.c (grokdeclarator): Global register variables
4162         should be set as PUBLIC.
4163
4164 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4165
4166         PR 24624
4167         * config/s390/s390.c (struct s390_frame_layout): New fields
4168         first_save_gpr_slot and last_save_gpr_slot.
4169         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
4170         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
4171         first_save_gpr and last_save_gpr with the _slot variants.
4172         (s390_register_info): Calculate first_save_gpr_slot and
4173         last_save_gpr_slot using regs_ever_live.
4174
4175 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4176
4177         PR 24623
4178         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
4179         for a function containing a landing pad.
4180
4181 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4182
4183         PR 24034
4184         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
4185         is live afterwards.
4186
4187 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
4188
4189         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
4190         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
4191
4192 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4193
4194         Add ms2 support
4195         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
4196         constants.
4197         (call,load,store): New insn types.
4198         (mem_access, branch_access): Adjust reservation conditions.
4199         (define_delay): Adjust condition.
4200         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
4201         type.
4202         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
4203         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
4204         insn type.
4205         (call_internal, call_value_internal, return_internal,
4206         return_interrupt_internal, eh_return_internal, indirect_jump,
4207         tablejump): Set call insn type.
4208         (blockage, ei, di): Use appropriate unspec const.
4209         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
4210         (ms1_get_attr_type): Adjust to give load & store types.
4211         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
4212         backwards past a barrier.
4213         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
4214         branch scheduling.
4215         (struct branch_info, struct label_info): New.
4216         (ms1_labels): New.
4217         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
4218         (ms1_machine_reorg): New.
4219         (TARGET_MACHINE_DEPENDENT_REORG): Override.
4220         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
4221         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
4222         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
4223         (TARGET_MS2): New.
4224
4225 2005-11-09  Per Bothner  <per@bothner.com>
4226             Uros Bizjak  <uros@kss-loka.si>
4227
4228         PR c/24101
4229         * toplev.c (process_options): Initialize debug_hooks early
4230         in case lang_hooks.post_options ends up calling a debug_hook.
4231
4232 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
4233
4234         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
4235         DBX_REGISTER_NUMBER being contiguous.
4236
4237 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
4238             Diego Novillo  <dnovillo@redhat.com>
4239
4240         PR 23046
4241         * tree-vrp.c (register_edge_assert_for): Do not register
4242         always-false predicates.
4243
4244 2005-11-08  Devang Patel <dpatel@apple.com>
4245
4246         PR tree-optimization/23115
4247         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
4248         relation.
4249
4250 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
4251
4252         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
4253         -mcpu=440.
4254
4255 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
4256
4257         Fix PR tree-optimization/23382
4258
4259         * tree-ssa-alias.c (compute_may_aliases): Call
4260         delete_old_heap_vars.
4261         * tree-dfa.c (referenced_var_remove): New function.
4262         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
4263         * tree-flow.h (referenced_var_remove): Add prototype.
4264         (delete_old_heap_vars): Ditto.
4265         * tree-ssa-structalias.c (heapvars): New variable.
4266         (oldheapvars): Ditto.
4267         (get_constraint_for): Put heap vars on heapvars list.
4268         (delete_old_heap_vars): New function.
4269
4270 2005-11-08  Jason Merrill  <jason@redhat.com>
4271
4272         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
4273
4274 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
4275
4276         PR target/19340
4277         * reg-stack.c (reg_to_stack): Update register liveness also
4278         for flag_sched2_use_traces.
4279
4280 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
4281
4282         PR target/23704
4283         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
4284         override prior explicit -mno-powerpc-gfxopt.
4285
4286 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4287
4288         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
4289         if the bitsize is zero.
4290         * doc/md.texi (Standard Pattern Names): Document it.
4291
4292         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
4293         (TARGET_PASS_BY_REFERENCE): Likewise.
4294
4295 2005-11-07  Ian Lance Taylor  <ian@airs.com>
4296
4297         PR rtl-optimization/24683
4298         * config/i386/i386.c (legitimize_pic_address): If constant operand
4299         to PLUS is too large, put it in a register.
4300
4301 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
4302
4303         * configure.ac: Enable checking assembler dwarf2 support for bfin
4304         target.
4305         * configure: Regenerate.
4306
4307 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4308
4309         PR target/24230
4310
4311         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
4312         gen_easy_vector_constant_add_self): Delete.
4313         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
4314         New.
4315         (output_vec_const_move): Use gen_easy_altivec_constant.
4316         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
4317         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
4318         (easy_vector_constant_add_self): Rewritten.
4319         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
4320         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
4321         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
4322         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
4323         Macroize and adjust for the other changes.
4324
4325 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4326
4327         PR c/24599
4328
4329         * c-typeck.c (build_c_cast): Try using a shared constant, and see
4330         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
4331
4332 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4333
4334         PR rtl-optimization/23567
4335         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
4336         (noce_process_if_block): Don't do any optimizations except
4337         if (cond) x = x; if !set_b and write into orig_x may trap
4338         or fault.  Remove the MEM_READONLY_P check.
4339
4340 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
4341
4342         PR 24670
4343         * tree-vrp.c (fix_equivalence_set): New.
4344         (extract_range_from_assert): Call it.
4345
4346 2005-11-05  Ian Lance Taylor  <ian@airs.com>
4347
4348         PR target/22432
4349         * combine.c (apply_distributive_law): Don't distribute across a
4350         vector mode subreg.
4351
4352 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
4353
4354         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
4355         config/ms1/ms1.h, config/rs6000/predicates.md,
4356         config/s390/s390.c, params.def, postreload-gcse.c,
4357         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
4358         tree-vrp.c, tree.c: Fix comment typos.
4359         * doc/invoke.texi: Fix typos.
4360
4361 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
4362
4363         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
4364         for testing whether the data_dependence_relation contains distance
4365         vectors.  Iterate over all distance vectors of the ddr.
4366         * lambda.h: Define a vec of lambda_vector pointers.
4367         * tree-data-ref.c (dump_data_dependence_relation,
4368         dump_data_dependence_direction): Iterate over all distance and
4369         direction vectors of the ddr.
4370         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
4371         DDR_DIST_VECTS.
4372         (build_classic_dist_vector, build_classic_dir_vector): Push a set
4373         of distance/direction vectors instead of a single one.
4374         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
4375         lambda_vectors with a vec of lambda_vectors.
4376         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
4377         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
4378         DDR_NUM_DIST_VECTS): New.
4379         * tree-loop-linear.c (gather_interchange_stats): Test for the
4380         existence of distance vectors only after having checked that there
4381         is a dependence.  Iterate over all distance vectors of the ddr.
4382         (linear_transform_loops): Use dump_data_dependence_relation.
4383         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
4384         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
4385         distance vectors of the ddr.
4386
4387 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4388
4389         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
4390         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
4391         IS_INTHANDLER; all callers changed.
4392         (n_regs_saved_by_prologue): Take interrupt handler attributes into
4393         account.
4394         (do_link, do_unlink): New argument ALL; all callers changed.
4395         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
4396         If function isn't leaf, save and restore all registers.
4397         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
4398         exception handler.
4399
4400 2005-11-05  Jan Hubicka  <jh@suse.cz>
4401
4402         PR rtl-optimization/23490
4403         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
4404         max-flow-memory-location): Document.
4405         * flow.c: Include params.h
4406         (MAX_MEM_SET_LIST_LEN): Kill.
4407         (add_to_mem_set_list): Use new param.
4408         * cse.c (cse_basic_block): Replace 1000 by new param.
4409         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
4410         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
4411         * predict.c (predict_loops): Use new param.
4412         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
4413
4414         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
4415         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
4416         Do not hold memory returned by cgraph_node_name across other call.
4417
4418 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
4419
4420         PR target/23424
4421         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
4422         Disable.
4423
4424 2005-11-04  Jeff Law  <law@redhat.com>
4425
4426         PR/21883
4427         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
4428         * tree-ssa-dom.c: Include params.h.
4429         (thread_across_edge): If there are too many statements in the
4430         target block, then do not thread through it.
4431         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
4432         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
4433
4434 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
4435
4436         PR 24627
4437         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
4438         TODO_update_ssa instead of TODO_update_ssa_no_phi.
4439
4440 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
4441
4442         PR/18595
4443         * tree-scalar-evolution.c (instantiate_parameters_1,
4444         instantiate_parameters, resolve_mixers): Compute the size of an
4445         expression to be instantiated and give up the instantiation if the
4446         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
4447
4448 2005-11-04  Richard Guenther  <rguenther@suse.de>
4449
4450         * tree-flow.h (ref_contains_indirect_ref): Rename to
4451         array_ref_contains_indirect_ref.
4452         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
4453         (array_ref_contains_indirect_ref): Make comment match the code
4454         and vice-versa.
4455         (ref_contains_array_ref): Likewise.
4456         * tree-ssa-structalias.c (find_func_aliases): Remove call to
4457         ref_contains_indirect_ref.
4458         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4459         Rename calls to ref_contains_indirect_ref.
4460
4461 2005-11-04 Paul Brook  <paul@codesourcery.com>
4462
4463         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
4464         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
4465         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
4466         * config/arm/arm.md: Use match_operand in peephole input templates
4467         and match_dup in peephole output templates.
4468
4469 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4470
4471         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
4472         __aeabi_uidiv.
4473
4474 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
4475             Daniel Jacobowitz  <dan@codesourcery.com>
4476
4477         * longlong.h (add_ssaaaa): Clobber condition code register
4478         in ARM version.
4479         (sub_ddmmss): Likewise.
4480         (umul_ppmm): Likewise.
4481
4482 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4483             Paul Brook  <paul@codesourcery.com>
4484             Phil Blundell  <pb@reciva.com>
4485
4486         * configure.ac: Add test for ARM TLS support.
4487         * configure: Regenerated.
4488         * config/arm/arm-protos.h (legitimize_tls_address)
4489         (arm_tls_referenced_p, tls_mentioned_p)
4490         (arm_output_addr_const_extra): New prototypes.
4491         (thumb_legitimize_pic_address): Delete.
4492         * config/arm/arm.c: Include "gt-arm.h".
4493         (enum tls_reloc): New.
4494         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
4495         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
4496         (arm_call_tls_get_addr, legitimize_tls_address)
4497         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
4498         (arm_init_tls_builtins, arm_emit_tls_decoration)
4499         (arm_output_addr_const_extra): New functions.
4500         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
4501         (TARGET_HAVE_TLS): Define.
4502         (target_thread_pointer): New.
4503         (arm_override_options): Handle -mtp=.
4504         (legitimize_pic_address): Ignore UNSPECs.
4505         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
4506         relative symbols.
4507         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
4508         (tls_get_addr_libfunc): New variable.
4509         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
4510         (arm_init_builtins): Call arm_init_tls_builtins.
4511         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
4512         (arm_encode_section_info): Call default_encode_section_info.
4513         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
4514         (enum arm_tp_type): New.
4515         (target_thread_pointer): Add declaration.
4516         (LEGITIMATE_CONSTANT_P): Handle TLS.
4517         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
4518         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
4519         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
4520         * config/arm/arm.md: Add UNSPEC_TLS.
4521         (movsi): Handle TLS.
4522         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
4523         non-PIC.
4524         (tls_load_dot_plus_eight): New insn and a peephole to create it.
4525         (load_tp_hard, load_tp_soft): New insns.
4526         * arm.opt: Add -mtp=.
4527         * doc/invoke.texi (ARM Options): Document -mtp.
4528
4529 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4530
4531         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
4532         * config/arm/libunwind.S: Include "lib1funcs.asm".
4533         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
4534         (LIB2ADDEH): Add libunwind.S.
4535         (LIB2ADDEHDEP): Add lib1funcs.asm.
4536         * mklibgcc.in: Handle asm files in libgcc_eh.a.
4537
4538 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4539
4540         PR fortran/18452
4541         * gcc/c.opt: Add a -lang-fortran option.
4542         * gcc/c-opts.c: Add a lang_fortran flag.
4543         (c_common_init_options): Handling the -lang-fortran option.
4544         (c_common_handle_option): Add a case for Fortran options in
4545         preprocessing. Remove cases for -ffixed-form and
4546         -ffixed-line-length. Add a case for -lang-fortran.
4547
4548 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
4549
4550         * config/rs6000/rs6000.c: Include params.h
4551         (optimization_options): Set max-grow-copy-bb-insns default to 16.
4552         (bdesc_2arg): Delete vpkuhss and vpkuwss.
4553         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
4554         (UNSPEC_VPKUWSS): Delete.
4555         (altivec_vpkuhss): Delete.
4556         (altivec_vpkuwss): Delete.
4557         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
4558         final condition.
4559         (neg_eq0<mode>): Remove final condition.
4560         (neg_eq<mode>): Remove condition and split-condition.
4561
4562 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
4563
4564         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
4565         Use associated print macros.
4566
4567 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4568
4569         PR c++/17964
4570         * diagnostic.c (diagnostic_set_info_translated): New function.
4571         (diagnostic_set_info): Use it.  Add comment.
4572         * diagnostic.h (diagnostic_set_info_translated): Declare.
4573
4574 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4575
4576         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
4577         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
4578         reference only if 'public' is true.
4579         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
4580         emit the .hidden directive only if the indirect reference is public.
4581         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
4582         Pass it to dw2_force_const_mem.
4583         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
4584         * dwarf2out.c (output_cfi): Adjust calls to above function.
4585         (output_call_frame_info): Likewise.
4586         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
4587         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
4588
4589 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
4590
4591         PR tree-optimization/24483
4592         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
4593         field to elts if possible.
4594
4595 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4596
4597         PR middle-end/23155
4598         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
4599         CONSTRUCTOR.
4600
4601 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
4602
4603         Fix PR tree-optimization/24351
4604
4605         * tree-ssa-structalias.c (struct variable_info): Add
4606         collapsed_into.
4607         (get_varinfo_fc): New function to follow collapsing.
4608         (new_var_info): Set collapsed_to to NULL.
4609         (dump_constraint): Follow collapsing.
4610         (build_constraint_graph): Handle collapsing.
4611         (do_simple_structure_copy): Return false if something bad
4612         happened.
4613         (collapse_rest_of_var): New function.
4614         (do_structure_copy): Collapse if do_simple_structure_copy returns
4615         false.
4616
4617 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4618
4619         PR middle-end/24589
4620         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
4621         expressions to a statement list instead of gimplifying them.
4622
4623 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4624
4625         PR rtl-optimization/23585
4626         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
4627         that can't trap plus a constant integer, if the mode has zero size.
4628
4629 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4630
4631         PR target/24620
4632         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
4633         as operand 2.
4634         ("*insv<mode>_reg_extimm"): Likewise.
4635
4636 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4637
4638         PR c/24329
4639         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
4640         c_common_type_for_mode returns an unnamed type.
4641
4642 2005-11-02  Richard Henderson  <rth@redhat.com>
4643
4644         PR target/9350
4645         PR target/24374
4646         * dwarf2out.c (dwarf2out_reg_save_reg): New.
4647         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
4648         * function.c (assign_parms): Use calls.internal_arg_pointer.
4649         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
4650         code.
4651         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
4652         (TARGET_CALLS): Add it.
4653         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
4654         * targhooks.c (default_internal_arg_pointer): New.
4655         * targhooks.h (default_internal_arg_pointer): Declare.
4656         * tree.h (dwarf2out_reg_save_reg): Declare.
4657         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
4658         * config/i386/i386.c (dbx_register_map): Add return column.
4659         (dbx64_register_map, svr4_dbx_register_map): Likewise.
4660         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
4661         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
4662         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
4663         (ix86_save_reg): Save force_align_arg_pointer.
4664         (ix86_emit_save_regs): Make regno unsigned.
4665         (ix86_emit_save_regs_using_mov): Likewise.
4666         (ix86_expand_prologue): Handle force_align_arg_pointer.
4667         (ix86_expand_epilogue): Likewise.
4668         * config/i386/i386.h: (dbx_register_map): Update.
4669         (dbx64_register_map, svr4_dbx_register_map): Update.
4670         (struct machine_function): Add force_align_arg_pointer.
4671         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
4672         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
4673         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
4674
4675 2005-11-02  Jan Hubicka  <jh@suse.cz>
4676
4677         PR target/23303
4678         * i386.md: Add peep2 for simplyfing array accesses.
4679
4680 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
4681
4682         PR target/24615
4683         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
4684         * config/s390/s390.c (s390_decompose_shift_count): New function.
4685         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
4686         (print_shift_count_operand): Use s390_decompose_shift_count.
4687         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
4688         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
4689
4690 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
4691
4692         PR target/24600
4693         * loop.c (loop_givs_rescan): Use force_operand to expand
4694         complex GIVs.
4695
4696 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
4697
4698         PR 22429
4699         * fold-const.c (build_range_check): Use unsigned when signed
4700         overflow is undefined also.  If etype is subtype, make sure that
4701         the subtraction is in the supertype.
4702
4703 2005-11-02  Richard Henderson  <rth@redhat.com>
4704
4705         PR target/24178
4706         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
4707         by MEM_ALIGN.
4708
4709 2005-11-01  Richard Henderson  <rth@redhat.com>
4710
4711         PR 21518
4712         * loop.c (scan_loop): Do not propagate computations to a hard
4713         register destination with SMALL_REGISTER_CLASSES.
4714
4715 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
4716
4717         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
4718         costs for MULT inside PLUS or MINUS.
4719
4720 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
4721
4722         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
4723         (TRAMPOLINE_SIZE): Round up to 60.
4724         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
4725
4726 2005-10-31  James E. Wilson  <wilson@specifix.com>
4727
4728         PR debug/24444
4729         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
4730         ifdef.  Put ifdefs around call in gen_subprogram_die.
4731         (compute_frame_pointer_to_cfa_displacement): Likewise.
4732         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
4733         not defined.
4734
4735         PR rtl-optimization/17356
4736         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
4737         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
4738
4739 2005-10-31  Jan Hubicka  <jh@suse.cz>
4740
4741         PR middle-end/24093
4742         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
4743
4744         PR target/20928
4745         * i386.c (legitimize_pic_address): Deal with large immediates.
4746
4747         PR profile/20815
4748         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
4749         from symbol names while computing checkup.
4750
4751         PR profile/24487
4752         * predict.c (predict_loops): Do not estimate more than
4753         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
4754         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
4755
4756 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
4757
4758         PR tree-optimization/19097
4759         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
4760
4761 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
4762
4763         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
4764
4765 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
4766
4767         PR middle-end/23492
4768         * tree-inline.c (setup_one_parameter): If the init_stmt
4769         is NULL, don't insert the statement.
4770
4771 2005-10-30  Jan Hubicka  <jh@suse.cz>
4772
4773         PR tree-optimization/24172
4774         * tree-inline.c (copy_body_r): Unshare the substituted value first.
4775
4776 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
4777
4778         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
4779         constants for hosts with long != 32 bits.
4780
4781 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
4782
4783         PR middle-end/24093
4784         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
4785
4786 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
4787
4788         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
4789         (TARGET_MS1_16_002): New.
4790         (TARGET_MS1_16_003): New.
4791
4792         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
4793         ("*decrement_and_branch_until_zero_no_clobber"): New.
4794         Add corresponding splitter for decrement_and_branch_until_zero
4795         instruction.
4796         Key all decrement_and_branch_until_zero patterns off of
4797         TARGET_MS1_16_003.
4798
4799 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
4800
4801         PR middle-end/24362
4802         * tree-complex.c (extract_component): Treat RESULT_DECL
4803         like the rest of the decls.
4804
4805 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
4806
4807         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
4808         indirect call to _mcount if the function needs a static chain.
4809
4810 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4811             Caroline Tice  <ctice@apple.com>
4812
4813         PR rtl-optimization/24460
4814         * dwarf2out.c (have_switched_text_sections): New boolean variable.
4815         (dwarf2out_switch_text_section): Set it to true instead of
4816         incrementing separate_line_info_table_in_use.
4817         (output_loc_list): Additionally test have_switched_text_sections.
4818         (output_ranges): Likewise.
4819         (dwarf2out_finish): Likewise.
4820         * varasm.c (assemble_start_function): Do not call
4821         insert_section_boundary_note.
4822         (assemble_end_function): If flag_reorder_blocks_and_partition,
4823         switch to the function's section before emitting the .size directive.
4824         * bb-reorder.c (insert_section_boundary_note): Staticify.
4825         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
4826         * output.h (insert_section_boundary_note): Delete.
4827
4828 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
4829
4830         PR c/23103
4831         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
4832         instead of pointer equality when comparing types.
4833
4834 2005-10-24  James E. Wilson  <wilson@specifix.com>
4835
4836         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
4837         add_dependence_list_and_free calls.
4838
4839 2005-10-24  Steven Bosscher  <stevenb@suse.de>
4840
4841         * contrib.texi: Add the names of the LLNL folks who donated
4842         Cray pointer support for gfortran.
4843
4844 2005-10-24  Steven Bosscher  <stevenb@suse.de>
4845
4846         PR tree-optimization/24225
4847         * profile.c (branch_prob): Look from end to start through a
4848         basic block when looking for a locus.
4849
4850 2005-10-24  Richard Henderson  <rth@redhat.com>
4851
4852         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
4853         parallel.
4854         (hppa_expand_prologue): Likewise.
4855
4856 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4857
4858         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
4859         (NO_DEFERRED_PROFILE_COUNTERS): Define.
4860         * pa.h (NO_PROFILE_COUNTERS): Define.
4861         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
4862         (funcdef_nos): New vector to hold label numbers of deferred profile
4863         counters.
4864         (output_deferred_profile_counters): New function.
4865         (hppa_profile_hook): Push label number onto funcdef_nos.
4866         (pa_hpux_file_end): Call output_deferred_profile_counters if
4867         NO_DEFERRED_PROFILE_COUNTERS is false.
4868
4869         * pa-protos.h (get_deferred_plabel): New prototype.
4870         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
4871         Make global.
4872         (output_call): Adjust calls.
4873
4874 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
4875
4876         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
4877         peculiarity of GOT/TOC section usage.
4878
4879 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
4880
4881         PR objc/24435
4882          * c-common.c (constant_string_class_name): Add documentation.
4883
4884 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
4885
4886         PR target/23832
4887         * recog.c (peephole2_optimize): Increment peep2_current_count
4888         only when the slot is empty.
4889
4890 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4891
4892         PR ada/23957
4893         * except.c (output_function_exception_table): Call
4894         assemble_external_libcall if we need a personality function.
4895
4896 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4897
4898         PR rtl-optimization/24460
4899         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
4900         set the basic block for barriers.
4901
4902 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
4903
4904         * var-tracking.c (vt_initialize): Initialize post.
4905
4906 2005-10-21  Devang Patel  <dpatel@apple.com>
4907
4908         PR/24220
4909         * c-common.c (vector_types_convertible_p): Check vector element type.
4910
4911 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
4912
4913         * config/sh/sh.c (prepare_move_operands): Handle the address
4914         constant which is a tls symbolic address plus a constant.
4915
4916 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
4917
4918         PR driver/24473
4919         * gcc.c (main): Use the correct counter for erroring out
4920         about mulitple files.
4921
4922 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
4923
4924         PR target/24465
4925         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
4926         use r2 for 64-bit tls .got access.
4927
4928 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
4929
4930         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
4931         TRUTH_OR_EXPR.
4932
4933 2005-10-20  Steven Bosscher  <stevenb@suse.de>
4934
4935         PR tree-optimization/24307
4936         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
4937
4938 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
4939
4940         PR middle-end/24295
4941         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
4942         alias targets.
4943         * varasm.c (find_decl_and_mark_needed): After cgraph global info
4944         is ready, stop marking functions, but still mark variables.
4945
4946 2005-10-20  Richard Guenther  <rguenther@suse.de>
4947
4948         PR c++/24439
4949         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
4950         void type operands.
4951
4952 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
4953
4954         PR rtl-optimization/23585
4955         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
4956         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
4957         (may_trap_p_1): New predicate extracted from...
4958         (may_trap_p): ... here.  Invoke may_trap_p_1.
4959         (may_trap_or_fault_p): New predicate.
4960         * rtl.h (may_trap_or_fault_p): Declare it.
4961         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
4962         instead of may_trap_p.
4963         (steal_delay_list_from_fallthrough): Likewise.
4964         (fill_simple_delay_slots): Likewise.
4965         (fill_slots_from_thread): Likewise.
4966         * function.c (pad_to_arg_alignment): Rework comment about
4967         SPARC_STACK_BOUNDARY_HACK.
4968         * config/sparc/sparc.h: Likewise.
4969
4970 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
4971
4972         * config/s390/s390.c (s390_expand_insv): New.
4973         * config/s390/s390-protos.h (s390_expand_insv): Declare.
4974         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
4975         ("icm_hi"): Remove mode attribute.
4976         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
4977         Adjust all uses.
4978         ("*extracthi", "*extractqi"): Remove.
4979         (extv<mode>", "*extzv<mode>"): New.
4980         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
4981         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
4982
4983 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4984
4985         * cfgexpand.c (discover_nonconstant_array_refs_r,
4986         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
4987         (tree_expand_cfg): Call discover_nonconstant_array_refs.
4988         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
4989         discover_nonconstant_array_refs.
4990
4991 2005-10-19  Steven Bosscher  <stevenb@suse.de>
4992
4993         PR c/23228
4994         * c-decl.c (pop_scope): Don't warn about an unused variable
4995         if it is marked with TREE_NO_WARNING.
4996         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
4997         somenow mismatch and olddecl is to be replaced.
4998
4999 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5000
5001         PR middle-end/23199
5002         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
5003         whether registers live on the edge can be saved/restored.
5004
5005 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5006
5007         * config/sh/sh.c (fixup_mova): Skip notes.
5008
5009 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5010
5011         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
5012         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
5013         (s390_can_eliminate): Handle BASE_REGNUM elimination.
5014         (s390_initial_elimination_offset): Likewise.
5015         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
5016         register on TARGET_ZARCH targets.
5017         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
5018         (INITIAL_FRAME_POINTER_OFFSET): Remove.
5019         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
5020         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
5021
5022 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5023
5024         * config/s390/s390.md: Comment describing output modifiers updated.
5025         * config/s390/s390.c (print_operand): Likewise.
5026
5027 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5028
5029         * config/s390/s390.c (override_options): Added check for -mstack-size
5030         64k limitation.
5031         * doc/invoke.texi: Mention that limit in the documenation.
5032
5033 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
5034
5035         PR #19672
5036         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
5037
5038 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
5039
5040         Fix PR tree-optimization/24231
5041
5042         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
5043         (compute_avail): Ditto.
5044
5045 2005-10-18  Richard Henderson  <rth@redhat.com>
5046
5047         PR target/24428
5048         * config/i386/i386.c (legitimate_constant_p): Check
5049         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
5050         if LABEL_REF.
5051         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
5052         (legitimate_pic_address_disp_p): Reorg CONST checking to make
5053         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
5054         directly.
5055         (print_operand_address): Likewise.
5056         * config/i386/predicates.md (x86_64_immediate_operand): Test
5057         SYMBOL_REF_TLS_MODEL properly inside CONST.
5058         (x86_64_zext_immediate_operand): Likewise.
5059         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
5060         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
5061         * config/i386/i386-protos.h: Remove predicates.md entries.
5062
5063 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
5064
5065         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
5066         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
5067
5068 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5069             Ian Lance Taylor <ian@airs.com>
5070
5071         PR middle-end/23522
5072         * fold-const.c (fold_widened_comparison): Do not allow range based
5073         constant folding when right operand cannot be unwidened.
5074
5075 2005-10-17  Richard Henderson  <rth@redhat.com>
5076
5077         * builtins.c (expand_builtin_synchronize): Build a new-style asm
5078         with a memory clobber.
5079
5080 2005-10-17  James E Wilson  <wilson@specifix.com>
5081
5082         PR rtl-optimization/17356
5083         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
5084         checking for EDGE_EH.
5085
5086 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
5087
5088         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
5089         the slot on an even boundary for any type with 16-byte alignment.
5090
5091 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
5092
5093         PR target/23424
5094         * md.texi (Modifiers) <%>: Clarify that % doesn't work
5095         after register allocation.
5096
5097 2005-10-17  DJ Delorie  <dj@redhat.com>
5098
5099         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
5100         as frame related.
5101
5102 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
5103
5104         PR c++/22551
5105         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
5106         overflow flags.
5107
5108 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5109
5110         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
5111         to 2 if it's already non-zero.
5112         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
5113         is set and warn about it if flag_schedule_insns is 1.
5114
5115 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
5116
5117         * config/crx/crx.md: Compare-and-branch instructions need to
5118         invalidate CC.
5119
5120 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
5121
5122         PR target/24315
5123         * config/i386/i386.md (*pushdi2_rex64 splitter)
5124         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
5125         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
5126         flow2 pass only when (optimize > 0 && flag_peephole2).
5127
5128 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
5129
5130         PR driver/22544
5131         * gcc.c (have_c): New static variable.
5132         (have_o): Likewise.
5133         (process_command): Remove declation of have_c.
5134         Set have_o to 1 when handling -o.
5135         (main): Add a fatel error if there are multiple
5136         files specified and -o and -c/-S is passed witout
5137         -combine or multiple languages.
5138
5139 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
5140
5141         Fix PR tree-optimization/22444
5142         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
5143         Assert that we don't hit something with subvars.
5144         (setup_pointers_and_addressables): Don't add things with subvars,
5145         because we'll already process the subvars for aliasing purposes.
5146
5147 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
5148
5149         PR target/23424
5150         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
5151         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
5152         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
5153         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
5154         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
5155         swapped, alternatives for the R constraint.
5156
5157         PR middle-end/24341
5158         * builtins.c (get_builtin_sync_mode): Make unlimited
5159         mode_for_size request.
5160
5161 2005-10-15  Richard Henderson  <rth@redhat.com>
5162
5163         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
5164         (gimplify_expr): ... here.
5165         (gimplify_compound_lval): Use it in initial scan loop.  Allow
5166         fb_lvalue in base expression.
5167
5168 2005-10-15  Richard Henderson  <rth@redhat.com>
5169
5170         PR 23714
5171         * builtins.c (expand_builtin_trap): Export.
5172         * expr.h (expand_builtin_trap): Declare.
5173         * expr.c (expand_assignment): Emit a trap for integral offsets
5174         from registers that weren't reduced to bitpos.
5175
5176         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
5177         (mark_array_ref_addressable): Remove.
5178         * tree-flow.h (mark_array_ref_addressable): Remove.
5179         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
5180
5181 2005-10-15  James E Wilson  <wilson@specifix.com>
5182
5183         PR target/24232
5184         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
5185         (add_dependence_list_and_free): Likewise.
5186         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
5187         call.
5188
5189 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
5190
5191         PR 23141
5192         PR 23142
5193         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
5194         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
5195         anti-range.
5196         (vrp_visit_phi_node): Only prevent infinite iterations when
5197         the previous result and the new result are both VR_RANGEs.
5198
5199 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
5200
5201         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
5202         function comment.
5203
5204 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5205
5206         PR c/23439
5207         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
5208         to initialize loc.
5209
5210 2005-10-14  Per Bothner  <per@bothner.com>
5211
5212         PR preprocessor/21250
5213         * c-ppoutput.c (print_line): Print internal line 0 as 1.
5214
5215 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
5216
5217         PR c++/22551
5218         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
5219         overflow flags.  Refactor some conditionals.
5220
5221 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
5222
5223         PR tree-opt/21304
5224         * tree-dfa.c (add_referenced_var): Only look at decls which
5225         have TREE_CONSTANT or TREE_READONLY set instead of if
5226         !TREE_PUBLIC or !TREE_CONSTANT.
5227
5228 2005-10-13  James E Wilson  <wilson@specifix.com>
5229
5230         * doc/invoke.texi: For -x, add f95-cpp-input.
5231         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
5232
5233 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
5234
5235         PR tree-optimization/24262
5236         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
5237         in loop all the time.
5238
5239 2005-10-12  Richard Henderson  <rth@redhat.com>
5240
5241         PR c/24255
5242         * tree.h (DECL_TRANSPARENT_UNION): Remove.
5243         * function.c (assign_parm_find_data_types): Don't support it.
5244         * print-tree.c (print_node): Likewise.
5245         * c-common.c (handle_transparent_union_attribute): Likewise.
5246         Use build_duplicate_type.
5247         * tree-inline.c (remap_type_1): Split out of remap_type;
5248         properly remap aggregate fields.
5249         (build_duplicate_type): New.
5250         * doc/extend.texi (Variable Attributes): Remove documentation
5251         for transparent_union.
5252
5253 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5254
5255         PR target/24284
5256         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
5257         (gen_stack_pointer_dec): Likewise.
5258
5259 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
5260
5261         PR middle-end/21275
5262         PR middle-end/21766
5263         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
5264         target hook.
5265         (struct cxx): Add adjust_class_at_definition target hook.
5266         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
5267         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
5268         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
5269         hook_void_tree. Add to TARGET_CXX.
5270         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
5271         dllimport_flag.
5272         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
5273         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
5274         instead of attribute. Check for dllexport override.  Warn if
5275         inconsistent dll linkage. Don't lose old dllimport if decl has
5276         had address referenced.   Tweak lookup of dllimport atribute.
5277         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
5278         for target specific rules.  Don't add dllimport attribute if
5279         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
5280         dllimport attribute.
5281         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
5282         * varasm.c (initializer_constant_valid_p): Replace
5283         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
5284
5285         PR target/21801
5286         PR target/23589
5287         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
5288         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
5289         (i[34567]86-*-mingw32*): Likewise.
5290
5291         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
5292         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
5293
5294         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
5295         C++-specific code. Change return value to bool.
5296         (i386_pe_dllimport_p): Likewise.
5297         (associated_type): Simplify and make language-independent
5298         (i386_pe_encode_section_info): Replace override of ambiguous
5299         dllimport symbol refs with a gcc_assert.
5300         (i386_pe_valid_dllimport_attribute_p): Define.
5301         * config/i386/winnt-cxx.c: New file. Define C++ versions of
5302         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5303         i386_pe_adjust_class_at_definition.
5304         * config/i386/winnt-stubs.c: New file. Define stub versions of
5305         lang-specific functions.
5306         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
5307         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5308         i386_pe_adjust_class_at_definition.
5309         (i386_pe_valid_dllimport_attribute_p): Declare.
5310         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
5311         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
5312         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
5313
5314         PR target/19704
5315         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
5316         dllimport attribute with test of DECL_DLLIMPORT_P.
5317
5318 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
5319
5320         * combine.c (make_extraction): Correct offset computation.
5321
5322 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
5323
5324         * config/cris/t-linux (LIMITS_H_TEST): Define.
5325
5326 2005-10-12  Richard Henderson  <rth@redhat.com>
5327
5328         PR rtl-opt/23324
5329         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
5330
5331 2005-10-12  Richard Guenther  <rguenther@suse.de>
5332
5333         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
5334
5335 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
5336
5337         PR c++/19964
5338         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
5339         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
5340         type.
5341
5342 2005-10-12  Richard Guenther  <rguenther@suse.de>
5343
5344         PR c++/23799
5345         * varasm.c (output_constant): Correct typo from previous
5346         patch by DJ.
5347
5348 2005-10-11  Ian Lance Taylor  <ian@airs.com>
5349
5350         PR rtl-optimization/13931
5351         * combine.c: Revert patch of 2003-05-14, and:
5352         (try_combine): Only set elim_i1 and elim_i2 if the destination is
5353         completely killed in the appropriate insn.
5354         (distribute_notes): Don't skip multiple hard register test for
5355         elim_i1 and elim_i2.
5356
5357 2005-10-11  Richard Henderson  <rth@redhat.com>
5358
5359         PR c/24255
5360         * c-typeck.c (convert_for_assignment): Use build_constructor_single
5361         to initialize a transparent union instead of a nop_expr.
5362
5363 2005-10-11  Richard Henderson  <rth@redhat.com>
5364
5365         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
5366         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
5367         (tree_ssa_dce_loop): Call scev_reset.
5368
5369         PR tree-opt/24300
5370         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
5371         * tree-ssa-dce.c: Include cfgloop.h.
5372         (tree_ssa_dce_loop, pass_dce_loop): New.
5373         * tree-pass.h (pass_dce_loop): Declare it.
5374         * passes.c (init_optimization_passes): Use it.
5375
5376 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5377
5378         PR middle-end/24263
5379         * convert.c (convert_to_real): Revert 2005-10-05 patch.
5380         Only apply the optimization for rounding builtins if the inner
5381         cast is also an extension.
5382
5383 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
5384
5385         PR tree-opt/23946
5386         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
5387         mark_new_vars_to_rename instead of update_stmt.
5388
5389 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5390
5391         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
5392
5393 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
5394
5395         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
5396         for setting MMX register to 0 rather than mmx.
5397
5398 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
5399
5400         PR target/12098
5401         * configure.ac: Move gas check from mips specific case to common case.
5402         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
5403         * configure: Regenerate
5404         * doc/install.texi: Update.
5405
5406 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5407
5408         PR target/24284
5409         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
5410
5411 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
5412
5413         * gcc.c (do_spec_1): Accept numeric characters in file name
5414         suffixes.
5415
5416 2005-10-10  Nick Clifton  <nickc@redhat.com>
5417
5418         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
5419         describing the deleted arm_gen_rotated_half_load function.
5420
5421 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5422
5423         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
5424         __fpscr_values.
5425
5426 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
5427
5428         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
5429         gnu_ld assignments.
5430         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
5431         (EXTRA_MULTILIB_PARTS): Define.
5432         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5433         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5434         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
5435         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5436         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5437         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
5438
5439 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
5440
5441         PR tree-optimization/24226
5442         * tree-cfg.c (remove_bb): Clean up unreachable loops.
5443         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
5444         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
5445         Export.
5446
5447 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
5448
5449         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
5450
5451 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
5452
5453         PR target/24136
5454         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
5455         Rewrite for no need for the early clobber.
5456
5457 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5458
5459         Merge from csl-arm-branch:
5460         2005-09-07  Paul Brook  <paul@codesourcery.com>
5461         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
5462         space to string.
5463
5464         2005-04-30  Paul Brook  <paul@codesourcery.com>
5465         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
5466         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
5467
5468         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
5469         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
5470         (arm_override_options): Use TARGET_AAPCS_BASED.
5471         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
5472         (PTRDIFF_TYPE): Use int for AAPCS.
5473         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
5474         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
5475         (DEFAULT_SHORT_ENUMS): Delete.
5476         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
5477
5478         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
5479         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
5480         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
5481         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
5482
5483         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
5484         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
5485
5486         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
5487         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
5488
5489         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
5490         * config.gcc (arm*-*-linux-gnueabi): Add it.
5491         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
5492         redefining it.
5493         (TARGET_OS_CPP_BUILTINS): Likeiwse.
5494         * config/arm/linux-eabi.h: New file.
5495         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
5496         (LINUX_TARET_LINK_SPEC): Likewise.
5497         (LINK_SPEC): Use it.
5498         * config/arm/t-linux-eabi: New file.
5499
5500 2005-10-08  Steven Bosscher  <stevenb@suse.de>
5501
5502         PR other/22202
5503         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
5504         spaces.
5505         (PARAM_SMS_DFA_HISTORY): Likewise.
5506
5507 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5508
5509         PR middle-end/23150
5510         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
5511         (load_register_parameters): Call it.
5512         (check_sibcall_argument_overlap_1): Likewise.
5513         (store_one_arg): Likewise.
5514
5515 2005-10-07  James E. Wilson  <wilson@specifix.com>
5516
5517         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
5518         DImode not VECINT24 for operand 2.
5519
5520         PR target/23644
5521         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
5522         -mtune-arch.
5523
5524         PR target/24193
5525         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
5526         fr_spill): Use destination_operand for operand 0.
5527
5528 2005-10-07  DJ Delorie  <dj@redhat.com>
5529
5530         * varasm.c (output_constant): Limit error to expanding
5531         conversions.
5532
5533 2005-10-07  Richard Guenther  <rguenther@suse.de>
5534
5535         PR middle-end/24227
5536         * fold-const.c (fold_binary): Fix operand types during folding
5537         of X op (A, Y).  Evaluation order of the side-effects of
5538         X and A are frontend-defined, so ensure we honour that even for
5539         tcc_comparison class operands; eased by removing duplicate code.
5540
5541 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5542
5543         * stor-layout.c (layout_type): Do not allow alignment of array
5544         elements to be greater than their size.
5545
5546 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5547
5548         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
5549         host_xmake_file.
5550         (hppa*-*-linux*): Ditto.
5551         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
5552         * config/host-hpux.c: New.
5553         * config/x-hpux: New.
5554         * config/pa/x-hpux: Remove.
5555         * config/pa/x-linux: Remove.
5556         * config/pa/pa-host.c: Remove.
5557
5558 2005-10-07  Jeff Law  <law@redhat.com>
5559
5560         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
5561         determine whether or not to try and thread outgoing edges.
5562
5563 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
5564
5565         * config/rs6000/rs6000.md (eqsi_power): New.
5566         (neg_eq0si): Add TARGET_POWER to final condition.
5567         (neg_eqsi): Same.
5568
5569 2005-10-06  Richard Henderson  <rth@redhat.com>
5570
5571         * config/rs6000/rs6000.c: Revert last change.
5572
5573 2005-10-06  Richard Henderson  <rth@redhat.com>
5574
5575         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
5576         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
5577
5578 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
5579
5580         PR middle-end/22216
5581         PR middle-end/23651
5582         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
5583         out return_label and naked_return_label.
5584
5585 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5586
5587         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
5588         change.
5589
5590 2005-10-06  Richard Henderson  <rth@redhat.com>
5591
5592         PR tree-opt/22237
5593         * tree-inline.c (declare_return_variable): Handle modify_dest not
5594         being a DECL.
5595
5596 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5597
5598         Fix PR tree-optimization/22488
5599         * tree-ssa-structalias.c (check_for_overlaps): New function.
5600         (create_variable_info_for): Use it.
5601
5602 2005-10-06  Richard Henderson  <rth@redhat.com>
5603
5604         PR debug/24070
5605         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
5606         (dwarf2out_start_source_file): Print it.
5607
5608 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
5609
5610         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
5611
5612 2005-10-06  Richard Henderson  <rth@redhat.com>
5613
5614         PR 23706
5615         * mode-switching.c (optimize_mode_switching): Clear transp bit
5616         for block with incomming abnormal edges.
5617
5618         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
5619         (fpscr_set_from_mem): Use them.
5620         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
5621         (fpscr postinc splitters): Rewrite as peephole2+split.
5622
5623 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
5624
5625         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
5626         (eq<mode>_compare): Same.
5627
5628 2005-10-06  Richard Guenther  <rguenther@suse.de>
5629
5630         PR tree-optimization/24238
5631         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
5632
5633 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
5634
5635         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
5636         here.  Use AC_PATH_PROG for environment variables instead of
5637         test -x.
5638         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
5639         objdump also.
5640         * configure: Regenerated.
5641
5642 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
5643
5644         PR target/23783
5645         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
5646         then force it into a register.
5647         (call_value): Likewise.
5648
5649 2005-10-06  Richard Henderson  <rth@redhat.com>
5650
5651         PR 24049
5652         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
5653         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
5654         under pass_vectorize.
5655
5656 2005-10-05  Devang Patel  <dpatel@apple.com>
5657
5658         PR Debug/23205
5659         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
5660         handling constants. Check NAMESPACE_DECL context for constants.
5661
5662 2005-10-05  Eric Christopher  <echristo@apple.com>
5663
5664         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
5665
5666 2005-10-05  Richard Henderson  <rth@redhat.com>
5667
5668         PR 23714
5669         * tree-cfg.c (mark_array_ref_addressable_1): New.
5670         (mark_array_ref_addressable): New.
5671         * tree-flow.h (mark_array_ref_addressable): Declare.
5672         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
5673
5674 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
5675
5676         PR middle-end/20606
5677         PR middle-end/24069
5678         * reload.c (subst_reloads): When adding a REG_LABEL to a
5679         jump instruction, also update JUMP_LABEL.
5680
5681 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
5682
5683         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
5684         * bb-reorder.c (copy_bb_p): Use it.
5685         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
5686
5687 2005-10-05  Richard Henderson  <rth@redhat.com>
5688
5689         PR target/23602
5690         * toplev.c (process_options): Warn about unsupported combinations
5691         of unwind tables and omit-frame-pointer.
5692         * config/i386/i386.c (override_options): Similarly.  Enable
5693         accumulate-outgoing-args if not explicitly disabled.
5694
5695 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
5696
5697         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
5698         Handle big endian vs. small endian.
5699         (vec_initv2sf): Handle big endian vs. small endian.
5700         (*vec_extractv2sf_1): Ditto.
5701
5702 2005-10-05  Dale Johannesen  <dalej@apple.com>
5703
5704         * convert.c (convert_to_real):  Don't convert
5705         (float)floor(double d) to floorf((float)d).
5706
5707 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
5708
5709         * config/arm/arm.md (insv): Use gen_int_mode in more places.
5710
5711 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
5712
5713         PR tree-optimization/18587
5714         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
5715         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
5716         build_vuses): Change to VEC type.
5717         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
5718         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
5719         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
5720         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
5721         (get_name_decl): New.  Return DECL_UID of base variable.
5722         (operand_build_cmp): New.  qsort comparison routine.
5723         (operand_build_sort_virtual): New.  Sort virtual build vector.
5724         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
5725         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
5726         (FINALIZE_BASE): Use get_name_decl.
5727         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
5728         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
5729         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
5730         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
5731         direct VEC_* manipulations.
5732         (build_ssa_operands): Call operand_build_sort_virtual.
5733         (copy_virtual_operand, create_ssa_artficial_load_stmt,
5734         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
5735         with direct VEC_* manipulations.
5736         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
5737         with direct VEC manipulations.
5738
5739 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
5740
5741         PR tree-optimization/21419
5742         PR tree-optimization/24146
5743         PR tree-optimization/24151
5744
5745         * c-typeck.c (readonly_error): Handle USE being lv_asm.
5746         (build_asm_expr): Call it if outputs are read-only.
5747         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
5748
5749 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
5750             Paolo Bonzini  <bonzini@gnu.org>
5751
5752         PR target/23809
5753
5754         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
5755         enable the instructions and not just the built-ins.
5756         * doc/invoke.texi (x86 Options): Likewise.
5757
5758 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
5759
5760         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
5761
5762         * doc/invoke.texi (Option Summary): Correct spelling
5763         of -mmacosx-version-min.
5764
5765 2005-10-04  Devang Patel  <dpatel@apple.com>
5766
5767         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
5768         real types.
5769
5770 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
5771
5772         * tree-vect-transform.c (vect_create_epilog_for_reduction):
5773         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
5774
5775 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
5776
5777         * config/s390/s390.md ("TDSI","DP"): New mode macros.
5778         ("TE","tg"): New mode attributes.
5779         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
5780         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
5781         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
5782         dword_mode and one for GPRmode.
5783
5784 2005-10-04  Ian Lance Taylor  <ian@airs.com>
5785
5786         PR preprocessor/13726
5787         * c-ppoutput.c (cb_include): Add comments parameter, and print out
5788         any comments passed in.
5789
5790 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5791
5792         * tree.c (annotate_with_file_line): Fix typo.
5793
5794 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5795
5796         PR ada/19382
5797         * builtins.c (fold_builtin_memcmp): When constructing the pointer
5798         type used to access data in the inlined length == 1 case, use
5799         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
5800         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
5801
5802 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
5803
5804         * config/i386/i386.h (TARGET_FISTTP): Enable also for
5805         TARGET_SSE3 and only for TARGET_80387.
5806         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
5807         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
5808         Do not depend on TARGET_80387.
5809
5810 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5811
5812         * tree.c (last_annotated_node): Change type to location_t*.
5813         (annotate_with_file_line): Reflect the change of
5814         last_annotated_node type.
5815
5816 2005-10-04  Richard Guenther  <rguenther@suse.de>
5817
5818         PR c/23576
5819         * c-decl.c (grokdeclarator): Don't write to fields
5820         of error_mark_node.
5821
5822 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5823
5824         PR middle-end/23125
5825         * c-decl.c (finish_decl): Use set_user_assembler_name even for
5826         register variables.
5827         * varasm.c (make_decl_rtl): If a register variable does not
5828         have a set user assmbler name, error out.
5829         Decode the asmspec is now name+1 bypassing '*'.
5830
5831 2005-10-04  Steven Bosscher  <stevenb@suse.de>
5832
5833         PR tree-optimization/23049
5834         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
5835         of a COND_EXPR is folded before calling fold on the whole rhs of a
5836         conditional assignment.
5837         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
5838         document that a COND_EXPR may appear there.
5839
5840 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
5841
5842         PR 23445
5843         * tree-vrp.c (extract_range_from_assert): If the new numeric
5844         range created out of the assertion contradicts the existing
5845         numeric range of the ASSERT_EXPR variable, make the new range
5846         varying.
5847
5848 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5849
5850         * config/sh/sh.c (sh_register_move_cost): Add case for moving
5851         from T_REGS to FP register class.
5852
5853 2005-10-03  Richard Henderson  <rth@redhat.com>
5854
5855         PR 24135
5856         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
5857         before creating a new one.
5858
5859 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
5860
5861         * config/rs6000/t-aix43 (LDFLAGS): New.
5862         * config/rs6000/t-aix52 (LDFLAGS): New.
5863
5864 2005-10-03  Ian Lance Taylor  <ian@airs.com>
5865
5866         * gimplify.c (find_single_pointer_decl_1): New static function.
5867         (find_single_pointer_decl): New static function.
5868         (internal_get_tmp_var): For a formal variable, set restrict base
5869         information if appropriate.
5870         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
5871         return it.
5872         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
5873         (DECL_GET_RESTRICT_BASE): Define.
5874         (SET_DECL_RESTRICT_BASE): Define.
5875         (decl_restrict_base_lookup): Declare.
5876         (decl_restrict_base_insert): Declare.
5877         (struct tree_decl_with_vis): Add based_on_restrict_p field.
5878         * tree.c (restrict_base_for_decl): New static variable.
5879         (init_ttree): Initialize restrict_base_for_decl.
5880         (copy_node_stat): Copy restrict base information.
5881         (decl_restrict_base_lookup): New function.
5882         (decl_restrict_base_insert): New function.
5883         (print_restrict_base_statistics): New static function.
5884         (dump_tree_statistics): Call print_restrict_base_statistics.
5885
5886 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
5887
5888         PR 24142
5889         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
5890         case of anti-ranges.
5891
5892 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
5893
5894         PR c/18851
5895         * c-typeck.c (tagged_tu_seen): Rename to ...
5896         (tagged_tu_seen_cache): this and add val field.
5897         (comptypes): Move functional to comptypes_internal
5898         and free tagged_tu_seen.
5899         (comptypes_internal): New function and call comptypes_internal
5900         instead of comptypes. Speed up by sibcalling
5901         tagged_types_tu_compatible_p.
5902         (alloc_tagged_tu_seen): New function
5903         (free_all_tagged_tu_seen_up_to): New function.
5904         (tagged_types_tu_compatible_p): Return the val of the seen two
5905         types.
5906         Add that the two types are the same to tagged_tu_seen_base
5907         if they are and call comptypes_internal instead of comptypes.
5908         <case UNION_TYPE>: Speed up common type where the fields are
5909         in the same order.
5910         (function_types_compatible_p): Call comptypes_internal instead of
5911         comptypes.
5912         (type_lists_compatible_p): Likewise.
5913         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
5914
5915 2005-10-02  Matthias Klose  <doko@debian.org>
5916
5917         * doc/invoke.texi: Fix typo and speling error.
5918
5919 2005-10-01  Richard Henderson  <rth@redhat.com>
5920
5921         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
5922
5923 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
5924
5925         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
5926         using --start-group and --end-group.
5927
5928 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
5929
5930         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
5931         FIXME note regarding quirky semantics.
5932
5933 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
5934
5935         PR 24141
5936         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
5937         non-null range as a last resort.
5938
5939 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
5940             Diego Novillo  <dnovillo@redhat.com>
5941
5942         PR 23604
5943         * tree-vrp.c (extract_range_from_assert): For !=
5944         assertions, only build an anti-range if LIMIT is a
5945         single-valued range.
5946
5947 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
5948
5949         * arm.md (movqi): On thumb when optimizing, handle loading from
5950         memory by describing this as taking a subreg of a zero-extended load
5951         into an SImode register.
5952         (movhi): Likewise.
5953
5954 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
5955
5956         * reload1.c (merge_assigned_reloads): Do not change any
5957         RELOAD_FOR_OUTPUT_ADDRESS reloads.
5958
5959 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
5960
5961         * Makefile.in (LIPO_FOR_TARGET): Define.
5962         (STRIP_FOR_TARGET): Define.
5963
5964         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
5965         before creating new ones.  Do symlinks before creating the actual
5966         targets.
5967
5968         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
5969         to work out which multilibs are actually being built.
5970
5971 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
5972
5973         * tree-vect-transform.c, config/ms1/ms1.md,
5974         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
5975         Follow spelling conventions.
5976         * doc/invoke.texi, doc/md.texi: Fix typos.
5977
5978 2005-09-30  Andrew Macleod  <amacleod@redat.com>
5979
5980         PR tree-optimization/21430
5981         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
5982         use operands, and set stmt pointer if need be.
5983         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
5984         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
5985         present.
5986
5987 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5988
5989         PR middle-end/24053
5990         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
5991
5992 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
5993
5994         * optabs.c (expand_binop): Initialize first_pass_p.
5995
5996 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
5997
5998         PR middle-end/24109
5999         * c-decl.c (c_write_global_declarations_1): If any
6000         wrapup_global_declaration_2 call returned true, restart the loop.
6001
6002 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
6003
6004         Fix PR tree-optimization/24117
6005         * tree-ssa-structalias.c (find_func_aliases): Strip nops
6006         before considering whether to use anyoffset.
6007
6008 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6009
6010         Revert this patch:
6011
6012         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6013
6014         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6015         to order operands.
6016         (swap_commutative_operands_with_target): New.
6017
6018 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6019
6020         PR c/21419
6021         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
6022         read-only.
6023
6024 2005-09-29  Steven Bosscher  <stevenb@suse.de>
6025
6026         PR tree-optimization/23911
6027         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
6028         and IMAGPART_EXPR too.
6029
6030 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
6031
6032         PR 17886
6033         * expmed.c (expand_shift): Move logic to reverse rotation
6034         direction when  rotating by constants ...
6035         * optabs.c (expand_binop): ... here.
6036         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
6037         (ix86_rotrdi3): New pattern.
6038         (rotldi3): Handle 32-bit mode.
6039         (ix86_rotldi3): New pattern.
6040
6041 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
6042
6043         PR target/24102
6044         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
6045         check for numbers that need no bit twiddle.
6046
6047 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
6048
6049         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
6050         multilib to be built.
6051
6052         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
6053         (stage1-start): Delete old libgcc and libunwind before moving
6054         anything into the stage directory.
6055         (stage2-start): Likewise.
6056         (stage3-start): Likewise.
6057         (stage4-start): Likewise.
6058         (stageprofile-start): Likewise.
6059         (stagefeedback-start): Likewise.
6060         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
6061         header in tm_file and CPU-specific t-darwin in tmake_file.
6062         (i[34567]86-*-darwin*): Don't change tm_file.
6063         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
6064         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
6065         shared library stub for target OS version.
6066         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
6067         (SHLIB_LINK): Don't make SHLIB_SOLINK.
6068         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
6069         (libgcc_s.%.dylib): New.
6070         (LIBGCC): Define.
6071         (install-darwin-libgcc-stubs): New.
6072         (INSTALL_LIBGCC): New append.
6073         * config/i386/darwin-libgcc.10.4.ver: New.
6074         * config/i386/darwin-libgcc.10.5.ver: New.
6075         * config/i386/t-darwin: New.
6076         * config/rs6000/darwin-libgcc.10.4.ver: New.
6077         * config/rs6000/darwin-libgcc.10.5.ver: New.
6078         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
6079         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
6080
6081 2005-09-28  Paul Brook  <paul@codesourcery.com>
6082
6083         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
6084         denormals.
6085
6086 2005-09-28  Richard Guenther  <rguenther@suse.de>
6087
6088         PR tree-optimization/23853
6089         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
6090         host_integerp to verify misalignment value.
6091
6092 2005-09-28  Richard Henderson  <rth@redhat.com>
6093
6094         * builtins.c (get_builtin_sync_mode): New.
6095         (expand_builtin_sync_operation): Pass in mode argument.
6096         (expand_builtin_compare_and_swap): Likewise.
6097         (expand_builtin_lock_test_and_set): Likewise.
6098         (expand_builtin_lock_release): Likewise.
6099         (expand_builtin): Update to match.
6100
6101 2005-09-28  Nick Clifton  <nickc@redhat.com>
6102
6103         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
6104         formatting.  Add check to PLUS case to ensure that the offset is
6105         within an acceptable range.
6106
6107         * config/v850/v850.md (casesi): Disable the generation of the
6108         switch pattern as it is not being handled properly at the moment.
6109
6110         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
6111         for when the high words are identical.
6112
6113 2005-09-27  Richard Henderson  <rth@redhat.com>
6114
6115         * pretty-print.c (pp_base_format): Fix typo for %>.
6116
6117 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
6118             Devang Patel  <dpatel@apple.com>
6119
6120         PR tree-optimization/23625
6121         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
6122         LABEL_EXPR, assertion check.
6123
6124 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
6125
6126         * optabs.c (no_conflict_move_test): Check if a result of a
6127         to-be-moved insn would be clobbered by an originally
6128         preceding insn.
6129
6130 2005-09-27  Jeff Law  <law@redhat.com>
6131
6132         * passes.c (init_optimization_passes): Replace copy propagation
6133         passes immediately after DOM with phi-only copy propagation
6134         pases.  Add phi-only copy propagation pass after first DOM pass.
6135         * tree-pass.h (pass_phi_only_copy_prop): Declare.
6136         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
6137         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
6138         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
6139         to init_copy_prop.  Callers updated.
6140         (do_phi_only_copy_prop): New function.
6141         (pass_phi_only_copy_prop): New pass descriptor.
6142
6143 2005-09-27  Nick Clifton  <nickc@redhat.com>
6144
6145         * libgcc2.c (__popcount_tab): Remove redundant prototype.
6146
6147 2005-09-26  Jason Merrill  <jason@redhat.com>
6148
6149         PR c++/13764
6150         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
6151
6152         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
6153
6154 2005-09-26  James E Wilson  <wilson@specifix.com>
6155
6156         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
6157         copyright.  Add gcc copyright plus libgcc exception.
6158         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
6159         copyright.
6160         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
6161
6162 2005-09-26  Jeff Law  <law@redhat.com>
6163
6164         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
6165         about when to iterate.
6166
6167 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
6168
6169         PR target/23847
6170         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
6171         for __complex__ double in -mcpu=G5 mode.
6172
6173 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
6174
6175         PR tree-optimization/23942
6176         * Makefile.in (SCEV_H): Depends on PARAMS_H.
6177         * tree-scalar-evolution.c: Include params.h.
6178         (t_bool): New enum.
6179         (follow_ssa_edge, follow_ssa_edge_in_rhs,
6180         follow_ssa_edge_in_condition_phi_branch,
6181         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
6182         Change return type to t_bool.  Use a parameter to limit the size of
6183         trees that are walked before stopping
6184         (analyze_evolution_in_loop): Initialize the limit to 0.
6185         (follow_ssa_edge): Give up by returning t_dont_know if the limit
6186         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
6187
6188 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6189
6190         PR middle-end/23831
6191         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
6192         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
6193
6194 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
6195
6196         * combine.c (make_extraction): Check for valid use of subreg.
6197
6198 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6199
6200         PR target/24055
6201         * config/i386/i386.md ("*fistdi2_1"): New pattern.
6202         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
6203         ("fist<mode>2_with_temp"): Use only register operands.
6204
6205 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
6206
6207         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
6208         CALL_INSN_FUNCTION_USAGE.
6209
6210 2005-09-26  Richard Guenther  <rguenther@suse.de>
6211
6212         PR middle-end/15855
6213         * gcse.c: Include hashtab.h, define ldst entry hashtable.
6214         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
6215         (ldst_entry): Use the hashtable instead of list-walking.
6216         (find_rtx_in_ldst): Likewise.
6217         (free_ldst_entry): Free the hashtable.
6218         (compute_ld_motion_mems): Create the hashtable.
6219         (trim_ld_motion_mems): Remove entry from hashtable if
6220         removing it from list.
6221         (compute_store_table): Likewise^2.
6222         (store_motion): Free hashtable in case we did not see
6223         any stores.
6224
6225 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
6226
6227         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
6228         and arg1 if we are passing them to fold_build2.
6229
6230 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
6231
6232         PR 23828
6233         * config/i386/i386.c (ix86_function_regparm): Fix the test for
6234         a nested function.
6235
6236 2005-09-25  Richard Henderson  <rth@redhat.com>
6237
6238         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
6239         SYMBOL_REF_TLS_MODEL to be correct.
6240
6241 2005-09-24  Richard Henderson  <rth@redhat.com>
6242
6243         * ipa-type-escape.c (discover_unique_type): Remove dead code at
6244         end of function.  Reindent.
6245
6246 2005-09-24  Ian Lance Taylor  <ian@airs.com>
6247
6248         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
6249         NEGATE_EXPR/BIT_NOT_EXPR case.
6250
6251 2005-09-24  Richard Henderson  <rth@redhat.com>
6252
6253         * c-common.c (handle_mode_attribute): When not modifying in place,
6254         create subtypes for enumerations.
6255         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
6256         * gimplify.c (create_tmp_from_val): Likewise.
6257
6258 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
6259
6260         * config/i386/i386.md (*tls_global_dynamic_64,
6261         *tls_local_dynamic_base_64): Add missing mode to call.
6262         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
6263
6264 2005-09-24  Jan Hubicka  <jh@suse.cz>
6265
6266         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
6267         (cgraph_clone_node): Likewise.
6268         * cgraph.h (cgraph_clone_edge): Update prototype.
6269         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
6270         duplicated prototypes; add updating argument.
6271         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
6272         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
6273         updating profile.
6274         (cgraph_mark_inline_edge): Likewise.
6275         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
6276         (cgraph_flatten_node): Likewise.
6277         (cgraph_decide_recursive_inlining): Likewise.
6278         (cgraph_decide_inlining_of_small_function): Likewise.
6279         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6280
6281 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6282             Pete Steinmetz <steinmtz@us.ibm.com>
6283
6284         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
6285         (rldic.): Set type to "compare".
6286         (rldicr.): Same.
6287         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
6288         mfjmpr for MFCTR/MFLR.
6289         (movdf_hardfloat64): Same.
6290         (movdf_softfloat64): Same.  Correct order of store and move types.
6291         (movti_string): Set type to store_ux/load_ux.
6292         (load_multiple): Set type to load_ux.
6293         (store_multiple): Set type to store_ux.
6294         (movmemsi): Set type to store_ux.
6295         (output_cbranch direct_return): Set type to jmpreg.
6296         (stmw): Set type to store_ux.
6297         (lmw): Set type to load_ux.
6298         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
6299         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
6300         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
6301         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
6302         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
6303         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
6304         (rios1-fpstore): Increase latency to 3.
6305         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
6306         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
6307
6308 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6309             Andrew Pinski  <pinskia@physics.uc.edu>
6310
6311         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
6312         operand2 constraint to "b".
6313         (sync_<fetchop_name>di_internal): Same.
6314         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
6315         to "b".
6316         (sync_old_<fetchop_name>di_internal): Same.
6317         (sync_new_<fetchop_name>si_internal): Same.
6318         (sync_new_<fetchop_name>di_internal): Same.
6319
6320 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
6321
6322         PR middle-end/23991
6323         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
6324         case, define as macros.
6325
6326         PR rtl-optimization/23837
6327         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
6328         clobber / clobber match between dest and p->first.
6329
6330         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
6331         (no_conflict_move_test): Update comments.
6332
6333 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
6334
6335         * doc/install.texi: Update URL for Jacks.
6336         * doc/sourcebuild.texi: Likewise.
6337
6338 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
6339
6340         PR target/24007
6341         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
6342         registers when choosing register preferences.
6343         (movdf_hardfloat64): Same.
6344
6345 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
6346
6347         * expmed.c (expand_shift): Don't use the target of the rotate as
6348         target for the first expanded shift insn.
6349         * testsuite/gcc.dg/20050922-1.c: Testcase added.
6350
6351 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
6352
6353         PR tree-optimization/22438
6354         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
6355         preserved iv rhs rewriting specially.
6356
6357 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
6358
6359         * tree-data-ref.c (analyze_array_indexes): Only estimate when
6360         estimate_only  is true.
6361         * tree-flow.h (ref_contains_indirect_ref): New prototype.
6362         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
6363         tree-ssa-structalias.c
6364         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
6365         ref_contains_indirect_ref.
6366         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
6367
6368 2005-09-21  DJ Delorie  <dj@redhat.com>
6369
6370         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
6371         MASK_PTR_A0D0.
6372         (mn10300_return_in_memory): Support variable size types also.
6373         (mn10300_pass_by_reference): Likewise.
6374         (mn10300_function_value): New.
6375         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
6376         (FUNCTION_OUTGOING_VALUE): Likewise.
6377         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
6378         * doc/invoke.texi: Document it.
6379
6380 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
6381
6382         PR target/22585
6383         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
6384         force integer op1 into register for XFmode compares.
6385
6386 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
6387
6388         PR middle-end/23971
6389         * expmed.c (alg_code): Add alg_impossible.
6390         (alg_hash_entry): Add cost.
6391         (synth_mult): Record alg_impossible in the hash table if
6392         multiplication by a given integer is impossble within the
6393         limit.  Speed up using alg_impossible.
6394
6395 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6396
6397         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
6398         argument.  Allow and set any offset if needs_anyoffset is passed
6399         in.
6400         (get_constraint_for): Add argument here too.
6401         Pass it down.
6402         (do_structure_copy): Pass NULL to get_constraint_for.
6403         (handle_ptr_arith): Ditto.
6404         (find_func_aliases): Ditto.
6405
6406 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
6407
6408         PR rtl-optimization/23898
6409         * output.h (get_attr_min_length): Declare.
6410         * final.c (get_attr_length_1): New function, broken out of:
6411         (get_attr_length).
6412         (get_attr_min_length): New function.
6413         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
6414         (duplicate_computed_gotos): Likewise.
6415         * genattr.c (insn_min_length): Generate declaration.
6416         * genattrtab.c (min_fn, min_attr_value): New functions.
6417         (make_length_attrs): Generate insn_min_length.
6418
6419 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
6420
6421         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
6422
6423 2005-09-20  Richard Henderson  <rth@redhat.com>
6424
6425         PR tree-optimization/24059
6426         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
6427         EXPAND_STACK_PARM.
6428
6429 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
6430
6431         * c.opt (fextended-identifiers): New.
6432         * c-opts.c (c_common_handle_option): Handle
6433         -fextended-identifiers.
6434         * doc/cpp.texi: Update documentation of extended identifiers.
6435         * doc/cppopts.texi (-fextended-identifiers): Document.
6436
6437 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
6438
6439         PR tree-optimization/23929
6440         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
6441         if expr is NULL.
6442
6443         PR tree-optimization/23818
6444         * tree-stdarg.c (execute_optimize_stdarg): Call
6445         calculate_dominance_info.
6446
6447 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6448
6449         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
6450         (analyze_siv_subscript_cst_affine): Add weak SIV test.
6451         (compute_overlap_steps_for_affine_1_2): Use
6452         get_number_of_iters_for_loop.
6453         (analyze_subscript_affine_affine): Check whether difference is
6454         zero first.
6455         Use get_number_of_iters_for_loop.
6456         Check whether overlap occurs outside of bounds.
6457         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
6458
6459 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
6460
6461         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
6462         base register if possible.
6463
6464 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
6465
6466         PR tree-optimization/18463
6467         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
6468         converting it directly is not possible.
6469         (chrec_convert_aggressive): New function.
6470         * tree-chrec.h (chrec_convert_aggressive): Declare.
6471         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
6472         Fold chrec conversions aggressively if asked to.
6473         (instantiate_parameters): Modified because of changes in
6474         instantiate_parameters_1.
6475
6476 2005-09-19  Richard Henderson  <rth@redhat.com>
6477
6478         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
6479         (reduc_splus_v2df): New.
6480
6481 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
6482
6483         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
6484         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
6485
6486 2005-09-19  Richard Henderson  <rth@redhat.com>
6487
6488         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
6489         vcondu<SSEMODE12>.
6490
6491 2005-09-19  Richard Henderson  <rth@redhat.com>
6492
6493         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
6494         (ia64_expand_dot_prod_v8qi): New.
6495         * config/ia64/ia64-protos.h: Update.
6496         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
6497         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
6498         sdot_prodv8qi, sdot_prodv4hi): New.
6499         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
6500
6501 2005-09-19  Richard Henderson  <rth@redhat.com>
6502
6503         PR 23941
6504         * real.c (exact_real_truncate): Return false if the format cannot
6505         represent the number as a normal.
6506
6507         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
6508         for a memory source.
6509
6510 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
6511
6512         * tree-ssa-operands.c (swap_tree_operands): Export.
6513         * tree.h (swap_tree_operands): Declare.
6514         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
6515         Call swap_tree_operands.
6516
6517 2005-09-19  Richard Henderson  <rth@redhat.com>
6518
6519         * tree-flow.h (merge_alias_info): Declare.
6520         * tree-ssa-copy.c (merge_alias_info): Export.
6521         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
6522         (vect_create_data_ref_ptr): Use create_iv directly.
6523         (vectorizable_load): Use correct types for integer constants.
6524         (vect_generate_tmps_on_preheader): Likewise.
6525         (vect_gen_niters_for_prolog_loop): Likewise.
6526
6527 2005-09-19  Steven Bosscher  <stevenb@suse.de>
6528
6529         PR rtl-optimization/23943
6530         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
6531
6532 2005-09-18  Jan Hubicka  <jh@suse.cz>
6533
6534         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
6535
6536 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
6537
6538         * varasm.c (output_constant): Do not abort on conversions to union
6539         types between different sizes.
6540
6541 2005-09-18  Richard Guenther  <rguenther@suse.de>
6542
6543         PR middle-end/23944
6544         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
6545         fallback.
6546
6547 2005-09-18  Paul Brook  <paul@codesourcery.com>
6548
6549         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
6550
6551 2005-09-17  Richard Henderson  <rth@redhat.com>
6552
6553         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
6554         * tree-ssa-loop.c (pass_vect_dce): Remove.
6555         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
6556         of pass_vectorize.
6557
6558 2005-09-17  Richard Henderson  <rth@redhat.com>
6559
6560         * tree-pass.h (pass_vect_dce): Declare.
6561         * passes.c (init_optimization_passes): Add it.
6562         * tree-flow.h (tree_ssa_dce): Declare.
6563         * tree-ssa-dce.c (tree_ssa_dce): Export.
6564         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
6565         (gate_tree_vectorize): ... here.
6566         (pass_vect_dce): New.
6567
6568 2005-09-17  Jan Hubicka  <jh@suse.cz>
6569
6570         * except.c (struct eh_status): Turn region_array into vec.
6571         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
6572         convert_from_eh_region_ranges, find_exception_handler_labels,
6573         current_function_has_exception_handlers, assign_filter_values,
6574         build_post_landing_pads, dw2_build_landing_pads,
6575         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
6576         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
6577         foreach_reachable_handler, can_throw_internal_1,
6578         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
6579         region_array.
6580         (duplicate_eh_region_1): Update region_array.
6581         (duplicate_eh_regions): Resize region_array and avoid recomputing.
6582
6583 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
6584
6585         PR middle-end/22067
6586         * expmed.c (expand_mult): Substitute simple register for op0 when
6587         computing max_cost.
6588
6589 2005-09-17  Richard Henderson  <rth@redhat.com>
6590
6591         * expr.c (emit_move_via_integer): Add force argument, pass it on
6592         to emit_move_change_mode.  Update callers.
6593         (emit_move_complex): Pass true to new force argument.
6594         * function.c (expand_function_end): Move expand_eh_return call
6595         earlier.  Merge sub-word complex values into a pseudo before
6596         copying to the return hard register.
6597
6598 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
6599
6600         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
6601         between different sizes.
6602
6603 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
6604
6605         PR 23903
6606
6607         * passes.c (init_optimization_passes): Register dump files for
6608         IPA passes first.
6609
6610 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
6611
6612         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
6613         * config/s390/s390.c (s390_overlap_p): New function.
6614         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
6615         peephole2, "*xc" peephole2): Added overlap check to the peephole2
6616         condition.
6617
6618 2005-09-16  Richard Guenther  <rguenther@suse.de>
6619
6620         * ipa-pure-const.c (static_execute): Free auxiliar information.
6621         * ipa-type-escape.c (discover_unique_type): Free temporary key.
6622         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
6623
6624 2005-09-15  DJ Delorie  <dj@redhat.com>
6625
6626         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
6627
6628 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6629
6630         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6631         to order operands.
6632         (swap_commutative_operands_with_target): New.
6633
6634 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
6635
6636         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
6637         parameter.
6638         Update callers.
6639         (estimate_iters_using_array): New function.
6640         * tree-data-ref.h (estimate_iters_using_array): Prototype
6641         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
6642         Use estimate_iters_using_array instead of analyze_array.
6643
6644 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6645
6646         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
6647         as addressable.
6648
6649 2005-09-15  Michael Matz  <matz@suse.de>
6650
6651         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
6652
6653 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
6654
6655         PR tree-optimization/23835
6656         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
6657         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
6658
6659 2005-09-14  Richard Henderson  <rth@redhat.com>
6660
6661         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
6662         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
6663
6664 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
6665
6666         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
6667         in the ARRAY_TYPE case.
6668
6669 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6670
6671         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
6672
6673 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
6674
6675         PR middle-end/22480
6676         * tree-vect-transform.c (vectorizable_operation): Return false for
6677         scalar shift operations and for vector shift operations with
6678         non-invariant shift arguments.  Use scalar tree operand op1 as
6679         a shift operand when vector shift insn pattern uses scalar shift
6680         operand.
6681         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
6682
6683 2005-09-14  Olivier Hainque  <hainque@adacore.com>
6684
6685         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
6686         value if it has side-effects.
6687
6688 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
6689
6690         PR target/22068
6691         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
6692
6693 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
6694
6695         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
6696         passed as NAME as if it were label at start of function code.
6697
6698 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
6699
6700         * config/sh/sh.md (*movv4sf_i): Add general register cases to
6701         the constraints.
6702
6703 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
6704
6705         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
6706         as early clobber.  Rewrite so the PIC register is not implicitly used.
6707
6708 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6709
6710         * tree.c (annotate_with_file_line): Compare line numbers before
6711         file names.
6712
6713 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
6714
6715         PR target/23816
6716         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
6717         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
6718
6719 2005-09-13  Ian Lance Taylor  <ian@airs.com>
6720
6721         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
6722         than a HOST_WIDEST_INT to gen_doloop_begin.
6723
6724 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
6725
6726         * tree-dfa.c (dump_variable): Guard against NULL annotations.
6727
6728 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
6729
6730         PR tree-optimize/23817
6731         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
6732
6733 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
6734
6735         PR target/23774
6736         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
6737         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
6738         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
6739         (restore_stack_nonlocal): Likewise.
6740         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
6741
6742 2005-09-12  Ian Lance Taylor  <ian@airs.com>
6743
6744         PR g++/7874
6745         * c.opt (ffriend-injection): New C++ option.
6746         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
6747         (C++ Dialect Options): Document -ffriend-injection.
6748
6749 2005-09-12  Josh Conner  <jconner@apple.com>
6750
6751         PR middle-end/23237
6752         * ipa-reference.c (static_execute): Don't mark variables in
6753         named sections TREE_READONLY.
6754
6755 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
6756
6757         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
6758         stack_tie.
6759
6760 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
6761
6762         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
6763         V_MUST_DEF instead of just the first_use_p.
6764         Don't mark the virtual variables for renaming on the statement which
6765         is being removed.
6766         (pass_dse): Remove TODO_update_ssa.
6767
6768 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
6769
6770         PR middle-end/23290
6771         * stor-layout.c (compute_record_mode): For records with a single
6772         field, actually check the field's mode size against the type size.
6773
6774         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
6775         registers for TARGET_SHMEDIA.
6776         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
6777         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
6778         of GENERAL_REGS and FP_REGS.
6779
6780 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
6781
6782         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
6783
6784 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
6785
6786         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
6787         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
6788         are omitted.  Exclude stack_tie insn too.
6789
6790 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
6791
6792         PR rtl-optimization/23098
6793         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
6794         0.0f is easy.
6795         * config/rs6000/rs6000.md (movdf splitter): Use
6796         const_double_operand predicate for TARGET_POWERPC64.
6797         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
6798         SYMBOL_REF method to ABI_V4.
6799
6800         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
6801         replace_equiv_address.
6802         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
6803         rs6000_sr_alias_set and MEM_NOTRAP.
6804         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
6805
6806 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
6807
6808         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
6809         handle CALL_EXPR again.
6810
6811 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
6812
6813         * arm/predicates.md (alignable_memory_operand): Delete.
6814
6815 2005-09-10  Richard Henderson  <rth@redhat.com>
6816
6817         PR debug/23806
6818         * dbxout.c (dbxout_expand_expr): New.
6819         (dbxout_symbol): Use it.
6820
6821 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
6822
6823         * arm.c (arm_gen_rotated_half_load): Delete.
6824         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
6825         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
6826         (thumb_set_return_address): Likewise.
6827         (thumb_load_double_from_address): Use adjust_address.
6828         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
6829         (extendhsisi2_mem, movhi_bytes): Use change_address.
6830         (movhi): Use widen_memory_access.
6831         (reload_out_df): Use replace_equiv_address.
6832         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
6833
6834 2005-09-09  Richard Henderson  <rth@redhat.com>
6835
6836         PR debug/20998
6837         * dbxout.c: Include expr.h.
6838         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
6839         (dbxout_symbol): Handle DECL_VALUE_EXPR.
6840         * Makefile.in (dbxout.o): Add EXPR_H.
6841
6842 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
6843
6844         PR tree-optimization/23509
6845         * tree-cfg.c (replace_uses_by): Use replace_exp.
6846         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
6847         pointers have name_mem_tag or type_mem_tag set.
6848
6849 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
6850
6851         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
6852         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
6853         of wrongly accessing operands.
6854
6855 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
6856
6857         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
6858         * tree-chrec.c: Include tree-scalar-evolution.h.
6859         (chrec_convert): Instantiate the base and step before calling
6860         scev_probably_wraps_p that would fail on parametric evolutions.
6861         Collect all the fails into a single section failed_to_convert,
6862         print a diagnostic, and return chrec_dont_know instead of calling
6863         fold_convert.
6864         * tree-scalar-evolution.c (loop_closed_phi_def): New.
6865         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
6866         phi nodes.
6867         (scev_const_prop): Don't replace the definition of a loop closed ssa
6868         phi node by itself, or by another loop closed ssa phi node.
6869         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
6870         that base and step are defined.
6871
6872 2005-09-09  Richard Guenther  <rguenther@suse.de>
6873
6874         PR c++/23624
6875         * fold-const.c (fold_ternary): Check truth_value_p before
6876         calling invert_truthvalue.
6877
6878 2005-09-09  Nick Clifton  <nickc@redhat.com>
6879
6880         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
6881         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
6882         dimension of these arrays.
6883         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
6884         these arrays.
6885         * longlong.h: Only provide a prototype for the __clz_tab[] array
6886         if this header has not been included from libgcc2.h.
6887         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
6888         defining own types.
6889         Provide prototypes for exported functions.
6890         Use the __clz_tab[] and __popcount_tab[] arrays provided by
6891         libgcc2.c.
6892
6893 2005-09-08  Josh Conner  <jconner@apple.com>
6894
6895         PR c++/21135
6896         PR c++/23180
6897         * expr.c (expand_expr_addr_expr_1): Don't invoke
6898         expand_simple_binop for EXPAND_INITIALIZER.
6899
6900 2005-09-08  Richard Henderson  <rth@redhat.com>
6901
6902         PR debug/23190
6903         * toplev.c (wrapup_global_declaration_1): Split out ...
6904         (wrapup_global_declaration_2): ... from ...
6905         (wrapup_global_declarations): ... here.  Return bool.
6906         (check_global_declaration_1): Split out ...
6907         (check_global_declarations): from here.
6908         (emit_debug_global_declarations): New.
6909         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
6910         check_global_declaration_1, emit_debug_global_declarations): Declare.
6911         * c-decl.c (c_write_global_declarations_1): Don't create a vector
6912         of decls.  Call wrapup_global_declaration_1,
6913         wrapup_global_declaration_2, check_global_declaration_1 directly.
6914         (c_write_global_declarations_2): New.
6915         (ext_block): New.
6916         (c_write_global_declarations): Call c_write_global_declarations_2.
6917         * langhooks.c (write_global_declarations): Call
6918         emit_debug_global_declarations.
6919
6920         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
6921         remove decls that have DECL_RTL_SET_P.
6922         * passes.c (rest_of_decl_compilation): Invoke
6923         cgraph_varpool_finalize_decl for all but functions.
6924
6925 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6926
6927         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
6928         the result of a conversion if the new min and max cannot be compared.
6929
6930 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
6931
6932         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
6933         (override_options): Setting s390_sr_alias_set removed.
6934         (save_fpr, save_gprs): Set alias set to vararg or frame.
6935         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
6936         s390_sr_alias_set with get_frame_alias_set ().
6937         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
6938         get_varargs_alias_set ().
6939
6940 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
6941
6942         PR objc/20574
6943         PR objc/19324
6944         * c-parser.c (c_parser_objc_method_definition): If the next
6945         token is not "{", error out and don't start the function.
6946
6947 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
6948
6949         * tree-vrp.c (extract_range_from_expr): Move the check for non
6950         nullness after the check for gimple invariant.
6951
6952 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6953
6954         * tree.c (host_integerp, tree_low_cst): Correct function comment.
6955
6956 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6957
6958         PR target/23747
6959         * config/m32r.md (movmemsi_internal): Canonicalize order of
6960         operands in PLUS component of template.
6961
6962 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
6963
6964         * reload1.c (fixup_eh_region_note): Remove assertion.
6965         (fixup_abnormal_edges): Reverted removal of call to
6966         find_many_sub_basic_blocks made on 2005-08-31.
6967
6968 2005-09-07  Richard Henderson  <rth@redhat.com>
6969
6970         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
6971         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
6972         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
6973         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
6974         rearrange for better packing.
6975         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
6976         (lookup_cfa_1): Remove inline marker.
6977         (cfa_equal_p): Split out of ...
6978         (def_cfa_1): ... here.  Use INVALID_REGNUM.
6979         (build_cfa_loc): Handle !cfa->indirect.
6980         (frame_pointer_cfa_offset): New.
6981         (dbx_reg_number): Assert register elimination performed; do
6982         leaf register remapping.
6983         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
6984         (eliminate_reg_to_offset): New.
6985         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
6986         for verifiably local stack frame addresses; re-base to CFA.
6987         (mem_loc_descriptor): Remove can_use_fbreg argument.
6988         (concat_loc_descriptor, loc_descriptor): Likewise.
6989         (containing_function_has_frame_base): Remove.
6990         (rtl_for_decl_location): Don't do register elimination or
6991         leaf register remapping here.
6992         (secname_for_decl): Split out from ..
6993         (add_location_or_const_value_attribute): ... here.
6994         (convert_cfa_to_loc_list): New.
6995         (compute_frame_pointer_to_cfa_displacement): New.
6996         (gen_subprogram_die): Use them.
6997         * tree.h (frame_base_decl): Remove.
6998         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
6999         (prologue_stack_adjust): Remove.
7000         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
7001         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
7002         (set_frame_base_location): Remove.
7003         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
7004         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
7005         (vt_add_function_parameters): Don't eliminate_regs.
7006         (vt_initialize): Don't create frame_base_decl.
7007
7008 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7009
7010         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
7011         version of GNU binutils for 4.x and later.
7012
7013 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
7014
7015         * ggc-page.c (ggc_push_context): Remove.
7016         (ggc_pop_context): Likewise.
7017         * ggc.h (ggc_push_context): Remove.
7018         (ggc_pop_context): Likewise.
7019
7020 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7021
7022         PR target/8973
7023         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
7024         returning from an interrupt handler.
7025
7026 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7027
7028         PR target/8972
7029         * config/arc/arc.c (output_shift): Add check for loop count when
7030         optimizing.
7031
7032 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7033
7034         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
7035         form manually.
7036         (abs_replacement): Likewise.
7037         (pass_phiopt): Remove TODO_update_ssa.
7038
7039 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7040
7041         PR c/23075
7042         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
7043         if "return with no value, in function returning non-void" warning
7044         has been issued.
7045         * tree-cfg.c (execute_warn_function_return): Don't look at
7046         RETURN_EXPRs with TREE_NO_WARNING set.
7047
7048         PR target/22362
7049         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
7050         for internal functions doesn't use registers used by global registers
7051         variables.  Use fewer register parameters if there are global register
7052         variables.
7053
7054 2005-09-06  Olivier Hainque  <hainque@adacore.com>
7055             Eric Botcazou  <ebotcazou@adacore.com>
7056
7057         PR middle-end/14997
7058         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
7059         when we would be extracting outside its bit span (bitpos+bitsize
7060         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
7061         Ada unchecked conversions.
7062
7063 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7064
7065         * tree-ssa-pre.c (try_look_through_load): New function.
7066         (compute_avail): Use it to try to look through loads for some
7067         more useful expressions.
7068
7069 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7070
7071         * simplify-rtx.c (simplify_binary_operation_1): Correct the
7072         condition for detecting cases like (a&a) and (a^a).
7073
7074 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
7075
7076         * common.opt: Add option ftree-vect-loop-version.
7077         * params.def: Add --param vect-max-version-checks.
7078         * doc/invoke.texi: Document ftree-vect-loop-version and
7079         --param vect-max-version-checks.
7080         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
7081         may_misalign_stmts and defines for accessors.
7082         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
7083         LOOP_VINFO_MAY_MISALIGN_STMTS.
7084         (destroy_loop_vec_info): VEC_free for
7085         LOOP_VINFO_MAY_MISALIGN_STMTS.
7086         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7087         Update documentation.
7088         (vect_update_misalignment_for_peel): New.
7089         (vect_enhance_data_refs_alignment): Update to choose loop
7090         peeling or loop versioning if appropriate for the (potentially)
7091         unaligned data references in the loop.
7092         (vect_analyze_data_refs_alignment): Remove call to
7093         vect_enhance_data_refs_alignment so the checks can be done
7094         earlier.
7095         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
7096         and move up call to vect_analyze_data_refs_alignment.
7097         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
7098         (vect_transform_loop): Add call to loop_version.
7099
7100 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7101
7102         PR rtl-optimization/23098
7103         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
7104         * simplify-rtx.c (constant_pool_reference_p): New function.
7105         * rtl.h (constant_pool_reference_p): New prototype.
7106         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
7107         constant_pool_reference_p in condition and
7108         avoid_constant_pool_reference in preparation statements.
7109
7110 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7111
7112         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
7113         STRICT_LOW_PART SETs.
7114
7115 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
7116
7117         PR middle-end/21460
7118         * except.c (sjlj_emit_function_enter): Find the function begin
7119         note even when it's not in first basic block.
7120
7121 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
7122
7123         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
7124         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
7125         * aclocal.m4: Regenerate.
7126
7127 2005-09-05  DJ Delorie  <dj@redhat.com>
7128
7129         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
7130         of macro.
7131
7132 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
7133
7134         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
7135         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
7136         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
7137         Follow spelling conventions.
7138         * doc/invoke.texi: Follow spelling conventions.
7139
7140 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7141
7142         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
7143         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
7144         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
7145
7146 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7147
7148         PR target/23683
7149         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
7150         (output_stack_adjust): Use gen_tmp_stack_mem.
7151         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
7152         (sh_set_return_address, sh_allocate_initial_value): Likewise.
7153         (sh_get_pr_initial_val): Likewise.
7154         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
7155         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
7156         * sh.md (divsi_inv_m0): Use gen_const_mem.
7157         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
7158         (movdf_i4+1): Use gen_tmp_stack_mem.
7159         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
7160         (fpu_switch+2): Likewise.
7161         (movv4sf_i, movv16sf_i): Use adjust_address.
7162         (symGOT_load): Set MEM_NOTRAP_P bit.
7163
7164 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7165
7166         PR target/23721
7167         * pa.c (emit_move_sequence): Fix typo in last change.
7168
7169 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
7170
7171         PR rtl-optimization/23454
7172         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
7173         is true.
7174
7175 2005-09-03  Richard Henderson  <rth@redhat.com>
7176             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7177
7178         PR middle-end/23671
7179         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
7180         gen_rtx_MEM.
7181
7182 2005-09-02  Nicolas Pitre <nico@cam.org>
7183
7184         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
7185         to bit_count to 32 bits.
7186
7187 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
7188
7189         PR c++/23167
7190         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
7191         generating synthetic loads from volatile lvalues.
7192
7193 005-09-02  Nick Clifton  <nickc@redhat.com>
7194
7195         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
7196         __ctzhi2, __clzhi2): New functions.
7197
7198 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
7199
7200         PR middle-end/23547
7201         * tree-nested.c (struct var_map_elt): Mark with GTY.
7202         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
7203         var_map_elt.
7204         (lookup_field_for_decl): Allocate new element in GC memory.
7205         (lookup_tramp_for_decl): Likewise.
7206         (convert_nl_goto_reference): Likewise
7207         (create_nesting_tree): Allocate info in GC memory. Likewise for
7208         info->var_map.
7209         (free_nesting_tree): Free with ggc_free instead of free.
7210         (root): New static variable.
7211         (lower_nested_functions): Remove root as local variable.  And zero out
7212         root at the end of the function.
7213
7214 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
7215
7216         PR rtl-optimization/20365
7217         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
7218         to short.  New member ix.
7219         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
7220         (simplify_plus_minus): Initialize ix members before calling qsort.
7221
7222 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
7223
7224         PR tree-optimization/23626
7225         * tree-cfg.c (replace_uses_by): Clean up eh info.
7226
7227 2005-09-01  DJ Delorie  <dj@redhat.com>
7228
7229         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
7230         fprintf.
7231
7232 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
7233
7234         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
7235         (rs6000_split_multireg_move): Use replace_equiv_address instead of
7236         gen_rtx_MEM.
7237
7238 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7239
7240         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
7241         do not issue warning for a variable definition following
7242         a declaration.
7243
7244 2005-09-01  Richard Henderson  <rth@redhat.com>
7245
7246         PR 23668
7247         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
7248         conversion to CONST_VECTOR.
7249
7250 2005-09-01  Richard Henderson  <rth@redhat.com>
7251
7252         PR 23676
7253         * reload1.c (reload_as_needed): Check !CALL_P before calling
7254         fixup_eh_region_note.
7255         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
7256
7257 2005-09-01  DJ Delorie  <dj@redhat.com>
7258
7259         * varasm.c (output_constant): Let the target resolve
7260         conversions of addresses to non-default pointer sizes.
7261
7262 2005-09-01  Nicolas Pitre <nico@cam.org>
7263
7264         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
7265         to alow matching ARM pre-indexed addressing mode.
7266         (arm_override_options): Remove now irrelevant comment.
7267
7268 2005-09-01  Phil Edwards  <phil@codesourcery.com>
7269
7270         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
7271         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
7272         * config/i386/vxworks.h:  Likewise.
7273         * config/i386/t-vxworksae:  New file, for VxWorks AE.
7274         * config/i386/vxworksae.h:  Likewise.
7275
7276 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
7277
7278         PR tree-optimization/23410
7279         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
7280         sequence is not wrapping during the first step.
7281
7282 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7283
7284         PR debug/7241
7285         * dwarf2out.c (base_type_die): Compare char_type_node with
7286         TYPE_MAIN_VARIANT (type), not type.
7287
7288 2005-09-01  Richard Guenther  <rguenther@suse.de>
7289
7290         PR tree-optimization/15366
7291         * common.opt: Add -finline-functions-called-once.
7292         Put -fearly-inlining in alphabetically ordered place.
7293         * doc/invoke.texi: Document new option.
7294         * ipa-inline.c (cgraph_decide_inlining): Honour
7295         flag_inline_functions_called_once.
7296
7297 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7298
7299         PR rtl-optimization/23478
7300         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
7301         (alloc_qty): Initialize it.
7302         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
7303         (combine_regs): Combine also n_throwing_calls_crossed fields.
7304         (find_free_reg): Don't attempt to caller-save pseudos crossing
7305         calls that might throw.
7306         * global.c (struct allocno): Add throwing_calls_crossed field.
7307         (global_alloc): Revert 2005-08-22 change.  Initialize
7308         throwing_calls_crossed.
7309         (find_reg): Don't attempt to caller-save pseudos crossing calls that
7310         might throw.
7311
7312 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
7313
7314         PR target/23649
7315         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
7316         (mask64_operand): Reinstate code prior to 2005-06-11 change.
7317         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
7318         (and64_2_operand): Tweak to use predicate.
7319         (and_operand): Adjust for mask_operand changes.
7320         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
7321         (print_operand): Likewise.
7322         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
7323         (mask64_1or2_operand): Delete.
7324         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
7325         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
7326         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
7327         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
7328         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
7329         (rotldi3_internal4): Likewise.
7330         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
7331         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
7332         (ashldi3_internal7): Likewise.
7333         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
7334         (ashldi3_internal, ashldi3_internal9 split): Likewise.
7335         (anddi3 split): Don't match mask64_operand.
7336         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
7337         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
7338         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
7339         't' splitter predicate.
7340         (movdi_internal64 + 2): Revert 2005-06-11 change.
7341
7342 2005-08-31  DJ Delorie  <dj@redhat.com>
7343
7344         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
7345         (m32c_asm_integer): Add support for 32 bit pointers.
7346
7347 2005-08-31  Richard Henderson  <rth@redhat.com>
7348
7349         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
7350         component-like references for setting MEM_NOTRAP_P.
7351
7352         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
7353         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
7354
7355 2005-08-31  Richard Henderson  <rth@redhat.com>
7356
7357         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
7358         into a pseudo before applying gen_lowpart.
7359
7360 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
7361
7362         * doc/install.texi (Specific): Update cctools version required
7363         for full functionality.
7364         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
7365         linkers as -macosx_version_min.
7366
7367 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
7368
7369         PR target/21255
7370         * sh.c (print_operand, %R and %S): Add handling of floating point
7371         registers, memory, constants and invalid operands.
7372
7373 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
7374
7375         * ipa-pure-const.c: Change dump name.
7376
7377 2005-08-31 Uros Bizjak <uros@kss-loka.si>
7378
7379         PR target/23570
7380         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
7381         to "reg_or_0_operand".
7382         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
7383
7384 2005-08-31  Dale Johannesen  <dalej@apple.com>
7385
7386         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
7387         loops that count down.
7388
7389 2005-08-31  Richard Henderson  <rth@redhat.com>
7390
7391         PR rtl-opt/23601
7392         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
7393         (fixup_eh_region_note): New.
7394         (reload_as_needed): Call it.
7395         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
7396         don't call find_many_sub_basic_blocks; call verify_flow_info.
7397         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
7398         (keep_stack_depressed): Likewise.
7399         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
7400
7401 2005-08-31  Richard Henderson  <rth@redhat.com>
7402
7403         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
7404         fp return matching.
7405
7406 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
7407
7408         * expr.c (expand_expr_real_1): Compare size of address
7409         mode to target's address mode size in deciding expansion of
7410         the constant address.
7411
7412 2005-08-31  Richard Guenther  <rguenther@suse.de>
7413
7414         PR middle-end/23477
7415         * expr.c (all_zeros_p): New function.
7416         (expand_expr_real_1): Handle the case of an all-zero
7417         non-addressable constructor separately.
7418
7419 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
7420
7421         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
7422         arguments, adjust all callers.
7423         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
7424
7425 2005-08-30  Richard Henderson  <rth@redhat.com>
7426
7427         PR target/23630
7428         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
7429         whenever the mode sizes match.
7430
7431 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
7432
7433         * calls.c (load_register_parameters): Fix comment typo.
7434         * expr.c (emit_push_insn): Comment formatting.
7435
7436 2005-08-30  Ian Lance Taylor  <ian@airs.com>
7437
7438         * config/i386/x-cygwin (host-cygwin): Change dependency from
7439         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
7440
7441 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
7442
7443         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
7444         parts of 'vals'.
7445
7446 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
7447
7448         PR middle-end/23408
7449         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
7450         call to ggc_collect.
7451
7452 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
7453
7454         PR bootstrap/21268
7455         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
7456         beginning.  Remove $(INCLUDES) from all the rules, if following
7457         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
7458
7459 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
7460
7461         PR middle-end/23484
7462         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
7463         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
7464         not constant, but maxlen is, don't set len to maxlen, rather
7465         set maxlen to len if len is a constant.
7466
7467 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
7468
7469         PR tree-optimization/23475
7470         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
7471         and counts.
7472
7473 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
7474
7475         Fix PR middle-end/22455
7476
7477         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
7478         Checksum only the parts of the tree that exist for the tree code.
7479
7480 2005-08-28  Dale Johannesen  <dalej@apple.com>
7481
7482         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
7483
7484 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
7485
7486         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
7487
7488 2005-08-28  Richard Henderson  <rth@redhat.com>
7489
7490         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
7491         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
7492         of char_type_node.
7493
7494 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
7495
7496         PR ada/23593
7497         * builtins.c (get_memory_rtx): Don't strip nops
7498         in between COMPONENT_REFs.
7499
7500 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
7501
7502         PR middle-end/23463
7503         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
7504         types.
7505         (gimplify_modify_expr): Check for zero sized types and gimplify the
7506         rhs and lhs as statements.
7507
7508 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
7509
7510         PR libgcj/23508
7511         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
7512         state for return address column of signal frames.
7513
7514 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
7515
7516         PR target/23539
7517         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
7518         bytes >= 2 not bytes == 2.
7519         (expand_block_move): Same.
7520
7521 2005-08-27  Richard Guenther  <rguenther@suse.de>
7522
7523         PR target/23575
7524         * config/i386/sse.md (sse2_movsd): Add missing closing
7525         braces.
7526
7527 2005-08-27  Paul Brook  <paul@codesourcery.com>
7528
7529         * genrecog.c (enum decision_type): Add DT_num_insns.
7530         (struct decision_test): Add u.num_insns.
7531         (add_to_sequence): Add DT_num_insns test.
7532         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
7533         (write_cond, debug_decision_2): Ditto.
7534         (change_state): Assume peep2_next_insn never fails.
7535         Remove "afterward" argument.
7536         (write afterward, write_tree): Update to match.
7537         * recog.c (peep2_current_count): New variable.
7538         (peep2_next_insn): Check it.
7539         (peephole2_optimize): Set peep2_current_count.
7540         * recog.h (peep2_current_count): Declare.
7541
7542 2005-08-26  Josh Conner  <jconner@apple.com>
7543
7544         PR middle-end/23584
7545         * ipa-pure-const.c (check_tree): Check for volatile-ness
7546         when considering a dereference.
7547
7548 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
7549
7550         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
7551
7552 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7553
7554         PR rtl-optimization/23561
7555         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
7556         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
7557         at most LEN bytes long memory fits into the field.
7558         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
7559         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
7560         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
7561
7562 2005-08-26  Richard Henderson  <rth@redhat.com>
7563
7564         PR rtl-opt/23560
7565         * loop.c (biased_biv_may_wrap_p): New.
7566         (maybe_eliminate_biv_1): Use it to suppress non-equality
7567         comparison transformations.  Delete disabled code.
7568
7569 2005-08-26  Ian Lance Taylor  <ian@airs.com>
7570
7571         * combine.c (make_extraction): Avoid reference outside object.
7572
7573 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
7574
7575         * stor-layout.c (finalize_type_size): Restore behaviour for
7576         non-aggregate types to the status quo ante of the patch for
7577         pr 23467.  Document why it matters.
7578
7579 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7580
7581         PR c/23506
7582         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
7583         array by one element, initialize the BT_LAST element with NULL.
7584
7585 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
7586
7587         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
7588         optimizing for size.
7589         (plus_eqsi): Same.
7590         (compare_plus_eqsi): Same.
7591         (plus_eqsi_compare): Same.
7592         (neg_eq0<mode>): Same.
7593         (neg_eq<mode>): Same.
7594
7595         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
7596         PROCESSOR_POWER4.
7597
7598 2005-08-26  Nick Clifton  <nickc@redhat.com>
7599
7600         * config/v850/v850.c (ep_memory_operand): Return FALSE if
7601         TARGET_EP is not defined.
7602         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
7603         TARGET_EP is enabled.
7604         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
7605         * config/v850/v850.md (save_all_interrupt): Only use the EP
7606         register if TARGET_EP is defined.
7607         (restore_all_interrupt): Likewise.
7608         * config/v850/lib1funcs.asm: Update functions so that the EP
7609         register is only used if __EP__ is defined.
7610
7611 2005-08-26  David Ung  <davidu@mips.com>
7612
7613         * config/mips/mips.c (mips_expand_prologue): Handle case when
7614         generating for MIPS16 and the outgoing argument area is more than
7615         SMALL_OPERAND. Use the frame pointer as temporary to generate the
7616         add instruction.
7617
7618 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
7619
7620         * config/crx/crx.md: Make doloop_end pattern usage controllable
7621         via mloop-nesting=<max-nesting> command line switch. Make sure
7622         the combiner cannot use doloop_end_<mode> in an illegal way.
7623         * config/crx/crx.c: Use regs up to r6 for argument passing.
7624         Refine crx_address_cost (non cst4 displacements are expensive).
7625         * config/crx/crx.opt: Add switch for mloop-nesting=.
7626
7627 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
7628
7629         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
7630         (UNSPEC_MVST): New constant.
7631
7632 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
7633
7634         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
7635         Reject operands containing eliminable registers.
7636         * testsuite/gcc.dg/20050825-1.c: New testcase.
7637
7638 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7639             Jan Hubicka  <jh@suse.cz>
7640
7641         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
7642
7643 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7644
7645         PR tree-optimization/23546
7646         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
7647         and REAL_CST nodes.
7648
7649 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
7650
7651         * params.def (PARAM_MIN_SPEC_PROB): New.
7652         * sched-rgn.c (MIN_PROBABILITY): Delete.
7653         (compute_trg_info): Convert to PARAM_VALUE.
7654         * doc/invoke.texi (param): Document min-spec-prob.
7655
7656 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
7657
7658         * config/darwin.h: define __PIC__
7659         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
7660         TARGET_OS_CPP_BUILTINS macro.
7661
7662 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7663
7664         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
7665         yesterday.
7666
7667 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
7668
7669         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
7670         to duplicate_block.
7671         * cfghooks.c (duplicate_block): Added position where to place
7672         new block as argument.
7673         * cfghooks.h (duplicate_block): Declaration changed.
7674         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
7675         duplicate_block.
7676         * cfglayout.h (copy_bbs): Declaration changed.
7677         * cfgloop.h (loop_version): Declaration changed.
7678         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
7679         position to copy_bbs.
7680         (loop_version): Pass position to duplicate_loop_to_header_edge.
7681         Add place_after argument and position new blocks according to
7682         it.
7683         * modulo-sched.c (sms_schedule): Pass place_after argument
7684         to loop_version.
7685         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
7686         * tree-cfg.c (split_edge_bb_loc): New function.
7687         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
7688         to determine position of new blocks.
7689         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
7690         to loop_version.
7691         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
7692         argument to duplicate_block.
7693         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
7694         Pass position to copy_bbs.
7695
7696 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
7697
7698         * fold-const.c (ptr_difference_const): Use
7699         cst_and_fits_in_hwi instead of host_integerp.
7700
7701 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7702
7703         * config/darwin.c (gen_pic_offset): New.
7704         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
7705         Use it.
7706
7707 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
7708
7709         PR tree-optimization/23486
7710         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
7711
7712 2005-08-23  Phil Edwards  <phil@codesourcery.com>
7713
7714         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
7715         remove use_collect2.
7716         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
7717
7718         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
7719         configuration files to override the default value.
7720
7721         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
7722         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
7723         * config/vx-common.h:  New file, split out from...
7724         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
7725         * config/vxworksae.h:  New file, for VxWorks AE.
7726         * config/vxworks.opt:  New file.
7727         * config/vxlib.c:  Update for VxWorks 6.
7728
7729         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
7730         other MULTILIB_* variables appropriately.
7731         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
7732         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
7733         * config/rs6000/vxworks.h:  Update for VxWorks 6.
7734         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
7735
7736 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
7737
7738         PR target/20799
7739         * config/darwin.c (machopic_select_section): Remove the hack to
7740         mark "::operator new" and "::operator delete" for coalescing
7741         even though they are not weak.
7742
7743 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
7744
7745         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
7746         * configure: Regenerate.
7747
7748 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
7749
7750         PR middle-end/23517
7751         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
7752         between vectors.
7753         * convert.c (convert_to_integer, convert_to_vector): Likewise.
7754         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
7755         Likewise.
7756
7757 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
7758
7759         * config/rs6000/predicates.md (equality_operator): New.
7760         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
7761         comparison with a large constant.
7762
7763 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
7764
7765         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
7766
7767 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
7768
7769         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
7770         registers is even, and we have a hardware double precision fp,
7771         align the buffer.
7772         (sh_gimplify_va_arg_expr): For floating point arguments, consider
7773         size of current argument when checking if argument was passed in
7774         registers.
7775
7776         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
7777
7778         PR middle-end/23467
7779         * stor-layout.c (finalize_type_size): Dont override
7780         existing alignment with a smaller alignment from the mode.
7781
7782 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
7783
7784         * lambda-code.c (lambda_vector_lexico_pos): Moved...
7785         * lambda.h (lambda_vector_lexico_pos): ... here.
7786         * tree-data-ref.c (build_classic_dist_vector): Return false when
7787         the distance vector is lexicographically negative.
7788
7789 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
7790
7791         PR tree-optimization/23511
7792         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
7793         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
7794
7795 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
7796
7797         PR tree-optimization/22043
7798         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
7799         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
7800         If ALLOW_FLEXARR, handle types ending with flexible array member.
7801         Pass false as second argument to recursive count_type_elements calls.
7802         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
7803         argument to count_type_elements call.
7804         * tree-sra.c (decide_block_copy): Likewise.
7805         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
7806         for a constant-sized object, set cleared as well.  Pass true as
7807         second argument to count_type_elements call.
7808
7809 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
7810
7811         PR target/21571
7812         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
7813         from legitimate_small_data_p, and make global.  Update use.
7814         Remove forward declaration.
7815         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
7816         Declare.
7817         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
7818
7819 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
7820
7821         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
7822         of scratch intermediates.
7823         (eq<mode>_compare): Same.
7824         (neg_eq0<mode>): New.
7825         (neg_eq<mode>): Convert to define_insn_and_split.
7826
7827 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
7828
7829         PR target/23070
7830         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
7831         stdarg functions, set/clear the fp marker even when no variable
7832         args are passed.
7833         * config/rs6000/sysv4.opt (mprototype): Describe.
7834
7835 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
7836
7837         PR rtl-optimization/23478
7838         * regs.h (reg_info): Add throw_calls_crossed.
7839         (REG_N_THROWING_CALLS_CROSSED): Define.
7840         * flow.c (allocate_reg_life_data): Initialize
7841         REG_N_THROWING_CALLS_CROSSED.
7842         (propagate_one_insn, attempt_auto_inc): Update
7843         REG_N_THROWING_CALLS_CROSSED.
7844         * global.c (global_alloc): Don't allocate pseudos across
7845         calls that may throw.
7846
7847 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
7848
7849         PR c/18715
7850         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
7851         value is inbetween the range if we did not find an exact match.
7852
7853 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
7854
7855         * doc/invoke.texi (Option Summary): Add ms1 options.
7856         * doc/extend.texi: Document interrupt handler attribute for ms1.
7857         * doc/md.texi: Document ms1 constraints.
7858         * config.gcc: Add ms1-*-elf.
7859         * config/ms1/ms1.h: New.
7860         * config/ms1/ms1.c: New.
7861         * config/ms1/ms1.md: New.
7862         * config/ms1/ms1-protos.h: New.
7863         * config/ms1/ABI.txt: New.
7864         * config/ms1/crti.asm: New.
7865         * config/ms1/crtn.asm: New.
7866         * config/ms1/lib2extra-funcs.c: New.
7867         * config/ms1/t-ms1: New.
7868         * config/ms1/ms1.opt: New.
7869
7870 2005-08-22 Ira Rosen <irar@il.ibm.com>
7871
7872         * config/rs6000/altivec.md (xorv4sf3): New.
7873         (negv4sf2, neg<mode>2): Likewise.
7874
7875 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
7876
7877         PR target/23485
7878         * config/ia64/ia64.md (divsi3): Check divide by zero.
7879         (udivsi3): Likewise.
7880         (divdi3): Likewise.
7881         (udivdi3): Likewise.
7882
7883 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
7884
7885         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
7886         up to elem_bitsize bits, not max_bitsize.
7887
7888 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
7889
7890         PR tree-optimization/23433
7891         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
7892         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
7893
7894 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
7895
7896         PR tree-optimization/23434
7897         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
7898         the iteration bound is not an INTEGER_CST.
7899
7900 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
7901
7902         * tree-vect-transform.c (get_initial_def_for_reduction): Set
7903         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
7904         NULL if need_epilog_adjust is false.
7905         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
7906         Case 3 always peels first itration, not just for PLUS case, and no need
7907         to use scalar_initial_def here. Create an epilog adjustment only if
7908         scalar_initial_def is not NULL.
7909
7910         (vectorizable_reduction): Remove assert.
7911
7912 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
7913
7914         PR target/23485
7915         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
7916         (__moddi3): Likewise.
7917         (__udivdi3): Likewise.
7918         (__umoddi3): Likewise.
7919         (__divsi3): Likewise.
7920         (__modsi3): Likewise.
7921         (__udivsi3): Likewise.
7922         (__umodsi3): Likewise.
7923
7924 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
7925
7926         * tree-pass.h (TDF_GRAPH): Define.
7927         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
7928         * passes.c (finish_optimization_passes): Only call
7929         finish_graph_dump_file if TDF_GRAPH is set.
7930         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
7931         NULL.  Set TDF_GRAPH bit.
7932         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
7933
7934 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
7935
7936         * arm.h (arm_stack_offsets): Add locals_base field.
7937         * arm.c (arm_get_frame_offsets): Compute it.
7938         (thumb_compute_initial_elimination offset): Make the Thumb frame
7939         pointer point to the base of the local variables.
7940         (thumb_expand_prologue): Update accordingly.
7941         (thumb_expand_epilogue): Likewise.
7942
7943         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
7944         mode of clobbered scratch to DImode.  Handle a case that's known to
7945         need this.
7946
7947 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
7948
7949         * config/rs6000/rs6000.md (gt0<mode>): Delete.
7950         (gt0<mode>_compare): Delete.
7951         (neg_gt0<mode>): Delete.
7952
7953 2005-08-19  Eric Christopher  <echristo@apple.com>
7954
7955         * optabs.h: Change CTI_ to COI_.
7956         * optabs.c: Ditto.
7957
7958 2005-08-19  James E Wilson  <wilson@specifix.com>
7959
7960         * builtins.c (expand_builtin_return_addr): Set
7961         current_function_accesses_prior_frames when count != 0.  Use
7962         frame_pointer_rtx when count == 0.
7963         * function.h (struct function): Add accesses_prior_frames field.
7964         (current_function_accesses_prior_frames): Define.
7965         * reload1.c (init_elim_table): Check
7966         current_function_accesses_prior_frames.
7967         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
7968
7969 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
7970
7971         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
7972         indicator.  Return true if the flowgraph changed during
7973         cleanup.
7974
7975 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
7976
7977         PR 23476
7978         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
7979         conditional expression before testing its value.
7980
7981 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
7982
7983         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
7984
7985 2005-08-19  Devang Patel  <dpatel@apple.com>
7986
7987         PR tree-optimization/23048
7988         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
7989         third parameter. Check whether latch is dominated by exit
7990         block or not.
7991         (if_convertible_loop_p): Supply exit block itself to
7992         if_convertible_bb_p.
7993
7994 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
7995
7996         PR target/23473
7997         * arm.md (arm_load_pic_register): Change argument to the mask of
7998         saved registers.  Call thumb_find_work_register if we need a
7999         scratch register on Thumb.
8000         (arm_expand_prologue): Pass empty register set to
8001         arm_load_pic_register.
8002         (thumb_expand_prologue): Pass live_regs_mask directly to
8003         arm_load_pic_register.
8004         * arm-protos.h (arm_load_pic_register): Update prototype.
8005
8006 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
8007
8008         * sh.c (find_sole_member): New function.
8009         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
8010         if the record's alignment is larger than the size of its only member.
8011
8012 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8013
8014         PR target/23436
8015         * arm.c (thumb_legitimize_reload_address): New function.
8016         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
8017         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
8018
8019 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
8020
8021         * config/crx/crx.c: Implement crx_decompose_address. Reject
8022         symbolic displacements since CRX register relative adressing
8023         mode can't handle unsigned 32-bit values as displacements.
8024         * config/crx/crx.h: Simplify definitions, remove redundant
8025         parenthesis and obsolete macros.
8026         * config/crx/crx.opt: Add new switch for debugging addresses.
8027         * config/crx/crx-protos.h: Add new declarations for above.
8028
8029 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
8030
8031         PR middle-end/20624
8032         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
8033         looking past it.
8034
8035 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8036
8037         * collect2.c (dup2): Delete.
8038         * configure.ac: Don't check for dup2.
8039
8040         * config.in, configure: Regenerate.
8041
8042 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
8043
8044         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
8045         record with the type of its only member.
8046
8047 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
8048
8049         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
8050         define_insn_and_split.
8051         (plus_ltu<mode>_compare): Same.
8052         (gtu<mode>_compare): Same.
8053         (plus_gtu<mode>_compare): Same.
8054
8055 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
8056
8057         PR tree-optimization/22228
8058         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
8059         todo_flags_start.
8060         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
8061         are recorded in vect_vnames_to_rename for renaming.
8062         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
8063         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
8064         in vect_vnames_to_rename.
8065         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
8066         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
8067
8068 2005-08-18  Jan Hubicka  <jh@suse.cz>
8069
8070         PR c++/22034
8071         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
8072         info only for local statics, not for member variables.
8073
8074 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8075
8076         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
8077
8078 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8079
8080         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
8081
8082 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
8083
8084         PR middle-end/16045
8085         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
8086
8087 2005-08-17  James E Wilson  <wilson@specifix.com>
8088
8089         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8090         array size check.
8091
8092 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
8093
8094         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
8095         (leu<mode>_compare): Same.
8096         (plus_leu<mode>): Same.
8097         (neg_leu<mode>): Same.
8098         (and_neg_leu<mode): Same.
8099         (ltu<mode>_compare): Same.
8100         (plus_ltu<mode>): Same.
8101         (geu<mode>): Same.
8102         (geu<mode>_compare): Same.
8103         (plus_geu<mode>): Same.
8104         (neg_geu<mode>): Same.
8105         (and_neg_geu<mode>): Same.
8106         (plus_gt<mode>): Same.
8107         (gtu<mode>_compare): Same.
8108         (plus_gtu<mode>): Same.
8109
8110 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
8111
8112         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
8113         Move call_table_data to end.  Delete spurious .text.
8114         (callt_save_all_interrupt): Fix comment typo.
8115
8116 2005-08-17  James E Wilson  <wilson@specifix.com>
8117             Kevin Winchester  <winchester@amirix.com>
8118
8119         PR target/21684
8120         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
8121
8122 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
8123
8124         PR target/23268
8125         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
8126         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
8127
8128 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
8129
8130         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
8131         record with the type of its only member if the modes don't match.
8132
8133         * varasm.c (decode_reg_name): Skip empty additional register names.
8134
8135 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
8136
8137         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
8138         lsm_tmp_name_length): New.
8139         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
8140         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
8141
8142 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8143             Andreas Krebbel  <krebbel1@de.ibm.com>
8144
8145         * config.gcc: Added z9-109 switch.
8146         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
8147         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
8148         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
8149         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
8150         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
8151         for "z9_109" cpu attribute.
8152         * config/s390/s390.c (z9_109_cost): New processor cost structure.
8153         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
8154         (s390_handle_arch_option): Added z9-109 switch.
8155         (override_options): Set respective cost function for z9-109.
8156         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
8157         (legitimate_reload_constant_p): Accept extended immediates.
8158         (print_operand): Three new output modifiers added: k, m and o.
8159         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
8160         (s390_output_mi_thunk): Use extended immediate when possible.
8161         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
8162         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
8163         (CONSTRAINT_LEN): Added length of O constraint.
8164         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
8165         * config/s390/s390.md ("cpu"): New value z9_109 added.
8166         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
8167         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
8168         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
8169         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
8170         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
8171         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
8172         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
8173         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
8174         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
8175         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
8176         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
8177         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
8178         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
8179         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
8180         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
8181         immediates.
8182         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
8183         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
8184         insns for TARGET_EXTIMM.
8185
8186 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8187
8188         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
8189
8190 2005-08-17  Nick Clifton  <nickc@redhat.com>
8191
8192         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
8193         Call default_encode_section_info.
8194
8195 2005-08-17  Steven Bosscher  <stevenb@suse.de>
8196
8197         PR tree-optimization/21574
8198         * tree-ssa-ccp.c (likely_value): If the right hand side is a
8199         constant, return CONSTANT.
8200         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
8201         (ccp_fold, visit_assignment): Likewise.
8202         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
8203
8204 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8205
8206         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
8207         fold_buildN instead of buildN then fold_initializer or fold.
8208         (build_unary_op): Likewise.
8209         (build_binary_op): Likewise.
8210         * fold-const.c (fold_initializer): Remove.
8211         (fold_build1_initializer): New function.
8212         (fold_build2_initializer): New function.
8213         (fold_build3_initializer): New function.
8214         * tree.h (fold_initializer): Remove.
8215         (fold_build1_initializer): New function.
8216         (fold_build2_initializer): New function.
8217         (fold_build3_initializer): New function.
8218
8219 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8220
8221         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
8222         (try_move_mult_to_index): Call fold_build2 instead of build2.
8223         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
8224         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
8225         fold_binary_to_constant.
8226         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
8227         fold (build.
8228         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
8229         check if A == gcd (A, B).  Remove TYPE argument.
8230         (analyze_offset) Use fold_build2 instead of fold (build.
8231         (create_data_ref): Likewise.
8232         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
8233         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
8234         then fold.
8235
8236 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
8237
8238         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
8239         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
8240
8241 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
8242
8243         PR tree-opt/23402
8244         * gimplify.c (zero_sized_type): New function.
8245         (gimplify_modify_expr_rhs): If we have a zero sized type,
8246         replace the statement with an empty statement.
8247
8248 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
8249
8250         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
8251         fxsave.
8252
8253 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8254
8255         * doc/tm.texi (Label Output): Correct typo.
8256
8257 2005-08-16  Steven Bosscher  <stevenb@suse.de>
8258
8259         PR target/23376
8260         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
8261         force_operand will work later on using have_insn_for.
8262
8263 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8264
8265         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
8266
8267 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8268
8269         PR c++/23337
8270         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
8271         vector type, don't try to construct it element by element.  Add an
8272         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
8273
8274 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8275
8276         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
8277
8278 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
8279
8280         * doc/invoke.texi (Precompiled Headers): Document some more options
8281         which are known to be safe.
8282
8283 2005-08-16  James E Wilson  <wilson@specifix.com>
8284
8285         PR tree-optimization/21105
8286         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8287         TREE_OVERFLOW check.
8288
8289 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
8290
8291         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
8292         (neg_ltu<mode>): Same.
8293         (gtu<mode>): Same.
8294         (neg_gtu<mode>): Same.
8295
8296 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8297
8298         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
8299         (fold_builtin_isdigit): Use fold_buildN.
8300         (build_function_call_expr): Likewise.
8301         * c-typeck.c (c_finish_loop): Likewise.
8302
8303 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
8304             Richard Shann <rshann@superh.com>
8305
8306         PR middle-end/20396:
8307         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
8308
8309 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
8310
8311         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
8312
8313 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
8314
8315         PR target/23355
8316         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
8317         arm_compure_save_reg0_reg12_mask to determine when the PIC register
8318         must be saved.
8319
8320 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8321
8322         PR middle-end/23369
8323         * fold-const.c (build_range_check): Disable optimization for function
8324         pointer expressions on targets that require function pointer
8325         canonicalization.
8326
8327 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
8328
8329         * simplify-rtx.c (simplify_const_relational_operation): When
8330         extracting arguments of a COMPARE, recompute the mode as well.
8331
8332 2005-08-15  Ian Lance Taylor  <ian@airs.com>
8333
8334         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
8335
8336 2005-08-15  DJ Delorie  <dj@redhat.com>
8337
8338         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
8339         the stack.
8340         (movsi_splittable): Allow, but split, moves to the stack.
8341         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
8342         stack.
8343
8344 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8345
8346         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
8347         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
8348         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
8349
8350         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
8351         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
8352         Delete HOST_PTR_PRINTF.
8353
8354         * configure, config.in: Regenerate.
8355
8356 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
8357
8358         * config/rs6000/rs6000.md (QHSI): New mode macro.
8359         (wd): Extend mode attr for QImode and HImode
8360         (dbits): New mode attr.
8361         (zero_extend<mode>di2): Convert to mode macro.
8362
8363 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
8364
8365         PR target/21841
8366         * doc/invoke.texi (-mgnu-ld): Update description.
8367         (-mhp-ld): Ditto.
8368
8369 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8370
8371         PR 23391
8372         * Makefile.in (tree-chrec.o): Depends on real.h.
8373         * tree-chrec.c: Include real.h.
8374         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
8375         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
8376         * tree-scalar-evolution.c (add_to_evolution_1,
8377         interpret_rhs_modify_expr): Ditto.
8378
8379 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8380
8381         PR 23386
8382         * tree-data-ref.c (estimate_niter_from_size_of_data): When
8383         step is negative compute the estimation from init downwards to zero.
8384
8385 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
8386
8387         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
8388
8389 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8390
8391         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
8392         constraint.
8393         (legitimate_reload_constant_p): Fix handling of lliXX operands.
8394         Accept double-word constants that can be split.
8395         * config/s390/s390.md ("movti"): Use 'P' constraint.
8396         ("*movdi_31", "*movdf_31"): Likewise.
8397
8398 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
8399
8400         Fix PR tree-optimization/22615
8401
8402         * tree-ssa-structalias.c (solution_set_add): Handle
8403         first_vi_for_offset returning NULL.
8404         (do_da_constraint): Ditto.
8405         (do_sd_constraint): Ditto.
8406         (do_ds_constraint): Ditto
8407         (find_func_aliases): Ditto.
8408         (build_constraint_graph): RHS is allowed be ANYTHING.
8409         (first_vi_for_offset): Return NULL if we couldn't find anything at
8410         the offset.
8411
8412 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8413
8414         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
8415         over memory as first operand.
8416
8417 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
8418
8419         PR target/23360
8420         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
8421         available for setting it.
8422
8423 2005-08-14  Ira Rosen  <irar@il.ibm.com>
8424
8425         PR tree-optimization/23320
8426         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
8427         data-refs' types instead of base object nullness. Add check for
8428         pointer type data-refs before first location comparison. Remove
8429         assert.
8430
8431 2005-08-14  Andreas Schwab  <schwab@suse.de>
8432
8433         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
8434
8435 2005-08-13  James E Wilson  <wilson@specifix.com>
8436
8437         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
8438         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
8439         -fstack-protector-all, --param ssp-buffer-size): Document.
8440         (-Wvariadic-macros): Alphabetize.
8441         (-fsched-stalled-insns-dep): Add missing 'f'.
8442
8443         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
8444         macros.
8445
8446 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
8447
8448         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
8449         or indirect address operand.
8450         (EXTRA_ADDRESS_CONSTRAINT): New.
8451         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
8452
8453 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
8454
8455         PR tree-optimization/22236
8456         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
8457         successors and predecessors.
8458         * tree-chrec.c (chrec_convert): Before converting, check that
8459         sequences don't wrap.
8460         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
8461         (analyze_array): Extern.
8462         (find_data_references_in_loop): Remove call to
8463         compute_estimated_nb_iterations.
8464         * tree-data-ref.h (analyze_array): Declared.
8465         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
8466         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
8467         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
8468         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
8469         condition.
8470         * tree-ssa-loop-ivcanon.c: Fix documentation.
8471         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
8472         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
8473         (infer_loop_bounds_from_undefined): New.
8474         (estimate_numbers_of_iterations_loop): Use
8475         infer_loop_bounds_from_undefined.
8476         (used_in_pointer_arithmetic_p): New.
8477         (scev_probably_wraps_p): Pass an extra parameter.  Call
8478         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
8479         (convert_step): Fix documentation.
8480         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
8481         Use initial_condition_in_loop_num and evolution_part_in_loop_num
8482         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
8483         scev_probably_wraps_p.
8484
8485 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
8486
8487         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
8488         (s390_register_info): Ignore clobbered_regs information for fixed
8489         registers, and only fixed registers.
8490         (s390_init_frame_layout): Remove redundant call.
8491
8492 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
8493
8494         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
8495         description of -Wold-style-casts.
8496
8497 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8498             Jakub Jelinek  <jakub@redhat.com>
8499
8500         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8501         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
8502         * config/s390/s390.c (print_operand): New output modifier 'G' added.
8503         (get_thread_pointer): Renamed to s390_get_thread_pointer.
8504         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
8505         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
8506         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
8507         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
8508         ("stack_protect_set", "stack_protect_test"): New expanders.
8509         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
8510         "stack_protect_testdi"): New insn definitions.
8511
8512 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8513
8514         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
8515
8516 2005-08-12  Paul Brook  <paul@codesourcery.com>
8517
8518         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
8519
8520 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8521
8522         * config/s390/predicates.md (setmem_operand): New predicate.
8523         (shift_count_operand): Accept ANDs with special constants as
8524         operand.
8525         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
8526         with special constants.
8527         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
8528         shift_count_operand with setmem_operand.
8529
8530 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8531
8532         * config/s390/s390.c (s390_extract_part, s390_single_part):
8533         Type cast added.
8534         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
8535         (s390_output_mi_thunk): Don't use lg on 31 bit.
8536         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
8537         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
8538
8539 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8540
8541         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
8542         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
8543         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
8544         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
8545         with one of the new macros.
8546
8547 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8548
8549         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
8550         Don't set save_return_addr_p.
8551         (s390_register_info): Make clobbered_regs not depending on
8552         save_return_addr_p.
8553
8554 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8555
8556         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
8557         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
8558
8559 2005-08-11  James E. Wilson  <wilson@specifix.com>
8560
8561         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
8562
8563 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
8564
8565         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
8566         locations gathered by var-tracking in single entry loc_list
8567         over loc_descriptor_from_tree.
8568
8569         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
8570         pass it down to loc_descriptor.
8571         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
8572         (containing_function_has_frame_base): Move earlier in the file.
8573         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
8574         instead of always assuming fbreg can't be used.
8575
8576 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
8577
8578         * config/rs6000/altivec.md: Change constraint "m" to "Z".
8579         * config/rs6000/predicates.md (indexed_or_indirect_operand):
8580         Accept address wrapped in AND for Altivec.
8581         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
8582         Strip AND wrapping offset address for Altivec.
8583
8584 2005-08-11  Richard Henderson  <rth@redhat.com>
8585
8586         PR middle-end/23312
8587         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
8588         before using TYPE_IS_SIZETYPE.
8589
8590 2005-08-11  Richard Henderson  <rth@redhat.com>
8591
8592         PR target/22225
8593         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
8594         insn types not present on ev4.
8595         (alphaev5_insn_pipe): Similarly.
8596
8597 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
8598
8599         PR target/23250
8600         * arm.c (arm_override_options): If the user has selected callee-super-
8601         interworking, then enable normal interworking.
8602
8603 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8604
8605         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
8606         redefinition.
8607
8608 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
8609
8610         * doc/rtl.texi: Fix two typos.
8611
8612 2005-08-11  Richard Guenther  <rguenther@suse.de>
8613
8614         PR target/23289
8615         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
8616         cases where we call to/from functions returning void.
8617
8618 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
8619
8620         PR c++/23225
8621         * tree.c (build_pointer_type_for_mode): Robustify.
8622
8623 2005-08-10  James E Wilson  <wilson@specifix.com>
8624
8625         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
8626         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
8627
8628         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
8629         "cum->".
8630
8631 2005-08-10  Eric Christopher  <echristo@apple.com>
8632
8633         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
8634         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
8635         V2DFmode.
8636
8637 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
8638
8639         PR target/21887
8640         * config/darwin.c (machopic_indirect_data_reference): Use a new register
8641         for the high part when generating dynamic-no-pic code.
8642
8643 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8644
8645         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
8646         (x86_64-*-linux*): Likewise.
8647
8648         * config/i386/crtfastmath.c: New file.
8649         * config/i386/t-crtfm: Likewise.
8650
8651         * config/i386/linux.h (ENDFILE_SPEC): New.
8652         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
8653
8654         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
8655         crtfastmath.o.
8656
8657 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
8658
8659         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
8660         (vec_shl, vec_shr): Document new operations.
8661         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
8662
8663 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
8664
8665         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
8666         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
8667         change predicate to indexed_or_indirect_address.
8668
8669 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
8670
8671         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
8672         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
8673         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
8674         and __aeabi_uwrite8.
8675         * config/arm/unaligned-funcs.c: New file.
8676         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
8677
8678 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
8679
8680         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
8681         Add dump.
8682         * cfglayout.c (pass_insn_locators_initialize): Add dump.
8683         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
8684         Add dump.
8685         * except.c (pass_convert_to_eh_region_ranges): Add dump.
8686         * final.c (pass_shorten_branches): Add dump.
8687         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
8688         (pass_life): Rename dump.
8689         (rest_of_handle_flow2): Remove initial verify_flow_info.
8690         * function.c (pass_instantiate_virtual_regs): Add dump.
8691         * integrate.c (pass_initial_value_sets): Add dump.
8692         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
8693         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
8694         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
8695         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
8696         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
8697         gate_rtl_unrool_and_peel_loops): New.
8698         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
8699         rtl_doloop): Do not look at flags.
8700         * mode-switching.c (pass_mode_switching): Add dump.
8701         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
8702         pass_split_before_regstack): Add dump.
8703         * regmove.c (pass_stack_adjustments): Add dump.
8704         * tree-optimize.c (pass_fixup_cfg): Add dump.
8705
8706 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8707
8708         PR 23309
8709         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
8710         deciding which instruction sequence to use.
8711
8712 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
8713
8714         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
8715         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
8716
8717 2005-08-09  Richard Guenther  <rguenther@suse.de>
8718
8719         * c-common.c (builtin_function_2): Remove.
8720         (def_builtin_1): New function.
8721         (c_common_nodes_and_builtins): Use def_builtin_1 to
8722         build builtin functions.
8723
8724 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
8725
8726         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
8727         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
8728         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
8729         Visual DSP.
8730
8731 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
8732
8733         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
8734         fold_binary instead of fold_build2 since we don't care about the
8735         resulting tree.
8736         (loop_niter_by_eval): Likewise.
8737         (compare_trees): Likewise.
8738         (proved_non_wrapping_p): Likewise.
8739
8740 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
8741
8742         PR c/23161
8743         PR c/23165
8744         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
8745         if the if is really empty.
8746
8747 2005-08-09  Steven Bosscher  <stevenb@suse.de>
8748
8749         PR tree-optimization/23234
8750         * tree-ssa-math-opts.c (place_reciprocal): New enum.
8751         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
8752         argument of the new enum.
8753         (execute_cse_reciprocals): Add reciprocals for function arguments
8754         on the unique successor edge of the entry block.  Update other calls
8755         to execute_cse_reciprocals_1.
8756
8757 2005-08-08  Richard Henderson  <rth@redhat.com>
8758
8759         PR 22439
8760         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
8761
8762 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
8763
8764         * expr.c (write_complex_part): Return after handling MEM.
8765
8766 2005-08-08  Josh Conner  <jconner@apple.com>
8767
8768         PR rtl-optimization/23241
8769         * combine.c (simplify_comparison): Fix error in determining
8770         whether to lift a subreg from comparison.
8771
8772 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
8773
8774         PR target/18506
8775         * config/rs6000/altivec.md (vec_init<mode>): New.
8776         (vec_set<mode>): New.
8777         (vec_extract<mode>): New.
8778         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
8779         (rs6000_expand_vector_set): New.
8780         (rs6000_expand_vector_extract): New.
8781         (rs6000_legitimate_offset_address_p): Offset addresses are valid
8782         for Altivec modes before reload.
8783         (altivec_expand_vec_init_builtin): New.
8784         (get_element_number): New.
8785         (altivec_expand_vec_set_builtin): New.
8786         (altivec_expand_vec_ext_builtin): New.
8787         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
8788         builtins.
8789         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
8790         builtins.
8791         * config/rs6000/rs6000.h (rs6000_builtins): Add
8792         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
8793         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
8794         * config/rs6000/rs6000-protos.h: Declare new functions.
8795
8796 2005-08-08  Jan Hubicka  <jh@suse.cz>
8797
8798         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
8799         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
8800         * i386.md (movdi*): Use pic_32bit_operand.
8801         * predicates.md (pic_32bit_operand): New.
8802
8803 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
8804
8805         PR c++/21166
8806         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
8807
8808 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
8809
8810         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
8811         (test_for_singularity): Use fold_build2.
8812
8813 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8814
8815         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
8816
8817 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
8818
8819         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
8820         (COMMON_ASM_OP) Define.
8821         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
8822         (ix86_encode_section_info): Likewise.
8823         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
8824         SUBTARGET_ENCODE_SECTION_INFO.
8825
8826 2005-08-06  Richard Henderson  <rth@redhat.com>
8827
8828         PR 21894
8829         * tree-nested.c (convert_local_reference): Save and restore val_only
8830         around component_ref and friends.  Clear walk_subtrees by default.
8831
8832 2005-08-06  Peter O'Gorman  <peter@pogma.com>
8833
8834         PR 21366
8835         * gcc.c (process_command): Check the argument to -b has a dash.
8836         * doc/invoke.texi: Update -b and -V docs.
8837
8838 2005-08-06  James E Wilson  <wilson@specifix.com>
8839
8840         * config/mips/cross64.h, config/mips/t-cross64: Delete.
8841
8842 2005-08-06  Michael Matz  <matz@suse.de>
8843
8844         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
8845         member only if only one insn is associated with the value.
8846
8847 2005-08-06  Nick Clifton  <nickc@redhat.com>
8848
8849         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
8850         New define.
8851         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
8852         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
8853         Check symbol flags instead of symbol name mangling.
8854         (xstormy16_asm_output_aligned_common): Likewise.  Also
8855         simplify code since the bss100_section cass is the only case
8856         where the below100 code will be triggered.
8857         (xstormy16_encode_section_info): Encode below100 attribute
8858         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
8859         the name.
8860         (xstormy16_strip_name_encoding): Delete - this function is no
8861         longer needed.
8862         (TARGET_STRIP_NAME_ENCODING): Undefine.
8863         * config/stormy16/stormy16-protos.h: Delete prototype for
8864         xstormy16_strip_name_encoding.
8865
8866 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
8867
8868         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
8869         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
8870         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
8871         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
8872         config/alpha/predicates.md, config/arc/arc.h,
8873         config/arm/arm.h, config/arm/ieee754-df.S,
8874         config/arm/ieee754-sf.S, config/bfin/bfin.c,
8875         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
8876         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
8877         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
8878         config/m68hc11/m68hc11.h, config/mips/mips.c,
8879         config/mips/mips.h, config/mips/openbsd.h,
8880         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
8881         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
8882         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
8883         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
8884         config/sparc/linux.h, config/sparc/linux64.h,
8885         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
8886         doc/extend.texi, doc/gcov.texi, doc/install.texi,
8887         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
8888         typos.  Follow spelling conventions.
8889
8890 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
8891
8892         PR c/23113
8893         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
8894         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
8895         specially.  Check for side effects only for COND_EXPR.
8896         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
8897         return with TREE_NO_WARNING.
8898
8899 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
8900
8901         PR rtl-optimization/23233
8902         * loop.c (combine_movables): Require the modes to be the same.
8903         (move_movables): Remove handling of cases where the replacement
8904         had a different mode to the original.
8905
8906 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
8907
8908         PR tree-optimization/23128
8909         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
8910         subtraction wrap, and set TREE_OVERFLOW if they do.
8911
8912 2005-08-05  Richard Henderson  <rth@redhat.com>
8913
8914         PR 21728
8915         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
8916         FORCED_LABEL labels.
8917
8918 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
8919
8920         PR middle-end/23135
8921         * reload.c (find_reloads_subreg_address): Pass down TYPE
8922         unchanged.  Change all callers except find_reloads_toplev.
8923
8924 2005-08-05  Michael Matz  <matz@suse.de>
8925
8926         * genattrtab.c (current_alternative_string): Remove.
8927         (SIMPLIFY_ALTERNATIVE): Ditto.
8928         (attr_alt_bit_p): Ditto.
8929         (alternative_name): Make const char *.
8930         (evaluate_eq_attr): Remove use of above things.
8931         (simplify_test_exp): Ditto.
8932         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
8933         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
8934
8935 2005-08-04  James E Wilson  <wilson@specifix.com>
8936
8937         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
8938         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
8939         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
8940         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
8941         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
8942
8943 2005-08-04  Richard Henderson  <rth@redhat.com>
8944
8945         PR 21529
8946         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
8947         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
8948         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
8949         if we'd have to instantiate too many members.
8950
8951 2005-08-04  Richard Henderson  <rth@redhat.com>
8952
8953         PR 21291
8954         * tree-outof-ssa.c (coalesce_asm_operands): New.
8955         (coalesce_ssa_name): Use it.  Split out ...
8956         (coalesce_phi_operands, coalesce_result_decls): ... these.
8957
8958 2005-08-04  Paul Brook  <paul@codesourcery.com>
8959
8960         * read-rtl.c (read_quoted_string): Break if EOF.
8961
8962 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
8963
8964         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
8965         (fold_build2): Likewise.
8966         (fold_build3): Likewise.
8967         (fold_build1_stat): New function prototype.
8968         (fold_build2_stat): Likewise.
8969         (fold_build3_stat): Likewise.
8970         * fold-const.c (fold_build1): Rename to ..
8971         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
8972         through to build1_stat.
8973         (fold_build2): Rename to ..
8974         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
8975         through to build2_stat.
8976         (fold_build3): Rename to ..
8977         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
8978         through to build3_stat.
8979
8980 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
8981             Ian Lance Taylor  <ian@airs.com>
8982
8983         * function.c (assign_stack_local_1): Do not correct stack slot
8984         address if allocation size is smaller than mode size.
8985
8986 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
8987
8988         PR 22037
8989         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
8990         (tree_merge_blocks): Propagate anything allowed by
8991         may_propagate_copy.
8992         Clarify documentation.
8993         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
8994         SSA form, schedule an update if necessary.
8995
8996 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
8997
8998         * doc/install.texi (Binaries): Remove broken link to
8999         Sinix/Reliant Unix binaries.
9000
9001 2005-08-03  Richard Henderson  <rth@redhat.com>
9002
9003         PR 23221
9004         * function.c (stack_protect_epilogue): Export.
9005         * tree.h (stack_protect_epilogue): Declare.
9006         * calls.c (expand_call): Call it.
9007
9008 2005-08-03  Eric Christopher  <echristo@apple.com>
9009
9010         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
9011         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
9012         spec.
9013
9014 2005-08-04  Jan Hubicka  <jh@suse.cz>
9015
9016         * profile.c (branch_prob): Split edges with goto locus on them
9017         to get proper line counts.
9018         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
9019
9020 2005-08-03  Paul Brook  <paul@codesourcery.com>
9021
9022         * function.c (assign_parms): Round current_function_args_size
9023         to PARM_BOUNDARY, not STACK_BOUNDARY.
9024
9025 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
9026
9027         * config/i386/i386.c (x86_elf_aligned_common)
9028         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
9029
9030 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
9031
9032         PR tree-optimization/23157
9033         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
9034         before emitting them.
9035
9036 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9037
9038         PR tree-optimization/19899
9039         * Makefile.in (tree-scalar-evolution.o): Add real.h.
9040         * tree-scalar-evolution.c: Include real.h.
9041         (add_to_evolution): Build constant -1 of correct type.
9042
9043 2005-08-03  Jan Hubicka  <jh@suse.cz>
9044
9045         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
9046         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
9047         profile updating for complette unrolling.
9048         * loop-unroll.c (peel_loop_completely): Use it.
9049         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
9050         (tree_unroll_loops_completely): Disable code growing unrolling of cold
9051         loops.
9052
9053 2005-08-03  Paul Brook  <paul@codesourcery.com>
9054
9055         * combine.c (can_change_dest_mode): New function.
9056         (try_combine, simplify_set): Use it.
9057
9058 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
9059
9060         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
9061         TFmode to BLKmode.
9062
9063 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
9064
9065         * doc/install.texi (Specific): Adjust link to openavr.org.
9066         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
9067         (Binaries): Adjust HP-UX Porting Center link.
9068         (Binaries): Adjust Free Software Foundation ordering link.
9069
9070 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
9071
9072         * convert.c (convert_to_integer): Use fold_build1 instead of
9073         build1 when converting an integer to an integer.
9074
9075 2005-08-02  Richard Henderson  <rth@redhat.com>
9076
9077         * combine.c (combine_instructions): Don't use reg_equal/equiv
9078         results if the mode doesn't match.
9079
9080 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
9081
9082         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
9083         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
9084
9085 2005-08-02  Richard Henderson  <rth@redhat.com>
9086
9087         PR 23196
9088         * explow.c (memory_address): Remove special-case for
9089         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
9090
9091 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
9092
9093         PR 23164
9094         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
9095         number of calls to cleanup_tree_cfg_1.
9096
9097 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
9098
9099         * doc/invoke.texi: document file extensions .F90 and .F95
9100
9101 2005-08-02  Richard Guenther  <rguenther@suse.de>
9102
9103         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
9104         positive if its first argument is positive.
9105
9106 2005-08-02  Richard Guenther  <rguenther@suse.de>
9107
9108         PR tree-optimization/23177
9109         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
9110         on TMR_TAG.
9111
9112 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
9113
9114         PR tree-optimization/23129
9115         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
9116         varying for divisions with anti-ranges.
9117
9118 2005-08-02  Jan Hubicka  <jh@suse.cz>
9119
9120         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
9121         * tree-ssa-threadupdate.c (thread_block): Add it here.
9122
9123 2005-08-01  James E Wilson  <wilson@specifix.com>
9124
9125         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
9126         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
9127         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
9128         New.
9129         * config/mips/predicates.md (const_call_insn_operand): Add check for
9130         SYMBOL_REF_LONG_CALL_P.
9131         * doc/extend.texi (long_call): Document the new attribute.
9132
9133 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9134             Richard Henderson  <rth@redhat.com>
9135
9136         * Makefile.in (RTL_BASE_H): Add real.h.
9137         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
9138         instead of memcpy.
9139         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
9140         directly.
9141         * rtl.c (rtl_check_failed_code_mode): New.
9142         * rtl.h (struct rtx_def): Add u.rv.
9143         (XCMWINT, XCNMPRV): New.
9144         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
9145         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
9146
9147 2005-08-01  Richard Henderson  <rth@redhat.com>
9148
9149         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
9150         with auto-inc codes.
9151
9152         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
9153
9154 2005-08-01  Jan Hubicka  <jh@suse.cz>
9155
9156         * i386-protos.h (asm_preferred_eh_data_format): Declare.
9157         * i386.c: Include dwarf2.h
9158         (asm_preferred_eh_data_format): New.
9159         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
9160
9161 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9162
9163         * config/host-linux.c (linux_gt_pch_get_address): Add new name
9164         randomize_va_space for virtual address randomization control.
9165
9166 2005-08-01  Steven Bosscher  <stevenb@suse.de>
9167
9168         * common.opt (flag_ipa_cp): Put in right place to maintain
9169         alphabetic sort.
9170
9171 2005-08-01  Jan Hubicka  <jh@suse.cz>
9172
9173         * profile.c (compute_value_histograms): Fix thinko.
9174         * value-prof.c: Include toplev.h
9175         (check_counter): New function.
9176         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9177         tree_mod_subtract_transform): Add sanity check.
9178
9179 2005-08-01  Richard Guenther  <rguenther@suse.de>
9180
9181         PR tree-optimization/23133
9182         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
9183         current functions parameter decls to find defs to cse
9184         reciprocals of.
9185
9186 2005-08-01  Richard Guenther  <rguenther@suse.de>
9187
9188         PR tree-optimization/23109
9189         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
9190         If trapping math is in effect, use post-dominator information
9191         to check if we'd in any case reach a trapping point before
9192         doing the reciprocal insertion.
9193         (execute_cse_reciprocals): Compute post-dominators, if necessary.
9194         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
9195         expressions are invariant only if trapping math is not in effect.
9196
9197 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9198
9199         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
9200         cgraph_function_versioning): New declarations.
9201         * cgraphunit.c: Add include to ipa-prop.h.
9202         (update_call_expr, cgraph_copy_node_for_versioning,
9203         cgraph_function_versioning): New functions.
9204         * integrate.c (copy_decl_for_inlining): Remove.
9205         * ipa-prop.h (ipa_replace_map): New struct.
9206         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
9207         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
9208         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
9209         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
9210         ipcp_iterate_stage, ipcp_method_scale_print,
9211         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
9212         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
9213         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
9214         ipcp_update_bb_counts, ipcp_update_profiling,
9215         ipcp_update_edges_counts): New functions.
9216         (ipcp_method_cval_init): Remove restriction regarding local methods.
9217         (ipcp_init_stage): Add ipcp_method_compute_scale.
9218         (ipcp_insert_stage): Add versioning.
9219         (ipcp_structures_print): Add ipcp_method_scale_print.
9220         (ipcp_driver): Dump profiling info.
9221         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
9222         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
9223         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
9224         (struct inline_data): Add versioning_p, ipa_info, new fields.
9225         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
9226         declare_return_variable): Replace calls to copy_decl_for_inlining with
9227         copy_decl_for_dup.
9228         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
9229         versioning support.
9230         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
9231         Add argument VERSIONING.
9232         (copy_arguments_for_versioning, copy_static_chain,
9233         function_versionable_p, tree_versionable_function_p,
9234         tree_function_versioning, replace_ref_tree): New functions.
9235         * tree-inline.h: Include varray.h.
9236         (tree_versionable_function_p,  tree_function_versioning,
9237         tree copy_decl_for_dup): New declarations.
9238
9239 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9240
9241         * ipa-cp.c: New file. Contains IPCP specific functionality.
9242         * ipa-prop.h: New file. Contains structures/definitions that can be
9243         used by several interprocedural data flow optimizations (and also IPCP).
9244         * ipa-prop.c: New file.
9245         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
9246         * common.opt: Add ipa-cp flag.
9247         * timevar.def: Add IPCP optimization.
9248         * tree-optimize.c (init_tree_optimization_passes): Schedule
9249         pass_ipa_cp.
9250         * tree-pass.h (pass_ipa_cp): Declare.
9251
9252 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
9253
9254         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
9255         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
9256         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
9257         config/i386/i386.c, config/mips/mips.h,
9258         config/rs6000/rs6000.h, config/sh/sh.c,
9259         config/stormy16/stormy16.c: Fix comment typos.
9260
9261 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
9262
9263         PR c/22311
9264         * c-typeck.c (build_binary_op): Use common_type wrapper on
9265         shortened types.
9266         (common_type): Update comment.
9267
9268 2005-07-31  Steven Bosscher  <stevenb@suse.de>
9269
9270         PR target/23095
9271         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
9272         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
9273         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
9274
9275 2005-07-31  Jan Hubicka  <jh@suse.cz>
9276
9277         * pretty-print.h (pp_widest_integer): New macro.
9278         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
9279         counts.
9280
9281 2005-07-31  Jan Hubicka  <jh@suse.cz>
9282
9283         * output.h (enum section_category): Export from varasm.c
9284         (categorize_decl_for_section): Likewise.
9285         * varasm.c (enum section_category): Kill.
9286         (categorize_decl_for_section): Make global.
9287         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
9288         Declare.
9289         * i386.c (ix86_section_threshold): New static variable.
9290         (ix86_in_large_data_p, ix86_encode_section_info,
9291         x86_64_elf_unique_section,
9292         x86_64_elf_select_section): New functions.
9293         (TARGET_ENCODE_SECTION_INFO): Define
9294         (override_options): Enable medium model for PIC.
9295         (ix86_expand_prologue): Expand gen_set_got_rex64.
9296         (legitimate_constant_p): Handle new UNSPECs.
9297         (legitimate_pic_address_disp_p): Likewise.
9298         (legitimize_pic_address): Lower MEDIUM model addressing.
9299         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
9300         (enum cmodel): Add MEDIUM_PIC.
9301         (SYMBOL_REF_FAR_ADDR_P): New macro.
9302         (SYMBOL_FLAG_FAR_ADDR): New flag.
9303         * i386.md (movdi): Support medium model.
9304         (set_got_rex64): New pattern.
9305         * i386.opt (mlarge-data-threshold): New flag.
9306         * predicates.md (zext_operand/sext_operand): Deal with medium model.
9307         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
9308         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
9309         TARGET_ASM_UNIQUE_SECTION): New.
9310
9311         * invoke.texi (-mlarge_data_threshold): Document
9312
9313 2005-07-31  Jan Hubicka  <jh@suse.cz>
9314
9315         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
9316         (coalesce_vars): Likewise.
9317         * tree-ssa-live.c (coalesce_cost): New.
9318         (build_tree_conflict_graph): Use coalesce_cost.
9319         * tree-ssa-live.h (coalesce_cost): Declare.
9320
9321 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
9322
9323         * arm.md (all peepholes for post-increment operations): Delete.
9324         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
9325         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
9326         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
9327         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
9328         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
9329
9330 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
9331
9332         * fold-const.c (tree_expr_nonnegative_p): Always return true for
9333         non-integral types.
9334
9335 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
9336
9337         PR target/22582
9338         * doc/invoke.texi: Document -rdynamic.
9339
9340 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
9341
9342         PR c/23143
9343         * c-parser.c (c_parser_parms_list_declarator): Call
9344         mark_forward_parm_decls.
9345         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
9346         decls with visibility structure.
9347
9348 2005-07-30  Paul Brook  <paul@codesourcery.com>
9349
9350         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
9351
9352 2005-07-30  Paul Brook  <paul@codesourcery.com>
9353
9354         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9355         prototype.
9356         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
9357         value for mode.
9358         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
9359
9360 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9361
9362         PR c/529
9363         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
9364         nested function declarators.
9365         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
9366         (grokparms): Call warn_if_shadowing for parameters used within the
9367         parameter list.
9368         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
9369         not used within the parameter list.
9370         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
9371
9372 2005-07-30  Jan Hubicka  <jh@suse.cz>
9373
9374         * expr.c (expand_expr_real_1): Do not load mem targets into register.
9375         * i386.c (ix86_fixup_binary_operands): Likewise.
9376         (ix86_expand_unary_operator): Likewise.
9377         (ix86_expand_fp_absneg_operator): Likewise.
9378         * optabs.c (expand_vec_cond_expr): Validate dest.
9379
9380 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9381
9382         PR c/21720
9383         * real.c (real_from_string): Also set last bit if there is a
9384         nonzero hex digit beyond GCC's internal precision after ".".
9385
9386 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
9387
9388         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
9389         define_constants.  Change duplicate values to unassigned numbers.
9390         Change UNSPEC_SUBS to UNSPEC_VSUBS.
9391         (*altivec_vspltsf): New.
9392         (altivec_vperm_v4sf): Delete.
9393         (altivec_vperm_<mode>): Use mode macro V.
9394         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
9395         (altivec_predicate_v4sf): Delete.
9396         (altivec_predicate_<mode>): Use mode macro V.
9397         (*altivec_lvesfx): New.
9398         (*altivec_stvesfx): New.
9399         (vec_realign_load_v4sf): Delete.
9400         (vec_realign_load_<mode>): Use mode macro V.
9401         * config/rs6000/rs6000.c (generate_set_vrsave): Use
9402         UNSPECV_SET_VRSAVE.
9403
9404 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
9405
9406         PR bootstrap/23131
9407         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
9408         string.
9409         * configure: Regenerated.
9410
9411 2005-07-29  Paul Brook  <paul@codesourcery.com>
9412
9413         * doc/install.texi: Add link to GFortran binaries wiki page.
9414
9415 2005-07-29  David Ung  <davidu@mips.com>
9416
9417         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
9418         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
9419         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
9420         * config/mips/mips.md (cpu): Add 5kf name.
9421         (includes): Includes 5k.md.
9422         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
9423         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
9424         -march flag.
9425
9426 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9427
9428         PR 22550
9429         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
9430         (cleanup_tree_cfg): ... here.
9431         Call cleanup_tree_cfg_1 until there are no more cleanups to
9432         do.
9433
9434 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
9435
9436         * tree-vrp.c (compare_range_with_value): Return true or false
9437         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
9438         EQ_EXPR respectively.
9439
9440 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
9441
9442         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
9443         Fix comment typos.
9444
9445 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9446
9447         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
9448         (tree_ssa_dominator_optimize): Increment it.
9449         (dump_dominator_optimization_stats): Print it.
9450
9451 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
9452             Steven Bosscher  <stevenb@suse.de>
9453
9454         PR rtl-optimization/23117
9455         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
9456         when head == tail.  Tidy comment.
9457
9458 2005-07-28  Richard Henderson  <rth@redhat.com>
9459
9460         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
9461         * cselib.c (rtx_equal_for_cselib_p): Likewise.
9462         * jump.c (rtx_renumbered_equal_p): Likewise.
9463         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
9464         CONST_INT and CONST_DOUBLE.
9465         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
9466         * reload.c (operands_match_p): Special case CONST_INT and
9467         CONST_DOUBLE; check mode earlier.
9468
9469 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9470
9471         PR c/22240
9472         * c-typeck.c (convert_for_assignment): Do not check
9473         DECL_IN_SYSTEM_HEADER on NULL fundecl.
9474
9475 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9476
9477         PR c/22192
9478         * c-typeck.c (composite_type): Prefer constant size arrays to
9479         VLAs.
9480
9481 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9482
9483         PR c/21720
9484         * real.c (real_from_string): Set last bit if there is a nonzero
9485         hex digit beyond GCC's internal precision.
9486
9487 2005-07-28  Richard Henderson  <rth@redhat.com>
9488
9489         PR rtl-opt/22619
9490         * cfgcleanup.c (try_forward_edges): Watch out for end of
9491         insn chain.
9492
9493 2005-07-28  James E Wilson  <wilson@specifixinc.com>
9494
9495         PR c/23106
9496         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
9497
9498 2005-07-28  Jan Hubicka  <jh@suse.cz>
9499
9500         * Makefile.in (rtl-profile.o): Kill all traces of it.
9501         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
9502         * coverage.h (rtl_coverage_counter_ref): Kill.
9503         * opts.c (flag_speculative_prefetching_set): Kill.
9504         (flag_loop_optimize_set): New.
9505         (common_handle_option): Disable loop optimizer when profiling;
9506         do not handle speculative prefetching.
9507         * passes.c (init_optimization_passes): Replace pass_profiling combo
9508         by branch_prob pass.
9509         * profile.c (compute_value_histograms): Update for simplified value
9510         profiles.
9511         (rtl_register_profile_hooks): Kill.
9512         (pass_profiling): Kill.
9513         (rest_of_handle_branch_prob): Do not profile.
9514         * toplev.c (process_options): Remove speculative prefetching.
9515         * toplev.h (flag_tree_based_profiling): Kill.
9516         * tree-profile.c (prepare_instrumented_value,
9517         tree_gen_interval_profiler, tree_gen_pow2_profiler,
9518         tree_gen_one_value_profiler, do_tree_profiling): Update for
9519         simplified datastructures.
9520         * value-prof.c: Add comment that speculative prefetching was dropped;
9521         update rest of file for simplified datastructures.
9522         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
9523         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
9524         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
9525         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
9526         rtl_mod_subtract, gen_speculative_prefetch,
9527         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
9528         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
9529         (gate_handle_value_profile_transformations,
9530         rest_of_handle_value_profile_transformations,
9531         pass_value_profile_transformations): Kill.
9532         * value-prof.h (histogram_value_t): Remove IL based unions.
9533         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
9534         rtl_profile_hooks): Remove hooks.
9535
9536         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
9537
9538         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
9539         (cgraph_clone_node): Likewise.
9540         * cgraph.h (cgraph_clone_edge): Update prototype.
9541         (cgraph_clone_node): Likewise.
9542         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
9543         cgraph_clone_node.
9544         (lookup_recursive_calls): Consider profile.
9545         (cgraph_decide_recursive_inlining): Fix updating; use new
9546         probability argument; use profile.
9547         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
9548         * tree-inline.c (copy_bb): Update clal of clone_edge.
9549         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
9550
9551         * invoke.texi (min-inline-recursive-probability): Document.
9552
9553 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
9554
9555         * doc/install.texi (Configuration): Update Valgrind homepage.
9556
9557 2005-07-28  Richard Henderson  <rth@redhat.com>
9558
9559         PR middle-end/21362
9560         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
9561         labels we want to delete.
9562         (cfg_layout_merge_blocks): Likewise.
9563
9564 2005-07-28  Richard Henderson  <rth@redhat.com>
9565
9566         PR target/17692
9567         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
9568         when expanding to nothing.
9569
9570 2005-07-28  Josh Conner  <jconner@apple.com>
9571
9572         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
9573         (cgraph_decide_inlining_of_small_functions): Likewise.
9574
9575 2005-07-28  Josh Conner  <jconner@apple.com>
9576
9577         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
9578         direction of badness if negative.
9579         (cgraph_default_inline_p): Add reason to parameters, and assign it
9580         a value.
9581         (cgraph_decide_inlining_of_small_functions): New parameter in call
9582         to cgraph_default_inline_p.
9583         (cgraph_decide_inlining_incrementally): Likewise.
9584         * cgraphunit.c (decide_is_function_needed): Likewise.
9585         * cgraph.h (cgraph_default_inline_p): Likewise.
9586
9587 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9588
9589         * builtins.c: Fix comment typo(s).
9590         * genautomata.c: Likewise.
9591         * gimplify.c: Likewise.
9592         * tree-dfa.c: Likewise.
9593         * tree-flow-inline.h: Likewise.
9594         * tree-into-ssa.c: Likewise.
9595         * tree-ssa-alias.c: Likewise.
9596         * tree-ssa-ccp.c: Likewise.
9597         * tree-ssa-copy.c: Likewise.
9598         * tree-ssa-dce.c: Likewise.
9599         * tree-ssa-dom.c: Likewise.
9600         * tree-ssa-operands.c: Likewise.
9601         * tree-tailcall.c: Likewise.
9602         * tree-vectorizer.c: Likewise.
9603         * tree-vrp.c: Likewise.
9604         * tree.c: Likewise.
9605
9606 2005-07-28  Jeff Law  <law@redhat.com>
9607
9608         * tree-vrp.c (test_for_singularity): Extracted from  ...
9609         (simplify_cond_using_ranges): Attempt to simplify a relational
9610         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
9611
9612 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
9613
9614         PR tree-optimization/22506
9615         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
9616         phis whose argument is constant.
9617
9618 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
9619
9620         PR rtl-optimization/18992
9621         Back out this patch:
9622           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9623           PR optimization/12142
9624           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
9625           uses of the register in the SET_SRC.  Remove unnecessary argument.
9626
9627         Replace it with this:
9628         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
9629         if flag_non_call_exceptions is set and the insn may trap, pass
9630         pc_rtx as dest for recursion.
9631         In SET_SRC part of SET case, if dest is already set, pass it down
9632         unchanged.
9633
9634 2005-07-28  Jan Hubicka  <jh@suse.cz>
9635
9636         * cfg.c (update_bb_profile_for_threading): Use RDIV.
9637         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
9638         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
9639         roundoff errors.
9640         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
9641         profile when available.
9642
9643 2005-07-28  Jan Beulich <jbeulich@novell.com>
9644
9645         * config/ia64/ia64.c (ia64_load_pair_ok): New.
9646         (ia64_print_operand): Describe and handle 'X'.
9647         (ia64_register_move_cost): Also handle FP_REGS.
9648         (ia64_preferred_reload_class): Likewise.
9649         (ia64_secondary_reload_class): Likewise.
9650         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
9651         it. Also check for ITANIUM_CLASS_FLDP.
9652         * config/ia64/ia64.h (FP_REGNO_P): New.
9653         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
9654         (reg_class): Add FP_REGS.
9655         (REG_CLASS_NAMES): Adjust for it.
9656         (REG_CLASS_CONTENTS): Likewise.
9657         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
9658         (REG_CLASS_FROM_LETTER): Handle 'x'.
9659         (CLASS_MAX_NREGS): Handle FP_REGS.
9660         (MEMORY_MOVE_COST): Likewise.
9661         * config/ia64/ia64.md (itanium_class): Add fldp.
9662         (type): Handle fldp.
9663         (movti_internal): More allowable operand combinations. Use ldfp8 when
9664         splitting unnecessary. Remove predicable attribute. Adjust
9665         itanium_class attribute.
9666         (smuldi3_highpart): Remove outdated comment.
9667         (mulditi3, umulditi3, rotlti3): New expanders.
9668         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
9669         (absti2): Disabled new insn for future reference.
9670         Respective new splitters.
9671         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
9672         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
9673         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
9674
9675 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
9676
9677         PR rtl-optimization/23047
9678         * simplify-rtx.c (simplify_const_relational_operation): Respect
9679         flag_wrapv for comparisons with ABS.
9680
9681 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
9682
9683         PR tree-optimization/22493
9684         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
9685         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
9686
9687 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
9688
9689         * config/frv/frv.opt (moptimize-membar): New.
9690
9691         * doc/invoke.texi: Document -moptimize-membar and its inverse.
9692
9693         * config/frv/frv.h: Remove machine_function definition.
9694
9695         * config/frv/frv.c (struct frv_io): New.
9696         (struct machine_function): Moved from frv.h.  Add has_membar_p.
9697         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
9698         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
9699         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
9700         (frv_optimize_membar_global, frv_optimize_membar): New functions.
9701         (frv_reorg): Call frv_optimize_membar when appropriate.
9702         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
9703         (frv_expand_builtin): Adjust calls accordingly.
9704         (frv_io_address_cookie): New function.
9705         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
9706         load or store rather than a special insn.  Add ccnstant address and
9707         io-type operands to the membar.
9708         (frv_ifcvt_modify_tests): Unsign regno.
9709         (frv_ifcvt_modify_tests): Same.
9710
9711         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
9712         UNSPEC_OPTIONAL_MEMBAR constant.
9713         (builtin_read_<mode>): Delete.
9714         (builtin_write_<mode>): Delete.
9715         ("optional_membar_<mode>"): Add operand.
9716
9717         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
9718         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
9719         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
9720         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
9721         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
9722         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
9723         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
9724         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
9725         * testsuite/gcc.target/frv/all-read-write-1.c: New.
9726
9727 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9728
9729         * df.c (df_uses_record): Handle SCRATCH.
9730
9731 2005-07-28  Steven Bosscher  <stevenb@suse.de>
9732
9733         PR debug/20161
9734         * passes.c (rest_of_decl_compilation): If decl is a type and
9735         we have encountered errors, don't emit debug information.
9736
9737 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
9738
9739         * params.def: Fixed comment.
9740
9741 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
9742
9743         PR target/19885
9744         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
9745         (TARGET_ASM_UNALIGNED_HI_OP): Add.
9746         (TARGET_ASM_UNALIGNED_SI_OP): Add.
9747
9748 2005-07-27  Steven Bosscher  <stevenb@suse.de>
9749
9750         PR c++/22003
9751         * varasm.c (assemble_start_function): Don't do anything that may
9752         require a CFG if the current function is a thunk.
9753
9754 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
9755
9756         * doc/install.texi (Prerequisites): Mention that perl is needed
9757         to do export control in libstdc++ targetting Darwin.
9758
9759 2005-07-27  Steven Bosscher  <stevenb@suse.de>
9760
9761         PR rtl-optimization/17808
9762         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
9763         (sched_insns_conditions_mutex_p): Split out from...
9764         (add_dependence): ...here.  But don't call it from here.
9765         (add_dependence_list): Check sched_insns_conditions_mutex_p
9766         before calling add_dependence.
9767         (add_dependence_list_and_free): Likewise.
9768         (fixup_sched_groups): Likewise.
9769         (sched_analyze_1): Likewise.
9770         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
9771         (sched_analyze): Likewise.
9772         (sched_analyze_insn): Likewise.
9773         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
9774         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
9775         dependencies on all COND_EXEC insns to jumps ending basic blocks
9776         when doing intrablock scheduling.
9777         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
9778
9779 2005-07-27  Jeff Law  <law@redhat.com>
9780
9781         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
9782         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
9783         equivalency sets, correctly handle the case were vr0 has an
9784         equivalency set, but vr1 does not.
9785
9786 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
9787
9788         PR tree-optimization/23073
9789         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
9790         vect_print_dump_info before fprintf.
9791
9792 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9793
9794         PR tree-optimize/22348
9795         * tree-ssa-loop-niter.c (number_of_iterations_cond):
9796         Fold the partial computation.
9797
9798 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9799
9800         PR tree-optimization/22325
9801         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
9802         Declare.
9803         * tree-scalar-evolution.c (scev_const_prop): Add generic final
9804         value replacement.
9805         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
9806         (force_var_cost): ... this function.
9807         (compute_phi_arg_on_exit): Export.
9808
9809 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9810
9811         PR tree-optimization/20773
9812         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
9813         edge.
9814
9815 2005-07-27  Richard Guenther  <rguenther@suse.de>
9816
9817         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
9818         Avoid pushing again if current struct contains only
9819         fields we decomposed.
9820
9821 2005-07-27  Jan Hubicka  <jh@suse.cz>
9822
9823         PR tree-optimization/22574
9824         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
9825         not available.
9826
9827         * tree-tailcall.c (decrease_profile): New function.
9828         (eliminate_tail_call): Use it.
9829
9830         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
9831         visibility flags correctly in whole program mode.
9832
9833 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
9834
9835         PR rtl-optimization/22472
9836         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
9837
9838 2005-07-26  Steven Bosscher  <stevenb@suse.de>
9839
9840         PR tree-optimization/22504
9841         * tree-complex.c (expand_complex_addition): Use 'code' instead
9842         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
9843
9844 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
9845
9846         * config.gcc (cpu_type): Add frv case.
9847         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
9848         (supported_defaults): Add fr550 case.
9849
9850 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
9851
9852         PR 22591
9853         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
9854         whether a pointer of type T * may point to objects of type T *.
9855
9856 2005-07-26  DJ Delorie  <dj@redhat.com>
9857
9858         * configure: Regenerate.
9859
9860 2005-07-26  Dale Johannesen  <dalej@apple.com>
9861
9862         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
9863
9864 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
9865
9866         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
9867         Clarify use of "build" in name.
9868
9869 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
9870
9871         * doc/extend.texi (Raw read/write Functions): New section.
9872         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
9873         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
9874         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
9875         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
9876         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
9877         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
9878         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
9879         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
9880         * config/frv/frv.c: Add bdesc_loads global.
9881         Add bdesc_stores global.
9882         (frv_init_builtins): Add support for __builtin_{read/write}*.
9883         (frv_volatile_memref): New.
9884         (frv_expand_load_builtin): New.
9885         (frv_expand_store_builtin): New.
9886         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
9887         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
9888         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
9889         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
9890         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
9891         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
9892         (builtin_read_<mode>): New.
9893         (builtin_write_<mode>): New.
9894         (builtin_write64): New.
9895         (optional_membar_<mode>): New.
9896
9897 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
9898
9899         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
9900         (rather than units) against HOST_BITS_PER_WIDE_INT.
9901
9902 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
9903
9904         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
9905         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
9906         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
9907         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
9908         FSF address.
9909
9910         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
9911         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
9912         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
9913         comment typos.
9914         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
9915
9916 2005-07-26  Richard Guenther  <rguenther@suse.de>
9917
9918         PR tree-optimization/22486
9919         * fold-const.c (fold_unary): Fold away useless component
9920         references of the form (T *)&T.x, if the address
9921         doesn't change.
9922
9923 2005-07-25  James E Wilson  <wilson@specifixinc.com>
9924
9925         * dwarf2out.c (add_call_src_coords_attributes): New.
9926         (gen_inlined_subroutine_die): Call it.
9927         (maybe_emit_file, init_file_table): Add comments.
9928         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
9929         maybe_emit_file.
9930         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
9931         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
9932         * tree.h (BLOCK_SOURCE_LOCATION): New.
9933         (struct tree_block): New field locus.
9934
9935 2005-07-26  Andreas Schwab  <schwab@suse.de>
9936
9937         PR rtl-optimization/23043
9938         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
9939         when allocating a struct unoccr.
9940
9941 2005-07-25  Richard Henderson  <rth@redhat.com>
9942
9943         PR 22626
9944         * tree-complex.c (gate_no_optimization): True if errors.
9945         * Makefile.in (tree-complex.o): Update dependencies.
9946
9947 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
9948
9949         * config/frv/predicates.md (integer_register_operand): Use
9950         GPR_AP_OR_PSEUDO_P.
9951
9952 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
9953
9954         PR tree-opt/22484
9955         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
9956         after fold.
9957         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
9958
9959 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
9960
9961         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
9962         types when flag_unsafe_math_optimizations is true.
9963
9964 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
9965
9966         * gcc.c (option_map): Add --sysroot.
9967         (process_command): Handle --sysroot.
9968         (display_help): Document it.
9969         * doc/cppopts.tex (-isysroot): Document.
9970         * doc/invoke.texi (--sysroot): Document.
9971         * doc/install.texi (--with-build-sysroot): Document.
9972
9973         * Makefile.in (inhibit_libc): New variable.
9974         (INHIBIT_LIBC_CFLAGS): Likewise.
9975         (LIBGCC2_CFLAGS): Include
9976         $(INHIBIT_LIBC_CFLAGS).
9977         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
9978         ($(T)crtbegin.o): Do not use @inhibit_libc@.
9979         ($(T)crtend.o): Likewise.
9980         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
9981         ($(T)crtendS.o): Likewise.
9982         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
9983         ($(T)crtendT.o): Likewise.
9984         (stmp-fixinc): Do not complain about missing headers if
9985         inhibit_libc.
9986         * configure.ac (inhibit_libc): Set it to true/false.
9987         (--with-build-sysroot): New option.  Use it to set
9988         SYSTEM_HEADER_DIR.
9989         * configure: Regenerated.
9990
9991 2005-07-25  Manfred Hollstein  <mh@suse.com>
9992
9993         * calls.c (store_one_arg): Fix unsigned comparison warning.
9994
9995 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9996
9997         PR other/22337
9998         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
9999         (ggc_print_statistics): Initialize variable before use.
10000
10001 2005-07-25  Richard Guenther  <rguenther@suse.de>
10002
10003         * tree-dfa.c (mark_new_vars_to_rename): Protect against
10004         calling with a PHI_NODE argument.
10005
10006         * tree-flow-inline.h (overlap_subvar): Protect against
10007         possible overflow.
10008
10009 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
10010
10011         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
10012         * configure: Regenerate.
10013
10014 2005-07-25  Ira Rosen  <irar@il.ibm.com>
10015
10016         * expr.c (highest_pow2_factor): Make extern.
10017         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
10018         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
10019         record_array_differ_p, array_ptr_differ_p): Likewise.
10020         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
10021         additional cases. Call the above functions.
10022         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
10023         base_object_differ_p when there are two base objects. Otherwise, compare
10024         base address and offset. Call may_alias_p.
10025         (dump_data_reference): Use a correct field name.
10026         (analyze_array): Make static. Initialize new data-ref fields.
10027         (analyze_indirect_ref): New function.
10028         (init_data_ref): Initialize new data-ref fields.
10029         (strip_conversion): Moved from tree-vect-analyze.c.
10030         (analyze_offset_expr, get_ptr_offset, address_analysis,
10031         object_analysis): Likewise.
10032         (analyze_offset): New function.
10033         (create_data_ref): Likewise.
10034         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
10035         dimensions for ARRAY_REFs only.
10036         (build_classic_dist_vector): Make static.
10037         (access_functions_are_affine_or_constant_p): Call macro to get the
10038         address of access functions.
10039         (compute_all_dependences): Add new parameter
10040         compute_self_and_read_read_dependences. Compute self and read-read
10041         dependences if it is true.
10042         (find_data_references_in_loop): Call create_data_ref. Initialize new
10043         data-ref fields.
10044         (compute_data_dependences_for_loop): Add new parameter
10045         compute_self_and_read_read_dependences. Remove parameter nb_loops,
10046         compute nb_loops. Call compute_all_dependences,
10047         build_classic_dist_vector and build_classic_dir_vector with correct
10048         parameters.
10049         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
10050         with correct parameters. Compare dimensions for ARRAY_REFs only.
10051         (free_data_refs): Call macro to free access functions.
10052         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
10053         fields from stmt_vinfo.
10054         (struct base_object_info): New structure.
10055         (struct data_reference): Move fields to base_object_info. Add fields
10056         first_location and object_info for above structures. Move fields from
10057         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
10058         aligned_to.  Add macros to access the new fields.
10059         Update functions declarations.
10060         * tree-flow.h (is_aliased_with): Declare.
10061         * tree-loop-linear.c (linear_transform_loops): Call
10062         compute_data_dependences_for_loop with correct parameters.
10063         * tree-ssa-alias.c (is_aliased_with): New function.
10064         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
10065         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
10066         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
10067         vect_base_addr_differ_p, compute_subscript_distance and
10068         build_classic_dist_vector. Add printings. Check absolute value of
10069         distance.
10070         (vect_analyze_data_ref_dependences): Go through ddrs instead of
10071         data-refs.
10072         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
10073         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
10074         to bytes. Add printing.
10075         (vect_compute_data_refs_alignment): Go through loads and stores in one
10076         loop.
10077         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
10078         vect_analyze_data_ref_access): Likewise.
10079         (vect_analyze_pointer_ref_access): Remove.
10080         (vect_address_analysis, vect_object_analysis): Likewise.
10081         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
10082         and analyze data-refs in the loop.
10083         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
10084         fields of data-ref instead of stmt. Add init to the offset from the
10085         base.
10086         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
10087         (vect_update_init_of_dr): Likewise.
10088         (vect_update_inits_of_drs): Go through loads and stores in one loop.
10089         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
10090         removed fields.
10091         (new_loop_vec_info): Initialize new fields.
10092         (destroy_loop_vec_info): Free new fields.
10093         (vect_strip_conversion): Remove.
10094         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
10095         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
10096         datarefs. Add new field ddrs.
10097         Add macros for the new fields access.
10098         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
10099         base_aligned_p, misalignment, memtag, ptr_info and subvars.
10100         Remove their macros.
10101         * tree.h (highest_pow2_factor): Declare.
10102
10103 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
10104
10105         * calls.c (store_one_arg): Check for sibling call MEM arguments
10106         from already clobbered incoming argument area.
10107
10108 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10109
10110         * c-common.c (check_missing_format_attribute): New.
10111         * c-common.h (check_missing_format_attribute): Likewise.
10112         * c-typeck.c (convert_for_assignment): Use it.
10113
10114 2005-07-24  Andreas Schwab  <schwab@suse.de>
10115
10116         * config/m68k/m68k.md ("extendqidi2"): When source is an address
10117         register use a word move.  Correct operand of ext.w in 68000 code.
10118
10119 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
10120
10121         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
10122         variables as declarations, rather than definitions.
10123
10124 2005-07-24  Ira Rosen  <irar@il.ibm.com>
10125
10126         PR tree-optimization/22526
10127         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
10128         of the zero node.
10129
10130 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10131
10132         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
10133         that C99 reserve for future use. Use it to define clog10,
10134         clog10f and clog10l.
10135
10136 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10137
10138         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
10139         * configure.ac: Check for -Wmissing-format-attribute.
10140
10141         * configure: Regenerate.
10142
10143 2005-07-23  Richard Henderson  <rth@redhat.com>
10144
10145         PR tree-optimization/22623
10146         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
10147
10148 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
10149
10150         PR target/22577
10151         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
10152
10153 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10154
10155         * Makefile.in (C_TREE_H): Update dependencies.
10156         * c-tree.h: Include toplev.h.
10157         * diagnostic.h (diagnostic_set_info): Add format attribute.
10158         * rtl-error.c (diagnostic_for_asm): Likewise.
10159
10160 2005-07-23  Chao-ying Fu  <fu@mips.com>
10161
10162         * config/mips/mips-dsp.md: New file.
10163         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
10164         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
10165         functions.
10166         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
10167         MIPS_BUILTIN_BPOSGE32.
10168         (mips_expand_builtin_direct): Add one parameter to indicate that
10169         builtin functions need to return a value.
10170         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
10171         functions.
10172         (mips_regno_to_class): Add classes for 12 new DSP registers.
10173         (mips_subword): Change to check four HI registers.
10174         (mips_output_move): Output move to and from 6 new DSP accumulators.
10175         (override_options): Make sure -mdsp and -mips16 are not used together.
10176         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
10177         for machine modes.
10178         (mips_conditional_register_usage): Disable 6 new DSP accumulators
10179         when !TARGET_DSP.
10180         (print_operand): Add 'q' for printing DSP accumulators.
10181         (mips_cannot_change_mode_class): Check ACC_REGS.
10182         (mips_secondary_reload_class): Check ACC_REGS.
10183         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
10184         (mips_register_move_cost): Check ACC_REGS.
10185         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
10186         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
10187         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
10188         (dsp_bdesc): New array.
10189         (bdesc_arrays): Add DSP builtin function table.
10190         (mips_prepare_builtin_arg): Check predicate again after
10191         copy_to_mode_reg.
10192         (mips_expand_builtin): Add one more parameter to
10193         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
10194         MIPS_BUILTIN_BPOSGE32.
10195         (mips_init_builtins): Initialize new function types.
10196         (mips_expand_builtin_direct): Check if builtin functions need to
10197         return a value and pass operands properly.
10198         (mips_expand_builtin_bposge): New function.
10199         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
10200         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
10201         (FIRST_PSEUDO_REGISTER): Increase to 188.
10202         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
10203         Update for 12 new DSP registers.
10204         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
10205         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
10206         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
10207         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
10208         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
10209         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
10210         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
10211         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
10212         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
10213         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
10214         (REGISTER_NAMES): Add names for 12 new DSP registers.
10215         * config/mips/mips.md: Include mips-dsp.md.
10216         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
10217         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
10218         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
10219         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
10220         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
10221         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
10222         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
10223         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
10224         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
10225         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
10226         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
10227         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
10228         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
10229         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
10230         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
10231         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
10232         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
10233         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
10234         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10235         (UNSPEC_RDDSP): New constants.
10236         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
10237         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
10238         A<-d alternative.
10239         * config/mips/mips.opt (-mdsp): New option.
10240         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
10241         (reg_imm10_operand): New predicates.
10242         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
10243         * doc/invoke.texi (-mdsp): Document new option.
10244
10245 2005-07-22  DJ Delorie  <dj@redhat.com>
10246
10247         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
10248         to warning calls.
10249         * tree-inline.c (inlinable_function_p): Likewise.
10250
10251 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
10252
10253         PR debug/21828
10254         * toplev.c (check_global_declarations): Do not mark undefined
10255         variables as DECL_IGNORED_P.
10256         * varasm.c (first_global_object_name): GTY it.
10257         (weak_global_object_name): Likewise.
10258         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
10259         a string to go into {weak,first}_global_object_name.
10260
10261 2005-07-22  DJ Delorie  <dj@redhat.com>
10262
10263         * c-format.c (check_function_format): Change warning control
10264         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
10265
10266 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
10267
10268         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
10269         &PTR->FLD a dereference of PTR.
10270         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
10271         a potential dereference of PTR.
10272
10273 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
10274
10275         PR rtl-optimization/20370
10276         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
10277         call allocate_reg_info if necessary.
10278
10279         PR rtl-optimization/21848
10280         * calls.c (emit_library_call_value_1): For const functions, add
10281         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
10282
10283         PR rtl-optimization/22445
10284         * cselib.c (target.h): Include.
10285         (rtx_equal_for_cselib_p): Allow commutative matches.
10286         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
10287         Remove MODE parameter.  Changed all callers.
10288
10289         PR rtl-optimization/22258
10290         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
10291         New functions.
10292         (try_combine): Use likely_spilled_retval_p.
10293
10294 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
10295
10296         * config.gcc: Add crx-elf support.
10297
10298         * doc/contrib.texi: Mention crx.
10299         * doc/extend.texi: Document crx extensions.
10300         * doc/install.texi: Document crx install.
10301         * doc/invoke.texi: Document crx options.
10302         * doc/md.texi: Document crx constraints.
10303
10304         * config/crx/crx-protos.h: New file.
10305         * config/crx/crx.c: New file.
10306         * config/crx/crx.h: New file.
10307         * config/crx/crx.md: New file.
10308         * config/crx/crx.opt: New file.
10309         * config/crx/t-crx: New file.
10310
10311 2005-07-22  Manfred Hollstein  <mh@suse.com>
10312
10313         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
10314         warnings.
10315         (int_add_graph_edge): Likewise.
10316         (collapse_nodes): Likewise.
10317         (process_unification_queue): Likewise.
10318
10319 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10320             Laurent GUERBY  <laurent@guerby.net>
10321
10322         PR tree-optimization/22336
10323         * function.c (record_block_change): Check for
10324         cfun->ib_boundaries_block.
10325
10326 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
10327
10328         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
10329         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
10330
10331 2005-07-21  DJ Delorie  <dj@redhat.com>
10332
10333         * toplev.c (warn_deprecated_use): Add warning control to warning
10334         call.
10335         * c-typeck.c (parser_build_binary_op): Likewise.
10336         (c_finish_if_stmt): Likewise.
10337         * c-common.c (check_function_sentinel): Likewise.
10338         (check_nonnull_arg): Likewise.
10339
10340 2005-07-21  Richard Henderson  <rth@redhat.com>
10341
10342         PR tree-opt/22504
10343         * tree-complex.c (complex_ssa_name_components): New.
10344         (cvc_lookup): Allow entry not found.
10345         (create_components): Remove.
10346         (create_one_component_var, get_component_var): New.
10347         (get_component_ssa_name, set_component_ssa_name): New.
10348         (extract_component): Use get_component_ssa_name.
10349         (update_complex_components): Use set_component_ssa_name.
10350         (update_complex_components_on_edge): Likewise.
10351         (update_phi_components): Create new PHI nodes directly, instead
10352         of adding insns to edges.
10353         (tree_lower_complex): Allocate and free complex_variable_components
10354         and complex_ssa_name_components here.
10355
10356 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
10357
10358         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
10359         revert to returning false.
10360
10361 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10362
10363         PR target/21149
10364         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
10365
10366 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10367
10368         PR target/22576
10369         * config/i386/i386.md (cmpxf): Change operand constraints
10370         to "nonmemory_operand".
10371
10372 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10373
10374         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
10375
10376 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10377
10378         PR middle-end/21180
10379         * fold-const.c (fold_build1): Add checksum for the operands.
10380         (fold_build2): Likewise.
10381         (fold_build3): Likewise.
10382
10383 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10384
10385         PR middle-end/19055
10386         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
10387
10388 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10389
10390         * common.opt (-fforward-propagate): Committed by mistake,
10391         removed.
10392
10393 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10394
10395         * reg-stack.c: Fix comment typo(s).
10396         * tree-ssa-operands.c: Likewise.
10397         * tree-vectorizer: Likewise.
10398
10399 2005-07-21  Nick Clifton  <nickc@redhat.com>
10400
10401         * config/sh/symbian.c: Replace C++ style line comments with C
10402         style line comments.
10403         (symbian_add_attribute): Do not use a ? operator on the LHS of
10404         an assignment.
10405         (sh_symbian_handle_dll_attribute): Change the type of the
10406         method vector to "VEC(tree,gc)*" and use vector accessor
10407         macros to walk over the elements.
10408         (symbian_export_vtable_and_rtti_p): Likewise.
10409         (symbian_class_needs_attribute_p): Likewise.
10410
10411 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10412
10413         PR target/22085
10414         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
10415         initialize targetm.resolve_overloaded_builtin here.
10416         (altivec_expand_overloaded_builtin): Make it non-static.
10417         * config/rs6000/rs6000-protos.h
10418         (altivec_expand_overloaded_builtin): New prototype.
10419         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
10420         targetm.resolve_overloaded_builtin here.
10421         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
10422
10423 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10424             Zdenek Dvorak  <dvorakz@suse.cz>
10425
10426         PR tree-optimization/19210
10427         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
10428         New.
10429         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
10430         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
10431         rely on unproven assumptions.
10432         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
10433         * tree-flow.h (number_of_iterations_exit): Add final parameter.
10434         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
10435         to number_of_iterations_exit.
10436         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
10437         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
10438         * tree-ssa-loop-niter.c (find_loop_niter,
10439         estimate_numbers_of_iterations_loop): Likewise.
10440         (number_of_iterations_exit): Honor the new options.
10441         * doc/invoke.texi (Wunsafe-loop-optimizations,
10442         funsafe-loop-optimizations): Document them.
10443
10444 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
10445
10446         PR rtl-optimization/22167
10447         * gcse.c (hoist_code): Fix hoist_exprs[] check.
10448
10449 2005-07-20  Adam Nemet  <anemet@lnxw.com>
10450
10451         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
10452         __do_global_dtors_aux longcall.
10453
10454 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
10455
10456         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
10457         (old_special_pred_table): Don't reference
10458         SPECIAL_MODE_PREDICATES.
10459         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
10460         * config/arc/arc.h: Don't mention PREDICATE_CODES.
10461         * config/sh/predicates.h: Don't mention
10462         SPECIAL_MODE_PREDICATES.
10463         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
10464         Remove.
10465
10466 2005-07-20  DJ Delorie  <dj@redhat.com>
10467
10468         * config.gcc: Add m32c-elf support.
10469
10470         * doc/contrib.texi: Mention m32c.
10471         * doc/extend.texi: Document m32c extensions.
10472         * doc/install.texi: Mention m32c.
10473         * doc/invoke.texi: Document m32c options.
10474         * doc/md.texi: Document m32c constraints.
10475
10476         * config/m32c/addsub.md: New file.
10477         * config/m32c/bitops.md: New file.
10478         * config/m32c/cond.md: New file.
10479         * config/m32c/jump.md: New file.
10480         * config/m32c/m32c-lib1.S: New file.
10481         * config/m32c/m32c-lib2.c: New file.
10482         * config/m32c/m32c-modes.def: New file.
10483         * config/m32c/m32c-pragma.c: New file.
10484         * config/m32c/m32c-protos.h: New file.
10485         * config/m32c/m32c.abi: New file.
10486         * config/m32c/m32c.c: New file.
10487         * config/m32c/m32c.h: New file.
10488         * config/m32c/m32c.md: New file.
10489         * config/m32c/m32c.opt: New file.
10490         * config/m32c/minmax.md: New file.
10491         * config/m32c/mov.md: New file.
10492         * config/m32c/muldiv.md: New file.
10493         * config/m32c/predicates.md: New file.
10494         * config/m32c/prologue.md: New file.
10495         * config/m32c/shift.md: New file.
10496         * config/m32c/t-m32c: New file.
10497
10498 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10499
10500         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
10501         (stack_protect_set, stack_protect_test): New expanders.
10502         (stack_protect_set_si, stack_protect_set_si_media,
10503         stack_protect_set_di_media, stack_protect_test_si,
10504         stack_protect_test_si_media, stack_protect_test_di_media):
10505         New insns.
10506
10507 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
10508
10509         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
10510
10511 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
10512
10513         * tree.h (tree_expr_nonzero_p): Export.
10514         * fold-const.c (tree_expr_nonzero_p): Likewise.
10515         Return true for CALL_EXPRs that are alloca calls.
10516         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
10517         against zero.
10518         * tree-flow.h (expr_computes_nonzero): Remove.
10519         * tree-vrp.c (expr_computes_nonzero): Remove.
10520         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
10521         (extract_range_from_unary_expr): Likewise.
10522         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
10523         tree_expr_nonzero_p.
10524
10525 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
10526
10527         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
10528         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
10529         extra arg "picreg" and use it instead of pic_offset_table_rtx.
10530         All callers changed.
10531         (frame_related_constant_load): New arg "related" which controls
10532         setting of RTX_FRAME_RELATED_P.  All callers changed.
10533         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
10534         (bfin_expand_prologue): Add stack limit checking.
10535         * config/bfin/bfin.md (trapifcc): New pattern.
10536
10537         * config/bfin/bfin.c: Include "langhooks.h".
10538         (def_builtin): Go through lang_hooks to call builtin_function.
10539
10540         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
10541         * config/bfin/predicates.md (symbol_ref_operand): New.
10542         (call_insn_operand): Delete.  All callers changed to use
10543         register_no_elim_operand.
10544         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
10545         call_cookie field.
10546         (function_arg): Use it to generate the call's operand 2.
10547         (bfin_longcall_p): New function.
10548         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
10549         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
10550         determine if the address needs to be in a REG.
10551         (bfin_handle_longcall_attribute): New function.
10552         (bfin_attribute_table): Add "longcall" and "shortcall".
10553         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
10554         (CUMULATIVE_ARGS): New member call_cookie.
10555         (PREDICATE_CODES): Add symbol_ref_operand.
10556         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
10557         extra USE to the pattern.
10558         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
10559         New patterns, split off call_insn, sibcall_insn, call_value_insn and
10560         sibcall_value_insn; now the new patterns handle direct calls and the
10561         old ones indirect calls.
10562         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
10563
10564 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
10565
10566         * doc/trouble.texi: Update section on handling of empty loops.
10567
10568 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
10569
10570         * config.gcc: Remove support for sparc-*-openbsd*,
10571         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
10572         ns32k-*-netbsd*.
10573         * config.host: Remove support for i860-*-sysv4* as a host.
10574         * config/i860/*, config/ip2k/*, config/ns32k/*,
10575         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
10576         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
10577         mention obsolete ports.
10578
10579 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10580
10581         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
10582         soft frame pointer.
10583         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
10584         of frame_pointer_rtx.
10585         (sh_expand_epilogue): Likewise.
10586         (sh_set_return_address): Likewise.
10587         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
10588         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
10589         offsets from FRAME_POINTER_REGNUM.
10590         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
10591         (sh_register_names): Add initializer for sfp.
10592         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
10593         (VALID_REGISTER_P): Likewise.
10594         (FIRST_PSEUDO_REGISTER): Update.
10595         (DWARF_FRAME_REGISTERS): Define.
10596         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
10597         (HARD_FRAME_POINTER_REGNUM): Define.
10598         (FRAME_POINTER_REGNUM): Redefine.
10599         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
10600         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
10601         from FRAME_POINTER_REGNUM.
10602         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
10603         FRAME_POINTER_REGNUM.
10604         (REG_CLASS_CONTENTS): Add sfp.
10605         (REG_ALLOC_ORDER): Likewise.
10606         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
10607         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
10608         of frame_pointer_rtx.
10609         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10610
10611 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
10612
10613         * fold-const.c (tree_expr_nonnegative_p): Only return true for
10614         ABS_EXPR when flag_wrapv is false because of INT_MIN.
10615         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
10616         of an ABS_EXPR.
10617         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
10618         ABS_EXPR<x>.
10619
10620 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
10621
10622         Make CONSTRUCTOR use VEC to store initializers.
10623         * c-common.c (complete_array_type): Update to cope with VEC in
10624         CONSTRUCTOR_ELTS.
10625         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
10626         (pp_c_constructor_elts): New function.
10627         * c-pretty-print.h (pp_c_constructor_elts): Declare.
10628         * c-typeck.c (build_function_call, build_c_cast, digest_init,
10629         struct constructor_stack, struct initializer_stack,
10630         constructor_elements, push_init_level, pop_init_level,
10631         add_pending_init, find_init_member, output_init_element): Update to
10632         cope with VEC in CONSTRUCTOR_ELTS.
10633         * coverage.c (build_fn_info_value, build_ctr_info_value,
10634         build_gcov_info): Likewise.
10635         * expr.c (categorize_ctor_elements_1, store_constructor,
10636         expand_expr_real_1): Likewise.
10637         * fold-const.c (fold_ternary): Likewise.
10638         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
10639         gimplify_init_constructor, gimplify_expr): Likewise.
10640         * tree-dump.c (dequeue_and_dump): Likewise.
10641         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
10642         node.
10643         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
10644         CONSTRUCTOR_ELTS.
10645         * tree-sra.c (generate_element_init_1): Likewise.
10646         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
10647         * tree-ssa-operands.c (get_expr_operands): Likewise.
10648         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10649         * tree-vect-transform.c (vect_get_vec_def_for_operand):
10650         (get_initial_def_for_reduction): Likewise.
10651         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
10652         value handle in annotations.
10653         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
10654         tree_node_structure): Add support for constr_kind.
10655         (build_vector_from_ctor, build_constructor_single,
10656         build_constructor_from_list): New functions.
10657         (build_constructor): Update to take a VEC instead of a TREE_LIST.
10658         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
10659         Update to cope with VEC in CONSTRUCTOR_ELTS.
10660         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
10661         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
10662         CONSTRUCTOR_APPEND_ELT): New macros.
10663         (struct constructor_elt, struct tree_constructor): New data types.
10664         (union tree_node): Add tree_constructor field.
10665         * treestruct.def: Define TS_CONSTRUCTOR.
10666         * varasm.c (const_hash_1, compare_constant, copy_constant,
10667         compute_reloc_for_constant, output_addressed_constants,
10668         initializer_constant_valid_p, output_constant,
10669         array_size_for_constructor, output_constructor): Update to cope with
10670         VEC in CONSTRUCTOR_ELTS.
10671         * vec.h (VEC_empty, VEC_copy): New macros.
10672
10673 2005-07-19  Devang Patel  <dpatel@apple.com>
10674
10675         * dbxout.c (dbxout_type): Check Objective-C++ lang.
10676
10677 2005-07-19  Richard Henderson  <rth@redhat.com>
10678
10679         PR tree-opt/22278
10680         * gimplify.c (gimplify_expr): Use main variant type for the temp
10681         destination for a discarded volatile read.
10682         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
10683         casts between non-void types that change volatility.
10684
10685 2005-07-15  DJ Delorie  <dj@redhat.com>
10686
10687         * toplev.h: Add comment about the first parameter for warning().
10688         * errors.h: Likewise.
10689
10690         * c.opt (Wpragmas): New.
10691         * doc/invoke.texi: Document it.
10692
10693         * function.c (do_warn_unused_parameter): Add warning control to
10694         warning call.
10695         * c-decl.c (warn_if_shadowing): Likewise.
10696         * c-lex.c (cb_def_pragma): Likewise.
10697         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
10698         (pop_alignment): Likewise.
10699         (handle_pragma_pack): Likewise.
10700         (apply_pragma_weak): Likewise.
10701         (handle_pragma_weak): Likewise.
10702         (handle_pragma_redefine_extname): Likewise.
10703         (add_to_renaming_pragma_list): Likewise.
10704         (handle_pragma_extern_prefix): Likewise.
10705         (maybe_apply_renaming_pragma): Likewise.
10706         (handle_pragma_visibility): Likewise.
10707
10708         * config/c4x/c4x-c.c (BAD): Likewise.
10709         (c4x_parse_pragma): Likewise.
10710         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
10711         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
10712         (rs6000_pragma_longcall): Likewise.
10713         * config/v850/v850-c.c (pop_data_area): Likewise.
10714         (ghs_pragma_section): Likewise.
10715         (ghs_pragma_section): Likewise.
10716         (ghs_pragma_interrupt): Likewise.
10717         (ghs_pragma_starttda): Likewise.
10718         (ghs_pragma_startsda): Likewise.
10719         (ghs_pragma_startzda): Likewise.
10720         (ghs_pragma_endtda): Likewise.
10721         (ghs_pragma_endsda): Likewise.
10722         (ghs_pragma_endzda): Likewise.
10723
10724 2005-07-19  Danny Berlin <dberlin@dberlin.org>
10725             Kenneth Zadeck <zadeck@naturalbridge.com>
10726
10727         * Makefile.in: Removed tree-promote-statics.c
10728         * tree-promote-statics.c: Removed.
10729         * common.opt: Removed flag-promote-statics.
10730         * opts.c: Ditto.
10731         * passes.c: Removed tree-promote-statics pass.
10732         * tree-pass.h: Ditto.
10733         * timevar.def: Removed TV_PROMOTE_STATICS.
10734
10735
10736 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
10737
10738         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
10739         and *-*-freebsd9.
10740         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
10741
10742 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10743
10744         PR c/22476
10745         * c-common.c (check_function_arguments): Call
10746         'check_function_format' if either -Wformat or
10747         -Wmissing-format-attribute are specified.
10748         * c-format.c (check_function_format): Check -Wformat before
10749         calling 'check_format_info'.
10750         * c-opts.c (c_common_post_options): Don't warn for
10751         -Wmissing-format-attribute without -Wformat.
10752         * c-typeck.c (convert_for_assignment): Detect additional cases for
10753         -Wmissing-format-attribute.
10754         * doc/invoke.texi (-Wmissing-format-attribute): Document new
10755         behavior.
10756
10757 2005-07-19  Richard Guenther  <rguenther@suse.de>
10758
10759         * config/i386/i386.md (lrint<mode>2): Use temporary
10760         instead of clobbering non-existent memory.
10761
10762 2005-07-19  Nick Clifton  <nickc@redhat.com>
10763
10764         * config/avr/avr.c (legitimate_address_p): Fix debugging print
10765         statement to avoid displaying ASCII control characters.
10766
10767 2005-07-19  Ben Elliston  <bje@au.ibm.com>
10768
10769         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
10770         * cfganal.c (find_edge_index): Ditto.
10771         * combine.c (combine_instructions): Ditto.
10772         * ddg.c (create_scc): Ditto.
10773         (find_successors): Ditto.
10774         (find_predecessors): Ditto.
10775         (find_nodes_on_paths): Ditto.
10776         (longest_simple_path): Ditto.
10777         * flow.c (update_life_info): Ditto.
10778         (count_or_remove_death_notes): Ditto.
10779         (clear_log_links): Ditto.
10780         * modulo-sched.c (generate_reg_moves): Ditto.
10781         (find_max_asap): Ditto.
10782         (find_max_hv_min_mob): Ditto.
10783         (find_max_dv_min_mob): Ditto.
10784         * sbitmap.c (sbitmap_first_set_bit): Ditto.
10785         * sched-rgn.c (extract_edgelst): Ditto.
10786         * tree-into-ssa.c (prepare_names_to_update): Ditto.
10787         (dump_update_ssa): Ditto.
10788         (ssa_names_to_replace) Ditto.
10789         (switch_virtuals_to_full_rewrite): Ditto.
10790         (update_ssa): Ditto.
10791         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
10792
10793 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
10794
10795         Fix PR tree-optimization/22483
10796
10797         * tree-complex.c (create_components): Use
10798         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
10799         * tree-flow-inline.h (fill_referenced_var_vec): New function.
10800         * tree-flow.h (safe_referenced_var_iterator): New structure.
10801         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
10802         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
10803         safe_referenced_var iterator.
10804         (add_type_alias): Ditto.
10805
10806 2005-07-19  Steven Bosscher  <stevenb@suse.de>
10807
10808         * loop-init.c (rest_of_handle_loop2): Remove.
10809         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
10810         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
10811         (pass_rtl_loop_init, pass_rtl_loop_done,
10812         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
10813         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
10814         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
10815         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
10816         pass_tree_loop_done, and pass_tree_unswitch.
10817         (gate_loop): Rename to gate_tree_loop.
10818         * passes.c (init_optimization_passes): Update for renamed tree
10819         loop passes.  Add the new loop2 passes as subpasses of loop2.
10820         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
10821         Update for the renamed tree loop passes.
10822
10823 2005-07-18  Ian Lance Taylor  <ian@airs.com>
10824
10825         PR middle-end/22057
10826         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
10827         blocks when optimizing.
10828
10829 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
10830
10831         * common.opt (frename-registers): Initialize to 2.
10832         (fweb): Ditto.
10833         (fgcse-after-reload): Ditto.
10834         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
10835         (process_options): Only change flag_web, flag_rename_registers,
10836         and flag_rerun_cse_after_loop if not explicitly set by user.
10837
10838 2005-07-18  Jan Beulich  <jbeulich@novell.com>
10839
10840         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
10841         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
10842         in 64-bit mode the same as DImode in 32-bit mode.
10843         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
10844         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
10845         mode. Add new mode parameter.
10846         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
10847         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
10848         x86_64_shift_adj): New expanders.
10849         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
10850         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
10851         insns.
10852         Respective new splitters. Use renamed shift splitter helpers in 32-bit
10853         DImode shift splitters.
10854         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
10855         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
10856         mode parameter.
10857
10858 2005-07-18  Jan Beulich  <jbeulich@novell.com>
10859
10860         * i386.md (movdi_extzv_1): New.
10861         (zero_extendhidi2): Combine alternatives and never force use of
10862         REX64 prefix.
10863         (zero_extendqidi2): Likewise. Don't restrict input selection.
10864
10865 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10866
10867         Fix PR tree-optimization/22531
10868         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
10869          moment.
10870
10871 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10872
10873         * tree-promote-statics.c (pass_promote_statics): Change dump file
10874          name.
10875
10876 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10877
10878         * tree-optimize.c (init_tree_optimization_passes): Add
10879         pass_eliminate_useless_stores pass.
10880         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
10881         * tree-ssa-pre.c (is_copy_stmt): New function.
10882         (follow_copies_till_vuse): Ditto.
10883         (do_eustores): Ditto.
10884         (gate_eustores): Ditto.
10885
10886 2005-07-16  Richard Henderson  <rth@redhat.com>
10887
10888         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
10889
10890 2005-07-16 Danny Berlin <dberlin@dberlin.org>
10891            Kenneth Zadeck <zadeck@naturalbridge.com>
10892
10893         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
10894         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
10895         ipa-type-escape.h, tree-promote-statics.c
10896         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
10897         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
10898         tree-promote-statics.c: new files.
10899         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
10900         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
10901         int nonlocal_set_p, mark_constant_function): Deleted.
10902         (rest_of_handle_cfg): Removed call to mark_constant_function.
10903         (nonoverlapping_component_refs_p): Added calls to support
10904         type based aliasing.
10905         * tree-ssa-alias.c (may_alias_p,
10906         compute_flow_insensitive_aliasing): Ditto.
10907         * calls.c (flags_from_decl_or_type): Removed reference to
10908         cgraph_rtl_info.
10909         * c-typeck.c (convert_arguments): Make builtins tolerant of having
10910         too many arguments.  This is necessary for Spec 2000.
10911         * cgraph.h (const_function, pure_function): Removed.
10912         * common.opt: Added "fipa-pure-const", "fipa-reference",
10913         "fipa-type-escape", and "ftree-promote-static".
10914         * opts.c: Ditto.
10915         * passes.c: Added ipa and tree-promote-statics passes.
10916         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
10917         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
10918         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
10919         * tree-flow.h: Added exposed sra calls and addition of
10920         reference_vars_info field for FUNCTION_DECLS.
10921         * tree-pass.h: Added passes.
10922         * tree-sra.c: (sra_init_cache): New function.
10923         (sra_insert_before, sra_insert_after) Made public.
10924         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
10925         and made public.
10926         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
10927         aliasing. (may_alias_p): Added code to use type escape analysis to
10928         improve alias sets.
10929         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
10930         code to prune clobbers of static variables based on information
10931         produced in ipa-reference pass.  Changed call clobbering so that
10932         statics are not marked as clobbered if the call does not clobber
10933         them.
10934
10935 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
10936
10937         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
10938         too.
10939
10940 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10941
10942         * doc/install.texi (*-*-solaris2*): Document recommended version
10943         of GNU binutils and mention GNU linker problem on Solaris 10.
10944
10945 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
10946
10947         PR c/22421
10948         * c-decl.c (c_build_bitfield_integer_type): New function.
10949         (finish_struct): Call it.
10950         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
10951
10952 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10953
10954         * c-typeck.c (digest_init): Call 'convert_for_assignment'
10955         before returning.
10956
10957 2005-07-16  Jan Hubicka  <jh@suse.cz>
10958
10959         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
10960         (scale_bbs_frequencies_int): Watch roundoff errors.
10961         * predict.c (return_prediction): Initialize return_stmt.
10962
10963 2005-07-16  Jan Hubicka  <jh@suse.cz>
10964
10965         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
10966         after RTL profiling.
10967
10968 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
10969
10970         PR middle-end/22398
10971         * fold-const.c (build_range_check): Convert high/low to etype
10972         if we are only comparing against exp.
10973
10974 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
10975
10976         Fix PR tree-optimization/22376
10977         * tree-ssa-structalias.c (build_constraint_graph): We really meant
10978         special var here.
10979         (need_to_solve): New function.
10980         (compute_points_to_sets): Use it.
10981
10982 2005-07-15  Jan Hubicka  <jh@suse.cz>
10983
10984         * cfg.c (update_bb_profile_for_threading): More diagnostic.
10985         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
10986
10987 2005-07-15  Richard Guenther  <rguenther@suse.de>
10988
10989         * c-common.c (handle_flatten_attribute): New function.
10990         Add flatten function attribute.
10991         * doc/extend.texi: Document flatten function attribute.
10992         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
10993         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
10994         New functions.
10995         (cgraph_decide_inlining): Handle functions with flatten
10996         attribute.
10997
10998 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
10999
11000         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
11001         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
11002         UNSPEC_XCHG, UNSPEC_AND): New.
11003         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
11004         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
11005         * config/rs6000/sync.md (FETCHOP): New code macro.
11006         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
11007         New code attrs.
11008         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
11009         (sync_compare_and_swap<mode>): Same.
11010         (sync_lock_test_and_set<mode>): Same.
11011         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
11012         for QImode and HImode, and not PPC405.
11013         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
11014         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
11015         (sync_<fetchop>{si,di}_internal): New.
11016         (sync_nand{si,di}_internal): New.
11017         (sync_old_<fetchop>{si,di}_internal): New.
11018         (sync_old_nand{si,di}_internal): New
11019         (sync_new_<fetchop>{si,di}_internal): New.
11020         (sync_new_nand{si,di}_internal): New.
11021         (atomic_and{si,di}): New.
11022         (sync_new_nand{si,di}_internal): New.
11023         (atomic_and{si,di}): New.
11024         (sync_add<mode>_internal): Delete.
11025         (sync_addshort_internal): Use unspec instead of unspec_volatile.
11026         (sync_sub<mode>_internal): Delte.
11027         (sync_subshort_internal): New.
11028         (sync_andsi_internal): Use unspec instead of unspec_volatile.
11029         (sync_anddi_internal): Delete.
11030         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
11031         (sync_booldi_internal): Delete.
11032         (sync_boolc<mode>_internal): Delete.
11033         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
11034         (sync_boolc<mode>_internal2): Delete.
11035         (sync_boolcc<mode>_internal): Delete.
11036         (isync, lwsync): Use unspec instead of unspec_volatile.
11037         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
11038         Revert UNSPEC_VOLATILE.
11039         (rs6000_split_atomic_op): New.
11040         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
11041
11042 2005-07-14  Eric Christopher  <echristo@redhat.com>
11043
11044         * config/mips/mips.c (mips_canonicalize_comparison): Cast
11045         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
11046
11047 2005-07-14  Eric Christopher  <echristo@redhat.com>
11048
11049         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
11050
11051 2005-07-14  Steven Bosscher  <stevenb@suse.de>
11052
11053         PR tree-optimization/22230
11054         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
11055         the computation of the four cross productions for "range op range".
11056
11057 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
11058             Ulrich Weigand  <uweigand@de.ibm.com>
11059
11060         PR target/20126
11061         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
11062         in some insn.
11063
11064 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
11065
11066         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
11067
11068 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
11069
11070         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
11071
11072 2005-07-14  Richard Guenther  <rguenther@suse.de>
11073
11074         PR middle-end/22347
11075         * config/i386/i386-protos.h (ix86_function_value): Change
11076         prototype to match new target hook.
11077         * config/i386/i386.c (ix86_value_regno): Change prototype
11078         to take extra type argument.
11079         (TARGET_FUNCTION_VALUE): Define.
11080         (ix86_function_ok_for_sibcall): Pass extra argument to
11081         ix86_value_regno, check return slot rtx for exact match.
11082         (ix86_function_value): Take extra parameter.  Dispatch to
11083         ix86_value_regno with fndecl/fntype as provided.
11084         (ix86_value_regno): Handle extra type argument.
11085         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
11086
11087         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
11088         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
11089         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
11090         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
11091         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
11092
11093 2005-07-14  Richard Guenther  <rguenther@suse.de>
11094
11095         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
11096         * calls.c (expand_call): Pass fntype to hard_function_value.
11097         (emit_library_call_value_1): Likewise.
11098         * explow.c: Include target.h.
11099         (hard_function_value): Take extra argument, the fntype.
11100         Use new target hook for function_value.
11101         * expr.h (hard_function_value): Change prototype.
11102         * function.c (aggregate_value_p): Pass 0 as fntype to
11103         hard_function_value.
11104         (assign_parms): Use new target hook for function_value.
11105         Pass 0 as fntype to hard_function_value.
11106         (expand_function_end): Likewise.
11107         * reg-stack.c: Include target.h.
11108         (stack_result): Use new target hook for function_value.
11109         * target-def.h: New target hook function_value.
11110         * target.h: Likewise.
11111         * targhooks.c (default_function_value): New function.
11112         * targhooks.h (default_function_value): Declare.
11113
11114 2005-07-13  Ian Lance Taylor  <ian@airs.com>
11115
11116         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
11117
11118 2005-07-14  Jan Hubicka  <jh@suse.cz>
11119
11120         * tree-dfa.c (dump_variable): Use default_def function.
11121         * tree-ssa-alias.c (dump_points_to_info): Likewise.
11122         * tree-ssa.c (verify_use): Likewise.
11123         * tree-ssanames.c (release_ssa_name): Likewise.
11124         * tree-tailcall.c (eliminate_tail_call): Likewise.
11125         (tree_optimize_tail_calls_1): Likewise.
11126         * tree-vrp.c (get_value_range): Likewise.
11127
11128 2005-07-14  Ben Elliston  <bje@au.ibm.com>
11129
11130         * gcc.c (main): Compare language[0] with '*' when iterating over
11131         the infiles.
11132
11133 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11134
11135         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
11136         "s390_emit_compare".  Add handling of CCZ1mode.
11137         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
11138         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
11139         checking.
11140         (s390_branch_condition_mask): Add CCZ1mode handling.
11141         * config/s390/s390.md: ("seq", "*seq"): New pattern.
11142         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
11143         Use CCZ1mode instead of CCZmode.
11144         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
11145
11146 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11147
11148         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
11149         pattern.
11150         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
11151
11152 2005-07-13  Eric Christopher  <echristo@redhat.com>
11153
11154         * config/mips/mips.c (mips_canonicalize_comparison): New.
11155         (mips_emit_int_relational): Use.
11156
11157 2005-07-13  Eric Christopher  <echristo@redhat.com>
11158
11159         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11160         static extra parts.
11161         * config/s390/s390.md: Include tpf.md. Move tpf specific
11162         patterns...
11163         * config/s390/tpf.md: To here.
11164         * config/s390/s390.opt: Move tpf specific options...
11165         * config/s390/tpf.opt: to here. Add mmain option.
11166         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11167         * config/s390/tpf.h: Rewrite.
11168
11169 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11170
11171         * doc/tm.texi: Remove @xref{Cross-profiling}.
11172
11173 2005-07-13  Jeff Law  <law@redhat.com>
11174
11175         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
11176         expressions, test their _DECL operands for pointer equality rather
11177         than using operand_equal_p.
11178
11179 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11180
11181         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
11182         (TARGET_POSIX_IO): This.
11183         * config/darwin.h: Likewise.
11184         * config/freebsd.h: Likewise.
11185         * config/linux.h: Likewise.
11186         * config/lynx.h: Likewise.
11187         * config/netbsd.h: Likewise.
11188         * config/rs6000/linux64.h: Likewise.
11189         * config/rs6000/linux.h: Likewise.
11190         * config/s390/tpf.h: Likewise.
11191         * config/sh/embed-elf.h: Likewise.
11192         * config/sparc/linux64.h: Likewise.
11193         * config/sparc/linux.h: Likewise.
11194         * config/svr4.h: Likewise.
11195         * gcov-io.h: Likewise.
11196
11197         * doc/tm.texi: Updated.
11198
11199         * libgcov.c (create_file_directory): Defined only if
11200         TARGET_POSIX_IO is defined.
11201         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
11202         is defined.
11203
11204 2005-07-13  Jan Hubicka  <jh@suse.cz>
11205
11206         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
11207
11208 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
11209
11210         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
11211         structure as argument.
11212
11213 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
11214
11215         PR tree-optimization/21921
11216         * tree-iterator.c (tsi_link_before): Support the case when
11217         tsi_end_p (tsi) == true.
11218
11219 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11220
11221         PR tree-optimization/22442
11222         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
11223         correctly.
11224
11225 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11226
11227         PR rtl-optimization/20376
11228         * toplev.c (process_options): Enable -fweb and -frename-registers when
11229         unrolling.
11230         * doc/invoke.texi: Update the information about when -fweb and
11231         -frename-registers are enabled.
11232
11233 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11234
11235         PR tree-opt/21840
11236         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
11237         if *rhs_p is not a SSA_NAME.
11238
11239 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
11240
11241         Fix PR tree-optimization/22422
11242         * tree-ssa-structalias.c (struct variable_info): Add flag for
11243         special vars.
11244         (get_varinfo): Now a static function.
11245         (new_varinfo): init has_union and is_special_var to false.
11246         (solution_set_add): Check has_union.
11247         (do_da_constraint): Move temporary variable so it gets reset
11248         properly.
11249         Also check for special variable.
11250         (do_ds_constraint): Ditto.
11251         (do_sd_constraint): Ditto.
11252         (do_structure_copy): Check for special variable.
11253         (find_func_aliases): Ditto.
11254         (init_base_vars): Set special vars properly.
11255
11256 2005-07-13  Jan Hubicka  <jh@suse.cz>
11257
11258         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
11259         do unit-at-a-time.
11260
11261         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
11262         (get_expr_operands): Fix thinko wrt flags and subvars.
11263
11264         PR tree-optimize/22379
11265         * tree-inline.c (expand_call_inline): Do not output sorry in early
11266         inlining.
11267
11268 2005-07-12  Dale Johannesen  <dalej@apple.com>
11269
11270         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
11271
11272 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11273
11274         PR bootstrap/21704
11275         * host-linux.h: Include limits.h.
11276
11277 2005-07-12  Dale Johannesen  <dalej@apple.com>
11278
11279         * expr.c (compress_float_constant):  Add cost check.
11280         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
11281
11282 2005-07-12  Dale Johannesen  <dalej@apple.com>
11283
11284         * gcc.target/i386/compress-float-sse.c:  New.
11285         * gcc.target/i386/compress-float-sse-pic.c:  New.
11286         * gcc.target/i386/compress-float-387.c:  New.
11287         * gcc.target/i386/compress-float-387-pic.c:  New.
11288         * gcc.dg/compress-float-ppc.c:  New.
11289         * gcc.dg/compress-float-ppc-pic.c:  New.
11290
11291 2005-07-12  Eric Christopher  <echristo@redhat.com>
11292
11293         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11294         static extra parts.
11295         * config/s390/s390.md: Include tpf.md. Move tpf specific
11296         patterns...
11297         * config/s390/tpf.md: To here.
11298         * config/s390/s390.opt: Move tpf specific options...
11299         * config/s390/tpf.opt: to here. Add mmain option.
11300         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11301         * config/s390/tpf.h: Rewrite.
11302
11303 2005-07-12  Eric Christopher  <echristo@redhat.com>
11304
11305         * gcc.c (struct infile): Update comment for language.
11306         (main): Rewrite input file resetting code.
11307
11308 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11309
11310         PR tree-opt/22335
11311         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
11312         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
11313         (lookup_avail_expr): Use constant_boolean_node instead
11314         of boolean_false_node/boolean_true_node.
11315
11316 2005-07-12  Ben Elliston  <bje@au.ibm.com>
11317
11318         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
11319         and use it when printing num_edges.
11320
11321 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
11322
11323         * doc/extend.texi (Blackfin Built-in Functions): New section.
11324         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
11325         @opindex.
11326
11327 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
11328
11329         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
11330         s/cmpstrsi/cmpstrnsi
11331         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
11332         'cmpstrnsi'.
11333         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
11334         (init_optabs): Initialize cmpstrn_optab.
11335         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
11336         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
11337         * expr.c: (enum insn_code cmpstrn_optab): Declare.
11338         * config/i386/i386.md: s/cmpstr/cmpstrn
11339         * config/c4x/c4x.md: s/cmpstr/cmpstrn
11340         * doc/md.texi: Update documentation.
11341
11342 2005-07-11  Richard Henderson  <rth@redhat.com>
11343
11344         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
11345         build_va_arg_indirect_ref.
11346         (alpha_gimplify_va_arg): Likewise.
11347         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11348         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
11349         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
11350         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11351         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
11352         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
11353         Likewise.
11354         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11355
11356 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11357
11358         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
11359         * passes.c (init_optimization_passes): Add pass_empty_loop.
11360         * tree-pass.h (pass_empty_loop): Declare.
11361         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
11362         try_remove_empty_loop, remove_empty_loops): New functions.
11363         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
11364         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
11365
11366 2005-07-12  Peter Barada  <peter@the-baradas.com>
11367
11368         PR middle-end/16719
11369         PR middle-end/18421
11370         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
11371         in address registers.
11372         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
11373         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
11374         alternative of addsi3_5200.
11375
11376 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11377
11378         * config/mips/mips.md (ffs<mode>2): Remove.
11379
11380 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11381
11382         * doc/tree-ssa.texi (Cleanups): Improve description of
11383         TRY_FINALLY_EXPR.
11384         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
11385
11386 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11387
11388         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
11389         * tree.h (DECL_ARGUMENT_FLD): New macro.
11390
11391 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11392
11393         Fix PR tree-optimization/22404
11394
11395         * tree-ssa-structalias.c (create_variable_info_for): Use
11396         correct offset.
11397
11398 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
11399
11400         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
11401         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
11402         for second comparison operand.
11403         * config/bfin/predicates.md (reg_or_const_int_operand): New.
11404
11405         * config/bfin/bfin.md (define_attr "type"): Add "sync".
11406         (define_insn_reservation "alu"): Likewise.
11407         (csync, ssync): Now of type sync.
11408         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
11409         -mcsync-anomaly -mspecld-anomaly.
11410         * config/bfin/bfin.opt (mcsync): Remove.
11411         (mcsync-anomaly, mspecld-anomaly): Add.
11412         * config/bfin/bfin.c: Include "insn-codes.h".
11413         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
11414         (TARGET_DEFAULT_TARGET_FLAGS): New.
11415         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
11416
11417 2005-07-11  Steven Bosscher  <stevenb@suse.de>
11418
11419         * basic-block.h: Give the BB flags enum a name, bb_flags.
11420         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
11421         * cfgcleanup.c (enum bb_flags): Remove here.
11422         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
11423         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
11424         (update_forwarder_flag): Likewise.
11425         (thread_jump): Likewise.
11426         (try_forward_edges): Likewise.
11427         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
11428         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
11429         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
11430
11431 2005-07-11  Richard Guenther  <rguenther@suse.de>
11432
11433         * config/i386/i386.opt: New target option -msseregparm.
11434         * config/i386/i386.c (override_options): Error out for
11435         -msseregparm but no SSE support.
11436         (ix86_function_sseregparm): Check for global sseregparm.
11437         * doc/invoke.texi: Document -msseregparm.
11438
11439 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11440
11441         * config.gcc (m32r-*-linux*): Use the default extra_parts.
11442         (m32rle-*-linux*): Ditto.
11443
11444 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
11445
11446         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
11447         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
11448         bytes.
11449
11450 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11451
11452         PR middle-end/22239
11453         PR target/20126
11454         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
11455         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
11456
11457 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
11458
11459         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
11460         (varmap): Heapify varmap.
11461         (constraints): Heapify constraints.
11462         (struct constraint_graph): Heapify succs and preds.
11463         (constraint_vec_find): Update for heapification.
11464         (constraint_set_union): Ditto.
11465         (insert_into_complex): Ditto.
11466         (constraint_edge_vec_find): Ditto.
11467         (erase_graph_self_edge): Ditto.
11468         (add_graph_edge): Ditto.
11469         (get_graph_weights): Ditto.
11470         (merge_graph_nodes): Ditto.
11471         (build_constraint_graph): Ditto.
11472         (topo_visit): Ditto.
11473         (solve_graph): Ditto.
11474         (create_variable_info_for): Ditto.
11475         (init_base_vars): Ditto.
11476         (delete_points_to_sets): Free graph, varmap, and complex constraints.
11477         (condese_varmap_nodes): Free complex vector.
11478         (clear_edges_for_node): Clear succs and preds vector.
11479
11480 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11481
11482         * tree-ssa-structalias.c (update_alias_info): Change counting of
11483         references to not include vdefs.
11484
11485 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11486
11487         * tree-ssa-alias.c (free_used_part_map): Add missing free.
11488         (up_insert): Ditto.
11489
11490 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11491
11492         * pa.c (pa_commutative_p): Make PLUS commutative when
11493         TARGET_NO_SPACE_REGS is true.
11494
11495 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11496
11497         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
11498         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
11499         * tree-dfa.c (dump_subvars_for): New.
11500         (debug_subvars_for): New.
11501         (dump_variable): Show subvariables if VAR has them.
11502         * tree-flow-inline.h (get_subvar_at): New.
11503         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
11504         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
11505         Update all users.
11506         (struct subvar): Change fields offset and size to unsigned
11507         HOST_WIDE_INT.
11508         (dump_subvars_for): Declare.
11509         (debug_subvars_for): Declare.
11510         (get_subvar_at): Declare.
11511         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
11512         to unsigned HOST_WIDE_INT *.
11513         (overlap_subvar): Likewise.
11514         * tree-gimple.c (is_gimple_reg): Always return false for
11515         SFTs and memory tags.
11516         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
11517         Update all callers.
11518         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
11519         (compute_may_aliases): Call compute_points_to_sets.
11520         (collect_points_to_info_for): Remove.
11521         (compute_points_to_and_addr_escape): Remove.
11522         (delete_alias_info): Call delete_points_to_sets.
11523         (compute_flow_sensitive_aliasing): If the call to
11524         find_what_p_points_to returns false, call set_pt_anything.
11525         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
11526         (set_pt_anything): Clear pi->pt_vars.
11527         (set_pt_malloc): Remove.
11528         (merge_pointed_to_info): Remove.
11529         (add_pointed_to_expr): Remove.
11530         (add_pointed_to_var): Remove.
11531         (collect_points_to_info_r): Remove.
11532         (is_escape_site): Make extern.
11533         (create_sft): New.
11534         (create_overlap_variables_for): Call it.
11535         * tree-ssa-copy.c (merge_alias_info): Never merge
11536         flow-sensitive alias information.
11537         * tree-ssa-operands.c (get_expr_operands): Adjust variables
11538         offset and size to be unsigned HOST_WIDE_INT.
11539         (add_to_addressable_set): Rename from note_addressable.
11540         Set TREE_ADDRESSABLE as the variables are added to the set.
11541         Update all users.
11542         (add_stmt_operand): Do not try to micro-optimize unmodifiable
11543         operands into VUSEs when adding V_MAY_DEFs for members in an
11544         alias set.
11545         * tree-ssa-operands.h (add_to_addressable_set): Declare.
11546         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
11547         (struct variable_info): Add bitfield is_heap_var.
11548         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
11549         (new_var_info): Initialize is_heap_var.
11550         (get_constraint_for): Add HEAP variables to the symbol table.
11551         Mark them with is_heap_var.
11552         (update_alias_info): New.  Taken mostly from the old
11553         compute_points_to_and_addr_escape.
11554         (handle_ptr_arith): New.
11555         (find_func_aliases): Call update_alias_info.
11556         Call handle_ptr_info for tcc_binary expressions.
11557         Call mark_stmt_modified.
11558         (create_variable_info_for): If DECL has subvars, do not create
11559         variables for its subvars.  Always add all the fields.
11560         (set_uids_in_ptset): If the solution includes ANYOFFSET and
11561         SFTs, then add all the SFTs of the structure.
11562         If VI->DECL is an aggregate with subvariables, add the SFT at
11563         VI->OFFSET.
11564         (find_what_p_points_to): If VI is an artificial variable,
11565         translate to bitfields in SSA_NAME_PTR_INFO.
11566         If the solution is empty, set pi->pt_vars to NULL
11567         (init_base_vars): Create ANYOFFSET.
11568         (compute_points_to_sets): Rename from create_alias_vars.
11569         Make extern.
11570         (pass_build_pta): Remove.
11571         (delete_points_to_sets): Rename from delete_alias_vars.
11572         (pass_del_pta): Remove.
11573         * tree-ssa-structalias.h (struct alias_info): Move from
11574         tree-ssa-alias.h.
11575         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
11576         NUM_REFERENCES_SET): Likewise.
11577         (compute_points_to_sets, delete_points_to_sets): Declare.
11578
11579 2005-07-09  Richard Henderson  <rth@redhat.com>
11580
11581         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
11582         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
11583         alpha_split_lock_test_and_set_12): New functions.
11584         * config/alpha/alpha-protos.h: Update.
11585         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
11586         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
11587         * config/alpha/sync.md (I12MODE): New.
11588         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
11589         (sync_<fetchop_name><I48MODE>): Likewise.
11590         (sync_nand<I48MODE>): Likewise.
11591         (sync_old_<fetchop_name><I48MODE>): Likewise.
11592         (sync_new_<fetchop_name><I48MODE>): Likewise.
11593         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
11594         (sync_compare_and_swap<I48MODE>): Likewise.
11595         (sync_lock_test_and_set<I48MODE>): Likewise.
11596         (sync_compare_and_swap<I12MODE>): New.
11597         (sync_compare_and_swap<I12MODE>_1): New.
11598         (sync_lock_test_and_set<I12MODE>): New.
11599         (sync_lock_test_and_set<I12MODE>_1): New.
11600
11601 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11602
11603         PR 21356
11604         PR 22332
11605         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
11606
11607 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
11608
11609         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
11610         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
11611
11612 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
11613
11614         PR target/21656
11615         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
11616
11617 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
11618
11619         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
11620         memory_operand constraint.
11621         (store_conditional_<mode>): Same.
11622         (sync_compare_and_swap<mode>): Same.
11623         (sync_lock_test_and_set<mode>): Same.
11624
11625 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
11626
11627         Rewrite PIC support to more closely model actual instructions.
11628         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
11629         (cris_symbol): Remove prototypes for removed functions.
11630         (cris_pic_symbol_type_of, cris_valid_pic_const)
11631         (cris_expand_pic_call_address): Prototypes for new functions.
11632         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
11633         variable.
11634         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
11635         modifiers.
11636         <case ':'>: Add case for new punctuation character.
11637         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
11638         emitting (extra) PIC modifier.
11639         <case UNSPEC>: Do not assert for PLT.
11640         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
11641         (cris_expand_prologue, cris_expand_epilogue): Check
11642         for pic_offset_table_rtx usage instead of taking
11643         current_function_uses_pic_offset_table as the final word.
11644         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
11645         Remove flag_pic difference.
11646         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
11647         the moral equivalents of...
11648         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
11649         functions.
11650         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
11651         (cris_handle_option): Mark ARG as unused.
11652         (cris_expand_pic_call_address): New worker function for "call",
11653         "call_value".
11654         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
11655         output PIC constructs here.
11656         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
11657         as symbol-specific modifers, not whole or part of operands.
11658         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
11659         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
11660         constants and flag_pic.
11661         (CONSTANT_INDEX_P): Adjust for new functions.
11662         (enum cris_pic_symbol_type): New helper type.
11663         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
11664         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
11665         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
11666         define_constants.
11667         ("movsi"): Emit actual instructions for GOT and relative access.
11668         ("*movsi_got_load"): New pattern to set up the register holding
11669         the GOT pointer.
11670         ("*movsi_internal"): Operand 1 is not a plain general_operand.
11671         Adjust FIXME for 'S'.
11672         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
11673         Use "movs" for -fpic cases.
11674         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
11675         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
11676         ("call", "call_value"): Just call cris_expand_pic_call_address for
11677         PIC addresses.
11678         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
11679         Remove special pattern.
11680         ("*expanded_call_side", "*expanded_call_value_side"): New
11681         patterns.
11682         (gotplt-to-plt, gotplt-to-plt-side-call)
11683         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
11684         peephole2:s.
11685         * config/cris/cris/predicates.md
11686         ("cris_general_operand_or_gotless_symbol"): Remove unused
11687         predicate.
11688         ("cris_general_operand_or_symbol"): Adjust for new functions.
11689
11690 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11691
11692         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
11693
11694 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
11695
11696         * Makefile.in (TREE_H): Add treestruct.def.
11697         (c-decl.o): Add pointer-set.h
11698         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
11699         visibility on regular DECL's.
11700         (merge_decls): Fix the copying of decl nodes of various types for
11701         the new structures.  Don't update RTL, section name, weak status,
11702         etc, on DECL's without RTL.
11703         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
11704         Don't check volatile on non-variable types.
11705         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
11706         to check whether we have seen arguments.
11707         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
11708         flag is checked before field (flag is common, field is not).
11709         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
11710         TS_DECL_COMMON could have an origin.
11711         (add_location_or_const_value_attribute): Don't check section name
11712         on non-var/function decls.
11713         (dwarf2out_var_location): Reverse order of tests.
11714         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
11715         with DECL_WRTL_CHECK.
11716         * expmed.c (make_tree): rtl is now in decl_with_rtl.
11717         * fold-const.c (fold_binary): Don't check weakness on
11718         non-var/function decls.
11719         (tree_expr_nonzero_p): Ditto.
11720         (fold_checksum_tree): Use tree_decl_extra as sizeof
11721         buffer.
11722         * ggc-page.c (extra_order_size_table): Add sizes for
11723         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
11724         tree_field_decl.
11725         * gimplify.c (gimplify_bind_expr): Only set
11726         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
11727         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
11728         without RTL.
11729         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
11730         * langhooks.h (init_ts). New langhook.
11731         * passes.c (rest_of_decl_compilation): Reverse order of tests.
11732         * print-tree.c (print_node): Update to only print fields that
11733         exist in the structures the passed decl has.
11734         * toplev.c (wrapup_global_declarations): Don't reset
11735         DECL_DEFER_OUTPUT on DECL's that don't contain it.
11736         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
11737         * tree-inline.c (remap_decl): Ditto.
11738         * tree-outof-ssa.c (create_temp): Reverse order of tests.
11739         * tree-pretty-print.c (print_declaration): Don't print
11740         DECL_REGISTER on things that don't contain it.
11741         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
11742         non-var/function decls.
11743         * tree.c (tree_contains_struct): New structure.
11744         (init_priority_for_decl): New hashtable.
11745         (tree_int_map): New structure.
11746         (tree_int_map_eq): New function.
11747         (tree_int_map_marked_p): Ditto.
11748         (tree_int_map_hash): Ditto.
11749         (tree_map): Move to tree.h.
11750         (tree_map_eq): Externalize.
11751         (tree_map_hash): Ditto.
11752         (tree_map_marked_p): Ditto.
11753         (init_ttree): Set up tree_contains_struct and call langhook.
11754         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
11755         (tree_code_size): Update for new structures.
11756         (tree_node_structure): Update for new structures.
11757         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
11758         without the field.
11759         (copy_node_stat):  Copy init priority.
11760         (build_decl_stat): Ditto for visibility.
11761         (ts_enum_names): New.
11762         (tree_contains_struct_check_failed): New function.
11763         (decl_init_priority_lookup): Ditto.
11764         (decl_init_priority_insert): Ditto.
11765         * treestruct.def: New file.
11766         * tree.h (CODE_CONTAINS_STRUCT): New macro.
11767         (CONTAINS_STRUCT_CHECK): Ditto.
11768         (tree_contains_struct_check_failed): New prototype.
11769         (DECL_CHECK): Removed.
11770         (DECL_MINIMAL_CHECK): New.
11771         (DECL_COMMON_CHECK): Ditto.
11772         (DECL_WRTL_CHECK): Ditto.
11773         (DECL_NON_COMMON_CHECK): Ditto.
11774         (DECL_WITH_VIS_CHECK): Ditto.
11775         (VAR_OR_FUNCTION_DECL_P): Ditto
11776         (struct tree_decl_minimal): New structure.
11777         (struct tree_decl_common): Ditto.
11778         (struct tree_decl_with_rtl): Ditto.
11779         (struct tree_decl_with_vis): Ditto.
11780         (struct tree_decl_non_common): Ditto.
11781         (struct tree_field_decl): Ditto.
11782         (struct tree_parm_decl): Ditto.
11783         (struct tree_var_decl): Ditto.
11784         (struct tree_function_decl): Ditto.
11785         (struct tree_const_decl): Ditto.
11786         (struct tree_result_decl): Ditto.
11787         (union tree_node): Add new structures.
11788         * var-tracking.c (track_expr_p): Reverse order of tests.
11789
11790         * doc/c-tree.texi: Add documentation on DECL node internal structure.
11791
11792 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
11793
11794         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
11795         * system.h: Poison FINALIZE_PIC.
11796         * doc/tm.texi (FINALIZE_PIC): Remove.
11797
11798 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11799
11800         PR tree-opt/22329
11801         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
11802         to the correct type if we have a MODIFY_EXPR.
11803
11804 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
11805
11806         PR tree-optimization/22360
11807         * tree.c (upper_bound_in_type): Fix calculations for casting
11808         to a non-wider signed type and casting a signed value to a
11809         wider unsigned type.
11810         (lower_bound_in_type): Fix calculations for casting to a
11811         non-wider signed type.
11812
11813         PR tree-optimization/20139
11814         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
11815         release_defs.
11816         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
11817         fold_cond_expr_cond.
11818         * tree-ssanames.c (release_defs): Assert in_ssa_p.
11819         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
11820
11821 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11822
11823         PR tree-opt/22356
11824         * tree-complex.c (expand_complex_libcall): Produce
11825         REALPART_EXPR/IMAGPART_EXPR with the correct type.
11826
11827 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
11828
11829         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
11830         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
11831         b" assert and inserted fastpath code for this case.
11832         (bitmap_ior): Removed "a != b" assert.
11833
11834 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11835
11836         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
11837         (ENDFILE_SPEC): Likewise.
11838         * config/m32r/m32r.h (ASM_SPEC): Likewise.
11839
11840         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
11841         a large stack frame at epilogue.
11842
11843 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
11844
11845         * final.c: Include sdbout.h when required.
11846
11847 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
11848
11849         * config.gcc (*-*-darwin*): Only one target-specific header file
11850         for generic darwin.
11851         (powerpc-*-darwin*): Add version-specific header files.
11852         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
11853         * config.in: Regenerate.
11854         * configure: Regenerate.
11855         * gcc.c: Include xregex.h.
11856         (version_compare_spec_function): New.
11857         (spec_function): Add version-compare.
11858         (replace_outfile_spec_function): Reformat comment.
11859         (compare_version_strings): New.
11860         * config/darwin-c.c (version_as_macro): New.
11861         (builtin_define): New.
11862         (darwin_cpp_builtins): New.
11863         * config/darwin-protos.h (darwin_cpp_builtins): New.
11864         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
11865         (LIB_SPEC): Make unconditional, update comment.
11866         (TARGET_C99_FUNCTIONS): Define.
11867         * config/darwin.opt: Sort.
11868         (mmacosx-version-min=): New.
11869         * config/darwin7.h: Delete.
11870         * config/darwin8.h: Delete.
11871         * config/i386/darwin.h (): Call darwin_cpp_builtins.
11872         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
11873         (TARGET_C99_FUNCTIONS): Define.
11874         * config/rs6000/darwin7.h: New.
11875         * config/rs6000/darwin8.h: New.
11876         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
11877         (-mmacosx-version-min): Document.
11878
11879 2005-07-07  Ian Lance Taylor  <ian@airs.com>
11880
11881         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
11882
11883 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
11884
11885         PR middle-end/22239
11886         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
11887
11888 2005-07-07  Khem Raj  <kraj@mvista.com>
11889
11890         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
11891         in bytes, not words.
11892
11893 2005-07-07  Paul Brook  <paul@codesourcery.com>
11894
11895         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
11896         DEFAULT_FUNCTION_ARG_PADDING to upward.
11897
11898 2005-07-07  Richard Henderson  <rth@redhat.com>
11899
11900         * function.c (locate_and_pad_parm): Record parameter alignment in
11901         stack_alignment_needed.
11902
11903 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
11904
11905         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
11906         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
11907         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
11908         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
11909         (define_attr "type"): Add isync, sync, load_l, store_c.
11910         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
11911         Create scratch volatile MEM.
11912         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
11913         sync.
11914         (load_locked_<mode>): New.
11915         (store_conditional_<mode>): New.
11916         (sync_compare_and_swap<mode>): Replace with splitter.
11917         (sync_lock_test_and_set<mode>): Replace with splitter.
11918         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
11919         and UNSPECV_ISYNC.
11920         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
11921         is ics.  Attribute isync.
11922         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
11923         lwsync.
11924         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
11925         and UNSPECV_SYNC_OP.
11926         (emit_unlikely_jump): New.
11927         (emit_load_locked): New.
11928         (emit_store_conditional): New.
11929         (rs6000_split_compare_and_swap): New.
11930         (rs6000_split_lock_test_and_set): New.
11931         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
11932         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
11933         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
11934         rs6000_split_lock_test_and_set): Declare.
11935         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
11936         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
11937         store_c, isync, sync.
11938
11939 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
11940
11941         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
11942         filenames to gtyp-gen.h.
11943         (s-typ-gen): Use it in place of for loops.
11944
11945 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
11946
11947         * hooks.c (hook_bool_rtx_int_false): New function.
11948         * hooks.h (hook_bool_rtx_int_false): Declare.
11949         * target-def.h (TARGET_COMMUTATIVE_P): Define.
11950         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
11951         * target.h (struct gcc_target): Add commutative_p member.
11952         * targhooks.c (hook_bool_rtx_commutative_p): New function.
11953         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
11954         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
11955         (pa_commutative_p): New function.
11956         * jump.c (target.h): Include.
11957         (rtx_renumbered_equal_p): Use targetm.commutative_p.
11958         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
11959
11960 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
11961
11962         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
11963         (s390_expand_setmem): New.
11964         * config/s390/s390.c: Likewise.
11965         (print_shift_count_operand): Truncate to 12 bits instead of 6.
11966         Adapt comments.
11967         * config/s390/s390.md: ("setmem<mode>"): Accept character as
11968         general_operand.  Call new function "s390_expand_setmem".
11969         ("clrmem_long", "*clrmem_long"): Rewrite to ...
11970         ("setmem_long", "*setmem_long"): ... this.
11971
11972 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
11973
11974         * config/s390/s390.c: (optimization_options): Enable
11975         TARGET_MVCLE at -Os.
11976         * doc/invoke.texi: Document changes in default behaviour.
11977         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
11978
11979 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
11980
11981         * expr.c: (set_storage_via_setmem): Convert opchar to mode
11982         defined by back-end.
11983
11984 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
11985
11986         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
11987         all sets in the pattern.
11988         * config/rs6000/rs6000.md (stack_protect_testsi,
11989         stack_protect_testdi): Likewise.
11990
11991 2005-07-06  Jeff Law  <law@redhat.com>
11992
11993         * tree-vrp.c (simplify_using_ranges): Kill.
11994         (vrp_finalize): Remove call to simplify_using_ranges.
11995         (simplify_stmt_using_ranges): New function extracted from
11996         simplify_using_ranges.
11997         (simplify_div_or_mod_using_ranges): Likewise.
11998         (simplify_abs_using_ranges): Likewise.
11999         (simplify_cond_using_ranges): New function.
12000         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
12001         * tree-ssa-propagate.c (substitute_and_fold): Call
12002         simplify_stmt_using_ranges if we have range information.
12003
12004 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
12005
12006         * config/ia64/ia64.c (ia64_reorg): Check optimize before
12007         ia64_flag_schedule_isns2.
12008
12009         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
12010         reading/writing general registers.
12011         (ia64_function_arg): Revert 2005-06-18 change.
12012
12013 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
12014
12015         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
12016         (legitimize_tls_address): Use gcc_unreachable instead of abort.
12017
12018 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
12019
12020         * function.c (expand_function_end): Revert part of 2005-06-27
12021         patch.  Do sjlj_emit_function_exit_after after return_label.
12022
12023 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12024
12025         * doc/install.texi (--disable-libssp): New.
12026
12027 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
12028
12029         * doc/invoke.texi: Update -fforce-mem documentation.
12030         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
12031         code for -fforce-mem.
12032         * expmed.c: (store_bit_field,store_fixed_bit_field,
12033         extract_bit_field): Ditto.
12034         * expr.c: (convert_move): Ditto.
12035         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
12036         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
12037         emit_conditional_add,expand_float,expand_fix): Ditto.
12038         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
12039         (common_handle_option): Issue warning when -fforce-mem specified.
12040
12041 2005-07-06  Paul Brook  <paul@codesourcery.com>
12042
12043         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
12044         argument is empty.
12045         * configure: Regenerate.
12046
12047 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
12048
12049         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
12050
12051 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
12052
12053         Fix PR tree-optimization/22319
12054         Fix PR tree-optimization/22140
12055         Fix PR tree-optimization/22310
12056
12057         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
12058         variable sized types.
12059         Use correct type for intermediate structure on *a = *b structure
12060         copies.
12061
12062 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12063
12064         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
12065         Remove.
12066         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
12067         (machine_function): Move typedef to...
12068         * config/rs6000/rs6000.c (machine_function): ... here.  Add
12069         varargs_save_offset field.
12070         (rs6000_stack_t): Remove varargs_size field.
12071         (setup_incoming_varargs): Allocate varargs save area using
12072         assign_stack_local, try to make it as small as possible.
12073         Save offset from virtual_stack_vars_rtx to the save area
12074         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
12075         instead of magic 8 when fp word byte size is used.
12076         (rs6000_va_start): Use cfun->machine->varargs_save_offset
12077         instead of -RS6000_VARARGS_SIZE.
12078         (rs6000_stack_info, debug_stack_info,
12079         rs6000_initial_elimination_offset): Remove all traces of
12080         varargs_size.
12081         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
12082         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
12083         RS6000_VARARGS_AREA.
12084
12085 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
12086
12087         PR tree-optimization/21963
12088         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
12089         constant_multiple_of in the same way get_computation_cost_at does.
12090
12091 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12092
12093         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
12094         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
12095         (gen_compare_reg): If sparc_compare_emitted is set, clear it
12096         and return its previous value.
12097         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
12098         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
12099         constants.
12100         (stack_protect_set, stack_protect_test): New expanders.
12101         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
12102         stack_protect_testdi): New insns.
12103         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12104         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
12105
12106 2005-07-06  Jeff Law  <law@redhat.com>
12107
12108         * tree-ssa-dce.c (cfg_altered): New global.
12109         (tree_dce_init): Initialize cfg_altered.
12110         (remove_dead_stmt): If we remove an edge in the CFG, then set
12111         CFG_ALTERED.
12112         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
12113         the dominators.
12114
12115 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12116
12117         * Makefile.in (stamp-collect-ld): Use
12118         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
12119         ./collect-ld if it already exists.
12120         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
12121         Don't remove ./nm if it already exists.
12122
12123 2005-07-05  Devang Patel  <dpatel@apple.com>
12124
12125         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
12126         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
12127         * tree-vectorizer.c (vect_loop_location): New.
12128         (vect_print_dump_info): Use vect_loop_location.
12129         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
12130         (vectorize_loops): Set vect_loop_location.
12131         * tree-vect-analyze.c (vect_analyze_offset_expr,
12132         vect_determin_vectorization_factor, vect_analyze_operations,
12133         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
12134         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
12135         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
12136         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
12137         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
12138         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
12139         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
12140         vect_analyze_loop): Adjust vect_print_dump_info API.
12141         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
12142         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
12143         vect_finish_stmt_generation, vectorizable_assignment,
12144         vectorizable_operation, vectorizable_store, vectorizable_load,
12145         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
12146         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
12147         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
12148         vect_transform_loop): Same.
12149         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
12150         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
12151         Same.
12152
12153 2005-07-05  Randolph Chung  <tausq@debian.org>
12154
12155         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
12156         * configure: Regenerate.
12157         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
12158         (pa_tls_referenced_p): Declare.
12159         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
12160         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
12161         (legitimize_tls_address): New.
12162         (hppa_legitimize_address): Handle TLS addresses.
12163         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
12164         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12165         (emit_move_sequence): Handle TLS addresses.
12166         (pa_encode_section_info): Call default handler to handle common
12167         sections.
12168         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
12169         (CONSTANT_ADDRESS_P): Reject TLS operands.
12170         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
12171         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
12172         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
12173         (UNSPEC_TLSLE): Define new constants.
12174         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
12175         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
12176         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
12177         (tie_symbolic_operand, tle_symbolic_operand): New
12178
12179 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
12180
12181         * aclocal.m4: Update macros for autoconf 2.59 style.
12182         * configure.ac: Likewise.
12183
12184 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12185
12186         * pa.c (function_value): Handle small aggregates on 32-bit targets.
12187         (function_arg): Pass small aggregates in general registers on 32-bit
12188         targets.
12189         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
12190
12191 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
12192
12193         * Makefile.in (final.o): Fix dependencies.
12194
12195 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12196
12197         PR c/22013
12198         PR c/22098
12199         * langhooks.h (struct lang_hooks): Add expr_to_decl.
12200         * langhooks.c (lhd_expr_to_decl): New.
12201         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
12202         New.
12203         (LANG_HOOKS_INITIALIZER): Update.
12204         * tree.c (recompute_tree_invarant_for_addr_expr): Call
12205         expr_to_decl langhook.
12206         * c-tree.h (c_expr_to_decl): Declare.
12207         * c-typeck.c (c_expr_to_decl): New.
12208         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
12209         specially.
12210         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
12211
12212 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12213
12214         PR c/22308
12215         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
12216         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
12217
12218 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
12219
12220         * Makefile.in: Adjust dependencies.
12221         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
12222         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
12223         * alias.c (rest_of_handle_cfg, pass_cfg): New.
12224         * bb-reorder.c (duplicate_computed_gotos): Make it static.
12225         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
12226         rest_of_compilation.
12227
12228         * bb-reorder.c (gate_duplicate_computed_gotos,
12229         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
12230         rest_of_handle_reorder_blocks, pass_reorder_blocks,
12231         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
12232         pass_partition_blocks): New.
12233         * bt-load.c (gate_handle_branch_target_load_optimize,
12234         rest_of_handle_branch_target_load_optimize,
12235         pass_branch_target_load_optimize): New.
12236         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
12237         pass_jump2): New.
12238         * cfglayout.c (pass_insn_locators_initialize): New.
12239         * cfgrtl.c (pass_free_cfg): New.
12240         * combine.c (gate_handle_combine, rest_of_handle_combine,
12241         pass_combine): New.
12242         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
12243         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
12244         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
12245         * except.c (pass_set_nothrow_function_flags,
12246         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
12247         pass_rtl_eh): New.
12248         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
12249         rest_of_handle_shorten_branches, pass_shorten_branches,
12250         rest_of_clean_state, pass_clean_state): New.
12251         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
12252         rest_of_handle_remove_death_notes, pass_remove_death_notes,
12253         rest_of_handle_life, pass_life, rest_of_handle_flow2,
12254         pass_flow2): New.
12255         * function.c (pass_instantiate_virtual_regs, pass_init_function,
12256         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
12257         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
12258         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
12259         pass_gcse): New.
12260         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
12261         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
12262         pass_rtl_ifcvt, gate_handle_if_after_combine,
12263         rest_of_handle_if_after_combine, pass_if_after_combine,
12264         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
12265         pass_if_after_reload): New.
12266         * integrate.c (pass_initial_value_sets): New.
12267         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
12268         pass_purge_lineno_notes): New.
12269         * mode-switching.c (rest_of_handle_mode_switching,
12270         pass_mode_switching): New.
12271         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
12272         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
12273         pass_loop2): New.
12274         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
12275         pass_loop_optimize): New.
12276         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
12277         pass_sms): New.
12278         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
12279         pass_gcse2): New.
12280         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
12281         pass_postreload_cse): New.
12282         * profile.c (gate_handle_profiling, pass_profiling,
12283         rest_of_handle_branch_prob, pass_branch_prob): New.
12284         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
12285         pass_split_before_regstack, gate_handle_split_before_regstack,
12286         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
12287         rest_of_handle_split_all_insns, pass_split_all_insns): New.
12288         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
12289         pass_stack_regs): New.
12290         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
12291         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
12292         pass_stack_adjustments): New.
12293         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
12294         pass_regrename): New.
12295         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
12296         pass_delay_slots, gate_handle_machine_reorg,
12297         rest_of_handle_machine_reorg, pass_machine_reorg): New.
12298         * rtl.h (extern void purge_line_number_notes): New.
12299         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
12300         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
12301         pass_sched2): New.
12302         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
12303         pass_tracer): New.
12304         * value-prof.c (gate_handle_value_profile_transformations,
12305         rest_of_handle_value_profile_transformations,
12306         pass_value_profile_transformations): New.
12307         * var-tracking.c (gate_handle_var_tracking,
12308         pass_variable_tracking): New.
12309         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
12310
12311         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
12312         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
12313         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
12314         rest_of_handle_old_regalloc, rest_of_handle_regrename,
12315         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
12316         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
12317         rest_of_handle_gcse2, rest_of_handle_regmove,
12318         rest_of_handle_tracer, rest_of_handle_if_conversion,
12319         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
12320         rest_of_handle_web, rest_of_handle_branch_prob,
12321         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
12322         rest_of_handle_jump_bypass, rest_of_handle_combine,
12323         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
12324         rest_of_handle_gcse, rest_of_handle_loop_optimize,
12325         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
12326         rest_of_handle_mode_switching, rest_of_handle_jump,
12327         rest_of_handle_eh, rest_of_handle_stack_adjustments,
12328         rest_of_handle_flow2, rest_of_handle_jump2,
12329         rest_of_handle_peephole2, rest_of_handle_postreload,
12330         rest_of_handle_shorten_branches, rest_of_clean_state,
12331         rest_of_compilation): Remove.
12332
12333         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
12334         * passes.c (dump_flags, in_gimple_form, all_passes,
12335         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12336         register_dump_files, next_pass_1, last_verified, execute_todo,
12337         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
12338         from tree-optimize.c.
12339         (init_optimization_passes): Moved from tree-optimize.c,
12340         adding the RTL optimizations.
12341         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
12342         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
12343         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12344         register_dump_files, next_pass_1, last_verified, execute_todo,
12345         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
12346         init_tree_optimization_passes, ipa_passes): Delete.
12347         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
12348         the RTL dumps.
12349         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
12350         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
12351         from tree.h.
12352         (ipa_passes): Remove.
12353         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
12354         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
12355         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
12356         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
12357         (dump_info_p, dump_flag): Moved to tree-dump.h.
12358
12359         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
12360         cgraph.c, opts.c.
12361         * passes.c (finish_optimization_passes): Use dump_begin
12362         and dump_end, TDI_end.
12363         (gate_rest_of_compilation): New.
12364         (pass_rest_of_compilation): Use it.
12365         (gate_postreload, pass_postreload): New.
12366         * toplev.c (general_init): Rename init_tree_optimization_passes.
12367         * toplev.h (init_tree_optimization_passes): Rename to
12368         init_optimizations_passes.
12369         * tree-dump.c (dump_flag): Make static.
12370         (dump_files): Remove RTL dumps.
12371         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
12372         pass_cleanup_cfg, pass_free_cfg_annotations,
12373         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
12374         pass_init_datastructures, pass_fixup_cfg): Make non-static.
12375         * tree-pretty-print.c: Include tree-pass.h.
12376         * cgraph.c: Include tree-dump.h.
12377
12378 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12379
12380         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
12381         Only fall back to saying it points to readonly memory if
12382         we can't do better.
12383
12384 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12385
12386         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
12387         * config/m32r/m32r.c (m32r_compute_frame_size,
12388         m32r_expand_prologue): Take current_function_profile into
12389         account whenever we reference
12390         current_function_uses_pic_offset_table.
12391         (m32r_finalize_pic): Remove.
12392         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
12393
12394 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
12395
12396         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
12397         instead of $<.  Don't remove ./as if it already exists.
12398
12399 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12400
12401         PR target/21723
12402         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
12403         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
12404         for complex modes when generating code for PA 1.0.
12405         (VALID_FP_MODE_P): New macro.
12406         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12407         sets for all general and floating point modes.  Align wide floating
12408         point modes to even register boundaries to comply with architectural
12409         requirements.
12410         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
12411         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
12412         (VALID_FP_MODE_P): New macro.
12413         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12414         sets for all general and floating point modes.  Align wide floating
12415         point modes to even register boundaries to comply with architectural
12416         requirements.
12417
12418 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12419
12420         * tree-dump.c (dump_files): Initialize dump number for .cgraph
12421         to 0.
12422
12423 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12424
12425         * tree-ssa-structalias.c: Don't include expr.h.
12426
12427 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12428
12429         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
12430         comments.
12431
12432 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12433
12434         Fix PR tree-optimization/22279
12435
12436         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
12437         correct operator.
12438
12439 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
12440
12441         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
12442
12443 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12444
12445         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
12446         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
12447         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
12448         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
12449         config/stormy16/stormy16.c, config/v850/v850.c,
12450         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
12451         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
12452         Avoid "." or "\n" at end of diagnostics and capital letters at
12453         start of diagnostics.
12454         * combine.c, cse.c: Don't translate dump file output.
12455         * toplev.c (print_version): Only translate output if going to
12456         stderr.
12457
12458 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12459
12460         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
12461         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
12462         typos.
12463
12464 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12465
12466         * pa.c (fix_range): Fix typo in comment.
12467
12468 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12469
12470         * tree-vrp.c (extract_range_from_assert): Replace
12471         fold (build (...)) with fold_build2.
12472
12473 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12474
12475         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
12476         gcc_gfc_char_table, init_dynamic_gfc_info): New.
12477         (format_types_orig, handle_format_attribute): Add support for
12478         format "gcc_gfc".
12479
12480 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12481
12482         * varasm.c (assemble_variable): Fix format specifier thinko.
12483
12484 2005-07-03  Ira Rosen  <irar@il.ibm.com>
12485
12486         PR tree-optimization/22029 (and 22135)
12487         * tree-pretty-print.c (dump_generic_node): Check that the node is not
12488         a phi node before calling dump_vops.
12489
12490 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12491
12492         * tree-dump.h (dump_string_field): Declare.
12493         * tree-dump.c: Use it instead of dump_string.
12494         (dump_string_field): Make non-static.
12495
12496 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
12497
12498         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
12499         up the minimal CFG stuff always when optimize > 0.  Call
12500         split_all_insns_noflow in PIC case if needed.
12501
12502 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12503             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
12504
12505         PR c++/18279
12506         * c-decl.c (c_write_global_declarations): Dump contents of
12507         external scope to.
12508         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
12509         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
12510         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
12511         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
12512         is enabled.
12513
12514 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12515
12516         * c-common.h (GCC_DIAG_STYLE): Define.
12517         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
12518         version for format checking to 4.1.
12519         * c-format.c: Include toplev.h after c-common.h.
12520         (enum format_type): Add gcc_tdiag_format_type.
12521         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
12522         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
12523         (format_types_orig): Add gcc_tdiag.
12524         (init_dynamic_diag_info): Support gcc_tdiag formats.
12525         (handle_format_attribute): Likewise.
12526         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
12527         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
12528         version for format checking to 4.1.
12529         (warning0, warning, error, pedwarn, sorry): Use
12530         ATTRIBUTE_GCC_DIAG.
12531         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
12532         (finish_aliases_1): Do not use %qE.
12533         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
12534         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
12535         Correct format bugs.
12536         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
12537         parameter to unsigned HOST_WIDE_INT.
12538         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
12539
12540 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
12541
12542         PR middle-end/21742
12543         * expr.c (write_complex_part): Use adjust_address for MEM.
12544         (read_complex_part): Same.
12545
12546 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
12547
12548         Fix PR tree-optimization/22280
12549
12550         * tree-sra.c (generate_element_init): Remove useless loop.
12551
12552 2005-07-02  Richard Henderson  <rth@redhat.com>
12553
12554         * config/alpha/alpha.c (alpha_legitimize_address): Check for
12555         TLS_MODEL_NONE.
12556         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
12557
12558 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
12559
12560         PR middle-end/14490
12561         * fold-const.c (fold_binary): Handle the return value of
12562         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
12563         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
12564
12565 2005-07-02  Jeff Law  <law@redhat.com>
12566
12567         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
12568         a eliminate type conversion which feeds an equality comparison
12569         if the original type or either operand in the comparison is a
12570         function pointer.
12571
12572 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
12573
12574         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
12575         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
12576         texts.
12577         * config/avr/avr.c: Do not use '`' as left quote.
12578         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
12579         Remove "." from end of diagnostics.  Make diagnostics start with
12580         lowercase letter.
12581
12582 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
12583             Joseph S. Myers  <joseph@codesourcery.com>
12584
12585         * toplev.c (default_tree_printer): Handle setting location with
12586         '+' flag.
12587         * c-objc.common.c (c_tree_printer): Likewise.
12588         * c-format.c (gcc_diag_flag_specs): Add '+'.
12589         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
12590         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
12591         formats.
12592         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
12593         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
12594         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
12595         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
12596         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
12597         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
12598         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
12599         format arguments where %J is used without %D.
12600
12601 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
12602
12603         * gcc.c (LINK_SSP_SPEC): Define.
12604         (link_ssp_spec): New variable.
12605         (LINK_COMMAND_SPEC): Add %(link_ssp).
12606         (static_specs): Add link_ssp_spec.
12607         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
12608         * configure: Rebuilt.
12609         * config.in: Rebuilt.
12610
12611         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12612         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12613         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12614         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12615         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
12616         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
12617         -0x7008(2) instead of reading __stack_chk_guard variable.
12618         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
12619         number.
12620         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
12621         (stack_protect_set, stack_protect_test): Use *_tls* patterns
12622         if TARGET_THREAD_SSP_OFFSET is defined.
12623         (stack_tls_protect_set_si, stack_tls_protect_set_di,
12624         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
12625
12626         Revert:
12627         2005-06-27  Richard Henderson  <rth@redhat.com>
12628         * libgcc-std.ver (GCC_4.1.0): New.
12629         * libgcc.h (__stack_chk_guard): Declare.
12630         (__stack_chk_fail, __stack_chk_fail_local): Declare.
12631         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
12632         * mklibgcc.in (lib2funcs): Add them.
12633
12634 2005-07-01  Richard Henderson  <rth@redhat.com>
12635
12636         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
12637         void * before struct sigcontext *.
12638         (x86_fallback_frame_state): Likewise.
12639
12640 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
12641
12642         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
12643
12644 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
12645
12646         PR tree-opt/22269
12647         * tree-ssa-reassoc.c (should_transpose): Fix which operand
12648         we check for SSA_NAME for.
12649
12650 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
12651
12652         Fix PR tree-optimization/22071
12653
12654         * tree-ssa-structalias.c (offset_overlaps_with_access): New
12655         function.
12656         (get_constraint_for_component_ref): Use it.
12657
12658 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
12659
12660         PR other/22264
12661         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
12662         print out the last new line.
12663
12664 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
12665
12666         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
12667         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
12668         * config/cris/cris.c (cris_conditional_register_usage): Adjust
12669         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
12670         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
12671         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
12672         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
12673         (enum reg_class): New member CC0_REGS.
12674         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
12675         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
12676         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
12677         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
12678         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
12679         Adjust for register now described.
12680
12681 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
12682
12683         PR target/22262
12684         * config/i386/i386.md (stack_protect_test_si,
12685         stack_protect_test_di): Add earlyclobber for scratch 3.
12686         * config/rs6000/rs6000.md (stack_protect_testsi,
12687         stack_protect_testdi): Add earlyclobber for scratch 3,
12688         remove earlyclobber from scratch 4.
12689
12690 Older entries for 2005 can be found in ChangeLog-2005.