OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
2
3         PR tree-optimization/23518
4         * fold-const.c (make_range): Don't move a constant to the
5         other side of the comparison if the type is signed and -fwrapv
6         is given.
7
8 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
9
10         * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
11         of vr0.type.
12
13 2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>
14
15         PR middle-end/24998
16         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
17         _floatundisf.
18
19 2005-12-21  Andrew Haley  <aph@redhat.com>
20
21         PR middle-end/25121
22         * recog.c (peephole2_optimize): Don't peephole any
23         RTX_FRAME_RELATED_P insns.
24
25 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
26
27         * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
28         fold_build2 with fold_binary.
29         * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
30         Replace fold_build1 with fold_unary.
31         * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
32         with fold_binary.
33
34 2005-12-21  Steven Bosscher  <stevenb@suse.de>
35
36         PR rtl-optimization/25196
37         * postreload-gcse.c (record_last_set_info): Notice stack pointer
38         changes in push insns without REG_INC notes.
39
40 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
41
42         PR tree-optimization/25382.
43         * tree-vrp.c (extract_range_from_binary_expr): Extract a range
44         from BIT_AND_EXPR.
45
46 2005-12-21  Janis Johnson  <janis187@us.ibm.com>
47             Ben Elliston  <bje@au.ibm.com>
48
49         * configure.ac: Enable C extension for decimal float if invoked
50         with --enable-decimal-float.
51         * doc/install.texi (Configuration): Document it.
52         * configure, config.in: Regenerate.
53
54 2005-12-20  Mike Stump  <mrs@apple.com>
55
56         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
57         ambiguity between -seg_addr_table and -seg_addr_table_filename.
58         (WORD_SWITCH_TAKES_ARG): Likewise.
59         (LINK_SPEC): Likewise.
60
61 2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>
62
63         * cfganal.c (flow_reverse_top_sort_order_compute):
64         Renamed to post_order_compute and additional parameter added which
65         allows the inclusion of entry and exit blocks into list.
66         (mark_dfs_back_edges): Fixed comment.
67         (flow_depth_first_order_compute): Renamed to
68         pre_and_rev_post_order_compute additional parameter added which
69         allows the inclusion of entry and exit blocks into list.
70         * global.c (set_up_bb_rts_numbers): Call to
71         flow_reverse_top_sort_order_compute renamed to
72         post_order_compute.
73         * var-tracking.c (vt_stack_adjustments): Fixed comment.
74         (vt_find_locations): Call to
75         flow_depth_first_order_compute renamed to
76         pre_and_rev_post_order_compute.
77         * cfgloop.c (flow_find_loops): Ditto.
78         * tree-ssa-reassoc.c (init_reassoc): Ditto.
79         * df.c (df_analyze_1, df_analyze_subcfg): Calls to
80         flow_reverse_top_sort_order_compute renamed to post_order_compute
81         and calls to flow_reverse_top_sort_order_compute renamed to
82         post_order_compute.
83         * basic_block.h: Ditto.
84
85
86 2005-12-20  Roger Sayle  <roger@eyesopen.com>
87             Paolo Bonzini  <bonzini@gnu.org>
88
89         PR rtl-optimization/25115
90         * gcse.c (pre_insert_copy_insn): Fall back to the sole
91         SET in the insn if there is no SET for an
92         expression that is equivalent to EXPR.
93
94 2005-12-20  Richard Guenther  <rguenther@suse.de>
95
96         PR middle-end/24306
97         * builtins.c (std_gimplify_va_arg_expr): Do not align
98         va frame for zero sized types.
99         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
100
101 2005-12-20  Kazu Hirata  <kazu@codesourcery.com>
102
103         PR tree-optimization/25501
104         * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
105         used in the PHI argument corresponding to the edge from BB to
106         DEST.
107
108 2005-12-20  Richard Guenther  <rguenther@suse.de>
109
110         Revert
111         2005-12-02  Richard Guenther  <rguenther@suse.de>
112
113         * tree-cfg.c (mark_used_vars): New function.
114         (dump_function_to_file): Dump only used VAR_DECLs.
115
116 2005-12-19  Roger Sayle  <roger@eyesopen.com>
117
118         * combine.c (try_combine): Improve splitting of binary operators
119         by taking advantage of reassociative transformations.
120
121 2005-12-19  Jeff Law  <law@redhat.com>
122
123         * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
124         Strip away all type conversions after simplifying the
125         condition.
126
127         * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
128         cases the forwarder block dominates the destination.
129
130 2005-12-19  DJ Delorie  <dj@redhat.com>
131
132         * reload1.c (spill_failure): Dump reload data to dump file.
133         (find_reload_regs): Likewise.
134
135 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
136
137         PR tree-optimization/24793
138         * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
139         original reference if there are subvars.
140         * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
141
142 2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>
143
144         * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
145         Corrected basic block number calculations for changes in entry and
146         exit numbering.
147         
148 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
149
150         * tree-flow.h (struct var_ann_d): Change type of
151         may_aliases field to VEC(tree, gc) *.
152         (may_aliases): Declaration changed.
153         * tree-ssa-alias.c (group_aliases, add_may_alias,
154         replace_may_alias, dump_may_aliases_for,
155         is_aliased_with, add_type_alias, new_type_alias):
156         Work with VEC(tree, gc) * instead of varray.
157         * tree-flow-inline.h (may_aliases): Ditto.
158         * tree-ssa.c (verify_flow_insensitive_alias_info,
159         verify_name_tags): Ditto.
160         * tree-ssa-operands.c (add_stmt_operand): Ditto.
161
162 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
163
164         * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
165         comes back.
166
167 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
168
169         * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
170         check.
171
172 2005-12-19  Ben Elliston  <bje@au.ibm.com>
173
174         * doc/install.texi (Configuration): Typo in Fortran subheading.
175
176 2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>
177
178         * config/mt/mt.md (decrement_and_branch_until_zero): Add another
179         scratch.  Correct its reload split. Adjust its peephole.
180         (doloop_end): Add additional scratch.
181         (nop): Use 'nop'.
182         * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
183         (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
184         (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
185         (mt_builtin_saveregs): Replace with ...
186         (mt_setup_incoming_varargs): ... here.  Save just the varadic
187         args.
188         (mt_va_start): Remove.
189         (mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
190         (mt_machine_reorg): Split all insns here.
191         (TARGET_SETUP_INCOMING_VARARGS): Override.
192         * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
193         Set to CPU type.
194         (EXPAND_BUILTIN_VA_START): Remove.
195
196 2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
197
198         * flow.c (update_life_info, count_or_remove_death_notes): Fixed
199         latent bug that could happen if update_life_info was called with a
200         blocks parameter and the call to cleanup_cfg actually deleted one
201         of those blocks. 
202
203 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
204
205         * tree-ssa-structalias.c (update_alias_info): Remove handling
206         of may_be_aliased (SSA_NAME_VAR (op)) case.
207
208 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
209
210         * tree-flow.h (struct stmt_ann_d): Remove
211         makes_aliased_loads and makes_aliased_stores fields.
212         * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
213         and makes_aliased_loads fields.
214         * tree-ssa-dom.c (eliminate_redundant_computations): Do not
215         use makes_aliased_stores.
216         * tree-ssa-operands.c (clobbered_aliased_loads,
217         clobbered_aliased_stores, ro_call_aliased_loads): Removed.
218         (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
219         add_call_read_ops): Do not set makes_aliased_stores and
220         makes_aliased_loads fields.
221         * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
222         field.
223
224 2005-12-18  Geoffrey Keating  <geoffk@apple.com>
225
226         * config/darwin.h: Don't include darwin-sections.def to declare
227         global variables; instead create darwin_section_enum.
228         (darwin_section_enum): New.
229         (darwin_sections): New.
230         * config/darwin.c: Don't include darwin-sections.def to define
231         global variables.
232         (darwin_sections): New.
233         (output_objc_section_asm_op): Rewrite to take advantage of
234         darwin_sections.
235         (darwin_init_sections): Rewrite to use darwin_sections.
236         (machopic_output_indirection): Update for darwin_sections array.
237         (machopic_select_section): Likewise.
238         (machopic_select_rtx_section): Likewise.
239         (machopic_asm_out_constructor): Likewise.
240         (machopic_asm_out_destructor): Likewise.
241         (darwin_file_end): Likewise.
242         * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
243         * config/i386/i386.c (machopic_output_stub): Likewise.
244
245 2005-12-18  Richard Guenther  <rguenther@suse.de>
246
247         PR tree-optimization/25481
248         * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
249         don't have a varinfo for.
250
251 2005-12-18  Jon Grimm  <jgrimm2@us.ibm.com>
252             Janis Johnson  <janis187@us.ibm.com>
253             Ben Elliston  <bje@au.ibm.com>
254
255         * optabs.c (init_floating_libfuncs): Handle decimal float modes.
256         (init_optabs): Handle libfuncs for decimal float.
257         * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
258         * stor-layout.c (int_mode_for_mode): Likewise.
259         * simplify-rtx.c (simplify_immed_subreg): Likewise.
260         (simplify_unary_operation_1): Skip optimisations for decimal float
261         modes.
262         * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
263         * emit-rtl.c (gen_const_vector): Add assertion check.
264         (init_emit_once): Populate const_tiny_rtx with constants in each
265         decimal float mode.
266         * expmed.c (extract_high_half, expand_mult_highpart_optab,
267         expand_mult_highpart): Assert that mode is not a scalar float
268         mode.
269         * expr.c (convert_move): Handle conversion between decimal and
270         binary floats of the same size.
271         * convert.c (convert_to_real): Consider decimal float types when
272         folding.
273         * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
274         describe decimal floating point types.
275         
276 2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
277
278         PR rtl-optimization/21041
279         * reload.c (find_reloads_subreg_address): Replace paradoxical
280         subreg of MEM by widened access only if the resulting memory
281         is properly aligned, even on !STRICT_ALIGNMENT targets.
282
283 2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
284
285         * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
286
287 2005-12-18  Steven Bosscher  <stevenb@suse.de>
288
289         * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
290         the 2005-12-17 patch to renumber the entry and exit blocks.
291
292 2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
293
294         * doc/objc.texi (Type encoding): Fix typo.
295
296 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
297
298         * tree-tailcall.c (find_tail_calls): Use XNEW.
299         * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
300         (free_all_edge_infos): Use explicit cast to convert from void *.
301         (vrp_free): Likewise.
302         (dom_opt_finalize_block): Likewise.
303         (record_equivalences_from_incoming_edge): Likewise.
304         (thread_across_edge): Likewise.  Use XCNEWVEC.
305         (record_cond): Use XCNEW.
306         (record_conditions): Use XNEWVEC.
307         (record_edge_info): Use XCNEWVEC.
308         (lookup_avail_expr): Use XNEW.
309         (record_range): Likewise.  Use GGC_NEW.
310         * tree-nested.c (var_map_hash): Use explicit cast to convert from
311         void *.
312         (var_map_eq): Likewise.
313         (lookup_field_for_decl): Likewise.
314         (convert_nonlocal_reference): Likewise.
315         (convert_local_reference): Likewise.
316         (convert_nl_goto_reference): Likewise.
317         (convert_nl_goto_receiver): Likewise.
318         (convert_call_expr): Likewise.
319         (convert_tramp_reference): Likewise.
320         (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
321         (convert_nl_goto_reference): Likewise.
322         (lookup_field_for_decl): Use GGC_NEW.
323         (create_nesting_tree): Use GGC_CNEW.
324         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
325         * tree-ssa-alias.c (init_alias_info): Use XCNEW.
326         (create_alias_map_for): Likewise.
327         (setup_pointers_and_addressables): Use XCNEWVEC.
328         (get_ptr_info): Use GGC_NEW.
329         (used_part_map_eq): Use explicit cast to convert from void *.
330         (up_lookup): Likewise.
331         (up_insert): Use XNEW.
332         (get_or_create_used_part_for): Use XCNEW.
333         (get_tmt_for): Likewise.
334         * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
335         * tree-ssa-pre.c (phi_trans_add): Use XNEW.
336         (bitmap_set_new): Use explicit cast to convert from void *.
337         (set_new): Likewise.
338         (insert_into_set): Likewise.
339         (pool_copy_list): Likewise.
340         (phi_translate): Likewise.
341         (create_value_expr_from): Likewise.
342         (insert_aux): Use XCNEWVEC.
343         (compute_avail): Use XNEWVEC.
344         * tree-ssa-live.c (calculate_live_on_entry): Likewise.
345         (sort_coalesce_list): Likewise.
346         (build_tree_conflict_graph): Use XCNEWVEC.
347         * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
348         * tree-ssa-copy.c (init_copy_prop): Likewise.
349         (fini_copy_prop): Likewise.
350         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
351         and XCNEWVEC.
352         (record_equiv): Use XNEW.
353         (uncprop_into_successor_phis): Use explicit cast to convert from
354         void *.
355         (uncprop_initialize_block): Likewise.
356
357 2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>
358
359         PR tree-optimization/24378      
360         * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
361         basic-block after loop-versioning. 
362
363 2005-12-18  Jeff Law  <law@redhat.com>
364
365         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
366         to simplify SWITCH_EXPR_CODE moved from here to ...
367         * tree-ssa-forwprop.c (simplify_switch_expr): Here.
368         (tree-ssa-forward_propagate_single_use_vars): Call
369         simplify_switch_expr when appropriate.
370
371 2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>
372
373         * doc/objc.texi (Type encoding): Add documentation about encoding
374         complex types and _Bool.
375
376 2005-12-17  Paul Brook  <paul@codesourcery.com>
377
378         * config/m68k/m68k.md (m68k_output_function_prologue): Always call
379         dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
380         when frame_pointer_needed. 
381
382 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
383
384         * tree-vn.c (vn_add): Use XNEW.
385         * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
386         (ccp_fold): Likewise.
387         (fold_stmt_r): Use explicit cast to convert from void *.
388         * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
389         (new_temp_expr_table): Likewise.
390         * gimplify.c (lookup_tmp_var): Use XNEW.
391         (gimplify_asm_expr): Use explcit cast to convert from void *.
392         * tree-into-ssa.c (get_ssa_name_ann): Likewise.
393         (get_def_blocks_for): Use XNEW.
394         (add_to_repl_tbl): Likewise.
395         (mark_def_sites): Use explicit cast to convert from void *.
396         (def_blocks_free): Likewise.
397         (mark_def_sites_initialize_block): Likewise.
398         (update_ssa): Use XNEWVEC.
399         * tree-dfa.c (create_var_ann): Use GGC_NEW.
400         (create_stmt_ann): Likewise.
401         (create_tree_ann): Likewise.
402         (referenced_var_insert): Likewise.
403         (set_default_def): Likewise.
404         (referenced_var_lookup_if_exists): Use explicit cast to convert
405         from void *.
406         (referenced_var_lookup): Likewise.
407         (default_def): Likewise.
408         (set_default_def): Likewise.
409         * tree-cfg.c (create_bb): Likewise.
410         (edge_to_cases_cleanup): Likewise.
411         (verify_node_sharing): Likewise.
412         (record_switch_edge): Use XNEW.
413         (cleanup_dead_labels): Use XCNEWVEC.
414         (tree_duplicate_sese_region): Use XNEWVEC.
415         * tree-scalar-evolution.c (get_instantiated_value): Likewise.
416         * tree-ssa.c (verify_ssa): Use XCNEWVEC.
417         (int_tree_map_eq): Use explicit cast to convert from void *.
418         * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
419         (__gcov_execl): Likewise.
420         (__gcov_execlp): Likewise.
421         (__gcov_execle): Likewise.
422         * tree-eh.c (struct_ptr_eq): Likewise.
423         (struct_ptr_hash): Likewise.
424         (lookup_stmt_eh_region_fn): Likewise.
425         (outside_finally_tree): Likewise.
426         (find_goto_replacement): Likewise.
427         (make_eh_edge): Likewise.
428         (mark_eh_edge): Likewise.
429         (add_stmt_to_eh_region_fn): Use GGC_NEW.
430         (record_in_finally_tree): Use XNEW.
431         (maybe_record_in_goto_queue): Use XRESIZEVEC.
432         (lower_try_finally_copy): Use XCNEWVEC.
433
434 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
435
436         * tree-inline.c (copy_body_r): Use explicit cast when converting
437         from void *.
438         (copy_bb): Likewise.
439         (copy_edges_for_bb): Likewise.
440         (remap_decl_1): Likewise.
441         (estimate_num_insns_1): Likewise.
442         * cgraph.c (hash_node): Use explicit cast when converting from
443         void *.
444         (eq_node): Likewise.
445         (cgraph_create_node): Use GGC_CNEW.
446         (cgraph_create_edge): Use GGC_NEW.
447         (cgraph_remove_node): Use explicit cast when converting from void *.
448         (hash_varpool_node): Likewise.
449         (eq_varpool_node): Likewise.
450         (cgraph_varpool_node): Use GGC_CNEW.
451         * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
452         * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
453         (eq_scev_info): Use explicit cast when converting from void *.
454         (find_var_scev_info): Likewise.
455         (set_instantiated_value): Likewise.
456         (gather_stats_on_scev_database_1): Likewise.
457         * cfgloop.h (simple_loop_desc): Use explicit cast when converting
458         from void *.
459         * c-pch.c (c_common_write_pch): Use XNEWVEC.
460         (c_common_read_pch): Likewise.
461         * prefix.c (save_string): Use XNEWVEC.
462         (translate_name): Use explicit cast when converting from void *.
463         * c-ppoutput.c (print_line): Use explicit cast when converting
464         from void *.
465         (pp_dir_change): Likewise.
466         * c-cppbuiltin.c (builtin_define_std): Likewise.
467         (builtin_define_with_value): Likewise.
468         (builtin_define_with_value_n): Likewise.
469         (builtin_define_with_int_value): Likewise.
470         (builtin_define_type_max): Likewise.
471         * c-incpath.c (add_env_var_paths): Use XNEWVEC.
472         (add_path): Use XNEW.
473         * c-format.c (check_format_info_main): Use GGC_NEW.
474         (format_type_warning): Use explicit cast when converting from void *.
475         * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
476         xmalloc. 
477         (start_init): Likewise.
478         * tree-flow-inline.h (first_referenced_var): Use explicit cast
479         when converting from void *.
480         (next_referenced_var): Likewise.
481         * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
482         * gensupport.c (lookup_predicate): Use explicit cast to convert
483         from void *.
484         (init_predicate_table): Use XCNEW instead of xcalloc.
485         * genpreds.c (process_define_predicate): Likewise.
486
487 2005-12-17  Danny Berlin <dberlin@dberlin.org>
488             Kenneth Zadeck <zadeck@naturalbridge.com>
489
490         * basic-block.h: Changed basic block numbering so that the entry
491         block is 0 and the exit block is 1.  Changed insn iterators so
492         that they are tolerant of blocks with no insns.
493         * regrename.c (copyprop_hardreg_forward): Changed basic block
494         numbering so that the entry block is 0 and the exit block is 1.
495         * sched-ebb.c (sehedule_ebbs): Ditto.
496         * tracer.c (branch_ratio_cutoff): Ditto.
497         * cfgloopmanip.c (fix_loop_structure): Ditto.
498         * cfghooks.c (verify_flow_info): Ditto.
499         * cfg.c (compact_blocks): Ditto.
500         * reorg.c (dbr_schedule): Ditto.
501         * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
502         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
503         calculate_dominance_info): Ditto.
504         * cfganal.c (create_edge_list, print_edge_list,
505         flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
506         flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
507         dfs_enumerate_from): Ditto.
508         * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
509         * ifcvt.c (find_if_case_2): Ditto.
510         * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
511         find_basic_blocks): Ditto.
512         * predict.c (predict_loops, tree_bb_level_predictions,
513         predict_paths_leading_to, propagate_freq): Ditto.
514         * lcm.c (compute_antinout_edge, compute_laterin,
515         compute_available): Ditto.
516         * function.c (thread_prologue_and_epilogue_insns): Ditto.
517         * gcse.c (gcse_main, bypass_jumps): Ditto.
518         * profile.c (compute_branch_probabilities,
519         compute_value_histograms, branch_prob): Ditto.
520         * tree-flow-inline.h (bsi_start, bsi_after_labels,
521         bsi_last): Ditto.
522         * tree-ssa-phiopt.c (tree_ssa_phiopt,
523         blocks_in_phiopt_order): Ditto.
524         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
525         compute_out, link_btr_uses, migrate_btr_defs): Ditto.
526         * tree-dfa.c (collect_dfa_stats): Ditto.
527         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
528         * cfglayout.c (fixup_reorder_chain): Ditto.
529         * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
530         partition_hot_cold_basic_blocks): Ditto.
531         * var-tracking.c (vt_find_locations): Ditto.
532         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
533         * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
534         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
535         label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
536         * tree-ssa-reassoc.c (init_reassoc): Ditto.
537         * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
538         rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
539         * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
540         and removed unused reverse orders.
541         * df.h (): Ditto.
542         * combine.c: Fix document typo.
543
544 2005-12-17  Jan Hubicka  <jh@suse.cz>
545
546         * tree-flow-inline.h (set_default_def, default_def): Kill.
547         * tree-dfa.c (default_defs): New global variable.
548         (default_def, set_default_def): New functions.
549         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
550         * tree-flow.h (struct var_ann_d): Kill default_def field.
551         (set_default_def, default_def): Update prototype.
552         (default_defs): Declare.
553
554 2005-12-16  Jeff Law  <law@redhat.com>
555
556         * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
557         (simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
558         into tree-ssa-forwprop.c.
559         (eliminate_redundant_computations): Do not call
560         simplify_rhs_and_lookup_avail_expr anymore.
561         * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
562         extracted from remnants of simplify_rhs_and_lookup_avail_expr.
563         (tree_ssa_forward_propagate_single_use_vars): Call
564         simplify_not_neg_expr appropriately.
565
566 2005-12-16  Bernd Trog  <berndtrog@yahoo.com>
567
568         PR target/20016
569         * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
570
571 2005-12-17  Kazu Hirata  <kazu@codesourcery.com>
572
573         PR rtl-optimization/25456
574         * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
575         info->x_start with p->x_start.
576
577 2005-12-17  Alan Modra  <amodra@bigpond.net.au>
578
579         * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
580         introduced 2005-12-16.
581
582 2005-12-16  Steven Bosscher  <stevenb@suse.de>
583
584         PR rtl-optimization/23837
585         * optabs.c (expand_binop): For a multi-word rotate, never emit
586         a REG_NO_CONFLICT block.
587
588 2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
589
590         PR middle-end/25457
591         * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
592
593         PR target/25447
594         * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
595         MODE_DECIMAL_FLOAT.
596
597 2005-12-16  Steven Bosscher  <stevenb@suse.de>
598
599         * loop-invariant.c (move_loop_invariants): Add missing hunk from
600         the previous patch, to nullify df.
601
602 2005-12-16  Steven Bosscher  <stevenb@suse.de>
603
604         * reorg.c (mostly_true_jump): Clean up code depending on
605         LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
606         poor man's branch prediction, instead rely on REG_BR_PROB
607         notes to be available.
608
609 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
610
611         PR rtl-optimization/24899
612         * loop.c (strength_reduce): Don't reduce giv that is not always
613         computable and where add_val or mult_val can trap.
614
615         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
616
617 2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
618
619         * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
620         names of ms1-16-002 files.
621
622 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
623
624         PR driver/20425
625         * gcc.c (for_each_path): New function.
626         (add_to_obstack, file_at_path): New functions.
627         (struct file_at_path_info, struct add_to_obstack_info): New.
628         (build_search_list): Rewrite using for_each_path.  Constify struct
629         path_prefix pointer.  Add do_multi param.  Adjust all callers.
630         (find_a_file): Similarly, but just change existing param to bool.
631         (putenv_from_prefixes): Add do_multi param, make "paths" const.
632         (do_spec_path): Delete.
633         (struct spec_path_info): New.
634         (spec_path): New function.
635         (do_spec_1): Use for_each_path for %D and %I.
636         (find_file): Adjust for find_a_file changes.
637         (main): Search multilibs for specs.  Print multilib lib path for
638         -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
639         (read_specs): Search multilibs for %include and %include_noerr.
640         (is_directory): Remove second string param.  Change last param
641         to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
642         check path is a dir.  Update all callers.
643         * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
644         * system.h (SMALL_ARG_MAX): Poison.
645         * config.gcc: Don't define SMALL_ARG_MAX.
646         * config.host: Likewise.
647         * config.build: Likewise.
648
649 2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
650
651         * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
652         FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
653         ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
654         simplify_logical): Move simplifications that do not require
655         additional infrastructure...
656         * simplify-rtx.c (simplify_unary_operation_1,
657         simplify_binary_operation_1): ... here.
658
659 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
660
661         PR 24823
662         * flow.c (mark_used_dest_regs): New function.
663         (mark_used_regs): Call mark_used_dest_regs.
664
665 2005-12-16  Jeff Law  <law@redhat.com>
666
667         * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
668         represent a use and definition of the same SSA_NAME.
669
670 2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
671             Janis Johnson  <janis187@us.ibm.com>
672             Ben Elliston  <bje@au.ibm.com>
673
674         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
675         (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
676         * target.h (struct gcc_target): Add decimal_float_supported_p.
677         * targhooks.c (default_scalar_mode_supported_p): Handle
678         MODE_DECIMAL_FLOAT.
679         * builtins.def: Add new builtins for 32, 64 and 128 bit variants
680         of inf, nan, finite, isinf and isnan.
681         * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
682         BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
683         BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
684         BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
685         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
686         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
687         BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
688         * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
689         Pedwarn if decimal floating point types are used.  Error if
690         decimal floating point is not supported by the target.
691         (finish_declspecs): Return type from DFP typespec_word.
692         * c-typeck.c (c_common_type): Choose the decimal floating point
693         type with the greater precision when determining a common type.
694         (convert_arguments): Warn if there is a mismatch between argument
695         and prototype for decimal float types.  Warn of conversions with
696         binary float types and of precision narrowing due to prototype.
697         * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
698         (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
699         (c_token_starts_declspecs): Likewise.
700         (c_parser_attributes): Likewise.
701         * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
702         RID_DFLOAT64, RID_DFLOAT128.
703         (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
704         * c-common.c (c_common_type_for_mode): Handle decimal float modes.
705         (shorten_compare): Convert DFP/BFP operands to a common type.
706         (c_common_modes_and_builtins): Register built-in decimal float
707         types if the target supports them.
708         (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
709         * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
710         inf, nan, finite, isinf and isnan builtins.
711         * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
712         (builtin_define_float_constants): Assert non-decimal radix.
713         (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
714         Call builtin_define_decimal_float_constants for each type.
715         * c-lex.c (interpret_float): Decode decimal float types from CPP_N
716         flags.  Use real_from_string3, which can handle binary or decimal
717         floats.
718         * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
719         cts_dfloat64, cts_dfloat128.
720         * tree.c (build_common_tree_nodes_2): Add decimal float types.
721         * tree.h (enum tree_index): Add new enumeration values
722         TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
723         TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
724         (dfloat32_type_node): New macro.
725         (dfloat64_type_node, dfloat128_type_node): Likewise.
726         (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
727         (dfloat128_ptr_type_node): Likewise.
728         * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
729         bit decimal floating point types with "df", "dd" and "dl".
730         * c-format.h (enum format_lengths): Add new enumeration values
731         FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
732         * c-format.c (printf_length_specs, scanf_length_specs): Add
733         entries for H, D, DD.
734         (print_char_table, scan_char_table): Use new entries.
735         (asm_fprintf_char_table, gcc_diag_char_table,
736         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
737         length arrays.
738         * defaults.h (DECIMAL32_TYPE_SIZE): Define.
739         (DECIMAL64_TYPE_SIZE): Likewise.
740         (DECIMAL128_TYPE_SIZE): Likewise.
741         (TARGET_DEC_EVAL_METHOD): Likewise.
742         * doc/extend.texi (Decimal Float): New node.
743         (Constructing Calls): Document decimal float built-ins.
744         * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
745         * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
746         * ginclude/decfloat.h: New file.
747
748 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
749
750         * reload.c (find_reloads): Fix comment typo.
751         * recog.h (recog_memoized): Correct comment.
752
753 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
754
755         * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
756         config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
757         reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
758         tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
759         * doc/invoke.texi, doc/tm.texi: Fix typos.
760
761 2005-12-16  Ben Elliston  <bje@au.ibm.com>
762
763         * real.c (decimal_quad_format): Correct values for emin, emax.
764
765 2005-12-15  DJ Delorie  <dj@redhat.com>
766
767         * config/m32c/predicates.md (m32c_psi_scale): New.
768         * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
769         * config/m32c/muldiv.md (mulpsi3): Support negative constants.
770
771 2005-12-16  Jan Hubicka  <jh@suse.cz>
772
773         PR rtl-optimization/25224
774         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
775         tables.
776
777 2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
778             Steven Bosscher <stevenb@suse.de>
779
780         * loop-invariant.c (df): New global variable.
781         (find_defs, check_dependencies, find_invariant_insn, record_uses,
782         find_invariants_bb, find_invariants_body, find_invariants,
783         find_invariants_to_move, move_invariants, free_inv_motion_data,
784         move_single_loop_invariants, move_loop_invariants): Do not pass df in
785         arguments.
786
787 2005-12-15  Jakub Jelinek  <jakub@redhat.com>
788
789         * varasm.c (default_unique_section_1): Use special section
790         names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
791
792 2005-12-16  Ben Elliston  <bje@au.ibm.com>
793
794         * doc/invoke.texi (Warning Options): Document -Walways-true being
795         enabled by -Wall.
796
797 2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
798
799         PR other/25028
800         * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
801         * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
802         __floatunditf): Use #error if type sizes don't match requirements
803         of implementation.
804         (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
805         as wider floating-point type.  Use #error if type sizes don't
806         match requirements of implementation.  Avoid overflow in computing
807         Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
808         shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
809         (__floatundisf, __floatundidf): Likewise.
810         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
811         * config/ia64/ia64.c (ia64_init_libfuncs): Use
812         _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
813         TFmode-TImode conversions.
814         * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
815
816 2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
817
818         * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
819         Use builtin_define_with_int_value() instead of
820         adding a new check for every new major FreeBSD version.
821
822 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
823
824         * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
825
826 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
827
828         * config/arm/predicates.md (call_memory_operand): New.
829         * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
830
831 2005-12-15  Andrew Haley  <aph@redhat.com>
832
833         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
834         against prev_cache_entry == NULL when moving a cache entry to the
835         head of the list.
836         
837 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
838
839         * config/mt/mt.c (mt_override_options): Require lower case
840         architectures.  Revert accidental default to ms2.
841         * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
842         ENDFILE_SPEC): Require lower case architectures.  Revert default
843         to ms2.
844
845         * doc/invoke.texi (MT Options): Rename and update.
846         * doc/md.texi (MorphoTech family): Rename and update.
847
848 2005-12-15  Olivier Hainque  <hainque@adacore.com>
849
850         * stor-layout.c (layout_type): Don't complain about a too small
851         an array element type size compared to its alignment when the
852         size overflows.
853
854 2005-12-15  Jan Hubicka  <jh@suse.cz>
855
856         PR target/24969
857         * i386.c (classify_argument): Properly adjust offset of bitfield for
858         substructures.
859
860 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
861
862         * final.c (final_scan_insn): Flip in_cold_section_p when changing
863         between the hot and cold sections.  Use current_function_section
864         to get the new section.
865         * dwarf2out.c (output_line_info): Use in_cold_section_p to
866         determine whether we are assembling hot or cold code.
867         (secname_for_decl, dwarf2out_var_location): Likewise.
868         (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
869         * varasm.c (last_text_section): Delete.
870         (in_cold_section_p): New variable.
871         (hot_function_section): New function.
872         (current_function_section): Pass in_cold_section_p as the
873         reloc argument to select_section.  Use it to decide between
874         unlikely_function_section and hot_function_section.
875         (assemble_start_function): Use switch_to_section.  Set
876         in_cold_section_p instead of last_text_section.
877         (assemble_end_function): Use switch_to_section.
878         (switch_to_section): Don't set last_text_section.
879         * config/darwin/darwin.c (machopic_select_section): Trust the reloc
880         argument to make the right choice between hot and cold sections.
881
882 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
883
884         Second part of MS1->MT renaming
885         * config/mt/mt.md (doloop_end): Call mt_add_loop.
886         (movqi, movhi): Call mt_set_memflags.
887         (*movdf_internal): Call mt_split_words. 
888         (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
889         mt_set_memflags.
890         (cmpsi): Store to mt_compare_op[01].
891         (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
892         bungt, bunle, bunlt): Call mt_emit_cbranch.
893         (prologue): Call mt_expand_prologue.
894         (epilogu): Call mt_expend_epilogue.
895         (eh_return): Call mt_expand_eh_return.
896         (eh_epilogue): Call me_emit_eh_epilogue.
897         (conditional_trap): Store to mt_compare_op[01].
898         * config/mt/crti.asm: Adjust comment.
899         * config/mt/crtn.asm: Adjust comment.
900         * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
901         (mt_compare_op0, mt_compare_op1): Renamed.
902         (current_frame_info, zero_frame_info): Adjust type.
903         (mt_ucmpsi3_libcall): Renamed.
904         (mt_flag_delayed_branch): Renamed.
905         (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
906         (mt_nops_required, mt_nop_reasons): Renamed.
907         (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
908         mt_debug_stack, mt_print_operand_simple_address,
909         mt_print_operand_address, mt_print_operand): Renamed, adjusted.
910         (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
911         mt_function_arg_advance, mt_arg_partial_bytes,
912         mt_pass_by_reference, mt_function_arg_boundary,
913         mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
914         mt_legitimate_address_p): Renamed, adjusted.
915         (mt_cpu): Renamed.
916         (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
917         mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
918         mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
919         mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
920         mt_expand_eh_return, mt_emit_eh_prologue,
921         mt_handl_interrupt_attribute): Renamed, adjusted.
922         (mt_attribute_table): Renamed, adjusted.
923         (mt_initial_elimination_offset, mt_generate_compare,
924         mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
925         mt_secondary_reload_class, mt_function_value, mt_split_words,
926         mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
927         mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
928         (mt_labels): Renamed.
929         (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
930         mt_machine_reorg): Renamed, adjusted.
931         (mt_attribute_table: Renamed.
932         (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
933         TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
934         TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
935         * config/mt/mt.opt (march): Set mt_cpu_string.
936         * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
937         (TARGET_CPU_CPP_BUILTINS): Adjust.
938         (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
939         TARGET_MS2): Adjust.
940         (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
941         (MT_MIN_INT): Renamed.
942         (RETURN_ADDR_RTX): Adjust.
943         (struct mt_frame_info): Renamed.
944         (current_frame_info): Adjust type.
945         (INITIAL_ELIMINATION_OFFSET): Adjust.
946         (MT_NUM_ARG_REGS): Renamed.
947         (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
948         FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
949         LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
950         GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
951         FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
952         (mt_compare_op0, mt_compare_op1): Renamed.
953         * config/mt/mt-protos.h: Rename prototypes.
954
955 2005-12-15  Richard Guenther  <rguenther@suse.de>
956
957         * tree-flow.h (okay_component_ref_for_subvars): Remove.
958         (get_ref_base_and_extent): Declare.
959         * tree-dfa.c (okay_component_ref_for_subvars): Remove.
960         (get_ref_base_and_extent): New function.
961         * tree-ssa-alias.c (find_used_portions): Use it.
962         * tree-ssa-structalias.c (get_constraint_for_component_ref):
963         Likewise.
964         * tree-ssa-operands.c (get_expr_operands): Likewise.
965
966 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
967
968         * combine.c: Remove force_to_mode's fourth parameter.
969         (force_to_mode): Do not handle REG.
970         (canon_reg_for_combine): New.
971         (make_field_assignment): Use it where the removed argument was non-NULL.
972
973 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
974
975         PR target/25406
976         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
977         error_mark_node.  Make alignment params unsigned.
978         * config/rs6000/rs6000-protos.h
979         (rs6000_special_round_type_align): Update prototype.
980         (rs6000_machopic_legitimize_pic_address): Remove arg names.
981
982 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
983
984         PR rtl-optimization/25310
985         * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
986         of the eliminable register when substituting into a PLUS.
987
988 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
989
990         PR debug/25023
991         * config/i386/i386.c (ix86_force_to_memory): Always use
992         SImode push for HImode in -m32.
993         (ix86_free_from_memory): Likewise.
994
995 2005-12-14  Richard Sandiford  <richard@codesourcery.com>
996
997         * gcc/config/arm/arm.md: Provide a big-endian version of the
998         (zero_extend:SI (subreg:QI ...)) splitter.
999
1000 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1001
1002         * struct-equiv.c (note_local_live): Handle hard regs with different
1003         hard_regno_nregs.
1004
1005 2005-12-14  Jeff Law  <law@redhat.com>
1006
1007         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
1008         to a structure containing state rather than a pointer to bool.
1009         (case ARRAY_REF): New code to handle folding some array references.
1010         (case ADDR_EXPR): Note when we are processing expressions found
1011         within an ADDRE_EXPR.
1012         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
1013         for state variables rather than just a pointer to a boolean.
1014         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1015         handling of constant string references.
1016
1017 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1018
1019         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
1020         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
1021         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
1022         Move other tst* patterns to retain partial order.
1023
1024 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1025
1026         * config/s390/s390.md ("d0", "1"): New mode attributes.
1027         ("<shift>di3", "<shift>si3"): Merge.
1028         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
1029         ("ashrdi3", "ashrsi3"): Merge.
1030         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
1031         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
1032         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
1033         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
1034         ("*ashrdi3", "*ashrsi3"): Merge.
1035         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
1036
1037 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1038
1039         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
1040         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
1041         ("*extendqidi2", "*extendqisi2") Merge.
1042         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
1043         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1044         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
1045         Move some patterns to retain partial ordering.
1046
1047 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1048
1049         * config/s390/s390.md ("atype", "length"): Rewrite.
1050         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
1051
1052 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1053
1054         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
1055
1056 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1057
1058         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
1059         PARALLELs with a mode.
1060
1061 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1062
1063         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1064         cond_expr parameter.
1065
1066 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1067
1068         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1069
1070 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1071
1072         PR bootstrap/25397:
1073
1074         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1075         of STACK_REGS bits.
1076
1077         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1078
1079 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1080
1081         PR target/25254
1082         PR target/24188
1083         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1084         DECL_P, call get_section rather than get_named_section.  Supply
1085         section flags to it.
1086
1087 2005-12-14  Ben Elliston  <bje@au.ibm.com>
1088
1089         * c-common.c (c_common_truthvalue_conversion): Generalise warning
1090         for addresses converted to booleans; not just function addresses.
1091         * c-typeck.c (build_binary_op): Warn for address comparisons which
1092         can never be NULL (eg. func == NULL or &var == NULL).
1093         * common.opt (Walways-true): New option.
1094         * c-opts.c (c_common_handle_option): Set it with -Wall.
1095         * doc/invoke.texi: Document it.
1096
1097 2005-12-13  Paul Brook  <paul@codesourcery.com>
1098
1099         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1100         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1101
1102 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1103
1104         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1105         (EXTRA_MULTILIB_PARTS): Define.
1106
1107 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1108
1109         PR rtl-optimization/20070 / part1
1110         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1111         count_or_remove_death_notes with kill == -1.
1112         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1113         registers if PROP_POST_REGSTACK is set.
1114         (mark_used_reg): Likewise.
1115         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1116         REG_UNUSED notes for stack regs.
1117         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1118         to match rtx_equiv_p machinery.  Change caller.
1119         (outgoing_edges_match): Likewise.
1120         (try_crossjump_to_edge): Use struct_equiv_block_eq
1121         instead of flow_find_cross_jump.
1122         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1123         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1124         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1125         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1126         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1127         (insns_match_p): Update prototype.
1128         (flow_find_cross_jump): Remove prototype.
1129         (struct_equiv_block_eq, struct_equiv_init): Declare.
1130         (rtx_equiv_p, condjump_equiv_p): Likewise.
1131         * struct-equiv.c: Include reload.h.
1132         (IMPOSSIBLE_MOVE_FACTOR): Define.
1133         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1134         (struct_equiv_improve_checkpoint): Likewise.
1135         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1136         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1137         (struct_equiv_merge, find_dying_input): Likewise.
1138         (resolve_input_conflict, note_local_live): Likewise.
1139         (death_notes_match_p): Change parameters and processing
1140         to match rtx_equiv_p machinery.  Change caller.
1141         (insns_match_p): Likewise.
1142         (flow_find_cross_jump): Replace with:
1143         (struct_equiv_block_eq).
1144
1145         Back out this change:
1146         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1147           * recog.c (verify_changes): Make it static.
1148           * recog.h: Remove the corresponding prototype.
1149
1150 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1151
1152         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1153         values.
1154
1155 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1156
1157         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1158         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
1159         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1160         TARGET_MS1_64_001 appropriately.
1161         (ms1_machine_reorg): Use TARGET_MS2.
1162
1163 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
1164
1165         PR debug/25023
1166         PR target/25293
1167         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1168         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1169         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1170         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1171         Set mode to SI, adjust constraints.
1172         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1173         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1174         32-bit code.
1175
1176 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
1177
1178         * c-cppbuiltin.c (builtin_define_float_constants): Add
1179         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1180         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1181         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1182         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1183         to "((double)%sL)" otherwise "%s".
1184
1185 2005-12-13  Paul Brook  <paul@codesourcery.com>
1186
1187         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1188         apcs/atpcs.
1189
1190 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1191
1192         * tree-flow.h: Allow compilation with a C++ compiler.
1193         (struct edge_prediction): Prefix all field names  with "ep_".
1194         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1195         (tree_predict_edge, combine_predictions_for_bb): Likewise.
1196         (remove_predictions_associated_with_edge): Likewise.
1197         
1198 2005-12-12  Jeff Law  <law@redhat.com>
1199
1200         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1201         reassociation code.
1202         * passes.c (init_optimization_passes): Run reassociation again
1203         after loop optimizations.
1204
1205 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
1206
1207         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1208         if necessary.
1209         (optimize_stmt): Ditto.
1210         (canonicalize_comparison): New function.
1211         * tree-ssa-operands.c (swap_tree_operands): Make external.
1212         (get_expr_operands): Stop auto-canonicalization.
1213         * tree-ssa-reassoc.c: Rewrite.
1214         (init_optimization_passes): 
1215         * tree-flow.h (swap_tree_operands): Prototype.
1216         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1217
1218 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1219
1220         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1221         indicate function epilogue has been output.
1222         (pa_asm_output_mi_thunk): Likewise.
1223         (output_deferred_plabels): Put plabels in readonly data section when
1224         not generating PIC code.
1225         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1226         information.  Add assert.
1227         (som_output_comdat_data_section_asm_op): New function.
1228         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1229         instead of output_section_asm_op for COMDAT sections.
1230
1231 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
1232
1233         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1234         Fix whitespace in vincinity of to-be-installed changes.
1235         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1236         (insns_match_p): Likewise.
1237
1238 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1239
1240         * config.gcc (ms1): Replace with ...
1241         (mt): ... this.
1242         * config/ms1: Rename to ...
1243         * config/mt: ... here.  Rename ms1 files to mt.
1244         * config/mt/mt.c: Adjust gt-mt.h #include.
1245         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1246         (crti.o, crtn.o): Adjust file names.
1247
1248 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1249
1250         * varray.h: Allow compilation with a C++ compiler.
1251         (union varray_data_tag): Prefix all field names with "vdt_".
1252         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1253         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1254         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1255         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1256         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1257         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1258         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1259         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
1260         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
1261         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
1262         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
1263         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
1264         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
1265         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1266         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
1267         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
1268         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
1269         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
1270         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
1271         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
1272         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
1273         VARRAY_TOP_TREE_PTR): Likewise.
1274         * varray.c (varray_grow): Likewise.
1275         (varray_clear): Likewise.
1276
1277 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
1278
1279         PR target/25299
1280         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1281         alignment to doubleword if the first field is a double array.
1282         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1283
1284 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1285
1286         * tree-ssa-structalias.c (process_constraint): Remove code to
1287         transform addressofs into scalar.
1288         (create_variable_info_for): In whole-program IPA, globals don't
1289         point to ANYTHING by default.
1290
1291 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1292
1293         * timevar.def (TV_IPA_PTA): New.
1294         * tree-pass.h (pass_ipa_pta): New
1295         * tree-ssa-structalias.c: Include cgraph.h
1296         (in_ipa_mode): New.
1297         (predbitmap_obstack): New.
1298         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1299         (struct constraint_stats): Add num_edges.
1300         (new_var_info): Don't call bitmap_clear.
1301         (struct constraint_edge): Update docs.
1302         (new_constraint_edge): Remove src param.
1303         (struct constraint_graph): Add zero_weight_succs,
1304         zero_weight_preds.  Update docs.
1305         (constraint_expr_equal): Reformat.
1306         (constraint_edge_equal): Update for removal of src.
1307         (constraint_edge_less): Ditto.
1308         (constraint_edge_vec_find): Ditto.
1309         (erase_graph_self_edge): Update for removal of src and and zero
1310         weight bitmap.
1311         (clear_edges_for_node): Ditto.
1312         (add_graph_edge): Ditto.
1313         (get_graph_weights): Ditto.
1314         (allocate_graph_weights): Ditto.
1315         (merge_graph_nodes): Ditto.
1316         (int_add_graph_edge): Ditto.
1317         (valid_graph_edge): Ditto.
1318         (valid_weighted_graph_edge): Ditto.
1319         (build_constraint_graph): Ditto.
1320         (scc_visit): Ditto.
1321         (collapse_nodes): Ditto.
1322         (process_unification_queue): Ditto.
1323         (topo_visit): Ditto.
1324         (solve_graph): Ditto.
1325         (do_structure_copy): Ditto.
1326         (perform_var_substitution): Ditto.
1327         Init and release obstack.
1328         (handle_ptr_arith): Try to resolve directly.
1329         (find_func_aliases): Don't call update_alias_info here
1330         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1331         (do_sd_constraint): Add code for propagating faster.
1332         Update.
1333         (do_ds_constraint): Ditto.
1334         (count_num_arguments): New function.
1335         (create_function_info_for): Ditto.
1336         (create_variable_info_for): Handle FUNCTION_DECL.
1337         (intra_create_variable_infos): Use make_constraint_to_anything.
1338         (init_alias_vars): Init obstacks here.
1339         (need_to_solve): Handle zero weight graph changes.
1340         (compute_points_to_sets): Call update_alias_info here.
1341         (delete_points_to_sets): Free zero weight preds/succs here.
1342         (gate_ipa_pta): New.
1343         (ipa_pta_execute): New
1344
1345 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1346
1347         * tree-ssa-structalias.c (var_anyoffset): Removed.
1348         (anyoffset_tree): Ditto.
1349         (anyoffset_id): Ditto.
1350         (do_deref): Take vector of constraints, no return value.
1351         Update to work on vector.                
1352         (get_constraint_for): Ditto.
1353         (get_constraint_for_component_ref): Ditto.
1354         (do_structure_copy): Ditto.
1355         (handle_ptr_arith): Ditto.
1356         (find_func_aliases): Ditto.
1357         (set_uids_in_ptset): Remove anyoffset handling.
1358         (init_base_vars): Ditto.
1359
1360 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
1361
1362         PR c++/25010
1363         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1364         DECL_EXTERNAL functions have no bodies.  Tidy.
1365
1366 2005-12-10  Andreas Schwab  <schwab@suse.de>
1367
1368         * except.c (switch_to_exception_section): Only define if
1369         TARGET_UNWIND_INFO is not defined.
1370
1371 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1372
1373         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1374         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1375
1376 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1377
1378         * output.h (init_section, fini_section): Delete.
1379         * varasm.c (init_section, fini_section): Delete.
1380         (init_varasm_once): Don't initialize them.
1381         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1382         there are no corresponding varasm.c variables.
1383
1384 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1385
1386         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1387         of EH_FRAME_SECTION_NAME into...
1388         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
1389         if it is still null.
1390         * except.c (default_exception_section): Delete, moving most
1391         of the code to...
1392         (switch_to_exception_section): ...this new function.  Set
1393         exception_section if it is still null, then switch to it.
1394         (output_function_exception_table): Use switch_to_exception_section.
1395         * varasm.c (exception_section, eh_frame_section): Update comments.
1396         (get_section): Hoist use of SECTION_NAMED.
1397         (init_varasm_once): Don't set exception_section and eh_frame_section.
1398         * output.h (default_exception_section): Delete.
1399         (default_eh_frame_section): Delete.
1400
1401 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1402
1403         * config/bfin/bfin.c: Include "cgraph.h".
1404         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1405         Return the reg that holds the pointer to the GOT.
1406         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1407         doing stack checking.
1408
1409 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
1410
1411         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1412         recompute_tree_invarant_for_addr_expr.
1413         Update uses everywhere.
1414
1415 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
1416
1417         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1418         (MULTILIB_DIRNAMES): Define.
1419
1420 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1421
1422         PR target/25311
1423         * config/s390/s390.c (struct s390_address): New field literal_pool.
1424         (s390_decompose_address): Compute literal_pool field.  Do not 
1425         assume register %r13 is always (and solely) used as pool base.
1426         (s390_extra_constraint_str): Use literal_pool field.
1427
1428 2005-12-09  Thiemo Seufer  <ths@networkno.de>
1429
1430         * config/mips/mips.c (override_options): Don't allow too small
1431         integers in FP registers.
1432
1433 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1434
1435         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1436         targetm.binds_local_p to check for local function calls.
1437
1438 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
1439
1440         PR debug/24908
1441         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1442         call_used_regs can't be used to save reg in another reg.
1443
1444 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1445             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1446
1447         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1448         abort.
1449         * except.c (output_ttype): Likewise.
1450         * tree-object-size.c (collect_object_sizes_for): Likewise.
1451         (check_for_plus_in_loops_1): Likewise.
1452         (check_for_plus_in_loops): Likewise.
1453         (compute_object_sizes): Use gcc_unreachable instead of abort.
1454
1455 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1456
1457         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1458         (loop_end, loop_init, doloop_end): New insns.
1459         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1460         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1461         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1462         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1463         * config/ms1/ms1.c: #include basic-block.h
1464         (struct machine_function): Add has_loops field.
1465         (ms1_add_loop): New.
1466         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1467         (struct loop_info, struct loop_work): New.
1468         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1469         (ms1_reorg_loops): New loop optimization.
1470         (ms1_machine_reorg): Call it.
1471         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1472
1473 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
1474
1475         PR tree-optimization/25248
1476         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1477         evolution_of_loop from the failed attempt.  Remove handling
1478         of MULT_EXPR.
1479
1480 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1481
1482         * tree.h (DECL_EXTERNAL): Clarify documentation.
1483
1484 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1485             Jakub Jelinek  <jakub@redhat.com>
1486
1487         PR target/25268
1488         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1489         argument.  Don't drop outer ANDs.
1490         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1491         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1492         prototype.
1493         * config/s390/predicates.md (setmem_operand): Remove.
1494         (shift_count_operand): Rename to...
1495         (shift_count_or_setmem_operand): ... this.  Adjust
1496         s390_decompose_shift_count caller.
1497         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1498         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1499         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1500         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1501         rotl<mode>3_and, setmem_long_and): New insns.
1502         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1503         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1504         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1505         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1506         of shift_count_operand.
1507         (setmem_long): Use shift_count_or_setmem_operand instead of
1508         setmem_operand.
1509
1510 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
1511             Andreas Tobler  <a.tobler@schweiz.ch>
1512
1513         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1514         tr expression.
1515
1516 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1517
1518         * expr.c (force_operand): Use convert_to_mode for conversions.
1519
1520 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1521
1522         * reload.h (reg_equiv_invariant): Declare.
1523         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1524         register also when reg_equiv_invariant[R] is set.
1525
1526 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1527             Andreas Tobler  <a.tobler@schweiz.ch>
1528
1529         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1530
1531 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
1532
1533         * tree-ssa-pre.c (bitmap_set_and): New function.
1534         (bitmap_set_and_compl): New function.
1535         (bitmap_set_empty_p): New function.
1536         (insert_extra_phis): New function.
1537         (compute_avail): Use insert_extra_phis.
1538
1539 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1540
1541         * config/s390/s390.c (s390_expand_atomic): New function.
1542         Adjust comment of helper functions.
1543         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1544         * config/s390/s390.md ("ATOMIC"): New code macro.
1545         ("atomic"): Corresponding new code attribute.
1546         ("sync_lock_test_and_set[hq]i", 
1547         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1548
1549 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1550
1551         * config/s390/s390.c (s390_expand_mask_and_shift, 
1552         struct alignment_context, init_alignment_context, 
1553         s390_expand_cs_hqi): New.
1554         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1555         * config/s390/s390.md ("sync_compare_and_swaphi",
1556         "sync_compare_and_swapqi"): New pattern.
1557
1558 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
1559
1560         Fix PR tree-optimization/25291
1561         * tree-ssa-operands.c (add_call_clobber_ops): Remove
1562         redundant and crashing check.
1563
1564 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
1565
1566         PR target/25212
1567         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1568         tests further when !strict && reload_in_progress.
1569         (print_operand): Check that both operands of indexed address are regs.
1570         (print_operand_address): Likewise.
1571         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1572         (INT_REG_OK_FOR_BASE_P): Correct.
1573
1574 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1575
1576         Preparation for PR rtl-optimization/20070 / part1
1577         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1578         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1579         outgoing_edges_match.
1580         (outgoing_edges_match): Use condjump_equiv_p.
1581         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1582         into..
1583         * struct-equiv.c: New file.
1584         (death_notes_match_p) New function, broken out of insns_match_p.
1585         * Makefile.in (OBJS-common): Add struct-equiv.o.
1586         (struct-equiv.o): New target.
1587
1588 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1589
1590         * coretypes.h: Revert previous change.
1591         * config/darwin.h: Revert previous reversion.
1592         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1593
1594 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1595
1596         * coretypes.h (section): Provide dummy definition for target files.
1597         * config/darwin.h: Revert previous change.
1598
1599 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1600
1601         * doc/sourcebuild.texi (all.build, install-normal): Remove.
1602         * configure.ac: Remove all.build and install-normal from target_list
1603         * configure: Regenerate.
1604         * Makefile.in (install): Don't depend on install-normal.
1605
1606 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1607
1608         * Makefile.in: Document the use of stamps.
1609
1610 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1611
1612         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1613         * Makefile.in: Add code to compute some dependencies on s-gtype
1614         automatically.  Remove the declaration of those dependencies.
1615
1616 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1617
1618         * gcc/reload.c (push_secondary_reload): Fix typo:
1619         s/insn_constraint/scratch_constraint/.
1620
1621 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1622
1623         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1624
1625 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1626
1627         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1628         (alpha_elf_select_rtx_section): Return the selected section rather
1629         than emitting assembly code.
1630         (alpha_write_linkage): Emit a ".link" directive directly and then
1631         set in_section to NULL.
1632         (vms_asm_out_constructor): Use switch_to_section.
1633         (vms_asm_out_destructor): Likewise.
1634         (unicosmk_output_common): Set in_section to NULL instead of calling
1635         the dummy common_section function.
1636         (unicosmk_text_section): Delete in favor of...
1637         (unicosmk_output_text_section_asm_op): ...this new function.
1638         (unicosmk_data_section): Delete in favor of...
1639         (unicosmk_output_data_section_asm_op): ...this new function.
1640         (unicosmk_init_sections): New function.
1641         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1642         (unicosmk_output_ssib): Set in_section to NULL instead of calling
1643         the dummy ssib_section function.
1644         (unicosmk_section_buf): Delete.
1645         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1646         (unicosmk_data_section): Delete.
1647         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1648         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1649         (SECTION_FUNCTION_TEMPLATE): Delete.
1650         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1651         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1652         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1653         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1654         (TARGET_ASM_INIT_SECTIONS): Define.
1655         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1656         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1657         (link_section, literals_section): Delete.
1658         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1659         set in_section to NULL.
1660
1661         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1662         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1663         (COMMON_SECTION): Delete.
1664         (TARGET_ASM_INIT_SECTIONS): Define.
1665         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1666         the dummy common_section function.
1667         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1668         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1669         between readonly_data_section and text_section to check whether
1670         read-only data is being put in the text section.
1671         (arm_output_function_epilogue): Use switch_to_section.
1672         (arm_elf_asm_constructor): Likewise.
1673         (thumb_call_via_reg): Replace call to in_text_section with
1674         a comparison between in_section and text_section.
1675         (arm_file_end): Use switch_to_section.
1676         (aof_text_section): Delete in favor of...
1677         (aof_output_text_section_asm_op): ...this new function.
1678         (aof_data_section): Delete in favor of...
1679         (aof_output_data_section_asm_op): ...this new function.
1680         (aof_asm_init_sections): New function.
1681         (zero_init_section): Moved from config/arm/aof.h.
1682         (aof_dump_imports, aof_file_start): Use switch_to_section.
1683         * config/arm/arm.h (thumb_call_via_label): Update comment.
1684         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1685         (common_section): Delete.
1686         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1687         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1688         global switch_to_section function instead of the old port-local one.
1689         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1690         (SWITCH_TO_SECTION_FUNCTION): Delete.
1691         (drectve_section): Redefine as a macro.
1692         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1693         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1694         switch_to_section.
1695
1696         * config/avr/avr.c (progmem_section): New variable.
1697         (avr_output_progmem_section_asm_op): New function.
1698         (avr_asm_init_sections): New function.
1699         (avr_output_addr_vec_elt): Use switch_to_section.
1700         * config/avr/avr.h (progmem_section): Declare.
1701         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1702         (READONLY_DATA_SECTION): Delete.
1703         (TARGET_ASM_INIT_SECTIONS): Define.
1704         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1705         * config/avr/avr-protos.h (progmem_section): Delete.
1706
1707         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1708
1709         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1710         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1711
1712         * config/darwin-sections.def: New file.
1713         * config/darwin.c: Define all sections in darwin-sections.def.
1714         (output_objc_section_asm_op, darwin_init_sections): New functions.
1715         (machopic_output_indirection): Use switch_to_section.
1716         (machopic_select_section): Return the selected section rather than
1717         emitting assembly code.  Replace the static function table with
1718         inline conditional expressions.  Update the tests of last_text_section
1719         and move them into the FUNCTION_DECL block.
1720         (machopic_select_rtx_section): Return the selected section rather than
1721         emitting assembly code.
1722         (machopic_asm_out_constructor, machopic_asm_out_destructor)
1723         (darwin_file_end): Use switch_to_section.
1724         * config/darwin.h: Use darwin-sections.def to declare sections.
1725         (INIT_SECTION_ASM_OP): Remove empty definition.
1726         (HAS_INIT_SECTION): Define this instead.
1727         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1728         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1729         (TARGET_ASM_EH_FRAME_SECTION): Delete.
1730         (TARGET_ASM_INIT_SECTIONS): Define.
1731         * config/darwin-protos.h (darwin_init_sections): Declare.
1732         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1733         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1734         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1735         (constructor_section, destructor_section, mod_init_section): Delete.
1736         (mod_term_section): Delete.
1737         (darwin_exception_section, darwin_eh_frame_section): Delete.
1738         (machopic_select_section): Return a section.
1739         (machopic_select_rtx_section): Likewise.
1740         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1741         (const_section, const_coal_section, const_data_section): Delete.
1742         (const_data_coal_section, data_coal_section, cstring_section): Delete.
1743         (literal4_section, literal8_section, constructor_section): Delete.
1744         (mod_init_section, mod_term_section, destructor_section): Delete.
1745         (objc_class_section, objc_meta_class_section, objc_category_section)
1746         (objc_class_vars_section, objc_instance_vars_section): Delete.
1747         (objc_cls_meth_section, objc_inst_meth_section): Delete.
1748         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1749         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1750         (objc_symbols_section, objc_module_info_section): Delete.
1751         (objc_image_info_section, objc_protocol_section): Delete.
1752         (objc_string_object_section, objc_constant_string_object_section)
1753         (objc_class_names_section, objc_meth_var_names_section): Delete.
1754         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1755         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1756         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1757         (darwin_exception_section, darwin_eh_frame_section): Delete.
1758         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1759
1760         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1761         (frv_asm_out_destructor): Likewise.
1762         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1763         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1764         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1765         get_named_section.
1766         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1767         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1768         (data_section): Delete.
1769
1770         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1771         (DRECTVE_SECTION_FUNCTION): Delete.
1772         (drectve_section): Redefine as a macro that sets in_section after
1773         emitting the directive.
1774         (SWITCH_TO_SECTION_FUNCTION): Delete.
1775         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1776         in_text_section with comparison between in_section and text_section.
1777         * config/i386/i386.c (x86_64_elf_select_section): Return the section
1778         rather than emitting assembly code.  Use get_named_section.
1779         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1780         get_named_section.
1781         (machopic_output_stub): Use switch_to_section.
1782         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1783         (nwld_named_section_asm_out_destructor): Use get_section and
1784         switch_to_section.
1785
1786         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1787         rather than emitting assembly code.
1788         (ia64_rwreloc_select_section): Likewise.
1789         (ia64_rwreloc_select_rtx_section): Likewise.
1790         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1791         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1792         switch_to_section.
1793         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1794         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1795
1796         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1797         section rather than emitting assembly code.
1798         (iq2000_select_section): Likewise.
1799         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1800         (sbss_section): Delete.
1801
1802         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1803         and get_named_section.
1804         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1805
1806         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1807         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1808         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1809         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1810         in_section to NULL.
1811         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1812         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1813         global switch_to_section function instead of the old port-local one.
1814         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1815         (SWITCH_SECTION_FUNCTION): Delete.
1816         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1817         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1818         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1819         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1820         in_section to NULL.
1821         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1822         global switch_to_section function instead of the old port-local one.
1823         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1824
1825         * config/mips/mips.c (mips_file_start): Update comment.
1826         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1827         (mips_output_aligned_decl_common): Use switch_to_section.
1828         (mips_select_rtx_section): Return the section rather than emitting
1829         assembly code.  Use get_named_section.
1830         (mips_function_rodata_section: Likewise get_section.
1831         (build_mips16_function_stub): Use switch_to_section.
1832         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1833         (SDATA_SECTION_ASM_OP): Delete.
1834         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1835         (EXTRA_SECTION_FUNCTIONS): Delete.
1836
1837         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1838         (mmix_asm_output_aligned_local): Use switch_to_section.
1839
1840         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1841         (som_one_only_readonly_data_section): New variables.
1842         (pa_output_function_epilogue): Set in_section to NULL instead of
1843         calling forget_section.
1844         (output_deferred_plabels): Use select_section.
1845         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
1846         of calling forget_section.
1847         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1848         (pa_asm_output_aligned_local): Use select_section.
1849         (som_text_section_asm_op): Delete in favor of...
1850         (som_output_text_section_asm_op): ...this new function.
1851         (pa_som_asm_init_sections): New function.
1852         (pa_select_section): Return the section rather than emitting
1853         assembly code.
1854         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1855         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1856         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1857         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1858         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1859         (som_readonly_data_section, som_one_only_readonly_data_section)
1860         (som_one_only_data_section, forget_section): Delete.
1861         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1862         (TARGET_ASM_INIT_SECTIONS): Define.
1863         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1864
1865         * config/rs6000/rs6000.c (read_only_data_section): New variable.
1866         (private_data_section, read_only_private_data_section): New variables.
1867         (sdata2_section, toc_section): New variables.
1868         (rs6000_file_start): Use switch_to_section.
1869         (rs6000_assemble_integer): Use comparisons against in_section
1870         instead of calling in_toc_section and in_text_section.  Use
1871         unlikely_text_section_p.
1872         (rs6000_elf_output_toc_section_asm_op): New function, derived
1873         from the old rs6000/sysv4.h toc_section function.
1874         (rs6000_elf_asm_init_sections): New function.
1875         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1876         the section rather than emitting assembly code.
1877         (machopic_output_stub): Use switch_to_section.
1878         (toc_section): Delete dummy function.
1879         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1880         switch_to_section and get_section.
1881         (rs6000_xcoff_output_readonly_section_asm_op): New function.
1882         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1883         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1884         the old rs6000/xcoff.h toc_section function.
1885         (rs6000_xcoff_asm_init_sections): New function.
1886         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1887         the section rather than emitting assembly code.
1888         (rs6000_xcoff_file_start): Use switch_to_section.
1889         (rs6000_xcoff_file_end): Likewise.
1890         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1891         (sdata2_section, sbss_section, private_data_section): Delete.
1892         (read_only_data_section, read_only_private_data_section): Delete.
1893         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1894         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1895         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1896         (FINI_SECTION_FUNCTION): Delete.
1897         (TARGET_ASM_INIT_SECTIONS): Define.
1898         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1899         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1900         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1901         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1902         (READONLY_DATA_SECTION): Delete.
1903         (TARGET_ASM_INIT_SECTIONS): Define.
1904         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
1905         to NULL rather than no_section.
1906         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1907
1908         * config/sh/sh.c (sh_file_start): Use switch_to_section.
1909
1910         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1911         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
1912         from call to current_function_section.
1913
1914         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1915         (bss100_section): New variable.
1916         (xstormy16_asm_output_aligned_common): Use switch_to_section.
1917         (xstormy16_asm_init_sections): New function.
1918         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1919         switch_to_section and get_section.
1920         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
1921         from calls to current_function_section.
1922         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1923         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1924         (TARGET_ASM_INIT_SECTIONS): Define.
1925         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1926
1927         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1928         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1929         (FINI_SECTION_FUNCTION): Delete.
1930
1931         * config/v850/v850.c: Include gt-v850.h.
1932         (rosdata_section, rozdata_section, tdata_section, zdata_section)
1933         (zbss_section): New variables.
1934         (v850_output_aligned_bss): Use switch_to_section.
1935         (v850_asm_init_sections): New function.
1936         (v850_select_section): Return the section rather than emitting
1937         assembly code.
1938         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1939         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1940         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1941         (TARGET_ASM_INIT_SECTIONS): Define.
1942         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1943         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1944         (zbss_section): Delete.
1945
1946         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1947
1948         * config/vx-common.h (vxworks_exception_section): Delete.
1949         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1950
1951         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1952         section rather than emitting assembly code.
1953         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1954         switch_to_section.
1955
1956         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1957         * coretypes.h (section): New union and typedef.
1958         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
1959         from call to current_function_section.
1960         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1961         (dbxout_symbol_location): Use switch_to_section.
1962         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1963         most of the code into...
1964         (default_eh_frame_section): ...here.  Return a section.
1965         (collect2_eh_frame_section): Delete, moving most of the code into..
1966         (switch_to_eh_frame_section): ...this new function.
1967         (debug_info_section, debug_abbrev_section, debug_aranges_section)
1968         (debug_macinfo_section, debug_line_section, debug_loc_section)
1969         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
1970         variables.
1971         (output_call_frame_info): Call switch_to_eh_frame_section instead of
1972         eh_frame_section.  Use switch_to_section and get_section.
1973         (dwarf2out_begin_prologue): Use switch_to_section.
1974         (AT_string_form): Check the flags in debug_str_section instead of
1975         DEBUG_STR_SECTION_FLAGS.
1976         (output_comp_unit): Use switch_to_section, get_section, and
1977         debug_info_section.
1978         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
1979         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
1980         from call to current_function_section.
1981         (dwarf2out_var_location): Use unlikely_text_section_p.
1982         (dwarf2out_source_line): Use switch_to_section.  Remove argument
1983         from call to current_function_section.
1984         (dwarf2out_start_source_file, dwarf2out_end_source_file)
1985         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
1986         debug_macinfo_section.
1987         (dwarf2out_init): Initialize the new section variables.  Use them
1988         instead of calls to named_section_flags.  Use switch_to_section.
1989         (output_indirect_string): Use switch_to_section and debug_str_section.
1990         (dwarf2out_finish): Use switch_to_section and the new section
1991         variables.
1992         * except.c (default_exception_section): Return the section instead
1993         of emitting assembly code.
1994         (output_function_exception_table): Use the global exception_section
1995         variable instead of the target hook.  Use switch_to_section.  Remove
1996         argument from call to current_function_section.
1997         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
1998         (shorten_branches): Use pointer comparisons to detect whether the
1999         text section is the same as readonly_data_section.
2000         (profile_function): Use switch_to_section.  Remove argument from
2001         call to current_function_section.
2002         (final_scan_insn): Likewise.  Update use of last_text_section.
2003         * gengtype.c (open_base_files): Add an include of output.h.
2004         * output.h (text_section, data_section, readonly_data_section)
2005         (ctors_section, dtors_section, bss_section, init_section)
2006         (fini_section, sdata_section): Turn into section pointers.
2007         (in_text_section, in_unlikely_text_section, exports_section)
2008         (drectve_section, named_section, mergeable_string_section)
2009         (last_text_section_name): Delete.
2010         (default_exception_section, default_eh_frame_section): Return sections.
2011         (SECTION_DECLARED, SECTION_NAMED): New macros.
2012         (SECTION_MACH_DEP): Bump value.
2013         (section_common, named_section, unnamed_section): New structures.
2014         (unnamed_section_callback): New typedef.
2015         (section): New union.
2016         (sbss_section, exception_section, eh_frame_section): New variables.
2017         (in_section, last_text_section): Turn into section pointers.
2018         (get_unnamed_section, get_section, get_named_section): New functions.
2019         (mergeable_constant_section, function_section): Return a section.
2020         (unlikely_text_section): Likewise.
2021         (current_function_section): Likewise.  Remove the decl argument.
2022         (unlikely_text_section_p, switch_to_section): New functions.
2023         (output_section_asm_op): New function.
2024         (set_named_section_flags, named_section_flags, named_section_real)
2025         (named_section_first_declaration): Delete.
2026         (default_select_section, default_elf_select_section): Return a section.
2027         (default_elf_select_section_1, default_function_rodata_section)
2028         (default_no_function_rodata_section, default_select_rtx_section)
2029         (default_elf_select_rtx_section): Likewise.
2030         * rtl.h (in_data_section): Delete.
2031         * sdbout.c (sdbout_one_type): Use switch_to_section.
2032         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
2033         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
2034         (TARGET_ASM_EH_FRAME_SECTION): Poison.
2035         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
2036         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
2037         (TARGET_ASM_OUT): Update after above changes.
2038         * target.h (init_sections): New hook.
2039         (exception_section, eh_frame_section): Delete.
2040         (select_section, select_rtx_section, function_rodata_section): Return
2041         a section rather than emitting assembly code.
2042         * varasm.c (text_section, data_section, readonly_data_section)
2043         (ctors_section, dtors_section, bss_section, init_section)
2044         (fini_section): Turn into section pointers.
2045         (sdata_section, sbss_section, exception_section): New variables.
2046         (eh_frame_section): New variable.
2047         (in_section): Make global and turn into a section pointer.
2048         (last_text_section): Turn into a section pointer.
2049         (unnamed_sections): New variable.
2050         (in_named_name, last_text_section_name): Delete.
2051         (EXTRA_SECTION_FUNCTIONS): Delete.
2052         (in_named_entry): Delete.
2053         (section_htab): New variable, replacing...
2054         (in_named_htab): ...this deleted variable.
2055         (section_entry_eq, section_entry_hash): New functions, based on...
2056         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
2057         (get_unnamed_section, get_section): New functions.
2058         (unlikely_text_section): Return a section instead of emitting
2059         assembly code.
2060         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2061         (get_named_section_flags, named_section_first_declaration): Delete.
2062         (unlikely_text_section_p): New function.
2063         (named_section_real, named_section): Delete.
2064         (get_named_section): New function.
2065         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2066         (function_section): Return a section rather than emitting
2067         assembly code.
2068         (current_function_section): Likewise.  Remove argument.  Use
2069         last_text_section if nonnull, otherwise use function_section.
2070         (default_function_rodata_section): Return a section rather than
2071         emitting assembly code.  Use get_section.
2072         (default_no_function_rodata_section): Return a section rather than
2073         emitting assembly code.
2074         (variable_section): Use switch_to_section and get_named_section.
2075         (mergeable_string_section): Return a section rather than emitting
2076         assembly code.  Use get_section.  Make static.  Don't take special
2077         countermeasures for empty strings.
2078         (mergeable_constant_section): Return a section rather than emitting
2079         assembly code.  Use get_section.
2080         (default_named_section_asm_out_destructor): Use switch_to_section
2081         and get_section.
2082         (default_dtor_section_asm_out_destructor): Use switch_to_section.
2083         (default_named_section_asm_out_constructor): Use switch_to_section
2084         and get_section.
2085         (default_ctor_section_asm_out_constructor): Use switch_to_section.
2086         (assemble_start_function): Likewise.  Set last_text_section to
2087         NULL rather than no_section.  Change the type of save_section.
2088         (assemble_zeros, assemble_variable): Use the section flags to detect
2089         whether or not a section is text.
2090         (assemble_static_space): Use switch_to_section.
2091         (assemble_trampoline_template): Likewise.
2092         (output_constant_def_contents): Use switch_to_section and
2093         get_named_section.
2094         (output_constant_pool_1): Use switch_to_section.  Use the section
2095         flags to see whether sections contain mergeable data.
2096         (init_varasm_once): Initialize section_htab instead of in_named_htab.
2097         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
2098         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2099         whether a section has already been declared.
2100         (default_select_section, default_elf_select_section): Return a
2101         section rather than emitting assembly code.
2102         (default_elf_select_section_1): Likewise.  Use bss_section for
2103         SECCAT_BSS if nonnull.  Use get_named_section.
2104         (default_select_rtx_section): Return a section rather than
2105         emitting assembly code.
2106         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
2107         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2108         (output_section_asm_op, switch_to_section): New functions.
2109         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2110         get_named_section.
2111
2112         * doc/tm.texi: Expand the introduction to the sections documentation.
2113         (TRAMPOLINE_SECTION): Document new interface.
2114         (SDATA_SECTION_ASM_OP): Document new macro.
2115         (READONLY_DATA_SECTION): Delete.
2116         (SDATA_SECTION_ASM_OP): Document new macro.
2117         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2118         (TARGET_ASM_INIT_SECTIONS): Document new hook.
2119         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2120         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2121         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2122
2123 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
2124
2125         * gcc.c (init_gcc_specs): Match braces inside conditionally
2126         compiled strings.
2127
2128 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
2129
2130         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2131
2132 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
2133
2134         PR C++/24138
2135         * tree.c (integer_all_onesp): Always return true if all bits on.
2136
2137         * testsuite/g++.dg/init/array0.C: New.
2138
2139 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
2140
2141         * doc/md.texi: Adapt to implementation.
2142
2143 2005-12-06  Andreas Schwab  <schwab@suse.de>
2144
2145         * opts.c (decode_options): Fix typo in message.
2146
2147 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
2148
2149         PR other/13873
2150         * longlong.h: Merge PPC tests from upstream.
2151
2152 2005-12-06  Richard Guenther  <rguenther@suse.de>
2153
2154         * fold-const.c (fold_convert): Do not build and fold
2155         CONVERT_EXPR, but always use NOP_EXPR.
2156
2157 2005-12-06  Jan Beulich  <jbeulich@novell.com>
2158
2159         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2160         __builtin_ia32_paddq and __builtin_ia32_subq.
2161         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2162         __builtin_ia32_pshufw.
2163         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2164
2165 2005-12-05  James E Wilson  <wilson@specifix.com>
2166
2167         PR target/24934
2168         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2169         is set.
2170
2171 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
2172         
2173         * print-tree.c (print_node): Ditto.
2174         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2175         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2176         before accessing DECL_ARTIFICIAL. 
2177         Handle new tag tree codes.
2178         * tree-flow-inline.h (clear_call_clobbered): Update for tag
2179         changes.
2180         (unmodifiable_var_p): Ditto.
2181         * tree-flow.h (mem_tag_kind): Remove.
2182         (struct var_ann_d): Remove mem_tag_kind member.
2183         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2184         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2185         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2186         (group_aliases): Ditto.
2187         (setup_pointers_and_addressables): Ditto.
2188         (is_escape_site): Ditto.                                          
2189         (may_alias_p): Ditto.
2190         (create_tag_raw): New function.
2191         (create_memory_tag): Use it.
2192         (dump_alias_info): Update for tags.
2193         (may_be_aliased): Ditto.
2194         (add_type_alias): Ditto.
2195         (new_type_alias): Ditto.
2196         (create_sft): Ditto.
2197         (create_structure_vars): Ditto.
2198         * tree-ssa-ccp.c (get_default_value): Ditto.
2199         * tree-ssa-operands.c (get_expr_operands): Ditto.
2200         (add_stmt_operand): Ditto.
2201         (add_call_clobber_ops): Remove duplicated condition.
2202         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2203         tags.
2204         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2205         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2206         * tree.c (init_ttree): Update structures for new tree codes.
2207         (tree_code_size): Update sizes for new tree codes.
2208         (make_node_stat): Don't try to set common things on minimal
2209         structures.
2210         (tree_node_structure): Update for tags.
2211         (is_global_var): Ditto.
2212         * tree.def: Add new tree codes.
2213         * tree.h (MTAG_P): New macro.
2214         (TREE_MEMORY_TAG_CHECK): Ditto.
2215         (SSA_VAR_P): Update for tags.
2216         (struct tree_memory_tag): New structure.
2217         (MTAG_GLOBAL): New macro.
2218         (union tree_node): Add memory tag member.
2219         * treestruct.def (TS_MEMORY_TAG): New.
2220         
2221 2005-12-05  Dale Johannesen  <dalej@apple.com>
2222
2223         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
2224         what was approved (PR 24323).
2225
2226 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2227
2228         * doc/c-tree.texi (Function Bodies): Remove description of
2229         RETURN_INIT.
2230
2231 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
2232
2233         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2234         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2235         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2236         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2237         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2238         __divxc3): Document.
2239
2240 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
2241
2242         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2243         previous behaviour.
2244         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2245         hook_bool_void_false.
2246         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2247         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2248
2249         * config/darwin.c (machopic_select_section): It's not defined
2250         as weak if it's only marked as weak_import.
2251         
2252         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2253         Prototype.
2254
2255         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2256         A hidden weak object does bind locally.  Strong linkonce data
2257         counts like any other strong symbol for binding.
2258         (weak_finish_1): Don't specially handle weakrefs, they no longer
2259         arrive here.
2260         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2261         * c-common.c (handle_alias_attribute): Allow static aliases
2262         of variables.
2263         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2264         * gthr-dce.h: Make weakrefs static.
2265         * gthr-tpf.h: Likewise.
2266         * gthr-solaris.h: Likewise.
2267         * gthr-posix.h: Likewise.
2268         * gthr-posix95.h: Likewise.
2269         * config/darwin.c (darwin_encode_section_info): static weakref
2270         variables are not necessarily defined in this translation unit.
2271         * doc/extend.texi (Function Attributes): Mention that an alias
2272         attribute creates a definition for the thing it's attached to.
2273         Change the documentation for weakref to say that the thing
2274         it's attached to must be static.
2275
2276         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2277         we don't go into an infinite loop.
2278
2279 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2280
2281         * config/rs6000/predicates.md (logical_const_operand): Split
2282         out of logical_operand.
2283         (logical_operand): Use it.
2284         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2285         logical_const_operand.
2286
2287 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2288
2289         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2290         and IX86_BUILTIN_CMPNESS.
2291         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2292         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2293         * config/i386/i386.md (movti_internal): Correct type attribute.
2294         Simplify mode attribute.
2295         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2296         Correct type attribute.
2297         (absxf2): Correct operator.
2298         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2299         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2300         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2301         mode attribute.
2302         (sse2_vmsqrtv2df2): Correct mode attribute.
2303
2304 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2305
2306         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2307         16 bits. Provide insn pattern for this case.
2308
2309 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2310
2311         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2312         result.
2313         (__popcountDI2): Likewise.
2314
2315 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2316
2317         PR target/25166
2318         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2319         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2320         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2321         functions.
2322
2323 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2324
2325         * c-typeck.c (null_pointer_constant_p): New function.
2326         (build_conditional_expr, build_c_cast, convert_for_assignment,
2327         build_binary_op): Use it.
2328
2329 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2330
2331         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2332         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2333         CONVERT_EXPR.
2334         (check_function_arguments_recurse): Allow both NOP_EXPR and
2335         CONVERT_EXPR but check conversions preserve precision.
2336         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2337         but check conversions preserve precision.
2338         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
2339         default case.
2340
2341 2005-12-04  Roger Sayle  <roger@eyesopen.com>
2342
2343         PR c/7776
2344         * common.opt (Wstring-literal-comparison): New command line option.
2345         * c-opts.c (c_common_handle_option): Set it with -Wall.
2346         * c-typeck.c (parser_build_binary_op): Issue warning if either
2347         operand of a comparison operator is a string literal, except for
2348         testing equality or inequality against NULL.
2349
2350         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2351
2352 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2353
2354         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2355         of building a NOP_EXPR.
2356         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
2357         NOP_EXPR.
2358         * c-convert.c (convert): Use fold_convert instead of building
2359         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
2360         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
2361         #if 0 code.
2362         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2363         NOP_EXPR the same as CONVERT_EXPR.
2364         * c-typeck.c (build_function_call): Use fold_convert instead of
2365         building a NOP_EXPR directly.
2366         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2367
2368 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2369
2370         PR rtl-optimization/25197
2371         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2372         have a reg.
2373
2374 2005-12-02  Stuart Hastings  <stuart@apple.com>
2375
2376         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2377         warning.
2378
2379 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2380
2381         * c-typeck.c (default_function_array_conversion,
2382         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2383         (build_conditional_expr): Apply integer_zerop to orig_op1 and
2384         orig_op2.  Don't check them for NOP_EXPR.
2385         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2386         around integer zero.
2387
2388 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2389
2390         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2391         toc_save_offset, toc_size, lr_size.
2392         (rs6000_stack_info): Use memset rather than bss struct copy to init.
2393         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2394         Adjust for removal of unused rs6000_stack_t fields.
2395         (debug_stack_info): Adjust.
2396         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
2397         first, and don't bother checking for set/inc of lr on sibcalls.
2398         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2399
2400 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
2401
2402         PR target/25199
2403         * config/i386/i386.md (movqi_1): Only force imovx for alternative
2404         5 if operand 1 is not aligned.  Undo previous constraint change.
2405         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2406
2407 2005-12-02  Richard Guenther  <rguenther@suse.de>
2408
2409         * tree.h (build): Remove prototype.
2410         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2411         * tree.c (build): Remove.
2412         (build0_stat): Update comment.
2413
2414 2005-12-02  Richard Guenther  <rguenther@suse.de>
2415
2416         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2417         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2418         Likewise.
2419         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2420         maybe_fold_offset_to_component_ref): Likewise.
2421         * tree-ssa-dom.c (thread_across_edge,
2422         simplify_rhs_and_lookup_avail_expr,
2423         find_equivalent_equality_comparison, record_equivalences_from_stmt):
2424         Likewise.
2425         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2426         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2427         lower_try_finally_switch): Likewise.
2428         * tree-if-conv.c (add_to_dst_predicate_list,
2429         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2430         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2431         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2432         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2433         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2434         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2435         gimplify_init_ctor_eval, gimplify_init_constructor,
2436         gimplify_variable_sized_compare, gimplify_boolean_expr,
2437         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2438         gimplify_expr, gimplify_body, gimplify_function_tree,
2439         force_gimple_operand): Likewise.
2440         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2441         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2442         mx_register_decls): Likewise.
2443         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2444         get_frame_field, finalize_nesting_tree_1): Likewise.
2445         * tree-inline.c (setup_one_parameter): Likewise.
2446         * tree-vect-transform.c (vectorizable_condition): Likewise.
2447         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2448         Likewise.
2449         * tree-profile.c (tree_gen_edge_profiler): Likewise.
2450         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2451         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2452         * tree-chrec.h (build_polynomial_chrec): Likewise.
2453
2454 2005-12-02  Richard Guenther  <rguenther@suse.de>
2455
2456         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2457         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2458         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2459         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2460         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2461         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2462         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2463         Likewise.
2464         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2465         sh_adjust_unroll_max): Likewise.
2466         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2467         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2468         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2469         Likewise.
2470         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2471         Likewise.
2472         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2473         Likewise.
2474
2475 2005-12-02  Richard Guenther  <rguenther@suse.de>
2476
2477         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2478         simplify_cond_using_ranges): Use buildN instead of build.
2479         * tree-tailcall.c (adjust_accumulator_values,
2480         adjust_return_value): Likewise.
2481         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2482         generate_element_copy, generate_element_zero,
2483         generate_one_element_init): Likewise.
2484         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2485         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2486         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2487         perfect_nestify): Likewise.
2488
2489 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2490
2491         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2492
2493 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2494
2495         * ggc.h (GGC_RESIZEVEC): New.
2496
2497 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2498
2499         * gcc.c (execute): Improve readability.
2500
2501 2005-12-02  Richard Guenther  <rguenther@suse.de>
2502
2503         * tree-cfg.c (mark_used_vars): New function.
2504         (dump_function_to_file): Dump only used VAR_DECLs.
2505
2506 2005-12-02  Richard Guenther  <rguenther@suse.de>
2507
2508         * convert.c (convert_to_integer): Fix compare for nonpositive
2509         constant to use tree_int_cst_sgn <= 0.
2510
2511 2005-12-02  Richard Guenther  <rguenther@suse.de>
2512
2513         * convert.c (convert_to_integer): Use fold_convert instead
2514         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
2515         instead of comparing against 0.  Use build_int_cst instead
2516         of converting integer_zero_node.
2517
2518 2005-12-02  Richard Guenther  <rguenther@suse.de>
2519
2520         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2521         and RROTATE_EXPR.
2522  
2523 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2524
2525         PR target/21017
2526         * combine.c (simplify_logical <IOR>): Simplify more patterns to
2527         rotates.
2528
2529 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2530
2531         PR middle-end/25176
2532         * function.c (expand_function_end): Emit blockage for unwinder
2533         after return label.
2534
2535 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2536
2537         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2538         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2539         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2540         integer constant comparisons.
2541
2542 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
2543             Janis Johnson  <janis187@us.ibm.com>
2544             David Edelsohn  <dje@watson.ibm.com>
2545             Ben Elliston  <bje@au.ibm.com>
2546
2547         * dfp.h, dfp.c: New files.
2548         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2549         (DECNUM_H): Likewise.
2550         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2551         (INCLUDES): Append $(DECNUMINC).
2552         (OBJS-common): Add dfp.o.
2553         (dfp.o): New rule.
2554         * real.h (EXP_BITS): Pinch one bit to ..
2555         (struct real_value): Add decimal field.
2556         (real_format): Change table size, update documentation.
2557         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2558         (real_from_string3): Declare.
2559         (decimal_single_format): Declare.
2560         (decimal_double_format): Declare.
2561         (decimal_quad_format): Declare.
2562         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2563         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2564         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2565         * real.c: Include dfp.h.
2566         (normalize): Early return for decimal floats.
2567         (do_add): Zero decimal field.
2568         (do_compare): Call do_decimal_compare for decimal floats.
2569         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2570         (real_arithmetic): Call decimal_real_arithmetic for decimal
2571         floating point operands.
2572         (real_identical): If a and b are of differing radix, return false.
2573         (real_to_integer): Call decimal_real_to_integer if the value is a
2574         decimal float.
2575         (real_to_integer2): Likewise, call decimal_real_to_integer2.
2576         (real_to_decimal): Likewise, call decimal_real_to_decimal.
2577         (real_to_hexadecimal): Place "N/A" in the return string for
2578         decimal float.
2579         (real_from_string3): New variant, given a mode.
2580         (real_maxval): Use decimal_real_maxval for decimal floats.
2581         (round_for_format): Use decimal_round_for_format for decimals.
2582         (real_convert): Use decimal_real_convert where appropriate.
2583         (significand_size): Handle base 10.
2584         (encode_decimal_single, decode_decimal_single,
2585         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2586         decode_decimal_quad): New functions.
2587         (decimal_single_format): New.
2588         (decimal_double_format): New.
2589         (decimal_quad_format): New.
2590         * machmode.def: Add SD, DD and TD decimal floating point modes.
2591         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2592         Include MODE_DECIMAL_FLOAT.
2593         (DECIMAL_FLOAT_MODE_P): New.
2594         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2595         * genmodes.c (struct mode_data): Add counter field.
2596         (struct mode_data): Update comment for format.
2597         (blank_mode): Initialise counter field.
2598         (new_mode): Increment counter field for each mode defined.
2599         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2600         using a format.
2601         (make_complex_modes): Handle modes containing `D'.
2602         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2603         (make_decimal_float_mode): New.
2604         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2605         (cmp_modes): Compare counter field if other characteristics
2606         similar.
2607         (emit_real_format_for_mode): Support formats for decimal floats.
2608         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2609         Document MODE_DECIMAL_FLOAT.
2610
2611 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2612
2613         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2614         Delete dead code.
2615
2616 2005-12-01  Richard Henderson  <rth@redhat.com>
2617
2618         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2619
2620 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2621
2622         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2623
2624         * config/pa/pa.c (pa_init_builtins): If we detect
2625         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2626         putc_unlocked.
2627
2628 2005-12-01  Richard Guenther  <rguenther@suse.de>
2629
2630         * fold-const.c (fold_binary): Use fold_build2, not
2631         fold (build (...)).
2632
2633 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2634
2635         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2636
2637         * vec.h (VEC_block_remove): New.
2638
2639 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2640
2641         PR c/13384
2642         * c-common.c (lvalue_error): Fix wording.
2643
2644 2005-12-01  Richard Guenther  <rguenther@suse.de>
2645
2646         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2647         thinko in last patch.
2648
2649 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
2650
2651         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2652         than -flat_namespace.
2653
2654 2005-12-01  Ben Elliston  <bje@au.ibm.com>
2655
2656         * mklibgcc.in: Parameterise the script to build soft float
2657         functions by iterating over each type, rather than cloning the
2658         code for each type.
2659
2660 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2661
2662         PR middle-end/25158
2663         * builtins.c (fold_builtin_fputs): Defer check for missing
2664         replacement functions.
2665
2666 2005-11-30  Kean Johnston  <jkj@sco.com>
2667
2668         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2669         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2670
2671 2005-11-30  Richard Guenther  <rguenther@suse.de>
2672
2673         PR tree-optimization/22501
2674         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2675         function split out from ...
2676         (forward_propagate_addr_expr): ... here.  Use it to propagate
2677         ADDR_EXPRs to all uses.
2678
2679 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2680
2681         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2682         * builtins.c (expand_builtin_mathfn): Use them.
2683         (expand_builtin_mathfn_2): Likewise.
2684         (expand_builtin_mathfn_3): Likewise.
2685         (expand_builtin_int_roundingfn): Likewise.
2686         (expand_builtin): Likewise.
2687         (integer_valued_real_p): Likewise.
2688         (fold_builtin_int_roundingfn): Likewise.
2689         (fold_builtin_bitop): Likewise.
2690         (fold_builtin_logarithm): Likewise.
2691         (fold_builtin_1): Likewise.
2692         * convert.c (convert_to_integer): Likewise.
2693         * fold-const.c (negate_mathfn_p): Likewise.
2694         (tree_expr_nonnegative_p): Likewise.
2695
2696 2005-11-30  Dale Johannesen  <dalej@apple.com>
2697             Andrew Pinski  <pinskia@physics.uc.edu>
2698
2699         * combine.c (find_split_point):  Sign extend bitmask
2700         when changing bitfield assignment to IOR of AND.
2701
2702 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2703
2704         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2705         clobber to scratch reg.
2706         (*decrement_and_branch_until_zero_no_clobber): Remove.
2707         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2708         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2709         * config/ms1/ms1.opt (mmul): Remove.
2710         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2711         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2712
2713 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2714             Bernd Schmidt  <bernd.schmidt@analog.com>
2715
2716         * pa/predicates.md (symbolic_operand): Add comment.
2717         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2718         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2719         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2720         (pa_secondary_reload_class): Delete.
2721         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2722         and pa_secondary_reload_class.  Reorder some checks.  Update inline
2723         copy of symbolic operand.
2724         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2725
2726 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2727
2728         * loop-doloop.c (add_test): Only add jump notes if we did emit a
2729         jump.
2730
2731 2005-11-30  Jeff Law  <law@redhat.com>
2732
2733         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2734         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2735
2736 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
2737
2738         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2739         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2740         (ia64_expand_move): Adjust caller.
2741
2742         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2743         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2744         negate VAL.
2745
2746 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
2747
2748         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2749         Always produce an output if we can remove NEGs or canonicalize
2750         (minus (minus ...)) expressions.  Provide a fast path for the
2751         two-operand case.
2752         (simplify_gen_binary): Do not call simplify_plus_minus.
2753         (simplify_binary_operation_1): Reassociate at the end of the
2754         function.
2755
2756 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
2757
2758         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2759         moves and unpack to speed up.
2760
2761 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
2762
2763         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2764         argument, they are always sparc_compare_op0 and sparc_compare_op1.
2765         (gen_v9_scc): Update callers.
2766         * config/sparc/sparc.md: Likewise.
2767         * config/sparc/sparc-protos.h: Update extern declaration.
2768
2769         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2770
2771 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2772
2773         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2774         the if.
2775
2776 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2777
2778         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2779         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2780         (negate_expr): Here.
2781
2782 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2783
2784         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2785         Fix typo in comment.
2786
2787 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2788
2789         * Makefile.in (clean-target): Depend on clean-target-libgcc.
2790         (clean-target-libgcc): Import rule from the top-level Makefile.in.
2791
2792 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2793
2794         PR middle-end/20109
2795         PR middle-end/25120
2796         * builtins.c (init_target_chars): New.
2797         (expand_builtin_printf, expand_builtin_fprintf,
2798         expand_builtin_sprintf, fold_builtin_sprintf,
2799         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2800         fold_builtin_snprintf_chk, fold_builtin_printf,
2801         fold_builtin_fprintf): Check for matching format strings using
2802         the target charset.
2803
2804 2005-11-29  Paul Brook  <paul@codesourcery.com>
2805
2806         * config.gcc: Do not use fixproto on m68k-elf.
2807
2808 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2809
2810         * expmed.c (div_cost): Replace with...
2811         (sdiv_cost, udiv_cost): New.
2812         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2813         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2814         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2815         (expand_divmod): Replace use of div_cost with either sdiv_cost
2816         or udiv_cost depending upon the signedness of the operation.
2817
2818 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2819
2820         PR libfortran/24991
2821         * config/darwin.c (machopic_indirection_name,
2822         machopic_output_indirection): Follow transparent alias chain.
2823
2824 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2825
2826         * varasm.c (ultimate_transparent_alias_target): Add comment.
2827
2828 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
2829
2830         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2831         SET_SRC instead of XEXP where appropriate.
2832
2833 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2834
2835         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2836         __builtin_expect.
2837
2838 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2839
2840         * config/fp-bit.h (LSHIFT): Take shift count parameter.
2841         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2842         bit at a time.
2843
2844 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
2845
2846         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2847         secondary_input_reload_class, made static.  Adapt to new
2848         infrastructure.
2849         (secondary_output_reload_class): Delete.
2850         (TARGET_SECONDARY_RELOAD): New macro.
2851         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2852         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2853
2854 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
2855
2856         PR c++/21166
2857         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
2858         when its natural alignment is > BITS_PER_UNIT.
2859         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2860         * c-common.c (handle_packed_attribute): Ignore packing on a field
2861         whose type is naturally char aligned.
2862
2863 2005-11-28  Richard Guenther  <rguenther@suse.de>
2864
2865         * c-common.c (strict_aliasing_warning): Handle all
2866         component-ref like accesses.
2867
2868 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2869             Uros Bizjak  <uros@kss-loka.si>
2870
2871         PR middle-end/20219
2872         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2873         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2874         when flag_unsafe_math_optimizations is set and
2875         we don't care about NaNs or Infinities.
2876
2877         Move x/expN(y) and x/pow(y,z) transformation into common
2878         flag_unsafe_math_optimizations section.
2879
2880 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
2881
2882         * gcc.c (main): Change type of argv to "char **".
2883
2884 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2885
2886         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2887         small data sections.
2888         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2889         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2890         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2891         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
2892         output locals to sbss if !rs6000_elf_in_small_data_p.
2893         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2894
2895 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2896
2897         PR target/24997
2898         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2899         generated by reload.
2900         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2901         indexed_or_indirect_address.
2902         (indexed_or_indirect_address): Don't test for base reg.  Call
2903         address_operand last.  Make it a special predicate.
2904
2905 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
2906
2907         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2908
2909 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
2910
2911         PR middle-end/24575
2912         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2913         is undefined.
2914         (negate_expr): Likewise.
2915
2916 2005-11-27  Andreas Schwab  <schwab@suse.de>
2917
2918         * config/m68k/m68k.c: Reindent and fix whitespace, remove
2919         redundant parens.
2920
2921 2005-11-27  Steven Bosscher  <stevenb@suse.de>
2922
2923         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2924         has EH predecessor edges.
2925
2926 2005-11-26  Eric Christopher  <echristo@apple.com>
2927
2928         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2929         register stalls by zero extending to the full register.
2930
2931 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
2932
2933         * config/floatunsisf.c, config/floatunsidf.c,
2934         config/floatunsixf.c, config/floatunsitf.c: New files.
2935         * config/ia64/t-hpux: Add floatunsitf.c.
2936         * config/ia64/ia64.c (ia64_init_libfuncs): Use
2937         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2938
2939 2005-11-26  Richard Henderson  <rth@redhat.com>
2940
2941         * c-lex.c (pragma_lex): Rename from c_lex.
2942         * c-pch.c: Update for pragma_lex rename.
2943         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2944         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2945         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2946         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2947         * doc/tm.texi: Likewise.
2948
2949 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
2950
2951         PR middle-end/23669
2952         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2953         when overflow is undefined.
2954
2955 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
2956
2957         * doc/md.texi (Insn Canonicalizations): Refer to the
2958         function commutative_operand_precedence for further rules.
2959
2960 2005-11-25  Roger Sayle  <roger@eyesopen.com>
2961
2962         PR middle-end/21309
2963         * expmed.c (choose_mult_variant): Return immediately when mult_cost
2964         is less than zero.  Limit mult_cost to a reasonable upper bound for
2965         the synthetic multiplication sequence.
2966
2967 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2968
2969         PR middle-end/25022
2970         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
2971         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
2972         Lookup the explicit replacement functions for any unlocked
2973         stdio builtin transformations.
2974
2975 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
2976
2977         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
2978         earlyclobber.
2979         * targhooks.c (default_secondary_reload): Don't require operand 2
2980         for an input reload to be earlyclobber.
2981
2982 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2983
2984         * fold-const.c (negate_mathfn_p): Fix comment and add support
2985         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
2986         BUILT_IN_ATANH.
2987
2988 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2989
2990         PR middle-end/24998
2991         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
2992         _Q_ulltoq for unsigned conversions from SImode and DImode to
2993         TFmode.
2994
2995 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
2996
2997         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
2998         (__floatundidf, __floatundisf): Likewise.
2999
3000 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
3001
3002         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
3003         (rs6000_override_options): Remove initialization of
3004         rs6000_sr_alias_set.
3005         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
3006         (rs6000_emit_stack_tie): Same.
3007         (emit_frame_save): Same.
3008         (gen_frame_mem_offset): Same.
3009         (rs6000_emit_prologue): Same.
3010         (rs6000_emit_epilogue): Same.
3011
3012 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3013
3014         PR middle-end/24989
3015         * fold-const.c (fold_build): Convert bool_var != 1 and
3016         bool_var == 0 to !bool_var.
3017
3018 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3019
3020         PR middle-end/24990
3021         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
3022         for C being INTEGER_CST.  Likewise for !=.
3023
3024 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3025
3026         PR middle-end/24998
3027         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
3028         unsigned conversions from SImode to TFmode.
3029
3030 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3031
3032         * expr.c (expand_expr_real_1): Fix error in last change.
3033
3034 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
3035
3036         * caller-save.c: (this_insn_sets): Move into:
3037         (save_call_clobbered_regs).
3038         (mark_set_regs): Get this_insn_sets from data.
3039
3040         (save_call_clobbered_regs): Take sets of the return value by
3041         sibcalls into account.
3042
3043 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
3044         PR target/21623:
3045
3046         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
3047         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
3048         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
3049         (memory_move_secondary_cost, init_reg_autoinc): Remove
3050         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
3051         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
3052         secondary_reload_class call.
3053         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
3054         callers.
3055         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
3056         (push_secondary_reload): Use secondary_reload target hook.
3057         (secondary_reload_class, scratch_reload_class): New functions.
3058         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
3059         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
3060         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
3061         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
3062         (secondary_reload_class, scratch_reload_class): Declare.
3063         * reload1.c: Include target.h.
3064         (reload_adjust_reg_for_temp): New function.
3065         (reload_adjust_reg_for_icode): Likewise.
3066         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
3067         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
3068         call.
3069         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
3070         for inheritance.  Support case when both secondary & tertiary reloads
3071         are for intermediate registers.
3072         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
3073         with secondary_reload_class call.  Support case when both secondary
3074         & tertiary reloads are for intermediate registers.
3075         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
3076         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
3077         * target.h (secondary_reload_info): New struct / typedef.
3078         (struct gcc_target): New member secondary_reload.
3079         * targhooks.c Include reload.h, optabs.h and recog.h.
3080         (default_secondary_reload): New function.
3081         * targhooks.h (default_secondary_reload): Declare.
3082         * doc/tm.texi: Document secondary_reload target hook.  Update
3083         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
3084         * doc/md.texi: Likewise.
3085
3086         * sh-protos.h (sh_secondary_reload): Declare.
3087         * sh.c (TARGET_SECONDARY_RELOAD): Override.
3088         (sh_secondary_reload): New function.
3089         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
3090         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3091         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3092         (HAVE_SECONDARY_RELOADS): Define.
3093         * sh.md (reload_indf): Rename to:
3094         (reload_indf__frn).
3095         (reload_outdf): Rename to:
3096         (reload_outdf__RnFRm).
3097         (reload_insf): Rename to:
3098         (reload_insf__frn).
3099         (reload_insi): Rename to:
3100         (reload_insi__i_fpul).
3101
3102 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
3103
3104         * configure.ac: Require at least texinfo 4.4.
3105         * configure: Regenerate.
3106
3107         * doc/install.texi (Tools/packages necessary for building GCC):
3108         Update required version of texinfo to at least 4.4.
3109         (Installing GCC: Building): Update required version of texinfo
3110         to at least 4.4.
3111         (Installing GCC: Final installation): Update required version
3112         of texi2dvi to at least 4.4.
3113         (Host/target specific installation notes for GCC): Update required
3114         version of texinfo to at least 4.4.
3115
3116 2005-11-24  Richard Guenther  <rguenther@suse.de>
3117         Dirk Mueller <dmueller@suse.de>
3118
3119         PR c++/14024
3120         * c-common.h (strict_aliasing_warning): Declare.
3121         * c-common.c (strict_aliasing_warning): New function,
3122         split out from ...
3123         * c-typeck.c (build_c_cast): ... here.
3124
3125 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3126
3127         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
3128         to order operands.
3129         (swap_commutative_operands_with_target): New.
3130
3131 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3132
3133         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
3134         also when doing PRE, rather than only for global CPROP.
3135
3136 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3137
3138         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
3139         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
3140         formatting.
3141         (expand_twoval_unop): Likewise.
3142         (widen_clz): Likewise.
3143         (expand_parity): Likewise.
3144         (expand_unop): Likewise.
3145         (emit_cmp_and_jmp_insn_1): Likewise.
3146         (prepare_float_lib_cmp): Likewise.
3147
3148 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3149
3150         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
3151         Remove unused `class' variable.
3152
3153 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3154
3155         PR c++/21667
3156         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
3157         C/C++ diagnostic function warn_array_subscript_with_type_char.
3158         * c-common.h (warn_array_subscript_with_type_char): Declare.
3159         * c-common.c (warn_array_subscript_with_type_char): Define.
3160
3161 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3162
3163         PR c/21668
3164         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
3165         compiling at the intersection of C and C++.
3166
3167 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
3168
3169         * doc/invoke.texi: For man pages, include gcc-vers.texi.
3170         List @file in the option summary.  Include the libiberty
3171         documentation for @file.
3172         * gcc.c (main): Call expandargv.
3173         * Makefile.in (gcc-vers.texi): Define srcdir.
3174
3175 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
3176
3177         * passes.c (init_optimization_passes): Document
3178         sequencing of passes.
3179
3180 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
3181
3182         * config/m68k/predicates.md (pcrel_address, extend_operator,
3183         post_inc_operand, pre_dec_operand): Remove redundant
3184         conditionals.
3185         (const_uint32_operand, const_sint32_operand): Use gcc_assert
3186         instead of abort.
3187         (valid_dbcc_comparison_p): Rewrite in the lisp style.
3188
3189 2005-11-23  Ben Elliston  <bje@au.ibm.com>
3190
3191         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
3192
3193 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
3194
3195         Preparatory work for PR target/21623:
3196         * alpha.c (secondary_reload_class): Rename to:
3197         (alpha_secondary_reload_class).
3198         * alpha.h, alpha-protos.h: Likewise.
3199         * mn10300.c (secondary_reload_class): Rename to:
3200         (mn10300_secondary_reload_class).
3201         * mn10300.h, mn10300-protos.h: Likewise.
3202         * pa.c (secondary_reload_class): Rename to:
3203         (pa_secondary_reload_class).
3204         * pa.h, pa-protos.h: Likewise.
3205         * rs6000.c (secondary_reload_class): Rename to:
3206         rs6000_secondary_reload_class.
3207         * rs6000.h, rs6000-protos.h: Likewise.
3208
3209 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
3210
3211         PR middle-end/22561
3212         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
3213
3214 2005-11-22  Ian Lance Taylor  <ian@airs.com>
3215
3216         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
3217         a mode_class.
3218         (prepare_cmp_insn): Likewise.
3219
3220 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
3221
3222         PR target/23435
3223         * m68k.md (zero_extendsidi2): Force operands[1] to a register
3224         if both operands[0] and operands[1] are memory.
3225
3226 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3227
3228         PR middle-end/23606
3229         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
3230         COMPARISON_CLASS_P and an integral types create create a new
3231         expression with the new type and fold that.
3232
3233 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3234
3235         PR target/24988
3236         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
3237         to SUBTARGET_OS_CPP_BUILTINS.
3238
3239 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3240
3241         * arm.c (emit_set_insn): New function.
3242         (arm_split_constant): Call it.
3243         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
3244         (arm_legitimize_address): Likewise.  Use plus_constant.
3245         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
3246         (thumb_expand_prologue): Likewise.
3247         (arm_gen_load_multiple): Use VOIDmode in SET.
3248         (arm_gen_store_multiple): Likewise.
3249         (vfp_emit_fstmx): Likewise.  Use plus_constant.
3250         (emit_multi_reg_push): Likewise.
3251         (emit_sfm): Use plus_constant.
3252
3253 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
3254
3255         PR target/24954
3256         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
3257         typo last change.
3258
3259 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3260
3261         PR middle-end/24950
3262         * expmed.c (store_bit_field): Don't attempt to insv a field
3263         larger than the reg.
3264
3265 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3266
3267         PR target/24954
3268         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
3269         explicit sign extension, not a (char) cast.
3270
3271 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3272
3273         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
3274         GET_MODE_CLASS (x) == MODE_FLOAT.
3275         * config/i386/i386.c: Likewise.
3276         * config/rs6000/xcoff.h: Likewise.
3277         * config/rs6000/linux64.h: Likewise.
3278         * config/rs6000/rs6000.c: Likewise.
3279         * config/rs6000/rs6000.h: Likewise.
3280         * config/rs6000/predicates.md: Likewise.
3281         * config/rs6000/sysv4.h: Likewise.
3282
3283 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3284
3285         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
3286         flag_pic is set.
3287
3288         * config/alpha/freebsd.h, config/alpha/linux.h,
3289         config/arm/linux-elf.h, config/bfin/bfin.h,
3290         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
3291         config/i386/beos-elf.h, config/i386/gnu.h,
3292         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
3293         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
3294         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
3295         config/rs6000/linux64.h, config/rs6000/sysv4.h,
3296         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
3297         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
3298         config/sparc/linux.h, config/sparc/linux64.h,
3299         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
3300
3301         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
3302         are both defined when either flag -fpic or -fPIC are used.
3303
3304 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3305
3306         * config/fp-bit.c (clzusi): New function.
3307         (si_to_float, usi_to_float): Use it to compute proper shift.
3308         (usi_to_float): Preserve guard bits when shifting right.
3309         * libgcc-std.ver (GCC_4.2.0): New version.
3310         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
3311         __floatundisf): New functions.
3312         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
3313         __floatundisf): Declare.
3314         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
3315         _floatundixf, and _floatunditf.
3316         * optabs.c (expand_float): If target does not define a pattern for
3317         signed or unsigned conversion, use an unsigned libcall instead of
3318         a signed one.
3319         (init_optabs): Initialize ufloat_optab.
3320
3321 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3322
3323         * config/rs6000/rs6000.opt (mmulhw): New option.
3324         * doc/invoke.texi (-mmulhw): Document.
3325         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
3326         for 405 and 440.
3327         * config/rs6000/rs6000.md: Add half-word multiply and
3328         multiply-accumulate instructions for 405 and 440.
3329
3330 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
3331
3332         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
3333         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
3334         default now includes a linker group which makes the RTEMS one nest.
3335
3336 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3337
3338         * cse.c (fold_rtx): Typo fix.
3339         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
3340
3341 2005-11-21  Richard Henderson  <rth@redhat.com>
3342
3343         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
3344         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
3345
3346         * c-tree.h (lookup_name): Move declaration ...
3347         * c-common.h (lookup_name): ... here.
3348         * config/darwin-c.c: Include c-common.h.
3349         * config/t-darwin: Update dependencies.
3350
3351 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3352
3353         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
3354         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
3355         * genopinit.c (gen_insn): Likewise.
3356         * reload.c (find_equiv_reg): Likewise.
3357         * loop.c (load_mems): Likewise.
3358         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
3359         * cse.c (find_comparison_args, fold_rtx): Likewise.
3360         * dwarf2out.c (add_const_value_attribute): Likewise.
3361         * expr.c (convert_move): Likewise.
3362         * recog.c (general_operand, register_operand): Likewise.
3363         * reg-stack.c (replace_reg): Likewise.
3364         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3365         * c-common.c (handle_vector_size_attribute): Likewise.
3366         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3367         (simplify_binary_operation_1): Likewise.
3368         (simplify_const_binary_operation): Likewise.
3369         (simplify_relational_operation): Likewise.
3370         (simplify_const_relational_operation): Likewise.
3371         (simplify_immed_subreg): Likewise.
3372         * emit-rtl.c (gen_lowpart_common): Likewise.
3373         * expmed.c (expand_mult): Likewise.
3374         * stor-layout.c (layout_type): Likewise.
3375
3376 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
3377
3378         PR target/24951
3379         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
3380         cst2 only for SPE vectors.
3381
3382 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
3383
3384         PR target/24953
3385         * config/rs6000/predicates.md (vrsave_operation): Check
3386         UNSPEC_VOLATILE value.
3387
3388 2005-11-21  Jan Hubicka  <jh@suse.cz>
3389
3390         PR tree-optimization/24653
3391         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
3392
3393 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3394
3395         * config/i386/predicates.md (ax_reg_operand): New predicate.
3396         (memory_displacement_only_operand): New predicate.
3397         * config/i386/i386.md ("modrm" attribute): Return 0 if one
3398         operand is AX register and the other operand is memory operand
3399         with displacement only.
3400
3401 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3402
3403         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
3404         if we don't care about NaNs or Infinities.
3405
3406 2005-11-20  Ian Lance Taylor  <ian@airs.com>
3407
3408         PR rtl-optimization/24883
3409         * combine.c (combinable_i3pat): When checking whether the
3410         destination of i3 is used in i3, consider paradoxical subregs.
3411
3412 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
3413
3414         PR middle-end/20583
3415         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
3416
3417 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
3418
3419         * combine.c (try_combine): Do not run subst on i1src and i2src in
3420         the case of generating a PARALLEL for a comparison.
3421
3422 2005-11-20  Richard Henderson  <rth@redhat.com>
3423
3424         PR 24931
3425         * tree-sra.c (struct sra_elt): Add all_no_warning.
3426         (struct sra_walk_fns) <use>: Add use_all argument.
3427         (sra_walk_expr): Pass it.
3428         (sra_walk_modify_expr): Likewise.
3429         (scalarize_ldst): Likewise.
3430         (scan_use): Update for new argument.
3431         (mark_no_warning): New.
3432         (scalarize_use): Use it.
3433
3434 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
3435
3436         * expr.c (expand_expr_real): Use usmul_optab for widening
3437         signed * unsigned multiplies.
3438         * genopinit.c (optabs): Add usmul_widen_optab.
3439         * optabs.c (init_optabs): Likewise.
3440         * optabs.h (enum optab_index): Add OTI_usmul_widen.
3441         (usmul_widen_optab): Define.
3442         * config/bfin/bfin.md (usmulhisi3): New pattern.
3443
3444         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
3445
3446 2005-11-20  Graham Stott <btinternet.com>
3447
3448         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
3449
3450 2005-11-20  Andreas Schwab  <schwab@suse.de>
3451
3452         PR target/24757
3453         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
3454         insn.
3455
3456 2005-11-19  Richard Henderson  <rth@redhat.com>
3457
3458         PR tree-opt/24665
3459         * tree-gimple.c (is_gimple_id): Export.
3460         * tree-gimple.h (is_gimple_id): Declare.
3461         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
3462         (get_default_value): Use it.
3463         (maybe_fold_stmt_indirect): Likewise.
3464
3465 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
3466
3467         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
3468         than VR1 or vice-versa.
3469
3470 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
3471
3472         PR middle-end/24912
3473         PR middle-end/24750
3474         * reload.c (find_reloads_address_1): Mention dependency on
3475         gen_reload.
3476         * reload1.c (gen_reload): For IN with an unary operation, try
3477         moving inner expression to OUT if trivial SET is not valid.
3478         Confirm that the result is valid.  Move common code block into...
3479         (emit_insn_if_valid_for_reload): New function.
3480
3481 2005-11-19  Richard Guenther  <rguenther@suse.de>
3482
3483         * fold-const.c (fold_indirect_ref_1): Make sure we fold
3484         ARRAY_REFs of constant strings.
3485
3486 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
3487
3488         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
3489         fatal format string.
3490
3491 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
3492
3493         * combine.c (make_compound_operation): Swap operands of
3494         commutative operation if necessary before returning.
3495
3496 2005-11-19  Richard Guenther  <rguenther@suse.de>
3497
3498         PR middle-end/23294
3499         * fold-const.c (fold_plusminus_mult_expr): New function.
3500         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
3501         cases, remove now unnecessary code.
3502
3503 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
3504
3505         * gensupport.c (old_preds): Rename to std_preds, add special field.
3506         (struct old_pred_table): Rename to struct std_pred_table, add special
3507         field.
3508         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
3509         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
3510         (init_predicate_table): Adjust, and set along the way whether a
3511         predicate is special.
3512
3513 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
3514
3515         * BASE-VER: Change to 4.2.0.
3516
3517 2005-11-18  James E Wilson  <wilson@specifix.com>
3518
3519         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
3520         returning it.
3521
3522 2005-11-18  Mike Stump  <mrs@apple.com>
3523
3524         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
3525         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3526         * c-decl.c (lookup_name_two) Remove.
3527         * c-tree.h (lookup_name_two): Remove.
3528         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3529         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
3530         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
3531         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
3532
3533 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
3534
3535         PR target/24914
3536         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
3537         when not generating code to use that co-processor.
3538
3539 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
3540
3541         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
3542         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
3543         these functions are now in tree-phinodes.c.
3544
3545 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
3546
3547         * config/bfin/bfin.md (trap): New pattern.
3548
3549 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3550
3551         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
3552         on types.
3553
3554         * expr.c (expand_expr_real): Don't call record_block_change unless
3555         ib_boundaries_block is non-null
3556
3557         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
3558
3559         * fold-const.c (build_range_check): Use proper type for subtraction
3560         when merging lower bound.
3561
3562 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3563
3564         PR rtl-optimization/24497
3565         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
3566         the copied insn.
3567
3568 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3569
3570         * tree-scalar-evolution.c (expression_expensive_p): New function.
3571         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
3572
3573 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
3574
3575         * config/bfin/crtlibid.s: New file.
3576
3577 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3578
3579         PR target/24348
3580         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3581         when not using sjlj exceptions.
3582         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3583         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3584         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3585         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3586         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3587         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3588         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3589         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3590         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3591         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3592         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3593         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3594         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3595         defines.
3596         * config/pa/hpux-unwind.h: New file.
3597
3598 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
3599
3600         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3601         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3602         * varasm.c (do_assemble_alias): Adjust call.
3603         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3604         is defined.
3605         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3606
3607 2005-11-17  James E Wilson  <wilson@specifix.com>
3608
3609         * tree.def (FUNCTION_DECL): Correct typo in comment.
3610
3611 2005-11-17  Richard Henderson  <rth@redhat.com>
3612
3613         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3614         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3615         and DW_CFA_def_cfa_sf.
3616         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3617         (dbx_reg_number): Don't assert particular registers here.
3618         (based_loc_descr): ... do it here instead.  Fold in ...
3619         (eliminate_reg_to_offset): ... this function.
3620         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3621         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3622         * unwind-dw2.c (execute_cfa_program): Apply data align factor
3623         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3624         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3625         (instantiate_virtual_regs): Likewise.
3626         * var-tracking.c (adjust_stack_reference): Likewise.
3627         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3628
3629 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3630
3631         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3632         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3633         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3634         crtlibid.o.
3635         ($(T)crtlibid.o): New rule.
3636
3637 2005-11-16  Richard Guenther  <rguenther@suse.de>
3638
3639         PR middle-end/24851
3640         * fold-const.c (extract_array_ref): Return byte offset
3641         in all cases.
3642         (fold_binary): Fold &x[a] CMP &x[b] to
3643         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3644         behavior.
3645
3646 2005-11-16  Richard Henderson  <rth@redhat.com>
3647
3648         PR middle-end/23497
3649         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3650         parts of an SSA_NAME.
3651
3652 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
3653
3654         PR target/24861
3655         * arm.md (split for movsf with immediate): Restrict split to insns
3656         that set a general register.
3657
3658 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3659
3660         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
3661         uw_update_context.
3662         * unwind-dw2.c (uw_advance_context): Likewise.
3663         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
3664         _Unwind_SjLj_Unregister.
3665         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3666
3667 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3668
3669         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3670
3671 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3672
3673         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3674         langhook to get a DImode integer type.
3675
3676 2005-11-16  Richard Henderson  <rth@redhat.com>
3677             J"orn Rennecke <joern.rennecke@st.com>
3678             Ulrich Weigand  <uweigand@de.ibm.com>
3679
3680         PR rtl-opt/24160
3681         PR target/24621
3682         * reload1.c (reg_equiv_invariant): New.
3683         (reload): Allocate, initialize, and free it.
3684         (calculate_needs_all_insns): Check it when skipping equivalence
3685         setting insns.
3686         (alter_reg): Likewise.
3687         (eliminate_regs_1): Rename from eliminate_regs.  Add new
3688         may_use_invariant argument; only use reg_equiv_invariant when true.
3689         (eliminate_regs): New.
3690         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3691         a context for which may_use_invariant may be true.
3692
3693 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3694
3695         * fold-const.c (const_binop): Don't constant fold the operation
3696         if the result has overflowed and flag_trapping_math.
3697         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3698
3699 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3700
3701         * config/arm/unwind-arm.c (abort): Add prototype here.
3702         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3703         (struct phase1_vrs): Add prev_sp.
3704         (unwind_phase2_forced): Save the original core registers instead of
3705         modifying entry_vrs.  Take a new flag argument for resuming unwinding
3706         and set action flags accordingly.  Always set _US_END_OF_STACK when
3707         get_eit_entry fails.  Unwind before calling the stop function.
3708         (_Unwind_GetCFA): New function.
3709         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3710         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3711         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3712         just call unwind_phase2_forced.
3713         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3714         * config/arm/unwind-arm.h (abort): Remove prototype.
3715         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3716         prototypes.
3717         (_Unwind_GetCFA): New prototype.
3718         * config/arm/pr-support.c (abort): Add prototype here.
3719         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3720         forced unwinding.
3721         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3722         not schedule the prologue with non-call exceptions and EABI.
3723
3724 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
3725
3726         * config/arm/unwind-arm.h: Reorder interface function declarations.
3727         (_URC_END_OF_STACK): New enumeration value.
3728         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3729         (struct _Unwind_Control_Block): Document reserved field use.
3730         (_Unwind_Stop_Fn): New typedef.
3731         (_Unwind_ForcedUnwind): Declare.
3732         (_Unwind_Resume_or_Rethrow): Declare.
3733         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3734         argument.  Adjust.
3735         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3736         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3737         (UCB_FORCED_STOP_ARG): New.
3738         (search_EIT_table): Update boundary condition checks.
3739         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3740         (unwind_phase2): Replace for with do..while.
3741         (unwind_phase2_forced): New.
3742         (__gnu_Unwind_RaiseException): Replace for with do..while.
3743         (__gnu_Unwind_ForcedUnwind): New.
3744         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3745         Use appropriate phase2 unwinder.
3746         (__gnu_Unwind_Resume_or_Rethrow): New.
3747         (__gnu_unwind_pr_common): Cope with forced unwinding.
3748
3749 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
3750
3751         PR target/24772
3752         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3753
3754         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3755         roundsf2): Remove "s" from mnemonic.
3756
3757 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3758
3759         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3760         __PIC__ is defined.
3761         * config/bfin/crtn.s: Change epilogues to match.
3762         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3763         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3764         __PIC__ and __pic__.
3765
3766 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3767
3768         PR 24357
3769         * doc/invoke.texi: Distinguish between free and fixed form instead of
3770         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
3771         languages.
3772         * gcc.c (default_compilers): Remove double entries, add entries for
3773         suffixes '.F90' and '.F95'.
3774
3775 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
3776
3777         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3778         in the stack probing loop.
3779
3780 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3781
3782         * configure.ac: Use .machine power5 not power5x.
3783         * configure: Regenerate.
3784
3785 2005-11-15  Mike Stump  <mrs@apple.com>
3786
3787         * c-decl.c (lookup_name_two): Add.
3788         * c-tree.h (lookup_name_two): Likewise.
3789         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3790         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3791
3792 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
3793
3794         PR rtl-optimization/23392
3795         * regrename.c (enum scan_actions) Add mark_access.
3796         (scan_actions_name): Ditto.
3797         (scan_rtx_reg): Handle mark_access.
3798         (scan_rtx_address): Do nothing for mark_access.
3799         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3800         and regs in REG_INC notes before closing chains for dead regs.
3801         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3802         opening chains for new writes.
3803
3804 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3805
3806         * c.opt (ffixed-line-length-none): New.
3807
3808 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
3809
3810         * mklibgcc.in: Change contents of eh_dummy.c.
3811
3812 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3813
3814         * loop.c (scan_loop): Do not insert temporaries for hard registers.
3815
3816 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3817
3818         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3819         of making syscalls.
3820         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
3821
3822 2005-11-15  Jan Hubicka  <jh@suse.cz>
3823
3824         * invoke.texi (large-unit-insns): Document.
3825         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3826         * params.def (large-unit-insns): New param.
3827
3828 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
3829
3830         PR target/24869
3831         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3832         special register for operand 3.  Reindent constraints to align
3833         them vertically.
3834
3835 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
3836
3837         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3838         -mpopcntb, -mfprnd. Add -mcpu=power5+.
3839         * configure.ac: Add test for FP rounding instructions.
3840         * configure: Regenerate.
3841         * config.in: Regenerate.
3842         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3843         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3844         features enabled.
3845         * config/rs6000/rs6000.opt (mfprnd): New.
3846         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3847         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3848         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3849         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3850         (TARGET_FPRND): New.
3851         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3852         UNSPEC_FRIZ): New.
3853         (btrunc<mode>2): New.
3854         (ceil<mode>2): New.
3855         (floor<mode>2): New.
3856         (round<mode>2): New.
3857
3858 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
3859
3860         * gcc.c (version_compare_spec_function): Use fatal() rather than
3861         abort().
3862
3863         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3864         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3865         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3866         as empty.
3867         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3868         link in crt2.o.
3869
3870         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3871         on -mmacosx-version-min setting.
3872
3873 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3874
3875         PR 24840
3876         * tree-vrp.c (infer_value_range): Return false if STMT is a
3877         block terminator and its basic block has no successors.
3878
3879 2005-11-14  Mike Stump  <mrs@apple.com>
3880
3881         * config/i386/i386.c (override_options): -masm=intel isn't
3882         supported on darwin.
3883         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3884
3885 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3886
3887         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3888         vfork after including auto-host.h.
3889
3890 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
3891
3892         PR rtl-optimization/22002
3893         * combine.c (distribute_notes): Detect cases where a reg dies
3894         two or more times in a bb, including on the insn we are combining,
3895         and place the death note on the correct range.
3896
3897 2005-11-14  Dale Johannesen  <dalej@apple.com>
3898
3899         * expmed.c (store_bit_field):  Add offset unconditionally for
3900         memory targets.
3901         (extract_bit_field):  Don't force extzv or extv operand into
3902         a register if field is too big.
3903
3904 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3905
3906         * config/arm/arm.c (pic_labelno): New.
3907         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3908         LABEL_REF.  Pass only the labelno to PIC insns.
3909         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3910         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3911         * arm.md (UNSPEC_PIC_LABEL): New constant.
3912         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3913         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3914         Use the correct label prefix.
3915
3916 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3917
3918         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3919         REQ_EQUIV note.
3920
3921 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
3922
3923         * loop-invariant.c: Include tm_p.h.
3924         * Makefile.in: Updated.
3925
3926 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3927
3928         * pa.c (store_reg): Revise generation of frame notes in large frames.
3929         (set_reg_plus_d): Likewise.
3930
3931 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
3932
3933         PR tree-optimization/24709
3934         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3935         loop check.
3936
3937 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3938
3939         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3940         and duplicate declaration of pthread_self.
3941
3942 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3943             Ian Lance Taylor  <ian@airs.com>
3944
3945         PR middle-end/24003
3946         * calls.c (expand_call): If TARGET is a MEM and some part of the
3947         argument area has been saved, force TARGET to a register.
3948
3949 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
3950
3951         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
3952         checking.
3953
3954 2005-11-13  Jason Merrill  <jason@redhat.com>
3955
3956         PR c++/22489
3957         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
3958         lazily declared methods.
3959         (force_decl_die): Stop if forcing out the context already make a
3960         DIE for the decl.
3961         (force_type_die): Likewise.
3962
3963 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
3964
3965         PR middle-end/24820
3966         * builtins.c (integer_valued_real_p): Add break in
3967         REAL_CST having TREE_OVERFLOW set.
3968
3969 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
3970
3971         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
3972         addressing modes during calculation of costs.
3973
3974 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3975
3976         * function.c (assign_stack_local_1): Restrict sanity check
3977         on frame size overflow to 32-bit and above platforms.
3978
3979 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3980
3981         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
3982         * config/cris/cris.c: Include reload.h.
3983         (cris_initial_elimination_offset): New function.
3984         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
3985         Prototype.
3986
3987 2005-11-12  Richard Guenther  <rguenther@suse.de>
3988
3989         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
3990
3991 2005-11-12  Jan Hubicka  <jh@suse.cz>
3992
3993         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
3994         to compare against 0 when possible.
3995
3996 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
3997
3998         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
3999         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
4000         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
4001         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
4002         in the new order.
4003
4004 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4005
4006         * recog.c (constrain_operands) <case 'g'>: For a match, require
4007         that a non-register matches general_operand when strict >= 0.
4008
4009 2005-11-11  Steven Bosscher  <stevenb@suse.de>
4010
4011         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
4012         previous checkin.
4013
4014 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
4015
4016         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
4017         (memory_address_same): New.
4018         (dse_optimize_stmt): Call memory_address_same.
4019
4020 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4021
4022         PR middle-end/24750
4023         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
4024         ZERO_EXTEND>: New cases.
4025
4026 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
4027
4028         * longlong.h (__clz_tab): Always provide.
4029
4030 2005-11-11  Steven Bosscher  <stevenb@suse.de>
4031
4032         PR 24265
4033         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
4034         can be assigned to.
4035         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
4036         before check_maybe_invariant.
4037         (move_invariant_reg): Use gen_move_insn instead of replacing
4038         SET_DEST with the temporary for the invariant.
4039         (move_loop_invariants): If checking is enabled, do internal
4040         consistency checks after completing the pass.
4041
4042 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
4043
4044         PR 24644
4045         * common.opt (Wvolatile-register-var): New.
4046         * varasm.c (make_decl_rtl): Only emit warning when option
4047         specified.  Clarify warning message.
4048         * doc/invoke.texi (Wvolatile-register-var): Document new option.
4049
4050         * doc/md.texi (copysign): Document standard named pattern.
4051
4052 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
4053
4054         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
4055         bytes when align is 2.
4056         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
4057         by the first instruction of the loop.
4058
4059 2005-11-11  Jason Merrill  <jason@redhat.com>
4060
4061         PR c++/24686
4062         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
4063         the cleanup list.
4064
4065 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
4066
4067         PR rtl-optimization/22509
4068         * local-alloc.c (memref_used_between_p): Check whether a function call
4069         could not reference the memref.
4070
4071 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
4072
4073         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
4074         algorithm so as to choose the best, not the worst, alternative.
4075         Reset accumulated register class before processing next alternative.
4076
4077 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4078
4079         PR target/24445
4080         * calls.c (expand_call): Copy a return value to a plain register
4081         if needed.
4082
4083 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
4084
4085         PR target/24778
4086         * varasm.c (assemble_name): Recompute name only for transparent
4087         aliases.
4088
4089 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
4090
4091         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
4092
4093 2005-11-04  Jeff Law  <law@redhat.com>
4094
4095         PR middle-end/23181
4096         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
4097         perform reassociation if the parent statement will not die as
4098         a result of the optimization.
4099
4100 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
4101
4102         * tree-ssa-alias.c (compute_may_aliases): Remove call to
4103         delete_old_heap_vars.
4104         * tree-dfa.c (referenced_var_remove): Remove function.
4105         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
4106         (delete_tree_ssa): Remove call to delete_old_heapvars.
4107         Add call to delete_alias_heapvars.
4108         * tree-flow.h (referenced_var_remove): Remove prototype
4109         (init_alias_heapvars): New prototype.
4110         (delete_alias_heapvars): Ditto.
4111         * Makefile.in (tree-ssa-structalias.o): Add
4112         gt-tree-ssa-structalias.o
4113         (GTFILES): Add tree-ssa-structalias.h and
4114         tree-ssa-structalias.c.
4115         (s-gtype): Add gt-tree-ssa-structalias.h.
4116         * tree-ssa-structalias.c (heapvars): Remove.
4117         (oldheapvars): Remove.
4118         (heapvar_for_stmt): New variable.
4119         (heapvar_lookup): New function.
4120         (heapvar_insert): Ditto.
4121         (get_constraint_for): See if we have an old heapvar
4122         to reuse.
4123         (init_alias_heapvars): New function.
4124         (delete_alias_heapvars): Ditto.
4125         Add include of gt-tree-ssa-structalias.h.
4126
4127 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4128
4129         PR middle-end/22127
4130         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
4131
4132 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4133
4134         * tree.c (int_fits_type_p): Only look at the base type
4135         if it has the same precision as the original type.
4136
4137 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
4138
4139         PR other/4372
4140         * varasm.c (assemble_alias): Use %q+D in the error
4141         message instead of %J and %qD.
4142
4143 2005-11-10  Richard Guenther  <rguenther@suse.de>
4144
4145         * gcse.c (free_ldst_entry): Only free hashtable if
4146         it exists.
4147
4148 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4149
4150         * function.c (assign_stack_local_1): Issue an error message if
4151         the frame size overflows in the signed target arithmetics.
4152
4153 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4154
4155         * tree.c (build_qualified_type): Chain the new type to the original
4156         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
4157         a POINTER_TYPE or a REFERENCE_TYPE respectively.
4158         (build_pointer_type_for_mode): Only return unqualified types.
4159         (build_reference_type_for_mode): Likewise.
4160
4161 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4162
4163         * Makefile.in (gnucompare): Do comparison of all files using one of
4164         the chosen methods and only afterwards decide if just warning should
4165         be issued or comparison failure raised.
4166
4167 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4168
4169         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
4170         (noce_try_abs): Negate if the comparison is reversed.
4171         Look only one instruction backwards for a REG_EQUAL note.
4172
4173 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4174
4175         PR other/4372
4176         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
4177         gthr-tpf.h: Define __gthrw.  For all identifiers that might
4178         be weak, introduce weakrefs or non-weak aliases with __gthrw,
4179         and prefix all uses with __ghtrw.
4180
4181 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4182
4183         PR other/4372
4184         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
4185         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
4186         * c-common.c (handle_weakref_attribute): New.
4187         (c_common_attribute_table): Add weakref.
4188         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
4189         in the assembler.
4190         * configure, config.in: Rebuilt.
4191         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
4192         * doc/extend.texi: Document weakref attribute.
4193         * varasm.c (ultimate_transparent_alias_target): New
4194         (assemble_name): Use it.
4195         (weak_finish_1): Split out of...
4196         (weak_finish): ... and deal with weakrefs in...
4197         (weakref_targets): ... new list.
4198         (globalize_decl): Clean up weakref_targets.
4199         (do_assemble_alias): Handle weakrefs.
4200         (finish_aliases_1): Do not reject weakrefs to external symbols.
4201         (assemble_alias): Handle weakrefs.
4202
4203 2005-11-09  Richard Guenther  <rguenther@suse.de>
4204
4205         PR tree-optimization/24716
4206         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
4207         t_bool to track results from follow_ssa_edge.
4208
4209 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4210
4211         * final.c (force_source_line): New global variable.
4212         (final_scan_insn): Set it to true instead of clearing last_filename.
4213         (notice_source_line): Return true if force_source_line is true,
4214         unless source info is absent.
4215
4216 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
4217
4218         PR c/24644
4219         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
4220         a linkage name for a variable if it a register variable.
4221         * c-decl.c (grokdeclarator): Global register variables
4222         should be set as PUBLIC.
4223
4224 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4225
4226         PR 24624
4227         * config/s390/s390.c (struct s390_frame_layout): New fields
4228         first_save_gpr_slot and last_save_gpr_slot.
4229         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
4230         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
4231         first_save_gpr and last_save_gpr with the _slot variants.
4232         (s390_register_info): Calculate first_save_gpr_slot and
4233         last_save_gpr_slot using regs_ever_live.
4234
4235 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4236
4237         PR 24623
4238         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
4239         for a function containing a landing pad.
4240
4241 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4242
4243         PR 24034
4244         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
4245         is live afterwards.
4246
4247 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
4248
4249         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
4250         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
4251
4252 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4253
4254         Add ms2 support
4255         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
4256         constants.
4257         (call,load,store): New insn types.
4258         (mem_access, branch_access): Adjust reservation conditions.
4259         (define_delay): Adjust condition.
4260         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
4261         type.
4262         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
4263         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
4264         insn type.
4265         (call_internal, call_value_internal, return_internal,
4266         return_interrupt_internal, eh_return_internal, indirect_jump,
4267         tablejump): Set call insn type.
4268         (blockage, ei, di): Use appropriate unspec const.
4269         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
4270         (ms1_get_attr_type): Adjust to give load & store types.
4271         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
4272         backwards past a barrier.
4273         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
4274         branch scheduling.
4275         (struct branch_info, struct label_info): New.
4276         (ms1_labels): New.
4277         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
4278         (ms1_machine_reorg): New.
4279         (TARGET_MACHINE_DEPENDENT_REORG): Override.
4280         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
4281         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
4282         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
4283         (TARGET_MS2): New.
4284
4285 2005-11-09  Per Bothner  <per@bothner.com>
4286             Uros Bizjak  <uros@kss-loka.si>
4287
4288         PR c/24101
4289         * toplev.c (process_options): Initialize debug_hooks early
4290         in case lang_hooks.post_options ends up calling a debug_hook.
4291
4292 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
4293
4294         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
4295         DBX_REGISTER_NUMBER being contiguous.
4296
4297 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
4298             Diego Novillo  <dnovillo@redhat.com>
4299
4300         PR 23046
4301         * tree-vrp.c (register_edge_assert_for): Do not register
4302         always-false predicates.
4303
4304 2005-11-08  Devang Patel <dpatel@apple.com>
4305
4306         PR tree-optimization/23115
4307         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
4308         relation.
4309
4310 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
4311
4312         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
4313         -mcpu=440.
4314
4315 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
4316
4317         Fix PR tree-optimization/23382
4318
4319         * tree-ssa-alias.c (compute_may_aliases): Call
4320         delete_old_heap_vars.
4321         * tree-dfa.c (referenced_var_remove): New function.
4322         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
4323         * tree-flow.h (referenced_var_remove): Add prototype.
4324         (delete_old_heap_vars): Ditto.
4325         * tree-ssa-structalias.c (heapvars): New variable.
4326         (oldheapvars): Ditto.
4327         (get_constraint_for): Put heap vars on heapvars list.
4328         (delete_old_heap_vars): New function.
4329
4330 2005-11-08  Jason Merrill  <jason@redhat.com>
4331
4332         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
4333
4334 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
4335
4336         PR target/19340
4337         * reg-stack.c (reg_to_stack): Update register liveness also
4338         for flag_sched2_use_traces.
4339
4340 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
4341
4342         PR target/23704
4343         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
4344         override prior explicit -mno-powerpc-gfxopt.
4345
4346 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4347
4348         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
4349         if the bitsize is zero.
4350         * doc/md.texi (Standard Pattern Names): Document it.
4351
4352         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
4353         (TARGET_PASS_BY_REFERENCE): Likewise.
4354
4355 2005-11-07  Ian Lance Taylor  <ian@airs.com>
4356
4357         PR rtl-optimization/24683
4358         * config/i386/i386.c (legitimize_pic_address): If constant operand
4359         to PLUS is too large, put it in a register.
4360
4361 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
4362
4363         * configure.ac: Enable checking assembler dwarf2 support for bfin
4364         target.
4365         * configure: Regenerate.
4366
4367 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4368
4369         PR target/24230
4370
4371         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
4372         gen_easy_vector_constant_add_self): Delete.
4373         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
4374         New.
4375         (output_vec_const_move): Use gen_easy_altivec_constant.
4376         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
4377         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
4378         (easy_vector_constant_add_self): Rewritten.
4379         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
4380         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
4381         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
4382         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
4383         Macroize and adjust for the other changes.
4384
4385 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4386
4387         PR c/24599
4388
4389         * c-typeck.c (build_c_cast): Try using a shared constant, and see
4390         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
4391
4392 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4393
4394         PR rtl-optimization/23567
4395         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
4396         (noce_process_if_block): Don't do any optimizations except
4397         if (cond) x = x; if !set_b and write into orig_x may trap
4398         or fault.  Remove the MEM_READONLY_P check.
4399
4400 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
4401
4402         PR 24670
4403         * tree-vrp.c (fix_equivalence_set): New.
4404         (extract_range_from_assert): Call it.
4405
4406 2005-11-05  Ian Lance Taylor  <ian@airs.com>
4407
4408         PR target/22432
4409         * combine.c (apply_distributive_law): Don't distribute across a
4410         vector mode subreg.
4411
4412 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
4413
4414         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
4415         config/ms1/ms1.h, config/rs6000/predicates.md,
4416         config/s390/s390.c, params.def, postreload-gcse.c,
4417         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
4418         tree-vrp.c, tree.c: Fix comment typos.
4419         * doc/invoke.texi: Fix typos.
4420
4421 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
4422
4423         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
4424         for testing whether the data_dependence_relation contains distance
4425         vectors.  Iterate over all distance vectors of the ddr.
4426         * lambda.h: Define a vec of lambda_vector pointers.
4427         * tree-data-ref.c (dump_data_dependence_relation,
4428         dump_data_dependence_direction): Iterate over all distance and
4429         direction vectors of the ddr.
4430         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
4431         DDR_DIST_VECTS.
4432         (build_classic_dist_vector, build_classic_dir_vector): Push a set
4433         of distance/direction vectors instead of a single one.
4434         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
4435         lambda_vectors with a vec of lambda_vectors.
4436         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
4437         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
4438         DDR_NUM_DIST_VECTS): New.
4439         * tree-loop-linear.c (gather_interchange_stats): Test for the
4440         existence of distance vectors only after having checked that there
4441         is a dependence.  Iterate over all distance vectors of the ddr.
4442         (linear_transform_loops): Use dump_data_dependence_relation.
4443         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
4444         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
4445         distance vectors of the ddr.
4446
4447 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4448
4449         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
4450         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
4451         IS_INTHANDLER; all callers changed.
4452         (n_regs_saved_by_prologue): Take interrupt handler attributes into
4453         account.
4454         (do_link, do_unlink): New argument ALL; all callers changed.
4455         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
4456         If function isn't leaf, save and restore all registers.
4457         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
4458         exception handler.
4459
4460 2005-11-05  Jan Hubicka  <jh@suse.cz>
4461
4462         PR rtl-optimization/23490
4463         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
4464         max-flow-memory-location): Document.
4465         * flow.c: Include params.h
4466         (MAX_MEM_SET_LIST_LEN): Kill.
4467         (add_to_mem_set_list): Use new param.
4468         * cse.c (cse_basic_block): Replace 1000 by new param.
4469         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
4470         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
4471         * predict.c (predict_loops): Use new param.
4472         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
4473
4474         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
4475         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
4476         Do not hold memory returned by cgraph_node_name across other call.
4477
4478 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
4479
4480         PR target/23424
4481         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
4482         Disable.
4483
4484 2005-11-04  Jeff Law  <law@redhat.com>
4485
4486         PR/21883
4487         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
4488         * tree-ssa-dom.c: Include params.h.
4489         (thread_across_edge): If there are too many statements in the
4490         target block, then do not thread through it.
4491         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
4492         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
4493
4494 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
4495
4496         PR 24627
4497         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
4498         TODO_update_ssa instead of TODO_update_ssa_no_phi.
4499
4500 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
4501
4502         PR/18595
4503         * tree-scalar-evolution.c (instantiate_parameters_1,
4504         instantiate_parameters, resolve_mixers): Compute the size of an
4505         expression to be instantiated and give up the instantiation if the
4506         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
4507
4508 2005-11-04  Richard Guenther  <rguenther@suse.de>
4509
4510         * tree-flow.h (ref_contains_indirect_ref): Rename to
4511         array_ref_contains_indirect_ref.
4512         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
4513         (array_ref_contains_indirect_ref): Make comment match the code
4514         and vice-versa.
4515         (ref_contains_array_ref): Likewise.
4516         * tree-ssa-structalias.c (find_func_aliases): Remove call to
4517         ref_contains_indirect_ref.
4518         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4519         Rename calls to ref_contains_indirect_ref.
4520
4521 2005-11-04 Paul Brook  <paul@codesourcery.com>
4522
4523         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
4524         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
4525         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
4526         * config/arm/arm.md: Use match_operand in peephole input templates
4527         and match_dup in peephole output templates.
4528
4529 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4530
4531         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
4532         __aeabi_uidiv.
4533
4534 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
4535             Daniel Jacobowitz  <dan@codesourcery.com>
4536
4537         * longlong.h (add_ssaaaa): Clobber condition code register
4538         in ARM version.
4539         (sub_ddmmss): Likewise.
4540         (umul_ppmm): Likewise.
4541
4542 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4543             Paul Brook  <paul@codesourcery.com>
4544             Phil Blundell  <pb@reciva.com>
4545
4546         * configure.ac: Add test for ARM TLS support.
4547         * configure: Regenerated.
4548         * config/arm/arm-protos.h (legitimize_tls_address)
4549         (arm_tls_referenced_p, tls_mentioned_p)
4550         (arm_output_addr_const_extra): New prototypes.
4551         (thumb_legitimize_pic_address): Delete.
4552         * config/arm/arm.c: Include "gt-arm.h".
4553         (enum tls_reloc): New.
4554         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
4555         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
4556         (arm_call_tls_get_addr, legitimize_tls_address)
4557         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
4558         (arm_init_tls_builtins, arm_emit_tls_decoration)
4559         (arm_output_addr_const_extra): New functions.
4560         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
4561         (TARGET_HAVE_TLS): Define.
4562         (target_thread_pointer): New.
4563         (arm_override_options): Handle -mtp=.
4564         (legitimize_pic_address): Ignore UNSPECs.
4565         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
4566         relative symbols.
4567         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
4568         (tls_get_addr_libfunc): New variable.
4569         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
4570         (arm_init_builtins): Call arm_init_tls_builtins.
4571         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
4572         (arm_encode_section_info): Call default_encode_section_info.
4573         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
4574         (enum arm_tp_type): New.
4575         (target_thread_pointer): Add declaration.
4576         (LEGITIMATE_CONSTANT_P): Handle TLS.
4577         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
4578         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
4579         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
4580         * config/arm/arm.md: Add UNSPEC_TLS.
4581         (movsi): Handle TLS.
4582         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
4583         non-PIC.
4584         (tls_load_dot_plus_eight): New insn and a peephole to create it.
4585         (load_tp_hard, load_tp_soft): New insns.
4586         * arm.opt: Add -mtp=.
4587         * doc/invoke.texi (ARM Options): Document -mtp.
4588
4589 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4590
4591         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
4592         * config/arm/libunwind.S: Include "lib1funcs.asm".
4593         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
4594         (LIB2ADDEH): Add libunwind.S.
4595         (LIB2ADDEHDEP): Add lib1funcs.asm.
4596         * mklibgcc.in: Handle asm files in libgcc_eh.a.
4597
4598 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4599
4600         PR fortran/18452
4601         * gcc/c.opt: Add a -lang-fortran option.
4602         * gcc/c-opts.c: Add a lang_fortran flag.
4603         (c_common_init_options): Handling the -lang-fortran option.
4604         (c_common_handle_option): Add a case for Fortran options in
4605         preprocessing. Remove cases for -ffixed-form and
4606         -ffixed-line-length. Add a case for -lang-fortran.
4607
4608 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
4609
4610         * config/rs6000/rs6000.c: Include params.h
4611         (optimization_options): Set max-grow-copy-bb-insns default to 16.
4612         (bdesc_2arg): Delete vpkuhss and vpkuwss.
4613         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
4614         (UNSPEC_VPKUWSS): Delete.
4615         (altivec_vpkuhss): Delete.
4616         (altivec_vpkuwss): Delete.
4617         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
4618         final condition.
4619         (neg_eq0<mode>): Remove final condition.
4620         (neg_eq<mode>): Remove condition and split-condition.
4621
4622 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
4623
4624         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
4625         Use associated print macros.
4626
4627 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4628
4629         PR c++/17964
4630         * diagnostic.c (diagnostic_set_info_translated): New function.
4631         (diagnostic_set_info): Use it.  Add comment.
4632         * diagnostic.h (diagnostic_set_info_translated): Declare.
4633
4634 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4635
4636         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
4637         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
4638         reference only if 'public' is true.
4639         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
4640         emit the .hidden directive only if the indirect reference is public.
4641         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
4642         Pass it to dw2_force_const_mem.
4643         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
4644         * dwarf2out.c (output_cfi): Adjust calls to above function.
4645         (output_call_frame_info): Likewise.
4646         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
4647         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
4648
4649 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
4650
4651         PR tree-optimization/24483
4652         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
4653         field to elts if possible.
4654
4655 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4656
4657         PR middle-end/23155
4658         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
4659         CONSTRUCTOR.
4660
4661 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
4662
4663         Fix PR tree-optimization/24351
4664
4665         * tree-ssa-structalias.c (struct variable_info): Add
4666         collapsed_into.
4667         (get_varinfo_fc): New function to follow collapsing.
4668         (new_var_info): Set collapsed_to to NULL.
4669         (dump_constraint): Follow collapsing.
4670         (build_constraint_graph): Handle collapsing.
4671         (do_simple_structure_copy): Return false if something bad
4672         happened.
4673         (collapse_rest_of_var): New function.
4674         (do_structure_copy): Collapse if do_simple_structure_copy returns
4675         false.
4676
4677 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4678
4679         PR middle-end/24589
4680         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
4681         expressions to a statement list instead of gimplifying them.
4682
4683 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4684
4685         PR rtl-optimization/23585
4686         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
4687         that can't trap plus a constant integer, if the mode has zero size.
4688
4689 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4690
4691         PR target/24620
4692         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
4693         as operand 2.
4694         ("*insv<mode>_reg_extimm"): Likewise.
4695
4696 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4697
4698         PR c/24329
4699         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
4700         c_common_type_for_mode returns an unnamed type.
4701
4702 2005-11-02  Richard Henderson  <rth@redhat.com>
4703
4704         PR target/9350
4705         PR target/24374
4706         * dwarf2out.c (dwarf2out_reg_save_reg): New.
4707         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
4708         * function.c (assign_parms): Use calls.internal_arg_pointer.
4709         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
4710         code.
4711         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
4712         (TARGET_CALLS): Add it.
4713         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
4714         * targhooks.c (default_internal_arg_pointer): New.
4715         * targhooks.h (default_internal_arg_pointer): Declare.
4716         * tree.h (dwarf2out_reg_save_reg): Declare.
4717         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
4718         * config/i386/i386.c (dbx_register_map): Add return column.
4719         (dbx64_register_map, svr4_dbx_register_map): Likewise.
4720         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
4721         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
4722         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
4723         (ix86_save_reg): Save force_align_arg_pointer.
4724         (ix86_emit_save_regs): Make regno unsigned.
4725         (ix86_emit_save_regs_using_mov): Likewise.
4726         (ix86_expand_prologue): Handle force_align_arg_pointer.
4727         (ix86_expand_epilogue): Likewise.
4728         * config/i386/i386.h: (dbx_register_map): Update.
4729         (dbx64_register_map, svr4_dbx_register_map): Update.
4730         (struct machine_function): Add force_align_arg_pointer.
4731         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
4732         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
4733         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
4734
4735 2005-11-02  Jan Hubicka  <jh@suse.cz>
4736
4737         PR target/23303
4738         * i386.md: Add peep2 for simplyfing array accesses.
4739
4740 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
4741
4742         PR target/24615
4743         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
4744         * config/s390/s390.c (s390_decompose_shift_count): New function.
4745         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
4746         (print_shift_count_operand): Use s390_decompose_shift_count.
4747         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
4748         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
4749
4750 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
4751
4752         PR target/24600
4753         * loop.c (loop_givs_rescan): Use force_operand to expand
4754         complex GIVs.
4755
4756 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
4757
4758         PR 22429
4759         * fold-const.c (build_range_check): Use unsigned when signed
4760         overflow is undefined also.  If etype is subtype, make sure that
4761         the subtraction is in the supertype.
4762
4763 2005-11-02  Richard Henderson  <rth@redhat.com>
4764
4765         PR target/24178
4766         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
4767         by MEM_ALIGN.
4768
4769 2005-11-01  Richard Henderson  <rth@redhat.com>
4770
4771         PR 21518
4772         * loop.c (scan_loop): Do not propagate computations to a hard
4773         register destination with SMALL_REGISTER_CLASSES.
4774
4775 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
4776
4777         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
4778         costs for MULT inside PLUS or MINUS.
4779
4780 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
4781
4782         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
4783         (TRAMPOLINE_SIZE): Round up to 60.
4784         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
4785
4786 2005-10-31  James E. Wilson  <wilson@specifix.com>
4787
4788         PR debug/24444
4789         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
4790         ifdef.  Put ifdefs around call in gen_subprogram_die.
4791         (compute_frame_pointer_to_cfa_displacement): Likewise.
4792         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
4793         not defined.
4794
4795         PR rtl-optimization/17356
4796         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
4797         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
4798
4799 2005-10-31  Jan Hubicka  <jh@suse.cz>
4800
4801         PR middle-end/24093
4802         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
4803
4804         PR target/20928
4805         * i386.c (legitimize_pic_address): Deal with large immediates.
4806
4807         PR profile/20815
4808         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
4809         from symbol names while computing checkup.
4810
4811         PR profile/24487
4812         * predict.c (predict_loops): Do not estimate more than
4813         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
4814         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
4815
4816 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
4817
4818         PR tree-optimization/19097
4819         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
4820
4821 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
4822
4823         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
4824
4825 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
4826
4827         PR middle-end/23492
4828         * tree-inline.c (setup_one_parameter): If the init_stmt
4829         is NULL, don't insert the statement.
4830
4831 2005-10-30  Jan Hubicka  <jh@suse.cz>
4832
4833         PR tree-optimization/24172
4834         * tree-inline.c (copy_body_r): Unshare the substituted value first.
4835
4836 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
4837
4838         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
4839         constants for hosts with long != 32 bits.
4840
4841 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
4842
4843         PR middle-end/24093
4844         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
4845
4846 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
4847
4848         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
4849         (TARGET_MS1_16_002): New.
4850         (TARGET_MS1_16_003): New.
4851
4852         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
4853         ("*decrement_and_branch_until_zero_no_clobber"): New.
4854         Add corresponding splitter for decrement_and_branch_until_zero
4855         instruction.
4856         Key all decrement_and_branch_until_zero patterns off of
4857         TARGET_MS1_16_003.
4858
4859 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
4860
4861         PR middle-end/24362
4862         * tree-complex.c (extract_component): Treat RESULT_DECL
4863         like the rest of the decls.
4864
4865 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
4866
4867         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
4868         indirect call to _mcount if the function needs a static chain.
4869
4870 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4871             Caroline Tice  <ctice@apple.com>
4872
4873         PR rtl-optimization/24460
4874         * dwarf2out.c (have_switched_text_sections): New boolean variable.
4875         (dwarf2out_switch_text_section): Set it to true instead of
4876         incrementing separate_line_info_table_in_use.
4877         (output_loc_list): Additionally test have_switched_text_sections.
4878         (output_ranges): Likewise.
4879         (dwarf2out_finish): Likewise.
4880         * varasm.c (assemble_start_function): Do not call
4881         insert_section_boundary_note.
4882         (assemble_end_function): If flag_reorder_blocks_and_partition,
4883         switch to the function's section before emitting the .size directive.
4884         * bb-reorder.c (insert_section_boundary_note): Staticify.
4885         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
4886         * output.h (insert_section_boundary_note): Delete.
4887
4888 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
4889
4890         PR c/23103
4891         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
4892         instead of pointer equality when comparing types.
4893
4894 2005-10-24  James E. Wilson  <wilson@specifix.com>
4895
4896         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
4897         add_dependence_list_and_free calls.
4898
4899 2005-10-24  Steven Bosscher  <stevenb@suse.de>
4900
4901         * contrib.texi: Add the names of the LLNL folks who donated
4902         Cray pointer support for gfortran.
4903
4904 2005-10-24  Steven Bosscher  <stevenb@suse.de>
4905
4906         PR tree-optimization/24225
4907         * profile.c (branch_prob): Look from end to start through a
4908         basic block when looking for a locus.
4909
4910 2005-10-24  Richard Henderson  <rth@redhat.com>
4911
4912         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
4913         parallel.
4914         (hppa_expand_prologue): Likewise.
4915
4916 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4917
4918         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
4919         (NO_DEFERRED_PROFILE_COUNTERS): Define.
4920         * pa.h (NO_PROFILE_COUNTERS): Define.
4921         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
4922         (funcdef_nos): New vector to hold label numbers of deferred profile
4923         counters.
4924         (output_deferred_profile_counters): New function.
4925         (hppa_profile_hook): Push label number onto funcdef_nos.
4926         (pa_hpux_file_end): Call output_deferred_profile_counters if
4927         NO_DEFERRED_PROFILE_COUNTERS is false.
4928
4929         * pa-protos.h (get_deferred_plabel): New prototype.
4930         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
4931         Make global.
4932         (output_call): Adjust calls.
4933
4934 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
4935
4936         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
4937         peculiarity of GOT/TOC section usage.
4938
4939 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
4940
4941         PR objc/24435
4942          * c-common.c (constant_string_class_name): Add documentation.
4943
4944 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
4945
4946         PR target/23832
4947         * recog.c (peephole2_optimize): Increment peep2_current_count
4948         only when the slot is empty.
4949
4950 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4951
4952         PR ada/23957
4953         * except.c (output_function_exception_table): Call
4954         assemble_external_libcall if we need a personality function.
4955
4956 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4957
4958         PR rtl-optimization/24460
4959         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
4960         set the basic block for barriers.
4961
4962 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
4963
4964         * var-tracking.c (vt_initialize): Initialize post.
4965
4966 2005-10-21  Devang Patel  <dpatel@apple.com>
4967
4968         PR/24220
4969         * c-common.c (vector_types_convertible_p): Check vector element type.
4970
4971 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
4972
4973         * config/sh/sh.c (prepare_move_operands): Handle the address
4974         constant which is a tls symbolic address plus a constant.
4975
4976 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
4977
4978         PR driver/24473
4979         * gcc.c (main): Use the correct counter for erroring out
4980         about mulitple files.
4981
4982 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
4983
4984         PR target/24465
4985         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
4986         use r2 for 64-bit tls .got access.
4987
4988 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
4989
4990         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
4991         TRUTH_OR_EXPR.
4992
4993 2005-10-20  Steven Bosscher  <stevenb@suse.de>
4994
4995         PR tree-optimization/24307
4996         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
4997
4998 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
4999
5000         PR middle-end/24295
5001         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
5002         alias targets.
5003         * varasm.c (find_decl_and_mark_needed): After cgraph global info
5004         is ready, stop marking functions, but still mark variables.
5005
5006 2005-10-20  Richard Guenther  <rguenther@suse.de>
5007
5008         PR c++/24439
5009         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
5010         void type operands.
5011
5012 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
5013
5014         PR rtl-optimization/23585
5015         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
5016         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
5017         (may_trap_p_1): New predicate extracted from...
5018         (may_trap_p): ... here.  Invoke may_trap_p_1.
5019         (may_trap_or_fault_p): New predicate.
5020         * rtl.h (may_trap_or_fault_p): Declare it.
5021         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
5022         instead of may_trap_p.
5023         (steal_delay_list_from_fallthrough): Likewise.
5024         (fill_simple_delay_slots): Likewise.
5025         (fill_slots_from_thread): Likewise.
5026         * function.c (pad_to_arg_alignment): Rework comment about
5027         SPARC_STACK_BOUNDARY_HACK.
5028         * config/sparc/sparc.h: Likewise.
5029
5030 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
5031
5032         * config/s390/s390.c (s390_expand_insv): New.
5033         * config/s390/s390-protos.h (s390_expand_insv): Declare.
5034         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
5035         ("icm_hi"): Remove mode attribute.
5036         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
5037         Adjust all uses.
5038         ("*extracthi", "*extractqi"): Remove.
5039         (extv<mode>", "*extzv<mode>"): New.
5040         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
5041         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
5042
5043 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5044
5045         * cfgexpand.c (discover_nonconstant_array_refs_r,
5046         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
5047         (tree_expand_cfg): Call discover_nonconstant_array_refs.
5048         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
5049         discover_nonconstant_array_refs.
5050
5051 2005-10-19  Steven Bosscher  <stevenb@suse.de>
5052
5053         PR c/23228
5054         * c-decl.c (pop_scope): Don't warn about an unused variable
5055         if it is marked with TREE_NO_WARNING.
5056         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
5057         somenow mismatch and olddecl is to be replaced.
5058
5059 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5060
5061         PR middle-end/23199
5062         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
5063         whether registers live on the edge can be saved/restored.
5064
5065 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5066
5067         * config/sh/sh.c (fixup_mova): Skip notes.
5068
5069 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5070
5071         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
5072         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
5073         (s390_can_eliminate): Handle BASE_REGNUM elimination.
5074         (s390_initial_elimination_offset): Likewise.
5075         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
5076         register on TARGET_ZARCH targets.
5077         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
5078         (INITIAL_FRAME_POINTER_OFFSET): Remove.
5079         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
5080         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
5081
5082 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5083
5084         * config/s390/s390.md: Comment describing output modifiers updated.
5085         * config/s390/s390.c (print_operand): Likewise.
5086
5087 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5088
5089         * config/s390/s390.c (override_options): Added check for -mstack-size
5090         64k limitation.
5091         * doc/invoke.texi: Mention that limit in the documenation.
5092
5093 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
5094
5095         PR #19672
5096         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
5097
5098 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
5099
5100         Fix PR tree-optimization/24231
5101
5102         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
5103         (compute_avail): Ditto.
5104
5105 2005-10-18  Richard Henderson  <rth@redhat.com>
5106
5107         PR target/24428
5108         * config/i386/i386.c (legitimate_constant_p): Check
5109         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
5110         if LABEL_REF.
5111         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
5112         (legitimate_pic_address_disp_p): Reorg CONST checking to make
5113         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
5114         directly.
5115         (print_operand_address): Likewise.
5116         * config/i386/predicates.md (x86_64_immediate_operand): Test
5117         SYMBOL_REF_TLS_MODEL properly inside CONST.
5118         (x86_64_zext_immediate_operand): Likewise.
5119         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
5120         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
5121         * config/i386/i386-protos.h: Remove predicates.md entries.
5122
5123 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
5124
5125         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
5126         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
5127
5128 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5129             Ian Lance Taylor <ian@airs.com>
5130
5131         PR middle-end/23522
5132         * fold-const.c (fold_widened_comparison): Do not allow range based
5133         constant folding when right operand cannot be unwidened.
5134
5135 2005-10-17  Richard Henderson  <rth@redhat.com>
5136
5137         * builtins.c (expand_builtin_synchronize): Build a new-style asm
5138         with a memory clobber.
5139
5140 2005-10-17  James E Wilson  <wilson@specifix.com>
5141
5142         PR rtl-optimization/17356
5143         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
5144         checking for EDGE_EH.
5145
5146 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
5147
5148         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
5149         the slot on an even boundary for any type with 16-byte alignment.
5150
5151 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
5152
5153         PR target/23424
5154         * md.texi (Modifiers) <%>: Clarify that % doesn't work
5155         after register allocation.
5156
5157 2005-10-17  DJ Delorie  <dj@redhat.com>
5158
5159         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
5160         as frame related.
5161
5162 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
5163
5164         PR c++/22551
5165         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
5166         overflow flags.
5167
5168 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5169
5170         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
5171         to 2 if it's already non-zero.
5172         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
5173         is set and warn about it if flag_schedule_insns is 1.
5174
5175 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
5176
5177         * config/crx/crx.md: Compare-and-branch instructions need to
5178         invalidate CC.
5179
5180 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
5181
5182         PR target/24315
5183         * config/i386/i386.md (*pushdi2_rex64 splitter)
5184         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
5185         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
5186         flow2 pass only when (optimize > 0 && flag_peephole2).
5187
5188 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
5189
5190         PR driver/22544
5191         * gcc.c (have_c): New static variable.
5192         (have_o): Likewise.
5193         (process_command): Remove declation of have_c.
5194         Set have_o to 1 when handling -o.
5195         (main): Add a fatel error if there are multiple
5196         files specified and -o and -c/-S is passed witout
5197         -combine or multiple languages.
5198
5199 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
5200
5201         Fix PR tree-optimization/22444
5202         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
5203         Assert that we don't hit something with subvars.
5204         (setup_pointers_and_addressables): Don't add things with subvars,
5205         because we'll already process the subvars for aliasing purposes.
5206
5207 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
5208
5209         PR target/23424
5210         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
5211         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
5212         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
5213         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
5214         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
5215         swapped, alternatives for the R constraint.
5216
5217         PR middle-end/24341
5218         * builtins.c (get_builtin_sync_mode): Make unlimited
5219         mode_for_size request.
5220
5221 2005-10-15  Richard Henderson  <rth@redhat.com>
5222
5223         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
5224         (gimplify_expr): ... here.
5225         (gimplify_compound_lval): Use it in initial scan loop.  Allow
5226         fb_lvalue in base expression.
5227
5228 2005-10-15  Richard Henderson  <rth@redhat.com>
5229
5230         PR 23714
5231         * builtins.c (expand_builtin_trap): Export.
5232         * expr.h (expand_builtin_trap): Declare.
5233         * expr.c (expand_assignment): Emit a trap for integral offsets
5234         from registers that weren't reduced to bitpos.
5235
5236         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
5237         (mark_array_ref_addressable): Remove.
5238         * tree-flow.h (mark_array_ref_addressable): Remove.
5239         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
5240
5241 2005-10-15  James E Wilson  <wilson@specifix.com>
5242
5243         PR target/24232
5244         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
5245         (add_dependence_list_and_free): Likewise.
5246         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
5247         call.
5248
5249 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
5250
5251         PR 23141
5252         PR 23142
5253         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
5254         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
5255         anti-range.
5256         (vrp_visit_phi_node): Only prevent infinite iterations when
5257         the previous result and the new result are both VR_RANGEs.
5258
5259 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
5260
5261         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
5262         function comment.
5263
5264 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5265
5266         PR c/23439
5267         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
5268         to initialize loc.
5269
5270 2005-10-14  Per Bothner  <per@bothner.com>
5271
5272         PR preprocessor/21250
5273         * c-ppoutput.c (print_line): Print internal line 0 as 1.
5274
5275 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
5276
5277         PR c++/22551
5278         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
5279         overflow flags.  Refactor some conditionals.
5280
5281 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
5282
5283         PR tree-opt/21304
5284         * tree-dfa.c (add_referenced_var): Only look at decls which
5285         have TREE_CONSTANT or TREE_READONLY set instead of if
5286         !TREE_PUBLIC or !TREE_CONSTANT.
5287
5288 2005-10-13  James E Wilson  <wilson@specifix.com>
5289
5290         * doc/invoke.texi: For -x, add f95-cpp-input.
5291         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
5292
5293 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
5294
5295         PR tree-optimization/24262
5296         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
5297         in loop all the time.
5298
5299 2005-10-12  Richard Henderson  <rth@redhat.com>
5300
5301         PR c/24255
5302         * tree.h (DECL_TRANSPARENT_UNION): Remove.
5303         * function.c (assign_parm_find_data_types): Don't support it.
5304         * print-tree.c (print_node): Likewise.
5305         * c-common.c (handle_transparent_union_attribute): Likewise.
5306         Use build_duplicate_type.
5307         * tree-inline.c (remap_type_1): Split out of remap_type;
5308         properly remap aggregate fields.
5309         (build_duplicate_type): New.
5310         * doc/extend.texi (Variable Attributes): Remove documentation
5311         for transparent_union.
5312
5313 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5314
5315         PR target/24284
5316         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
5317         (gen_stack_pointer_dec): Likewise.
5318
5319 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
5320
5321         PR middle-end/21275
5322         PR middle-end/21766
5323         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
5324         target hook.
5325         (struct cxx): Add adjust_class_at_definition target hook.
5326         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
5327         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
5328         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
5329         hook_void_tree. Add to TARGET_CXX.
5330         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
5331         dllimport_flag.
5332         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
5333         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
5334         instead of attribute. Check for dllexport override.  Warn if
5335         inconsistent dll linkage. Don't lose old dllimport if decl has
5336         had address referenced.   Tweak lookup of dllimport atribute.
5337         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
5338         for target specific rules.  Don't add dllimport attribute if
5339         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
5340         dllimport attribute.
5341         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
5342         * varasm.c (initializer_constant_valid_p): Replace
5343         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
5344
5345         PR target/21801
5346         PR target/23589
5347         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
5348         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
5349         (i[34567]86-*-mingw32*): Likewise.
5350
5351         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
5352         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
5353
5354         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
5355         C++-specific code. Change return value to bool.
5356         (i386_pe_dllimport_p): Likewise.
5357         (associated_type): Simplify and make language-independent
5358         (i386_pe_encode_section_info): Replace override of ambiguous
5359         dllimport symbol refs with a gcc_assert.
5360         (i386_pe_valid_dllimport_attribute_p): Define.
5361         * config/i386/winnt-cxx.c: New file. Define C++ versions of
5362         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5363         i386_pe_adjust_class_at_definition.
5364         * config/i386/winnt-stubs.c: New file. Define stub versions of
5365         lang-specific functions.
5366         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
5367         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5368         i386_pe_adjust_class_at_definition.
5369         (i386_pe_valid_dllimport_attribute_p): Declare.
5370         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
5371         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
5372         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
5373
5374         PR target/19704
5375         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
5376         dllimport attribute with test of DECL_DLLIMPORT_P.
5377
5378 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
5379
5380         * combine.c (make_extraction): Correct offset computation.
5381
5382 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
5383
5384         * config/cris/t-linux (LIMITS_H_TEST): Define.
5385
5386 2005-10-12  Richard Henderson  <rth@redhat.com>
5387
5388         PR rtl-opt/23324
5389         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
5390
5391 2005-10-12  Richard Guenther  <rguenther@suse.de>
5392
5393         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
5394
5395 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
5396
5397         PR c++/19964
5398         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
5399         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
5400         type.
5401
5402 2005-10-12  Richard Guenther  <rguenther@suse.de>
5403
5404         PR c++/23799
5405         * varasm.c (output_constant): Correct typo from previous
5406         patch by DJ.
5407
5408 2005-10-11  Ian Lance Taylor  <ian@airs.com>
5409
5410         PR rtl-optimization/13931
5411         * combine.c: Revert patch of 2003-05-14, and:
5412         (try_combine): Only set elim_i1 and elim_i2 if the destination is
5413         completely killed in the appropriate insn.
5414         (distribute_notes): Don't skip multiple hard register test for
5415         elim_i1 and elim_i2.
5416
5417 2005-10-11  Richard Henderson  <rth@redhat.com>
5418
5419         PR c/24255
5420         * c-typeck.c (convert_for_assignment): Use build_constructor_single
5421         to initialize a transparent union instead of a nop_expr.
5422
5423 2005-10-11  Richard Henderson  <rth@redhat.com>
5424
5425         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
5426         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
5427         (tree_ssa_dce_loop): Call scev_reset.
5428
5429         PR tree-opt/24300
5430         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
5431         * tree-ssa-dce.c: Include cfgloop.h.
5432         (tree_ssa_dce_loop, pass_dce_loop): New.
5433         * tree-pass.h (pass_dce_loop): Declare it.
5434         * passes.c (init_optimization_passes): Use it.
5435
5436 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5437
5438         PR middle-end/24263
5439         * convert.c (convert_to_real): Revert 2005-10-05 patch.
5440         Only apply the optimization for rounding builtins if the inner
5441         cast is also an extension.
5442
5443 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
5444
5445         PR tree-opt/23946
5446         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
5447         mark_new_vars_to_rename instead of update_stmt.
5448
5449 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5450
5451         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
5452
5453 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
5454
5455         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
5456         for setting MMX register to 0 rather than mmx.
5457
5458 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
5459
5460         PR target/12098
5461         * configure.ac: Move gas check from mips specific case to common case.
5462         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
5463         * configure: Regenerate
5464         * doc/install.texi: Update.
5465
5466 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5467
5468         PR target/24284
5469         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
5470
5471 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
5472
5473         * gcc.c (do_spec_1): Accept numeric characters in file name
5474         suffixes.
5475
5476 2005-10-10  Nick Clifton  <nickc@redhat.com>
5477
5478         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
5479         describing the deleted arm_gen_rotated_half_load function.
5480
5481 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5482
5483         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
5484         __fpscr_values.
5485
5486 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
5487
5488         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
5489         gnu_ld assignments.
5490         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
5491         (EXTRA_MULTILIB_PARTS): Define.
5492         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5493         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5494         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
5495         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5496         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5497         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
5498
5499 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
5500
5501         PR tree-optimization/24226
5502         * tree-cfg.c (remove_bb): Clean up unreachable loops.
5503         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
5504         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
5505         Export.
5506
5507 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
5508
5509         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
5510
5511 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
5512
5513         PR target/24136
5514         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
5515         Rewrite for no need for the early clobber.
5516
5517 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5518
5519         Merge from csl-arm-branch:
5520         2005-09-07  Paul Brook  <paul@codesourcery.com>
5521         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
5522         space to string.
5523
5524         2005-04-30  Paul Brook  <paul@codesourcery.com>
5525         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
5526         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
5527
5528         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
5529         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
5530         (arm_override_options): Use TARGET_AAPCS_BASED.
5531         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
5532         (PTRDIFF_TYPE): Use int for AAPCS.
5533         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
5534         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
5535         (DEFAULT_SHORT_ENUMS): Delete.
5536         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
5537
5538         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
5539         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
5540         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
5541         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
5542
5543         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
5544         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
5545
5546         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
5547         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
5548
5549         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
5550         * config.gcc (arm*-*-linux-gnueabi): Add it.
5551         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
5552         redefining it.
5553         (TARGET_OS_CPP_BUILTINS): Likeiwse.
5554         * config/arm/linux-eabi.h: New file.
5555         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
5556         (LINUX_TARET_LINK_SPEC): Likewise.
5557         (LINK_SPEC): Use it.
5558         * config/arm/t-linux-eabi: New file.
5559
5560 2005-10-08  Steven Bosscher  <stevenb@suse.de>
5561
5562         PR other/22202
5563         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
5564         spaces.
5565         (PARAM_SMS_DFA_HISTORY): Likewise.
5566
5567 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5568
5569         PR middle-end/23150
5570         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
5571         (load_register_parameters): Call it.
5572         (check_sibcall_argument_overlap_1): Likewise.
5573         (store_one_arg): Likewise.
5574
5575 2005-10-07  James E. Wilson  <wilson@specifix.com>
5576
5577         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
5578         DImode not VECINT24 for operand 2.
5579
5580         PR target/23644
5581         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
5582         -mtune-arch.
5583
5584         PR target/24193
5585         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
5586         fr_spill): Use destination_operand for operand 0.
5587
5588 2005-10-07  DJ Delorie  <dj@redhat.com>
5589
5590         * varasm.c (output_constant): Limit error to expanding
5591         conversions.
5592
5593 2005-10-07  Richard Guenther  <rguenther@suse.de>
5594
5595         PR middle-end/24227
5596         * fold-const.c (fold_binary): Fix operand types during folding
5597         of X op (A, Y).  Evaluation order of the side-effects of
5598         X and A are frontend-defined, so ensure we honour that even for
5599         tcc_comparison class operands; eased by removing duplicate code.
5600
5601 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5602
5603         * stor-layout.c (layout_type): Do not allow alignment of array
5604         elements to be greater than their size.
5605
5606 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5607
5608         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
5609         host_xmake_file.
5610         (hppa*-*-linux*): Ditto.
5611         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
5612         * config/host-hpux.c: New.
5613         * config/x-hpux: New.
5614         * config/pa/x-hpux: Remove.
5615         * config/pa/x-linux: Remove.
5616         * config/pa/pa-host.c: Remove.
5617
5618 2005-10-07  Jeff Law  <law@redhat.com>
5619
5620         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
5621         determine whether or not to try and thread outgoing edges.
5622
5623 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
5624
5625         * config/rs6000/rs6000.md (eqsi_power): New.
5626         (neg_eq0si): Add TARGET_POWER to final condition.
5627         (neg_eqsi): Same.
5628
5629 2005-10-06  Richard Henderson  <rth@redhat.com>
5630
5631         * config/rs6000/rs6000.c: Revert last change.
5632
5633 2005-10-06  Richard Henderson  <rth@redhat.com>
5634
5635         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
5636         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
5637
5638 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
5639
5640         PR middle-end/22216
5641         PR middle-end/23651
5642         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
5643         out return_label and naked_return_label.
5644
5645 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5646
5647         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
5648         change.
5649
5650 2005-10-06  Richard Henderson  <rth@redhat.com>
5651
5652         PR tree-opt/22237
5653         * tree-inline.c (declare_return_variable): Handle modify_dest not
5654         being a DECL.
5655
5656 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5657
5658         Fix PR tree-optimization/22488
5659         * tree-ssa-structalias.c (check_for_overlaps): New function.
5660         (create_variable_info_for): Use it.
5661
5662 2005-10-06  Richard Henderson  <rth@redhat.com>
5663
5664         PR debug/24070
5665         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
5666         (dwarf2out_start_source_file): Print it.
5667
5668 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
5669
5670         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
5671
5672 2005-10-06  Richard Henderson  <rth@redhat.com>
5673
5674         PR 23706
5675         * mode-switching.c (optimize_mode_switching): Clear transp bit
5676         for block with incomming abnormal edges.
5677
5678         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
5679         (fpscr_set_from_mem): Use them.
5680         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
5681         (fpscr postinc splitters): Rewrite as peephole2+split.
5682
5683 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
5684
5685         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
5686         (eq<mode>_compare): Same.
5687
5688 2005-10-06  Richard Guenther  <rguenther@suse.de>
5689
5690         PR tree-optimization/24238
5691         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
5692
5693 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
5694
5695         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
5696         here.  Use AC_PATH_PROG for environment variables instead of
5697         test -x.
5698         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
5699         objdump also.
5700         * configure: Regenerated.
5701
5702 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
5703
5704         PR target/23783
5705         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
5706         then force it into a register.
5707         (call_value): Likewise.
5708
5709 2005-10-06  Richard Henderson  <rth@redhat.com>
5710
5711         PR 24049
5712         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
5713         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
5714         under pass_vectorize.
5715
5716 2005-10-05  Devang Patel  <dpatel@apple.com>
5717
5718         PR Debug/23205
5719         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
5720         handling constants. Check NAMESPACE_DECL context for constants.
5721
5722 2005-10-05  Eric Christopher  <echristo@apple.com>
5723
5724         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
5725
5726 2005-10-05  Richard Henderson  <rth@redhat.com>
5727
5728         PR 23714
5729         * tree-cfg.c (mark_array_ref_addressable_1): New.
5730         (mark_array_ref_addressable): New.
5731         * tree-flow.h (mark_array_ref_addressable): Declare.
5732         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
5733
5734 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
5735
5736         PR middle-end/20606
5737         PR middle-end/24069
5738         * reload.c (subst_reloads): When adding a REG_LABEL to a
5739         jump instruction, also update JUMP_LABEL.
5740
5741 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
5742
5743         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
5744         * bb-reorder.c (copy_bb_p): Use it.
5745         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
5746
5747 2005-10-05  Richard Henderson  <rth@redhat.com>
5748
5749         PR target/23602
5750         * toplev.c (process_options): Warn about unsupported combinations
5751         of unwind tables and omit-frame-pointer.
5752         * config/i386/i386.c (override_options): Similarly.  Enable
5753         accumulate-outgoing-args if not explicitly disabled.
5754
5755 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
5756
5757         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
5758         Handle big endian vs. small endian.
5759         (vec_initv2sf): Handle big endian vs. small endian.
5760         (*vec_extractv2sf_1): Ditto.
5761
5762 2005-10-05  Dale Johannesen  <dalej@apple.com>
5763
5764         * convert.c (convert_to_real):  Don't convert
5765         (float)floor(double d) to floorf((float)d).
5766
5767 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
5768
5769         * config/arm/arm.md (insv): Use gen_int_mode in more places.
5770
5771 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
5772
5773         PR tree-optimization/18587
5774         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
5775         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
5776         build_vuses): Change to VEC type.
5777         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
5778         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
5779         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
5780         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
5781         (get_name_decl): New.  Return DECL_UID of base variable.
5782         (operand_build_cmp): New.  qsort comparison routine.
5783         (operand_build_sort_virtual): New.  Sort virtual build vector.
5784         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
5785         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
5786         (FINALIZE_BASE): Use get_name_decl.
5787         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
5788         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
5789         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
5790         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
5791         direct VEC_* manipulations.
5792         (build_ssa_operands): Call operand_build_sort_virtual.
5793         (copy_virtual_operand, create_ssa_artficial_load_stmt,
5794         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
5795         with direct VEC_* manipulations.
5796         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
5797         with direct VEC manipulations.
5798
5799 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
5800
5801         PR tree-optimization/21419
5802         PR tree-optimization/24146
5803         PR tree-optimization/24151
5804
5805         * c-typeck.c (readonly_error): Handle USE being lv_asm.
5806         (build_asm_expr): Call it if outputs are read-only.
5807         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
5808
5809 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
5810             Paolo Bonzini  <bonzini@gnu.org>
5811
5812         PR target/23809
5813
5814         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
5815         enable the instructions and not just the built-ins.
5816         * doc/invoke.texi (x86 Options): Likewise.
5817
5818 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
5819
5820         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
5821
5822         * doc/invoke.texi (Option Summary): Correct spelling
5823         of -mmacosx-version-min.
5824
5825 2005-10-04  Devang Patel  <dpatel@apple.com>
5826
5827         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
5828         real types.
5829
5830 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
5831
5832         * tree-vect-transform.c (vect_create_epilog_for_reduction):
5833         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
5834
5835 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
5836
5837         * config/s390/s390.md ("TDSI","DP"): New mode macros.
5838         ("TE","tg"): New mode attributes.
5839         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
5840         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
5841         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
5842         dword_mode and one for GPRmode.
5843
5844 2005-10-04  Ian Lance Taylor  <ian@airs.com>
5845
5846         PR preprocessor/13726
5847         * c-ppoutput.c (cb_include): Add comments parameter, and print out
5848         any comments passed in.
5849
5850 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5851
5852         * tree.c (annotate_with_file_line): Fix typo.
5853
5854 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5855
5856         PR ada/19382
5857         * builtins.c (fold_builtin_memcmp): When constructing the pointer
5858         type used to access data in the inlined length == 1 case, use
5859         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
5860         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
5861
5862 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
5863
5864         * config/i386/i386.h (TARGET_FISTTP): Enable also for
5865         TARGET_SSE3 and only for TARGET_80387.
5866         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
5867         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
5868         Do not depend on TARGET_80387.
5869
5870 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5871
5872         * tree.c (last_annotated_node): Change type to location_t*.
5873         (annotate_with_file_line): Reflect the change of
5874         last_annotated_node type.
5875
5876 2005-10-04  Richard Guenther  <rguenther@suse.de>
5877
5878         PR c/23576
5879         * c-decl.c (grokdeclarator): Don't write to fields
5880         of error_mark_node.
5881
5882 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5883
5884         PR middle-end/23125
5885         * c-decl.c (finish_decl): Use set_user_assembler_name even for
5886         register variables.
5887         * varasm.c (make_decl_rtl): If a register variable does not
5888         have a set user assmbler name, error out.
5889         Decode the asmspec is now name+1 bypassing '*'.
5890
5891 2005-10-04  Steven Bosscher  <stevenb@suse.de>
5892
5893         PR tree-optimization/23049
5894         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
5895         of a COND_EXPR is folded before calling fold on the whole rhs of a
5896         conditional assignment.
5897         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
5898         document that a COND_EXPR may appear there.
5899
5900 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
5901
5902         PR 23445
5903         * tree-vrp.c (extract_range_from_assert): If the new numeric
5904         range created out of the assertion contradicts the existing
5905         numeric range of the ASSERT_EXPR variable, make the new range
5906         varying.
5907
5908 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5909
5910         * config/sh/sh.c (sh_register_move_cost): Add case for moving
5911         from T_REGS to FP register class.
5912
5913 2005-10-03  Richard Henderson  <rth@redhat.com>
5914
5915         PR 24135
5916         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
5917         before creating a new one.
5918
5919 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
5920
5921         * config/rs6000/t-aix43 (LDFLAGS): New.
5922         * config/rs6000/t-aix52 (LDFLAGS): New.
5923
5924 2005-10-03  Ian Lance Taylor  <ian@airs.com>
5925
5926         * gimplify.c (find_single_pointer_decl_1): New static function.
5927         (find_single_pointer_decl): New static function.
5928         (internal_get_tmp_var): For a formal variable, set restrict base
5929         information if appropriate.
5930         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
5931         return it.
5932         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
5933         (DECL_GET_RESTRICT_BASE): Define.
5934         (SET_DECL_RESTRICT_BASE): Define.
5935         (decl_restrict_base_lookup): Declare.
5936         (decl_restrict_base_insert): Declare.
5937         (struct tree_decl_with_vis): Add based_on_restrict_p field.
5938         * tree.c (restrict_base_for_decl): New static variable.
5939         (init_ttree): Initialize restrict_base_for_decl.
5940         (copy_node_stat): Copy restrict base information.
5941         (decl_restrict_base_lookup): New function.
5942         (decl_restrict_base_insert): New function.
5943         (print_restrict_base_statistics): New static function.
5944         (dump_tree_statistics): Call print_restrict_base_statistics.
5945
5946 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
5947
5948         PR 24142
5949         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
5950         case of anti-ranges.
5951
5952 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
5953
5954         PR c/18851
5955         * c-typeck.c (tagged_tu_seen): Rename to ...
5956         (tagged_tu_seen_cache): this and add val field.
5957         (comptypes): Move functional to comptypes_internal
5958         and free tagged_tu_seen.
5959         (comptypes_internal): New function and call comptypes_internal
5960         instead of comptypes. Speed up by sibcalling
5961         tagged_types_tu_compatible_p.
5962         (alloc_tagged_tu_seen): New function
5963         (free_all_tagged_tu_seen_up_to): New function.
5964         (tagged_types_tu_compatible_p): Return the val of the seen two
5965         types.
5966         Add that the two types are the same to tagged_tu_seen_base
5967         if they are and call comptypes_internal instead of comptypes.
5968         <case UNION_TYPE>: Speed up common type where the fields are
5969         in the same order.
5970         (function_types_compatible_p): Call comptypes_internal instead of
5971         comptypes.
5972         (type_lists_compatible_p): Likewise.
5973         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
5974
5975 2005-10-02  Matthias Klose  <doko@debian.org>
5976
5977         * doc/invoke.texi: Fix typo and speling error.
5978
5979 2005-10-01  Richard Henderson  <rth@redhat.com>
5980
5981         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
5982
5983 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
5984
5985         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
5986         using --start-group and --end-group.
5987
5988 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
5989
5990         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
5991         FIXME note regarding quirky semantics.
5992
5993 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
5994
5995         PR 24141
5996         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
5997         non-null range as a last resort.
5998
5999 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
6000             Diego Novillo  <dnovillo@redhat.com>
6001
6002         PR 23604
6003         * tree-vrp.c (extract_range_from_assert): For !=
6004         assertions, only build an anti-range if LIMIT is a
6005         single-valued range.
6006
6007 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
6008
6009         * arm.md (movqi): On thumb when optimizing, handle loading from
6010         memory by describing this as taking a subreg of a zero-extended load
6011         into an SImode register.
6012         (movhi): Likewise.
6013
6014 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
6015
6016         * reload1.c (merge_assigned_reloads): Do not change any
6017         RELOAD_FOR_OUTPUT_ADDRESS reloads.
6018
6019 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
6020
6021         * Makefile.in (LIPO_FOR_TARGET): Define.
6022         (STRIP_FOR_TARGET): Define.
6023
6024         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
6025         before creating new ones.  Do symlinks before creating the actual
6026         targets.
6027
6028         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
6029         to work out which multilibs are actually being built.
6030
6031 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
6032
6033         * tree-vect-transform.c, config/ms1/ms1.md,
6034         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
6035         Follow spelling conventions.
6036         * doc/invoke.texi, doc/md.texi: Fix typos.
6037
6038 2005-09-30  Andrew Macleod  <amacleod@redat.com>
6039
6040         PR tree-optimization/21430
6041         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
6042         use operands, and set stmt pointer if need be.
6043         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
6044         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
6045         present.
6046
6047 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6048
6049         PR middle-end/24053
6050         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
6051
6052 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
6053
6054         * optabs.c (expand_binop): Initialize first_pass_p.
6055
6056 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
6057
6058         PR middle-end/24109
6059         * c-decl.c (c_write_global_declarations_1): If any
6060         wrapup_global_declaration_2 call returned true, restart the loop.
6061
6062 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
6063
6064         Fix PR tree-optimization/24117
6065         * tree-ssa-structalias.c (find_func_aliases): Strip nops
6066         before considering whether to use anyoffset.
6067
6068 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6069
6070         Revert this patch:
6071
6072         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6073
6074         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6075         to order operands.
6076         (swap_commutative_operands_with_target): New.
6077
6078 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6079
6080         PR c/21419
6081         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
6082         read-only.
6083
6084 2005-09-29  Steven Bosscher  <stevenb@suse.de>
6085
6086         PR tree-optimization/23911
6087         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
6088         and IMAGPART_EXPR too.
6089
6090 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
6091
6092         PR 17886
6093         * expmed.c (expand_shift): Move logic to reverse rotation
6094         direction when  rotating by constants ...
6095         * optabs.c (expand_binop): ... here.
6096         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
6097         (ix86_rotrdi3): New pattern.
6098         (rotldi3): Handle 32-bit mode.
6099         (ix86_rotldi3): New pattern.
6100
6101 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
6102
6103         PR target/24102
6104         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
6105         check for numbers that need no bit twiddle.
6106
6107 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
6108
6109         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
6110         multilib to be built.
6111
6112         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
6113         (stage1-start): Delete old libgcc and libunwind before moving
6114         anything into the stage directory.
6115         (stage2-start): Likewise.
6116         (stage3-start): Likewise.
6117         (stage4-start): Likewise.
6118         (stageprofile-start): Likewise.
6119         (stagefeedback-start): Likewise.
6120         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
6121         header in tm_file and CPU-specific t-darwin in tmake_file.
6122         (i[34567]86-*-darwin*): Don't change tm_file.
6123         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
6124         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
6125         shared library stub for target OS version.
6126         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
6127         (SHLIB_LINK): Don't make SHLIB_SOLINK.
6128         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
6129         (libgcc_s.%.dylib): New.
6130         (LIBGCC): Define.
6131         (install-darwin-libgcc-stubs): New.
6132         (INSTALL_LIBGCC): New append.
6133         * config/i386/darwin-libgcc.10.4.ver: New.
6134         * config/i386/darwin-libgcc.10.5.ver: New.
6135         * config/i386/t-darwin: New.
6136         * config/rs6000/darwin-libgcc.10.4.ver: New.
6137         * config/rs6000/darwin-libgcc.10.5.ver: New.
6138         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
6139         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
6140
6141 2005-09-28  Paul Brook  <paul@codesourcery.com>
6142
6143         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
6144         denormals.
6145
6146 2005-09-28  Richard Guenther  <rguenther@suse.de>
6147
6148         PR tree-optimization/23853
6149         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
6150         host_integerp to verify misalignment value.
6151
6152 2005-09-28  Richard Henderson  <rth@redhat.com>
6153
6154         * builtins.c (get_builtin_sync_mode): New.
6155         (expand_builtin_sync_operation): Pass in mode argument.
6156         (expand_builtin_compare_and_swap): Likewise.
6157         (expand_builtin_lock_test_and_set): Likewise.
6158         (expand_builtin_lock_release): Likewise.
6159         (expand_builtin): Update to match.
6160
6161 2005-09-28  Nick Clifton  <nickc@redhat.com>
6162
6163         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
6164         formatting.  Add check to PLUS case to ensure that the offset is
6165         within an acceptable range.
6166
6167         * config/v850/v850.md (casesi): Disable the generation of the
6168         switch pattern as it is not being handled properly at the moment.
6169
6170         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
6171         for when the high words are identical.
6172
6173 2005-09-27  Richard Henderson  <rth@redhat.com>
6174
6175         * pretty-print.c (pp_base_format): Fix typo for %>.
6176
6177 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
6178             Devang Patel  <dpatel@apple.com>
6179
6180         PR tree-optimization/23625
6181         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
6182         LABEL_EXPR, assertion check.
6183
6184 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
6185
6186         * optabs.c (no_conflict_move_test): Check if a result of a
6187         to-be-moved insn would be clobbered by an originally
6188         preceding insn.
6189
6190 2005-09-27  Jeff Law  <law@redhat.com>
6191
6192         * passes.c (init_optimization_passes): Replace copy propagation
6193         passes immediately after DOM with phi-only copy propagation
6194         pases.  Add phi-only copy propagation pass after first DOM pass.
6195         * tree-pass.h (pass_phi_only_copy_prop): Declare.
6196         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
6197         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
6198         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
6199         to init_copy_prop.  Callers updated.
6200         (do_phi_only_copy_prop): New function.
6201         (pass_phi_only_copy_prop): New pass descriptor.
6202
6203 2005-09-27  Nick Clifton  <nickc@redhat.com>
6204
6205         * libgcc2.c (__popcount_tab): Remove redundant prototype.
6206
6207 2005-09-26  Jason Merrill  <jason@redhat.com>
6208
6209         PR c++/13764
6210         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
6211
6212         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
6213
6214 2005-09-26  James E Wilson  <wilson@specifix.com>
6215
6216         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
6217         copyright.  Add gcc copyright plus libgcc exception.
6218         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
6219         copyright.
6220         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
6221
6222 2005-09-26  Jeff Law  <law@redhat.com>
6223
6224         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
6225         about when to iterate.
6226
6227 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
6228
6229         PR target/23847
6230         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
6231         for __complex__ double in -mcpu=G5 mode.
6232
6233 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
6234
6235         PR tree-optimization/23942
6236         * Makefile.in (SCEV_H): Depends on PARAMS_H.
6237         * tree-scalar-evolution.c: Include params.h.
6238         (t_bool): New enum.
6239         (follow_ssa_edge, follow_ssa_edge_in_rhs,
6240         follow_ssa_edge_in_condition_phi_branch,
6241         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
6242         Change return type to t_bool.  Use a parameter to limit the size of
6243         trees that are walked before stopping
6244         (analyze_evolution_in_loop): Initialize the limit to 0.
6245         (follow_ssa_edge): Give up by returning t_dont_know if the limit
6246         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
6247
6248 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6249
6250         PR middle-end/23831
6251         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
6252         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
6253
6254 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
6255
6256         * combine.c (make_extraction): Check for valid use of subreg.
6257
6258 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6259
6260         PR target/24055
6261         * config/i386/i386.md ("*fistdi2_1"): New pattern.
6262         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
6263         ("fist<mode>2_with_temp"): Use only register operands.
6264
6265 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
6266
6267         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
6268         CALL_INSN_FUNCTION_USAGE.
6269
6270 2005-09-26  Richard Guenther  <rguenther@suse.de>
6271
6272         PR middle-end/15855
6273         * gcse.c: Include hashtab.h, define ldst entry hashtable.
6274         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
6275         (ldst_entry): Use the hashtable instead of list-walking.
6276         (find_rtx_in_ldst): Likewise.
6277         (free_ldst_entry): Free the hashtable.
6278         (compute_ld_motion_mems): Create the hashtable.
6279         (trim_ld_motion_mems): Remove entry from hashtable if
6280         removing it from list.
6281         (compute_store_table): Likewise^2.
6282         (store_motion): Free hashtable in case we did not see
6283         any stores.
6284
6285 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
6286
6287         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
6288         and arg1 if we are passing them to fold_build2.
6289
6290 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
6291
6292         PR 23828
6293         * config/i386/i386.c (ix86_function_regparm): Fix the test for
6294         a nested function.
6295
6296 2005-09-25  Richard Henderson  <rth@redhat.com>
6297
6298         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
6299         SYMBOL_REF_TLS_MODEL to be correct.
6300
6301 2005-09-24  Richard Henderson  <rth@redhat.com>
6302
6303         * ipa-type-escape.c (discover_unique_type): Remove dead code at
6304         end of function.  Reindent.
6305
6306 2005-09-24  Ian Lance Taylor  <ian@airs.com>
6307
6308         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
6309         NEGATE_EXPR/BIT_NOT_EXPR case.
6310
6311 2005-09-24  Richard Henderson  <rth@redhat.com>
6312
6313         * c-common.c (handle_mode_attribute): When not modifying in place,
6314         create subtypes for enumerations.
6315         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
6316         * gimplify.c (create_tmp_from_val): Likewise.
6317
6318 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
6319
6320         * config/i386/i386.md (*tls_global_dynamic_64,
6321         *tls_local_dynamic_base_64): Add missing mode to call.
6322         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
6323
6324 2005-09-24  Jan Hubicka  <jh@suse.cz>
6325
6326         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
6327         (cgraph_clone_node): Likewise.
6328         * cgraph.h (cgraph_clone_edge): Update prototype.
6329         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
6330         duplicated prototypes; add updating argument.
6331         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
6332         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
6333         updating profile.
6334         (cgraph_mark_inline_edge): Likewise.
6335         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
6336         (cgraph_flatten_node): Likewise.
6337         (cgraph_decide_recursive_inlining): Likewise.
6338         (cgraph_decide_inlining_of_small_function): Likewise.
6339         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6340
6341 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6342             Pete Steinmetz <steinmtz@us.ibm.com>
6343
6344         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
6345         (rldic.): Set type to "compare".
6346         (rldicr.): Same.
6347         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
6348         mfjmpr for MFCTR/MFLR.
6349         (movdf_hardfloat64): Same.
6350         (movdf_softfloat64): Same.  Correct order of store and move types.
6351         (movti_string): Set type to store_ux/load_ux.
6352         (load_multiple): Set type to load_ux.
6353         (store_multiple): Set type to store_ux.
6354         (movmemsi): Set type to store_ux.
6355         (output_cbranch direct_return): Set type to jmpreg.
6356         (stmw): Set type to store_ux.
6357         (lmw): Set type to load_ux.
6358         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
6359         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
6360         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
6361         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
6362         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
6363         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
6364         (rios1-fpstore): Increase latency to 3.
6365         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
6366         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
6367
6368 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6369             Andrew Pinski  <pinskia@physics.uc.edu>
6370
6371         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
6372         operand2 constraint to "b".
6373         (sync_<fetchop_name>di_internal): Same.
6374         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
6375         to "b".
6376         (sync_old_<fetchop_name>di_internal): Same.
6377         (sync_new_<fetchop_name>si_internal): Same.
6378         (sync_new_<fetchop_name>di_internal): Same.
6379
6380 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
6381
6382         PR middle-end/23991
6383         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
6384         case, define as macros.
6385
6386         PR rtl-optimization/23837
6387         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
6388         clobber / clobber match between dest and p->first.
6389
6390         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
6391         (no_conflict_move_test): Update comments.
6392
6393 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
6394
6395         * doc/install.texi: Update URL for Jacks.
6396         * doc/sourcebuild.texi: Likewise.
6397
6398 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
6399
6400         PR target/24007
6401         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
6402         registers when choosing register preferences.
6403         (movdf_hardfloat64): Same.
6404
6405 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
6406
6407         * expmed.c (expand_shift): Don't use the target of the rotate as
6408         target for the first expanded shift insn.
6409         * testsuite/gcc.dg/20050922-1.c: Testcase added.
6410
6411 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
6412
6413         PR tree-optimization/22438
6414         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
6415         preserved iv rhs rewriting specially.
6416
6417 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
6418
6419         * tree-data-ref.c (analyze_array_indexes): Only estimate when
6420         estimate_only  is true.
6421         * tree-flow.h (ref_contains_indirect_ref): New prototype.
6422         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
6423         tree-ssa-structalias.c
6424         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
6425         ref_contains_indirect_ref.
6426         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
6427
6428 2005-09-21  DJ Delorie  <dj@redhat.com>
6429
6430         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
6431         MASK_PTR_A0D0.
6432         (mn10300_return_in_memory): Support variable size types also.
6433         (mn10300_pass_by_reference): Likewise.
6434         (mn10300_function_value): New.
6435         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
6436         (FUNCTION_OUTGOING_VALUE): Likewise.
6437         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
6438         * doc/invoke.texi: Document it.
6439
6440 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
6441
6442         PR target/22585
6443         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
6444         force integer op1 into register for XFmode compares.
6445
6446 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
6447
6448         PR middle-end/23971
6449         * expmed.c (alg_code): Add alg_impossible.
6450         (alg_hash_entry): Add cost.
6451         (synth_mult): Record alg_impossible in the hash table if
6452         multiplication by a given integer is impossble within the
6453         limit.  Speed up using alg_impossible.
6454
6455 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6456
6457         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
6458         argument.  Allow and set any offset if needs_anyoffset is passed
6459         in.
6460         (get_constraint_for): Add argument here too.
6461         Pass it down.
6462         (do_structure_copy): Pass NULL to get_constraint_for.
6463         (handle_ptr_arith): Ditto.
6464         (find_func_aliases): Ditto.
6465
6466 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
6467
6468         PR rtl-optimization/23898
6469         * output.h (get_attr_min_length): Declare.
6470         * final.c (get_attr_length_1): New function, broken out of:
6471         (get_attr_length).
6472         (get_attr_min_length): New function.
6473         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
6474         (duplicate_computed_gotos): Likewise.
6475         * genattr.c (insn_min_length): Generate declaration.
6476         * genattrtab.c (min_fn, min_attr_value): New functions.
6477         (make_length_attrs): Generate insn_min_length.
6478
6479 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
6480
6481         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
6482
6483 2005-09-20  Richard Henderson  <rth@redhat.com>
6484
6485         PR tree-optimization/24059
6486         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
6487         EXPAND_STACK_PARM.
6488
6489 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
6490
6491         * c.opt (fextended-identifiers): New.
6492         * c-opts.c (c_common_handle_option): Handle
6493         -fextended-identifiers.
6494         * doc/cpp.texi: Update documentation of extended identifiers.
6495         * doc/cppopts.texi (-fextended-identifiers): Document.
6496
6497 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
6498
6499         PR tree-optimization/23929
6500         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
6501         if expr is NULL.
6502
6503         PR tree-optimization/23818
6504         * tree-stdarg.c (execute_optimize_stdarg): Call
6505         calculate_dominance_info.
6506
6507 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6508
6509         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
6510         (analyze_siv_subscript_cst_affine): Add weak SIV test.
6511         (compute_overlap_steps_for_affine_1_2): Use
6512         get_number_of_iters_for_loop.
6513         (analyze_subscript_affine_affine): Check whether difference is
6514         zero first.
6515         Use get_number_of_iters_for_loop.
6516         Check whether overlap occurs outside of bounds.
6517         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
6518
6519 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
6520
6521         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
6522         base register if possible.
6523
6524 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
6525
6526         PR tree-optimization/18463
6527         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
6528         converting it directly is not possible.
6529         (chrec_convert_aggressive): New function.
6530         * tree-chrec.h (chrec_convert_aggressive): Declare.
6531         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
6532         Fold chrec conversions aggressively if asked to.
6533         (instantiate_parameters): Modified because of changes in
6534         instantiate_parameters_1.
6535
6536 2005-09-19  Richard Henderson  <rth@redhat.com>
6537
6538         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
6539         (reduc_splus_v2df): New.
6540
6541 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
6542
6543         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
6544         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
6545
6546 2005-09-19  Richard Henderson  <rth@redhat.com>
6547
6548         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
6549         vcondu<SSEMODE12>.
6550
6551 2005-09-19  Richard Henderson  <rth@redhat.com>
6552
6553         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
6554         (ia64_expand_dot_prod_v8qi): New.
6555         * config/ia64/ia64-protos.h: Update.
6556         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
6557         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
6558         sdot_prodv8qi, sdot_prodv4hi): New.
6559         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
6560
6561 2005-09-19  Richard Henderson  <rth@redhat.com>
6562
6563         PR 23941
6564         * real.c (exact_real_truncate): Return false if the format cannot
6565         represent the number as a normal.
6566
6567         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
6568         for a memory source.
6569
6570 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
6571
6572         * tree-ssa-operands.c (swap_tree_operands): Export.
6573         * tree.h (swap_tree_operands): Declare.
6574         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
6575         Call swap_tree_operands.
6576
6577 2005-09-19  Richard Henderson  <rth@redhat.com>
6578
6579         * tree-flow.h (merge_alias_info): Declare.
6580         * tree-ssa-copy.c (merge_alias_info): Export.
6581         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
6582         (vect_create_data_ref_ptr): Use create_iv directly.
6583         (vectorizable_load): Use correct types for integer constants.
6584         (vect_generate_tmps_on_preheader): Likewise.
6585         (vect_gen_niters_for_prolog_loop): Likewise.
6586
6587 2005-09-19  Steven Bosscher  <stevenb@suse.de>
6588
6589         PR rtl-optimization/23943
6590         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
6591
6592 2005-09-18  Jan Hubicka  <jh@suse.cz>
6593
6594         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
6595
6596 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
6597
6598         * varasm.c (output_constant): Do not abort on conversions to union
6599         types between different sizes.
6600
6601 2005-09-18  Richard Guenther  <rguenther@suse.de>
6602
6603         PR middle-end/23944
6604         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
6605         fallback.
6606
6607 2005-09-18  Paul Brook  <paul@codesourcery.com>
6608
6609         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
6610
6611 2005-09-17  Richard Henderson  <rth@redhat.com>
6612
6613         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
6614         * tree-ssa-loop.c (pass_vect_dce): Remove.
6615         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
6616         of pass_vectorize.
6617
6618 2005-09-17  Richard Henderson  <rth@redhat.com>
6619
6620         * tree-pass.h (pass_vect_dce): Declare.
6621         * passes.c (init_optimization_passes): Add it.
6622         * tree-flow.h (tree_ssa_dce): Declare.
6623         * tree-ssa-dce.c (tree_ssa_dce): Export.
6624         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
6625         (gate_tree_vectorize): ... here.
6626         (pass_vect_dce): New.
6627
6628 2005-09-17  Jan Hubicka  <jh@suse.cz>
6629
6630         * except.c (struct eh_status): Turn region_array into vec.
6631         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
6632         convert_from_eh_region_ranges, find_exception_handler_labels,
6633         current_function_has_exception_handlers, assign_filter_values,
6634         build_post_landing_pads, dw2_build_landing_pads,
6635         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
6636         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
6637         foreach_reachable_handler, can_throw_internal_1,
6638         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
6639         region_array.
6640         (duplicate_eh_region_1): Update region_array.
6641         (duplicate_eh_regions): Resize region_array and avoid recomputing.
6642
6643 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
6644
6645         PR middle-end/22067
6646         * expmed.c (expand_mult): Substitute simple register for op0 when
6647         computing max_cost.
6648
6649 2005-09-17  Richard Henderson  <rth@redhat.com>
6650
6651         * expr.c (emit_move_via_integer): Add force argument, pass it on
6652         to emit_move_change_mode.  Update callers.
6653         (emit_move_complex): Pass true to new force argument.
6654         * function.c (expand_function_end): Move expand_eh_return call
6655         earlier.  Merge sub-word complex values into a pseudo before
6656         copying to the return hard register.
6657
6658 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
6659
6660         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
6661         between different sizes.
6662
6663 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
6664
6665         PR 23903
6666
6667         * passes.c (init_optimization_passes): Register dump files for
6668         IPA passes first.
6669
6670 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
6671
6672         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
6673         * config/s390/s390.c (s390_overlap_p): New function.
6674         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
6675         peephole2, "*xc" peephole2): Added overlap check to the peephole2
6676         condition.
6677
6678 2005-09-16  Richard Guenther  <rguenther@suse.de>
6679
6680         * ipa-pure-const.c (static_execute): Free auxiliar information.
6681         * ipa-type-escape.c (discover_unique_type): Free temporary key.
6682         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
6683
6684 2005-09-15  DJ Delorie  <dj@redhat.com>
6685
6686         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
6687
6688 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6689
6690         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6691         to order operands.
6692         (swap_commutative_operands_with_target): New.
6693
6694 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
6695
6696         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
6697         parameter.
6698         Update callers.
6699         (estimate_iters_using_array): New function.
6700         * tree-data-ref.h (estimate_iters_using_array): Prototype
6701         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
6702         Use estimate_iters_using_array instead of analyze_array.
6703
6704 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6705
6706         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
6707         as addressable.
6708
6709 2005-09-15  Michael Matz  <matz@suse.de>
6710
6711         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
6712
6713 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
6714
6715         PR tree-optimization/23835
6716         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
6717         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
6718
6719 2005-09-14  Richard Henderson  <rth@redhat.com>
6720
6721         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
6722         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
6723
6724 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
6725
6726         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
6727         in the ARRAY_TYPE case.
6728
6729 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6730
6731         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
6732
6733 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
6734
6735         PR middle-end/22480
6736         * tree-vect-transform.c (vectorizable_operation): Return false for
6737         scalar shift operations and for vector shift operations with
6738         non-invariant shift arguments.  Use scalar tree operand op1 as
6739         a shift operand when vector shift insn pattern uses scalar shift
6740         operand.
6741         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
6742
6743 2005-09-14  Olivier Hainque  <hainque@adacore.com>
6744
6745         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
6746         value if it has side-effects.
6747
6748 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
6749
6750         PR target/22068
6751         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
6752
6753 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
6754
6755         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
6756         passed as NAME as if it were label at start of function code.
6757
6758 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
6759
6760         * config/sh/sh.md (*movv4sf_i): Add general register cases to
6761         the constraints.
6762
6763 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
6764
6765         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
6766         as early clobber.  Rewrite so the PIC register is not implicitly used.
6767
6768 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6769
6770         * tree.c (annotate_with_file_line): Compare line numbers before
6771         file names.
6772
6773 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
6774
6775         PR target/23816
6776         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
6777         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
6778
6779 2005-09-13  Ian Lance Taylor  <ian@airs.com>
6780
6781         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
6782         than a HOST_WIDEST_INT to gen_doloop_begin.
6783
6784 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
6785
6786         * tree-dfa.c (dump_variable): Guard against NULL annotations.
6787
6788 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
6789
6790         PR tree-optimize/23817
6791         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
6792
6793 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
6794
6795         PR target/23774
6796         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
6797         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
6798         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
6799         (restore_stack_nonlocal): Likewise.
6800         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
6801
6802 2005-09-12  Ian Lance Taylor  <ian@airs.com>
6803
6804         PR g++/7874
6805         * c.opt (ffriend-injection): New C++ option.
6806         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
6807         (C++ Dialect Options): Document -ffriend-injection.
6808
6809 2005-09-12  Josh Conner  <jconner@apple.com>
6810
6811         PR middle-end/23237
6812         * ipa-reference.c (static_execute): Don't mark variables in
6813         named sections TREE_READONLY.
6814
6815 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
6816
6817         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
6818         stack_tie.
6819
6820 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
6821
6822         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
6823         V_MUST_DEF instead of just the first_use_p.
6824         Don't mark the virtual variables for renaming on the statement which
6825         is being removed.
6826         (pass_dse): Remove TODO_update_ssa.
6827
6828 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
6829
6830         PR middle-end/23290
6831         * stor-layout.c (compute_record_mode): For records with a single
6832         field, actually check the field's mode size against the type size.
6833
6834         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
6835         registers for TARGET_SHMEDIA.
6836         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
6837         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
6838         of GENERAL_REGS and FP_REGS.
6839
6840 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
6841
6842         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
6843
6844 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
6845
6846         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
6847         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
6848         are omitted.  Exclude stack_tie insn too.
6849
6850 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
6851
6852         PR rtl-optimization/23098
6853         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
6854         0.0f is easy.
6855         * config/rs6000/rs6000.md (movdf splitter): Use
6856         const_double_operand predicate for TARGET_POWERPC64.
6857         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
6858         SYMBOL_REF method to ABI_V4.
6859
6860         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
6861         replace_equiv_address.
6862         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
6863         rs6000_sr_alias_set and MEM_NOTRAP.
6864         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
6865
6866 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
6867
6868         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
6869         handle CALL_EXPR again.
6870
6871 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
6872
6873         * arm/predicates.md (alignable_memory_operand): Delete.
6874
6875 2005-09-10  Richard Henderson  <rth@redhat.com>
6876
6877         PR debug/23806
6878         * dbxout.c (dbxout_expand_expr): New.
6879         (dbxout_symbol): Use it.
6880
6881 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
6882
6883         * arm.c (arm_gen_rotated_half_load): Delete.
6884         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
6885         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
6886         (thumb_set_return_address): Likewise.
6887         (thumb_load_double_from_address): Use adjust_address.
6888         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
6889         (extendhsisi2_mem, movhi_bytes): Use change_address.
6890         (movhi): Use widen_memory_access.
6891         (reload_out_df): Use replace_equiv_address.
6892         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
6893
6894 2005-09-09  Richard Henderson  <rth@redhat.com>
6895
6896         PR debug/20998
6897         * dbxout.c: Include expr.h.
6898         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
6899         (dbxout_symbol): Handle DECL_VALUE_EXPR.
6900         * Makefile.in (dbxout.o): Add EXPR_H.
6901
6902 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
6903
6904         PR tree-optimization/23509
6905         * tree-cfg.c (replace_uses_by): Use replace_exp.
6906         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
6907         pointers have name_mem_tag or type_mem_tag set.
6908
6909 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
6910
6911         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
6912         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
6913         of wrongly accessing operands.
6914
6915 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
6916
6917         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
6918         * tree-chrec.c: Include tree-scalar-evolution.h.
6919         (chrec_convert): Instantiate the base and step before calling
6920         scev_probably_wraps_p that would fail on parametric evolutions.
6921         Collect all the fails into a single section failed_to_convert,
6922         print a diagnostic, and return chrec_dont_know instead of calling
6923         fold_convert.
6924         * tree-scalar-evolution.c (loop_closed_phi_def): New.
6925         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
6926         phi nodes.
6927         (scev_const_prop): Don't replace the definition of a loop closed ssa
6928         phi node by itself, or by another loop closed ssa phi node.
6929         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
6930         that base and step are defined.
6931
6932 2005-09-09  Richard Guenther  <rguenther@suse.de>
6933
6934         PR c++/23624
6935         * fold-const.c (fold_ternary): Check truth_value_p before
6936         calling invert_truthvalue.
6937
6938 2005-09-09  Nick Clifton  <nickc@redhat.com>
6939
6940         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
6941         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
6942         dimension of these arrays.
6943         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
6944         these arrays.
6945         * longlong.h: Only provide a prototype for the __clz_tab[] array
6946         if this header has not been included from libgcc2.h.
6947         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
6948         defining own types.
6949         Provide prototypes for exported functions.
6950         Use the __clz_tab[] and __popcount_tab[] arrays provided by
6951         libgcc2.c.
6952
6953 2005-09-08  Josh Conner  <jconner@apple.com>
6954
6955         PR c++/21135
6956         PR c++/23180
6957         * expr.c (expand_expr_addr_expr_1): Don't invoke
6958         expand_simple_binop for EXPAND_INITIALIZER.
6959
6960 2005-09-08  Richard Henderson  <rth@redhat.com>
6961
6962         PR debug/23190
6963         * toplev.c (wrapup_global_declaration_1): Split out ...
6964         (wrapup_global_declaration_2): ... from ...
6965         (wrapup_global_declarations): ... here.  Return bool.
6966         (check_global_declaration_1): Split out ...
6967         (check_global_declarations): from here.
6968         (emit_debug_global_declarations): New.
6969         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
6970         check_global_declaration_1, emit_debug_global_declarations): Declare.
6971         * c-decl.c (c_write_global_declarations_1): Don't create a vector
6972         of decls.  Call wrapup_global_declaration_1,
6973         wrapup_global_declaration_2, check_global_declaration_1 directly.
6974         (c_write_global_declarations_2): New.
6975         (ext_block): New.
6976         (c_write_global_declarations): Call c_write_global_declarations_2.
6977         * langhooks.c (write_global_declarations): Call
6978         emit_debug_global_declarations.
6979
6980         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
6981         remove decls that have DECL_RTL_SET_P.
6982         * passes.c (rest_of_decl_compilation): Invoke
6983         cgraph_varpool_finalize_decl for all but functions.
6984
6985 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6986
6987         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
6988         the result of a conversion if the new min and max cannot be compared.
6989
6990 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
6991
6992         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
6993         (override_options): Setting s390_sr_alias_set removed.
6994         (save_fpr, save_gprs): Set alias set to vararg or frame.
6995         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
6996         s390_sr_alias_set with get_frame_alias_set ().
6997         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
6998         get_varargs_alias_set ().
6999
7000 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
7001
7002         PR objc/20574
7003         PR objc/19324
7004         * c-parser.c (c_parser_objc_method_definition): If the next
7005         token is not "{", error out and don't start the function.
7006
7007 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
7008
7009         * tree-vrp.c (extract_range_from_expr): Move the check for non
7010         nullness after the check for gimple invariant.
7011
7012 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7013
7014         * tree.c (host_integerp, tree_low_cst): Correct function comment.
7015
7016 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7017
7018         PR target/23747
7019         * config/m32r.md (movmemsi_internal): Canonicalize order of
7020         operands in PLUS component of template.
7021
7022 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7023
7024         * reload1.c (fixup_eh_region_note): Remove assertion.
7025         (fixup_abnormal_edges): Reverted removal of call to
7026         find_many_sub_basic_blocks made on 2005-08-31.
7027
7028 2005-09-07  Richard Henderson  <rth@redhat.com>
7029
7030         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
7031         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
7032         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
7033         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
7034         rearrange for better packing.
7035         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
7036         (lookup_cfa_1): Remove inline marker.
7037         (cfa_equal_p): Split out of ...
7038         (def_cfa_1): ... here.  Use INVALID_REGNUM.
7039         (build_cfa_loc): Handle !cfa->indirect.
7040         (frame_pointer_cfa_offset): New.
7041         (dbx_reg_number): Assert register elimination performed; do
7042         leaf register remapping.
7043         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
7044         (eliminate_reg_to_offset): New.
7045         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
7046         for verifiably local stack frame addresses; re-base to CFA.
7047         (mem_loc_descriptor): Remove can_use_fbreg argument.
7048         (concat_loc_descriptor, loc_descriptor): Likewise.
7049         (containing_function_has_frame_base): Remove.
7050         (rtl_for_decl_location): Don't do register elimination or
7051         leaf register remapping here.
7052         (secname_for_decl): Split out from ..
7053         (add_location_or_const_value_attribute): ... here.
7054         (convert_cfa_to_loc_list): New.
7055         (compute_frame_pointer_to_cfa_displacement): New.
7056         (gen_subprogram_die): Use them.
7057         * tree.h (frame_base_decl): Remove.
7058         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
7059         (prologue_stack_adjust): Remove.
7060         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
7061         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
7062         (set_frame_base_location): Remove.
7063         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
7064         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
7065         (vt_add_function_parameters): Don't eliminate_regs.
7066         (vt_initialize): Don't create frame_base_decl.
7067
7068 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7069
7070         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
7071         version of GNU binutils for 4.x and later.
7072
7073 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
7074
7075         * ggc-page.c (ggc_push_context): Remove.
7076         (ggc_pop_context): Likewise.
7077         * ggc.h (ggc_push_context): Remove.
7078         (ggc_pop_context): Likewise.
7079
7080 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7081
7082         PR target/8973
7083         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
7084         returning from an interrupt handler.
7085
7086 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7087
7088         PR target/8972
7089         * config/arc/arc.c (output_shift): Add check for loop count when
7090         optimizing.
7091
7092 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7093
7094         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
7095         form manually.
7096         (abs_replacement): Likewise.
7097         (pass_phiopt): Remove TODO_update_ssa.
7098
7099 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7100
7101         PR c/23075
7102         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
7103         if "return with no value, in function returning non-void" warning
7104         has been issued.
7105         * tree-cfg.c (execute_warn_function_return): Don't look at
7106         RETURN_EXPRs with TREE_NO_WARNING set.
7107
7108         PR target/22362
7109         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
7110         for internal functions doesn't use registers used by global registers
7111         variables.  Use fewer register parameters if there are global register
7112         variables.
7113
7114 2005-09-06  Olivier Hainque  <hainque@adacore.com>
7115             Eric Botcazou  <ebotcazou@adacore.com>
7116
7117         PR middle-end/14997
7118         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
7119         when we would be extracting outside its bit span (bitpos+bitsize
7120         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
7121         Ada unchecked conversions.
7122
7123 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7124
7125         * tree-ssa-pre.c (try_look_through_load): New function.
7126         (compute_avail): Use it to try to look through loads for some
7127         more useful expressions.
7128
7129 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7130
7131         * simplify-rtx.c (simplify_binary_operation_1): Correct the
7132         condition for detecting cases like (a&a) and (a^a).
7133
7134 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
7135
7136         * common.opt: Add option ftree-vect-loop-version.
7137         * params.def: Add --param vect-max-version-checks.
7138         * doc/invoke.texi: Document ftree-vect-loop-version and
7139         --param vect-max-version-checks.
7140         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
7141         may_misalign_stmts and defines for accessors.
7142         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
7143         LOOP_VINFO_MAY_MISALIGN_STMTS.
7144         (destroy_loop_vec_info): VEC_free for
7145         LOOP_VINFO_MAY_MISALIGN_STMTS.
7146         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7147         Update documentation.
7148         (vect_update_misalignment_for_peel): New.
7149         (vect_enhance_data_refs_alignment): Update to choose loop
7150         peeling or loop versioning if appropriate for the (potentially)
7151         unaligned data references in the loop.
7152         (vect_analyze_data_refs_alignment): Remove call to
7153         vect_enhance_data_refs_alignment so the checks can be done
7154         earlier.
7155         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
7156         and move up call to vect_analyze_data_refs_alignment.
7157         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
7158         (vect_transform_loop): Add call to loop_version.
7159
7160 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7161
7162         PR rtl-optimization/23098
7163         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
7164         * simplify-rtx.c (constant_pool_reference_p): New function.
7165         * rtl.h (constant_pool_reference_p): New prototype.
7166         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
7167         constant_pool_reference_p in condition and
7168         avoid_constant_pool_reference in preparation statements.
7169
7170 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7171
7172         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
7173         STRICT_LOW_PART SETs.
7174
7175 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
7176
7177         PR middle-end/21460
7178         * except.c (sjlj_emit_function_enter): Find the function begin
7179         note even when it's not in first basic block.
7180
7181 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
7182
7183         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
7184         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
7185         * aclocal.m4: Regenerate.
7186
7187 2005-09-05  DJ Delorie  <dj@redhat.com>
7188
7189         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
7190         of macro.
7191
7192 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
7193
7194         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
7195         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
7196         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
7197         Follow spelling conventions.
7198         * doc/invoke.texi: Follow spelling conventions.
7199
7200 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7201
7202         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
7203         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
7204         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
7205
7206 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7207
7208         PR target/23683
7209         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
7210         (output_stack_adjust): Use gen_tmp_stack_mem.
7211         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
7212         (sh_set_return_address, sh_allocate_initial_value): Likewise.
7213         (sh_get_pr_initial_val): Likewise.
7214         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
7215         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
7216         * sh.md (divsi_inv_m0): Use gen_const_mem.
7217         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
7218         (movdf_i4+1): Use gen_tmp_stack_mem.
7219         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
7220         (fpu_switch+2): Likewise.
7221         (movv4sf_i, movv16sf_i): Use adjust_address.
7222         (symGOT_load): Set MEM_NOTRAP_P bit.
7223
7224 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7225
7226         PR target/23721
7227         * pa.c (emit_move_sequence): Fix typo in last change.
7228
7229 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
7230
7231         PR rtl-optimization/23454
7232         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
7233         is true.
7234
7235 2005-09-03  Richard Henderson  <rth@redhat.com>
7236             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7237
7238         PR middle-end/23671
7239         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
7240         gen_rtx_MEM.
7241
7242 2005-09-02  Nicolas Pitre <nico@cam.org>
7243
7244         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
7245         to bit_count to 32 bits.
7246
7247 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
7248
7249         PR c++/23167
7250         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
7251         generating synthetic loads from volatile lvalues.
7252
7253 005-09-02  Nick Clifton  <nickc@redhat.com>
7254
7255         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
7256         __ctzhi2, __clzhi2): New functions.
7257
7258 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
7259
7260         PR middle-end/23547
7261         * tree-nested.c (struct var_map_elt): Mark with GTY.
7262         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
7263         var_map_elt.
7264         (lookup_field_for_decl): Allocate new element in GC memory.
7265         (lookup_tramp_for_decl): Likewise.
7266         (convert_nl_goto_reference): Likewise
7267         (create_nesting_tree): Allocate info in GC memory. Likewise for
7268         info->var_map.
7269         (free_nesting_tree): Free with ggc_free instead of free.
7270         (root): New static variable.
7271         (lower_nested_functions): Remove root as local variable.  And zero out
7272         root at the end of the function.
7273
7274 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
7275
7276         PR rtl-optimization/20365
7277         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
7278         to short.  New member ix.
7279         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
7280         (simplify_plus_minus): Initialize ix members before calling qsort.
7281
7282 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
7283
7284         PR tree-optimization/23626
7285         * tree-cfg.c (replace_uses_by): Clean up eh info.
7286
7287 2005-09-01  DJ Delorie  <dj@redhat.com>
7288
7289         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
7290         fprintf.
7291
7292 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
7293
7294         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
7295         (rs6000_split_multireg_move): Use replace_equiv_address instead of
7296         gen_rtx_MEM.
7297
7298 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7299
7300         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
7301         do not issue warning for a variable definition following
7302         a declaration.
7303
7304 2005-09-01  Richard Henderson  <rth@redhat.com>
7305
7306         PR 23668
7307         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
7308         conversion to CONST_VECTOR.
7309
7310 2005-09-01  Richard Henderson  <rth@redhat.com>
7311
7312         PR 23676
7313         * reload1.c (reload_as_needed): Check !CALL_P before calling
7314         fixup_eh_region_note.
7315         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
7316
7317 2005-09-01  DJ Delorie  <dj@redhat.com>
7318
7319         * varasm.c (output_constant): Let the target resolve
7320         conversions of addresses to non-default pointer sizes.
7321
7322 2005-09-01  Nicolas Pitre <nico@cam.org>
7323
7324         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
7325         to alow matching ARM pre-indexed addressing mode.
7326         (arm_override_options): Remove now irrelevant comment.
7327
7328 2005-09-01  Phil Edwards  <phil@codesourcery.com>
7329
7330         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
7331         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
7332         * config/i386/vxworks.h:  Likewise.
7333         * config/i386/t-vxworksae:  New file, for VxWorks AE.
7334         * config/i386/vxworksae.h:  Likewise.
7335
7336 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
7337
7338         PR tree-optimization/23410
7339         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
7340         sequence is not wrapping during the first step.
7341
7342 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7343
7344         PR debug/7241
7345         * dwarf2out.c (base_type_die): Compare char_type_node with
7346         TYPE_MAIN_VARIANT (type), not type.
7347
7348 2005-09-01  Richard Guenther  <rguenther@suse.de>
7349
7350         PR tree-optimization/15366
7351         * common.opt: Add -finline-functions-called-once.
7352         Put -fearly-inlining in alphabetically ordered place.
7353         * doc/invoke.texi: Document new option.
7354         * ipa-inline.c (cgraph_decide_inlining): Honour
7355         flag_inline_functions_called_once.
7356
7357 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7358
7359         PR rtl-optimization/23478
7360         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
7361         (alloc_qty): Initialize it.
7362         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
7363         (combine_regs): Combine also n_throwing_calls_crossed fields.
7364         (find_free_reg): Don't attempt to caller-save pseudos crossing
7365         calls that might throw.
7366         * global.c (struct allocno): Add throwing_calls_crossed field.
7367         (global_alloc): Revert 2005-08-22 change.  Initialize
7368         throwing_calls_crossed.
7369         (find_reg): Don't attempt to caller-save pseudos crossing calls that
7370         might throw.
7371
7372 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
7373
7374         PR target/23649
7375         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
7376         (mask64_operand): Reinstate code prior to 2005-06-11 change.
7377         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
7378         (and64_2_operand): Tweak to use predicate.
7379         (and_operand): Adjust for mask_operand changes.
7380         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
7381         (print_operand): Likewise.
7382         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
7383         (mask64_1or2_operand): Delete.
7384         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
7385         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
7386         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
7387         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
7388         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
7389         (rotldi3_internal4): Likewise.
7390         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
7391         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
7392         (ashldi3_internal7): Likewise.
7393         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
7394         (ashldi3_internal, ashldi3_internal9 split): Likewise.
7395         (anddi3 split): Don't match mask64_operand.
7396         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
7397         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
7398         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
7399         't' splitter predicate.
7400         (movdi_internal64 + 2): Revert 2005-06-11 change.
7401
7402 2005-08-31  DJ Delorie  <dj@redhat.com>
7403
7404         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
7405         (m32c_asm_integer): Add support for 32 bit pointers.
7406
7407 2005-08-31  Richard Henderson  <rth@redhat.com>
7408
7409         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
7410         component-like references for setting MEM_NOTRAP_P.
7411
7412         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
7413         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
7414
7415 2005-08-31  Richard Henderson  <rth@redhat.com>
7416
7417         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
7418         into a pseudo before applying gen_lowpart.
7419
7420 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
7421
7422         * doc/install.texi (Specific): Update cctools version required
7423         for full functionality.
7424         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
7425         linkers as -macosx_version_min.
7426
7427 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
7428
7429         PR target/21255
7430         * sh.c (print_operand, %R and %S): Add handling of floating point
7431         registers, memory, constants and invalid operands.
7432
7433 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
7434
7435         * ipa-pure-const.c: Change dump name.
7436
7437 2005-08-31 Uros Bizjak <uros@kss-loka.si>
7438
7439         PR target/23570
7440         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
7441         to "reg_or_0_operand".
7442         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
7443
7444 2005-08-31  Dale Johannesen  <dalej@apple.com>
7445
7446         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
7447         loops that count down.
7448
7449 2005-08-31  Richard Henderson  <rth@redhat.com>
7450
7451         PR rtl-opt/23601
7452         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
7453         (fixup_eh_region_note): New.
7454         (reload_as_needed): Call it.
7455         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
7456         don't call find_many_sub_basic_blocks; call verify_flow_info.
7457         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
7458         (keep_stack_depressed): Likewise.
7459         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
7460
7461 2005-08-31  Richard Henderson  <rth@redhat.com>
7462
7463         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
7464         fp return matching.
7465
7466 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
7467
7468         * expr.c (expand_expr_real_1): Compare size of address
7469         mode to target's address mode size in deciding expansion of
7470         the constant address.
7471
7472 2005-08-31  Richard Guenther  <rguenther@suse.de>
7473
7474         PR middle-end/23477
7475         * expr.c (all_zeros_p): New function.
7476         (expand_expr_real_1): Handle the case of an all-zero
7477         non-addressable constructor separately.
7478
7479 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
7480
7481         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
7482         arguments, adjust all callers.
7483         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
7484
7485 2005-08-30  Richard Henderson  <rth@redhat.com>
7486
7487         PR target/23630
7488         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
7489         whenever the mode sizes match.
7490
7491 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
7492
7493         * calls.c (load_register_parameters): Fix comment typo.
7494         * expr.c (emit_push_insn): Comment formatting.
7495
7496 2005-08-30  Ian Lance Taylor  <ian@airs.com>
7497
7498         * config/i386/x-cygwin (host-cygwin): Change dependency from
7499         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
7500
7501 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
7502
7503         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
7504         parts of 'vals'.
7505
7506 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
7507
7508         PR middle-end/23408
7509         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
7510         call to ggc_collect.
7511
7512 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
7513
7514         PR bootstrap/21268
7515         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
7516         beginning.  Remove $(INCLUDES) from all the rules, if following
7517         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
7518
7519 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
7520
7521         PR middle-end/23484
7522         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
7523         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
7524         not constant, but maxlen is, don't set len to maxlen, rather
7525         set maxlen to len if len is a constant.
7526
7527 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
7528
7529         PR tree-optimization/23475
7530         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
7531         and counts.
7532
7533 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
7534
7535         Fix PR middle-end/22455
7536
7537         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
7538         Checksum only the parts of the tree that exist for the tree code.
7539
7540 2005-08-28  Dale Johannesen  <dalej@apple.com>
7541
7542         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
7543
7544 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
7545
7546         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
7547
7548 2005-08-28  Richard Henderson  <rth@redhat.com>
7549
7550         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
7551         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
7552         of char_type_node.
7553
7554 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
7555
7556         PR ada/23593
7557         * builtins.c (get_memory_rtx): Don't strip nops
7558         in between COMPONENT_REFs.
7559
7560 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
7561
7562         PR middle-end/23463
7563         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
7564         types.
7565         (gimplify_modify_expr): Check for zero sized types and gimplify the
7566         rhs and lhs as statements.
7567
7568 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
7569
7570         PR libgcj/23508
7571         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
7572         state for return address column of signal frames.
7573
7574 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
7575
7576         PR target/23539
7577         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
7578         bytes >= 2 not bytes == 2.
7579         (expand_block_move): Same.
7580
7581 2005-08-27  Richard Guenther  <rguenther@suse.de>
7582
7583         PR target/23575
7584         * config/i386/sse.md (sse2_movsd): Add missing closing
7585         braces.
7586
7587 2005-08-27  Paul Brook  <paul@codesourcery.com>
7588
7589         * genrecog.c (enum decision_type): Add DT_num_insns.
7590         (struct decision_test): Add u.num_insns.
7591         (add_to_sequence): Add DT_num_insns test.
7592         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
7593         (write_cond, debug_decision_2): Ditto.
7594         (change_state): Assume peep2_next_insn never fails.
7595         Remove "afterward" argument.
7596         (write afterward, write_tree): Update to match.
7597         * recog.c (peep2_current_count): New variable.
7598         (peep2_next_insn): Check it.
7599         (peephole2_optimize): Set peep2_current_count.
7600         * recog.h (peep2_current_count): Declare.
7601
7602 2005-08-26  Josh Conner  <jconner@apple.com>
7603
7604         PR middle-end/23584
7605         * ipa-pure-const.c (check_tree): Check for volatile-ness
7606         when considering a dereference.
7607
7608 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
7609
7610         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
7611
7612 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7613
7614         PR rtl-optimization/23561
7615         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
7616         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
7617         at most LEN bytes long memory fits into the field.
7618         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
7619         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
7620         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
7621
7622 2005-08-26  Richard Henderson  <rth@redhat.com>
7623
7624         PR rtl-opt/23560
7625         * loop.c (biased_biv_may_wrap_p): New.
7626         (maybe_eliminate_biv_1): Use it to suppress non-equality
7627         comparison transformations.  Delete disabled code.
7628
7629 2005-08-26  Ian Lance Taylor  <ian@airs.com>
7630
7631         * combine.c (make_extraction): Avoid reference outside object.
7632
7633 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
7634
7635         * stor-layout.c (finalize_type_size): Restore behaviour for
7636         non-aggregate types to the status quo ante of the patch for
7637         pr 23467.  Document why it matters.
7638
7639 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7640
7641         PR c/23506
7642         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
7643         array by one element, initialize the BT_LAST element with NULL.
7644
7645 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
7646
7647         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
7648         optimizing for size.
7649         (plus_eqsi): Same.
7650         (compare_plus_eqsi): Same.
7651         (plus_eqsi_compare): Same.
7652         (neg_eq0<mode>): Same.
7653         (neg_eq<mode>): Same.
7654
7655         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
7656         PROCESSOR_POWER4.
7657
7658 2005-08-26  Nick Clifton  <nickc@redhat.com>
7659
7660         * config/v850/v850.c (ep_memory_operand): Return FALSE if
7661         TARGET_EP is not defined.
7662         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
7663         TARGET_EP is enabled.
7664         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
7665         * config/v850/v850.md (save_all_interrupt): Only use the EP
7666         register if TARGET_EP is defined.
7667         (restore_all_interrupt): Likewise.
7668         * config/v850/lib1funcs.asm: Update functions so that the EP
7669         register is only used if __EP__ is defined.
7670
7671 2005-08-26  David Ung  <davidu@mips.com>
7672
7673         * config/mips/mips.c (mips_expand_prologue): Handle case when
7674         generating for MIPS16 and the outgoing argument area is more than
7675         SMALL_OPERAND. Use the frame pointer as temporary to generate the
7676         add instruction.
7677
7678 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
7679
7680         * config/crx/crx.md: Make doloop_end pattern usage controllable
7681         via mloop-nesting=<max-nesting> command line switch. Make sure
7682         the combiner cannot use doloop_end_<mode> in an illegal way.
7683         * config/crx/crx.c: Use regs up to r6 for argument passing.
7684         Refine crx_address_cost (non cst4 displacements are expensive).
7685         * config/crx/crx.opt: Add switch for mloop-nesting=.
7686
7687 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
7688
7689         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
7690         (UNSPEC_MVST): New constant.
7691
7692 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
7693
7694         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
7695         Reject operands containing eliminable registers.
7696         * testsuite/gcc.dg/20050825-1.c: New testcase.
7697
7698 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7699             Jan Hubicka  <jh@suse.cz>
7700
7701         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
7702
7703 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7704
7705         PR tree-optimization/23546
7706         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
7707         and REAL_CST nodes.
7708
7709 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
7710
7711         * params.def (PARAM_MIN_SPEC_PROB): New.
7712         * sched-rgn.c (MIN_PROBABILITY): Delete.
7713         (compute_trg_info): Convert to PARAM_VALUE.
7714         * doc/invoke.texi (param): Document min-spec-prob.
7715
7716 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
7717
7718         * config/darwin.h: define __PIC__
7719         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
7720         TARGET_OS_CPP_BUILTINS macro.
7721
7722 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7723
7724         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
7725         yesterday.
7726
7727 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
7728
7729         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
7730         to duplicate_block.
7731         * cfghooks.c (duplicate_block): Added position where to place
7732         new block as argument.
7733         * cfghooks.h (duplicate_block): Declaration changed.
7734         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
7735         duplicate_block.
7736         * cfglayout.h (copy_bbs): Declaration changed.
7737         * cfgloop.h (loop_version): Declaration changed.
7738         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
7739         position to copy_bbs.
7740         (loop_version): Pass position to duplicate_loop_to_header_edge.
7741         Add place_after argument and position new blocks according to
7742         it.
7743         * modulo-sched.c (sms_schedule): Pass place_after argument
7744         to loop_version.
7745         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
7746         * tree-cfg.c (split_edge_bb_loc): New function.
7747         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
7748         to determine position of new blocks.
7749         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
7750         to loop_version.
7751         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
7752         argument to duplicate_block.
7753         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
7754         Pass position to copy_bbs.
7755
7756 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
7757
7758         * fold-const.c (ptr_difference_const): Use
7759         cst_and_fits_in_hwi instead of host_integerp.
7760
7761 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7762
7763         * config/darwin.c (gen_pic_offset): New.
7764         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
7765         Use it.
7766
7767 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
7768
7769         PR tree-optimization/23486
7770         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
7771
7772 2005-08-23  Phil Edwards  <phil@codesourcery.com>
7773
7774         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
7775         remove use_collect2.
7776         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
7777
7778         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
7779         configuration files to override the default value.
7780
7781         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
7782         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
7783         * config/vx-common.h:  New file, split out from...
7784         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
7785         * config/vxworksae.h:  New file, for VxWorks AE.
7786         * config/vxworks.opt:  New file.
7787         * config/vxlib.c:  Update for VxWorks 6.
7788
7789         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
7790         other MULTILIB_* variables appropriately.
7791         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
7792         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
7793         * config/rs6000/vxworks.h:  Update for VxWorks 6.
7794         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
7795
7796 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
7797
7798         PR target/20799
7799         * config/darwin.c (machopic_select_section): Remove the hack to
7800         mark "::operator new" and "::operator delete" for coalescing
7801         even though they are not weak.
7802
7803 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
7804
7805         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
7806         * configure: Regenerate.
7807
7808 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
7809
7810         PR middle-end/23517
7811         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
7812         between vectors.
7813         * convert.c (convert_to_integer, convert_to_vector): Likewise.
7814         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
7815         Likewise.
7816
7817 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
7818
7819         * config/rs6000/predicates.md (equality_operator): New.
7820         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
7821         comparison with a large constant.
7822
7823 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
7824
7825         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
7826
7827 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
7828
7829         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
7830         registers is even, and we have a hardware double precision fp,
7831         align the buffer.
7832         (sh_gimplify_va_arg_expr): For floating point arguments, consider
7833         size of current argument when checking if argument was passed in
7834         registers.
7835
7836         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
7837
7838         PR middle-end/23467
7839         * stor-layout.c (finalize_type_size): Dont override
7840         existing alignment with a smaller alignment from the mode.
7841
7842 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
7843
7844         * lambda-code.c (lambda_vector_lexico_pos): Moved...
7845         * lambda.h (lambda_vector_lexico_pos): ... here.
7846         * tree-data-ref.c (build_classic_dist_vector): Return false when
7847         the distance vector is lexicographically negative.
7848
7849 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
7850
7851         PR tree-optimization/23511
7852         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
7853         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
7854
7855 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
7856
7857         PR tree-optimization/22043
7858         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
7859         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
7860         If ALLOW_FLEXARR, handle types ending with flexible array member.
7861         Pass false as second argument to recursive count_type_elements calls.
7862         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
7863         argument to count_type_elements call.
7864         * tree-sra.c (decide_block_copy): Likewise.
7865         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
7866         for a constant-sized object, set cleared as well.  Pass true as
7867         second argument to count_type_elements call.
7868
7869 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
7870
7871         PR target/21571
7872         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
7873         from legitimate_small_data_p, and make global.  Update use.
7874         Remove forward declaration.
7875         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
7876         Declare.
7877         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
7878
7879 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
7880
7881         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
7882         of scratch intermediates.
7883         (eq<mode>_compare): Same.
7884         (neg_eq0<mode>): New.
7885         (neg_eq<mode>): Convert to define_insn_and_split.
7886
7887 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
7888
7889         PR target/23070
7890         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
7891         stdarg functions, set/clear the fp marker even when no variable
7892         args are passed.
7893         * config/rs6000/sysv4.opt (mprototype): Describe.
7894
7895 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
7896
7897         PR rtl-optimization/23478
7898         * regs.h (reg_info): Add throw_calls_crossed.
7899         (REG_N_THROWING_CALLS_CROSSED): Define.
7900         * flow.c (allocate_reg_life_data): Initialize
7901         REG_N_THROWING_CALLS_CROSSED.
7902         (propagate_one_insn, attempt_auto_inc): Update
7903         REG_N_THROWING_CALLS_CROSSED.
7904         * global.c (global_alloc): Don't allocate pseudos across
7905         calls that may throw.
7906
7907 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
7908
7909         PR c/18715
7910         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
7911         value is inbetween the range if we did not find an exact match.
7912
7913 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
7914
7915         * doc/invoke.texi (Option Summary): Add ms1 options.
7916         * doc/extend.texi: Document interrupt handler attribute for ms1.
7917         * doc/md.texi: Document ms1 constraints.
7918         * config.gcc: Add ms1-*-elf.
7919         * config/ms1/ms1.h: New.
7920         * config/ms1/ms1.c: New.
7921         * config/ms1/ms1.md: New.
7922         * config/ms1/ms1-protos.h: New.
7923         * config/ms1/ABI.txt: New.
7924         * config/ms1/crti.asm: New.
7925         * config/ms1/crtn.asm: New.
7926         * config/ms1/lib2extra-funcs.c: New.
7927         * config/ms1/t-ms1: New.
7928         * config/ms1/ms1.opt: New.
7929
7930 2005-08-22 Ira Rosen <irar@il.ibm.com>
7931
7932         * config/rs6000/altivec.md (xorv4sf3): New.
7933         (negv4sf2, neg<mode>2): Likewise.
7934
7935 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
7936
7937         PR target/23485
7938         * config/ia64/ia64.md (divsi3): Check divide by zero.
7939         (udivsi3): Likewise.
7940         (divdi3): Likewise.
7941         (udivdi3): Likewise.
7942
7943 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
7944
7945         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
7946         up to elem_bitsize bits, not max_bitsize.
7947
7948 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
7949
7950         PR tree-optimization/23433
7951         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
7952         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
7953
7954 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
7955
7956         PR tree-optimization/23434
7957         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
7958         the iteration bound is not an INTEGER_CST.
7959
7960 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
7961
7962         * tree-vect-transform.c (get_initial_def_for_reduction): Set
7963         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
7964         NULL if need_epilog_adjust is false.
7965         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
7966         Case 3 always peels first itration, not just for PLUS case, and no need
7967         to use scalar_initial_def here. Create an epilog adjustment only if
7968         scalar_initial_def is not NULL.
7969
7970         (vectorizable_reduction): Remove assert.
7971
7972 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
7973
7974         PR target/23485
7975         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
7976         (__moddi3): Likewise.
7977         (__udivdi3): Likewise.
7978         (__umoddi3): Likewise.
7979         (__divsi3): Likewise.
7980         (__modsi3): Likewise.
7981         (__udivsi3): Likewise.
7982         (__umodsi3): Likewise.
7983
7984 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
7985
7986         * tree-pass.h (TDF_GRAPH): Define.
7987         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
7988         * passes.c (finish_optimization_passes): Only call
7989         finish_graph_dump_file if TDF_GRAPH is set.
7990         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
7991         NULL.  Set TDF_GRAPH bit.
7992         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
7993
7994 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
7995
7996         * arm.h (arm_stack_offsets): Add locals_base field.
7997         * arm.c (arm_get_frame_offsets): Compute it.
7998         (thumb_compute_initial_elimination offset): Make the Thumb frame
7999         pointer point to the base of the local variables.
8000         (thumb_expand_prologue): Update accordingly.
8001         (thumb_expand_epilogue): Likewise.
8002
8003         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
8004         mode of clobbered scratch to DImode.  Handle a case that's known to
8005         need this.
8006
8007 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
8008
8009         * config/rs6000/rs6000.md (gt0<mode>): Delete.
8010         (gt0<mode>_compare): Delete.
8011         (neg_gt0<mode>): Delete.
8012
8013 2005-08-19  Eric Christopher  <echristo@apple.com>
8014
8015         * optabs.h: Change CTI_ to COI_.
8016         * optabs.c: Ditto.
8017
8018 2005-08-19  James E Wilson  <wilson@specifix.com>
8019
8020         * builtins.c (expand_builtin_return_addr): Set
8021         current_function_accesses_prior_frames when count != 0.  Use
8022         frame_pointer_rtx when count == 0.
8023         * function.h (struct function): Add accesses_prior_frames field.
8024         (current_function_accesses_prior_frames): Define.
8025         * reload1.c (init_elim_table): Check
8026         current_function_accesses_prior_frames.
8027         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
8028
8029 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8030
8031         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
8032         indicator.  Return true if the flowgraph changed during
8033         cleanup.
8034
8035 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8036
8037         PR 23476
8038         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
8039         conditional expression before testing its value.
8040
8041 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8042
8043         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
8044
8045 2005-08-19  Devang Patel  <dpatel@apple.com>
8046
8047         PR tree-optimization/23048
8048         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
8049         third parameter. Check whether latch is dominated by exit
8050         block or not.
8051         (if_convertible_loop_p): Supply exit block itself to
8052         if_convertible_bb_p.
8053
8054 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8055
8056         PR target/23473
8057         * arm.md (arm_load_pic_register): Change argument to the mask of
8058         saved registers.  Call thumb_find_work_register if we need a
8059         scratch register on Thumb.
8060         (arm_expand_prologue): Pass empty register set to
8061         arm_load_pic_register.
8062         (thumb_expand_prologue): Pass live_regs_mask directly to
8063         arm_load_pic_register.
8064         * arm-protos.h (arm_load_pic_register): Update prototype.
8065
8066 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
8067
8068         * sh.c (find_sole_member): New function.
8069         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
8070         if the record's alignment is larger than the size of its only member.
8071
8072 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8073
8074         PR target/23436
8075         * arm.c (thumb_legitimize_reload_address): New function.
8076         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
8077         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
8078
8079 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
8080
8081         * config/crx/crx.c: Implement crx_decompose_address. Reject
8082         symbolic displacements since CRX register relative adressing
8083         mode can't handle unsigned 32-bit values as displacements.
8084         * config/crx/crx.h: Simplify definitions, remove redundant
8085         parenthesis and obsolete macros.
8086         * config/crx/crx.opt: Add new switch for debugging addresses.
8087         * config/crx/crx-protos.h: Add new declarations for above.
8088
8089 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
8090
8091         PR middle-end/20624
8092         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
8093         looking past it.
8094
8095 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8096
8097         * collect2.c (dup2): Delete.
8098         * configure.ac: Don't check for dup2.
8099
8100         * config.in, configure: Regenerate.
8101
8102 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
8103
8104         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
8105         record with the type of its only member.
8106
8107 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
8108
8109         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
8110         define_insn_and_split.
8111         (plus_ltu<mode>_compare): Same.
8112         (gtu<mode>_compare): Same.
8113         (plus_gtu<mode>_compare): Same.
8114
8115 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
8116
8117         PR tree-optimization/22228
8118         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
8119         todo_flags_start.
8120         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
8121         are recorded in vect_vnames_to_rename for renaming.
8122         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
8123         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
8124         in vect_vnames_to_rename.
8125         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
8126         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
8127
8128 2005-08-18  Jan Hubicka  <jh@suse.cz>
8129
8130         PR c++/22034
8131         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
8132         info only for local statics, not for member variables.
8133
8134 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8135
8136         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
8137
8138 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8139
8140         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
8141
8142 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
8143
8144         PR middle-end/16045
8145         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
8146
8147 2005-08-17  James E Wilson  <wilson@specifix.com>
8148
8149         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8150         array size check.
8151
8152 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
8153
8154         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
8155         (leu<mode>_compare): Same.
8156         (plus_leu<mode>): Same.
8157         (neg_leu<mode>): Same.
8158         (and_neg_leu<mode): Same.
8159         (ltu<mode>_compare): Same.
8160         (plus_ltu<mode>): Same.
8161         (geu<mode>): Same.
8162         (geu<mode>_compare): Same.
8163         (plus_geu<mode>): Same.
8164         (neg_geu<mode>): Same.
8165         (and_neg_geu<mode>): Same.
8166         (plus_gt<mode>): Same.
8167         (gtu<mode>_compare): Same.
8168         (plus_gtu<mode>): Same.
8169
8170 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
8171
8172         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
8173         Move call_table_data to end.  Delete spurious .text.
8174         (callt_save_all_interrupt): Fix comment typo.
8175
8176 2005-08-17  James E Wilson  <wilson@specifix.com>
8177             Kevin Winchester  <winchester@amirix.com>
8178
8179         PR target/21684
8180         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
8181
8182 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
8183
8184         PR target/23268
8185         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
8186         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
8187
8188 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
8189
8190         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
8191         record with the type of its only member if the modes don't match.
8192
8193         * varasm.c (decode_reg_name): Skip empty additional register names.
8194
8195 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
8196
8197         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
8198         lsm_tmp_name_length): New.
8199         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
8200         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
8201
8202 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8203             Andreas Krebbel  <krebbel1@de.ibm.com>
8204
8205         * config.gcc: Added z9-109 switch.
8206         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
8207         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
8208         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
8209         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
8210         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
8211         for "z9_109" cpu attribute.
8212         * config/s390/s390.c (z9_109_cost): New processor cost structure.
8213         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
8214         (s390_handle_arch_option): Added z9-109 switch.
8215         (override_options): Set respective cost function for z9-109.
8216         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
8217         (legitimate_reload_constant_p): Accept extended immediates.
8218         (print_operand): Three new output modifiers added: k, m and o.
8219         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
8220         (s390_output_mi_thunk): Use extended immediate when possible.
8221         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
8222         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
8223         (CONSTRAINT_LEN): Added length of O constraint.
8224         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
8225         * config/s390/s390.md ("cpu"): New value z9_109 added.
8226         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
8227         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
8228         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
8229         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
8230         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
8231         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
8232         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
8233         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
8234         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
8235         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
8236         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
8237         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
8238         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
8239         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
8240         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
8241         immediates.
8242         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
8243         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
8244         insns for TARGET_EXTIMM.
8245
8246 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8247
8248         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
8249
8250 2005-08-17  Nick Clifton  <nickc@redhat.com>
8251
8252         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
8253         Call default_encode_section_info.
8254
8255 2005-08-17  Steven Bosscher  <stevenb@suse.de>
8256
8257         PR tree-optimization/21574
8258         * tree-ssa-ccp.c (likely_value): If the right hand side is a
8259         constant, return CONSTANT.
8260         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
8261         (ccp_fold, visit_assignment): Likewise.
8262         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
8263
8264 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8265
8266         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
8267         fold_buildN instead of buildN then fold_initializer or fold.
8268         (build_unary_op): Likewise.
8269         (build_binary_op): Likewise.
8270         * fold-const.c (fold_initializer): Remove.
8271         (fold_build1_initializer): New function.
8272         (fold_build2_initializer): New function.
8273         (fold_build3_initializer): New function.
8274         * tree.h (fold_initializer): Remove.
8275         (fold_build1_initializer): New function.
8276         (fold_build2_initializer): New function.
8277         (fold_build3_initializer): New function.
8278
8279 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8280
8281         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
8282         (try_move_mult_to_index): Call fold_build2 instead of build2.
8283         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
8284         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
8285         fold_binary_to_constant.
8286         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
8287         fold (build.
8288         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
8289         check if A == gcd (A, B).  Remove TYPE argument.
8290         (analyze_offset) Use fold_build2 instead of fold (build.
8291         (create_data_ref): Likewise.
8292         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
8293         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
8294         then fold.
8295
8296 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
8297
8298         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
8299         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
8300
8301 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
8302
8303         PR tree-opt/23402
8304         * gimplify.c (zero_sized_type): New function.
8305         (gimplify_modify_expr_rhs): If we have a zero sized type,
8306         replace the statement with an empty statement.
8307
8308 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
8309
8310         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
8311         fxsave.
8312
8313 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8314
8315         * doc/tm.texi (Label Output): Correct typo.
8316
8317 2005-08-16  Steven Bosscher  <stevenb@suse.de>
8318
8319         PR target/23376
8320         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
8321         force_operand will work later on using have_insn_for.
8322
8323 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8324
8325         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
8326
8327 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8328
8329         PR c++/23337
8330         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
8331         vector type, don't try to construct it element by element.  Add an
8332         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
8333
8334 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8335
8336         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
8337
8338 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
8339
8340         * doc/invoke.texi (Precompiled Headers): Document some more options
8341         which are known to be safe.
8342
8343 2005-08-16  James E Wilson  <wilson@specifix.com>
8344
8345         PR tree-optimization/21105
8346         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8347         TREE_OVERFLOW check.
8348
8349 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
8350
8351         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
8352         (neg_ltu<mode>): Same.
8353         (gtu<mode>): Same.
8354         (neg_gtu<mode>): Same.
8355
8356 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8357
8358         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
8359         (fold_builtin_isdigit): Use fold_buildN.
8360         (build_function_call_expr): Likewise.
8361         * c-typeck.c (c_finish_loop): Likewise.
8362
8363 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
8364             Richard Shann <rshann@superh.com>
8365
8366         PR middle-end/20396:
8367         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
8368
8369 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
8370
8371         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
8372
8373 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
8374
8375         PR target/23355
8376         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
8377         arm_compure_save_reg0_reg12_mask to determine when the PIC register
8378         must be saved.
8379
8380 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8381
8382         PR middle-end/23369
8383         * fold-const.c (build_range_check): Disable optimization for function
8384         pointer expressions on targets that require function pointer
8385         canonicalization.
8386
8387 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
8388
8389         * simplify-rtx.c (simplify_const_relational_operation): When
8390         extracting arguments of a COMPARE, recompute the mode as well.
8391
8392 2005-08-15  Ian Lance Taylor  <ian@airs.com>
8393
8394         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
8395
8396 2005-08-15  DJ Delorie  <dj@redhat.com>
8397
8398         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
8399         the stack.
8400         (movsi_splittable): Allow, but split, moves to the stack.
8401         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
8402         stack.
8403
8404 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8405
8406         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
8407         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
8408         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
8409
8410         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
8411         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
8412         Delete HOST_PTR_PRINTF.
8413
8414         * configure, config.in: Regenerate.
8415
8416 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
8417
8418         * config/rs6000/rs6000.md (QHSI): New mode macro.
8419         (wd): Extend mode attr for QImode and HImode
8420         (dbits): New mode attr.
8421         (zero_extend<mode>di2): Convert to mode macro.
8422
8423 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
8424
8425         PR target/21841
8426         * doc/invoke.texi (-mgnu-ld): Update description.
8427         (-mhp-ld): Ditto.
8428
8429 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8430
8431         PR 23391
8432         * Makefile.in (tree-chrec.o): Depends on real.h.
8433         * tree-chrec.c: Include real.h.
8434         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
8435         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
8436         * tree-scalar-evolution.c (add_to_evolution_1,
8437         interpret_rhs_modify_expr): Ditto.
8438
8439 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8440
8441         PR 23386
8442         * tree-data-ref.c (estimate_niter_from_size_of_data): When
8443         step is negative compute the estimation from init downwards to zero.
8444
8445 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
8446
8447         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
8448
8449 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8450
8451         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
8452         constraint.
8453         (legitimate_reload_constant_p): Fix handling of lliXX operands.
8454         Accept double-word constants that can be split.
8455         * config/s390/s390.md ("movti"): Use 'P' constraint.
8456         ("*movdi_31", "*movdf_31"): Likewise.
8457
8458 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
8459
8460         Fix PR tree-optimization/22615
8461
8462         * tree-ssa-structalias.c (solution_set_add): Handle
8463         first_vi_for_offset returning NULL.
8464         (do_da_constraint): Ditto.
8465         (do_sd_constraint): Ditto.
8466         (do_ds_constraint): Ditto
8467         (find_func_aliases): Ditto.
8468         (build_constraint_graph): RHS is allowed be ANYTHING.
8469         (first_vi_for_offset): Return NULL if we couldn't find anything at
8470         the offset.
8471
8472 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8473
8474         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
8475         over memory as first operand.
8476
8477 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
8478
8479         PR target/23360
8480         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
8481         available for setting it.
8482
8483 2005-08-14  Ira Rosen  <irar@il.ibm.com>
8484
8485         PR tree-optimization/23320
8486         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
8487         data-refs' types instead of base object nullness. Add check for
8488         pointer type data-refs before first location comparison. Remove
8489         assert.
8490
8491 2005-08-14  Andreas Schwab  <schwab@suse.de>
8492
8493         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
8494
8495 2005-08-13  James E Wilson  <wilson@specifix.com>
8496
8497         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
8498         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
8499         -fstack-protector-all, --param ssp-buffer-size): Document.
8500         (-Wvariadic-macros): Alphabetize.
8501         (-fsched-stalled-insns-dep): Add missing 'f'.
8502
8503         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
8504         macros.
8505
8506 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
8507
8508         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
8509         or indirect address operand.
8510         (EXTRA_ADDRESS_CONSTRAINT): New.
8511         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
8512
8513 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
8514
8515         PR tree-optimization/22236
8516         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
8517         successors and predecessors.
8518         * tree-chrec.c (chrec_convert): Before converting, check that
8519         sequences don't wrap.
8520         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
8521         (analyze_array): Extern.
8522         (find_data_references_in_loop): Remove call to
8523         compute_estimated_nb_iterations.
8524         * tree-data-ref.h (analyze_array): Declared.
8525         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
8526         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
8527         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
8528         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
8529         condition.
8530         * tree-ssa-loop-ivcanon.c: Fix documentation.
8531         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
8532         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
8533         (infer_loop_bounds_from_undefined): New.
8534         (estimate_numbers_of_iterations_loop): Use
8535         infer_loop_bounds_from_undefined.
8536         (used_in_pointer_arithmetic_p): New.
8537         (scev_probably_wraps_p): Pass an extra parameter.  Call
8538         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
8539         (convert_step): Fix documentation.
8540         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
8541         Use initial_condition_in_loop_num and evolution_part_in_loop_num
8542         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
8543         scev_probably_wraps_p.
8544
8545 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
8546
8547         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
8548         (s390_register_info): Ignore clobbered_regs information for fixed
8549         registers, and only fixed registers.
8550         (s390_init_frame_layout): Remove redundant call.
8551
8552 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
8553
8554         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
8555         description of -Wold-style-casts.
8556
8557 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8558             Jakub Jelinek  <jakub@redhat.com>
8559
8560         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8561         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
8562         * config/s390/s390.c (print_operand): New output modifier 'G' added.
8563         (get_thread_pointer): Renamed to s390_get_thread_pointer.
8564         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
8565         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
8566         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
8567         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
8568         ("stack_protect_set", "stack_protect_test"): New expanders.
8569         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
8570         "stack_protect_testdi"): New insn definitions.
8571
8572 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8573
8574         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
8575
8576 2005-08-12  Paul Brook  <paul@codesourcery.com>
8577
8578         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
8579
8580 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8581
8582         * config/s390/predicates.md (setmem_operand): New predicate.
8583         (shift_count_operand): Accept ANDs with special constants as
8584         operand.
8585         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
8586         with special constants.
8587         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
8588         shift_count_operand with setmem_operand.
8589
8590 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8591
8592         * config/s390/s390.c (s390_extract_part, s390_single_part):
8593         Type cast added.
8594         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
8595         (s390_output_mi_thunk): Don't use lg on 31 bit.
8596         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
8597         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
8598
8599 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8600
8601         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
8602         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
8603         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
8604         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
8605         with one of the new macros.
8606
8607 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8608
8609         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
8610         Don't set save_return_addr_p.
8611         (s390_register_info): Make clobbered_regs not depending on
8612         save_return_addr_p.
8613
8614 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8615
8616         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
8617         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
8618
8619 2005-08-11  James E. Wilson  <wilson@specifix.com>
8620
8621         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
8622
8623 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
8624
8625         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
8626         locations gathered by var-tracking in single entry loc_list
8627         over loc_descriptor_from_tree.
8628
8629         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
8630         pass it down to loc_descriptor.
8631         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
8632         (containing_function_has_frame_base): Move earlier in the file.
8633         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
8634         instead of always assuming fbreg can't be used.
8635
8636 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
8637
8638         * config/rs6000/altivec.md: Change constraint "m" to "Z".
8639         * config/rs6000/predicates.md (indexed_or_indirect_operand):
8640         Accept address wrapped in AND for Altivec.
8641         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
8642         Strip AND wrapping offset address for Altivec.
8643
8644 2005-08-11  Richard Henderson  <rth@redhat.com>
8645
8646         PR middle-end/23312
8647         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
8648         before using TYPE_IS_SIZETYPE.
8649
8650 2005-08-11  Richard Henderson  <rth@redhat.com>
8651
8652         PR target/22225
8653         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
8654         insn types not present on ev4.
8655         (alphaev5_insn_pipe): Similarly.
8656
8657 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
8658
8659         PR target/23250
8660         * arm.c (arm_override_options): If the user has selected callee-super-
8661         interworking, then enable normal interworking.
8662
8663 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8664
8665         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
8666         redefinition.
8667
8668 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
8669
8670         * doc/rtl.texi: Fix two typos.
8671
8672 2005-08-11  Richard Guenther  <rguenther@suse.de>
8673
8674         PR target/23289
8675         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
8676         cases where we call to/from functions returning void.
8677
8678 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
8679
8680         PR c++/23225
8681         * tree.c (build_pointer_type_for_mode): Robustify.
8682
8683 2005-08-10  James E Wilson  <wilson@specifix.com>
8684
8685         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
8686         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
8687
8688         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
8689         "cum->".
8690
8691 2005-08-10  Eric Christopher  <echristo@apple.com>
8692
8693         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
8694         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
8695         V2DFmode.
8696
8697 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
8698
8699         PR target/21887
8700         * config/darwin.c (machopic_indirect_data_reference): Use a new register
8701         for the high part when generating dynamic-no-pic code.
8702
8703 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8704
8705         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
8706         (x86_64-*-linux*): Likewise.
8707
8708         * config/i386/crtfastmath.c: New file.
8709         * config/i386/t-crtfm: Likewise.
8710
8711         * config/i386/linux.h (ENDFILE_SPEC): New.
8712         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
8713
8714         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
8715         crtfastmath.o.
8716
8717 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
8718
8719         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
8720         (vec_shl, vec_shr): Document new operations.
8721         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
8722
8723 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
8724
8725         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
8726         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
8727         change predicate to indexed_or_indirect_address.
8728
8729 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
8730
8731         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
8732         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
8733         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
8734         and __aeabi_uwrite8.
8735         * config/arm/unaligned-funcs.c: New file.
8736         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
8737
8738 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
8739
8740         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
8741         Add dump.
8742         * cfglayout.c (pass_insn_locators_initialize): Add dump.
8743         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
8744         Add dump.
8745         * except.c (pass_convert_to_eh_region_ranges): Add dump.
8746         * final.c (pass_shorten_branches): Add dump.
8747         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
8748         (pass_life): Rename dump.
8749         (rest_of_handle_flow2): Remove initial verify_flow_info.
8750         * function.c (pass_instantiate_virtual_regs): Add dump.
8751         * integrate.c (pass_initial_value_sets): Add dump.
8752         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
8753         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
8754         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
8755         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
8756         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
8757         gate_rtl_unrool_and_peel_loops): New.
8758         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
8759         rtl_doloop): Do not look at flags.
8760         * mode-switching.c (pass_mode_switching): Add dump.
8761         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
8762         pass_split_before_regstack): Add dump.
8763         * regmove.c (pass_stack_adjustments): Add dump.
8764         * tree-optimize.c (pass_fixup_cfg): Add dump.
8765
8766 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8767
8768         PR 23309
8769         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
8770         deciding which instruction sequence to use.
8771
8772 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
8773
8774         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
8775         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
8776
8777 2005-08-09  Richard Guenther  <rguenther@suse.de>
8778
8779         * c-common.c (builtin_function_2): Remove.
8780         (def_builtin_1): New function.
8781         (c_common_nodes_and_builtins): Use def_builtin_1 to
8782         build builtin functions.
8783
8784 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
8785
8786         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
8787         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
8788         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
8789         Visual DSP.
8790
8791 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
8792
8793         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
8794         fold_binary instead of fold_build2 since we don't care about the
8795         resulting tree.
8796         (loop_niter_by_eval): Likewise.
8797         (compare_trees): Likewise.
8798         (proved_non_wrapping_p): Likewise.
8799
8800 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
8801
8802         PR c/23161
8803         PR c/23165
8804         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
8805         if the if is really empty.
8806
8807 2005-08-09  Steven Bosscher  <stevenb@suse.de>
8808
8809         PR tree-optimization/23234
8810         * tree-ssa-math-opts.c (place_reciprocal): New enum.
8811         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
8812         argument of the new enum.
8813         (execute_cse_reciprocals): Add reciprocals for function arguments
8814         on the unique successor edge of the entry block.  Update other calls
8815         to execute_cse_reciprocals_1.
8816
8817 2005-08-08  Richard Henderson  <rth@redhat.com>
8818
8819         PR 22439
8820         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
8821
8822 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
8823
8824         * expr.c (write_complex_part): Return after handling MEM.
8825
8826 2005-08-08  Josh Conner  <jconner@apple.com>
8827
8828         PR rtl-optimization/23241
8829         * combine.c (simplify_comparison): Fix error in determining
8830         whether to lift a subreg from comparison.
8831
8832 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
8833
8834         PR target/18506
8835         * config/rs6000/altivec.md (vec_init<mode>): New.
8836         (vec_set<mode>): New.
8837         (vec_extract<mode>): New.
8838         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
8839         (rs6000_expand_vector_set): New.
8840         (rs6000_expand_vector_extract): New.
8841         (rs6000_legitimate_offset_address_p): Offset addresses are valid
8842         for Altivec modes before reload.
8843         (altivec_expand_vec_init_builtin): New.
8844         (get_element_number): New.
8845         (altivec_expand_vec_set_builtin): New.
8846         (altivec_expand_vec_ext_builtin): New.
8847         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
8848         builtins.
8849         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
8850         builtins.
8851         * config/rs6000/rs6000.h (rs6000_builtins): Add
8852         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
8853         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
8854         * config/rs6000/rs6000-protos.h: Declare new functions.
8855
8856 2005-08-08  Jan Hubicka  <jh@suse.cz>
8857
8858         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
8859         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
8860         * i386.md (movdi*): Use pic_32bit_operand.
8861         * predicates.md (pic_32bit_operand): New.
8862
8863 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
8864
8865         PR c++/21166
8866         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
8867
8868 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
8869
8870         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
8871         (test_for_singularity): Use fold_build2.
8872
8873 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8874
8875         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
8876
8877 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
8878
8879         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
8880         (COMMON_ASM_OP) Define.
8881         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
8882         (ix86_encode_section_info): Likewise.
8883         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
8884         SUBTARGET_ENCODE_SECTION_INFO.
8885
8886 2005-08-06  Richard Henderson  <rth@redhat.com>
8887
8888         PR 21894
8889         * tree-nested.c (convert_local_reference): Save and restore val_only
8890         around component_ref and friends.  Clear walk_subtrees by default.
8891
8892 2005-08-06  Peter O'Gorman  <peter@pogma.com>
8893
8894         PR 21366
8895         * gcc.c (process_command): Check the argument to -b has a dash.
8896         * doc/invoke.texi: Update -b and -V docs.
8897
8898 2005-08-06  James E Wilson  <wilson@specifix.com>
8899
8900         * config/mips/cross64.h, config/mips/t-cross64: Delete.
8901
8902 2005-08-06  Michael Matz  <matz@suse.de>
8903
8904         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
8905         member only if only one insn is associated with the value.
8906
8907 2005-08-06  Nick Clifton  <nickc@redhat.com>
8908
8909         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
8910         New define.
8911         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
8912         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
8913         Check symbol flags instead of symbol name mangling.
8914         (xstormy16_asm_output_aligned_common): Likewise.  Also
8915         simplify code since the bss100_section cass is the only case
8916         where the below100 code will be triggered.
8917         (xstormy16_encode_section_info): Encode below100 attribute
8918         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
8919         the name.
8920         (xstormy16_strip_name_encoding): Delete - this function is no
8921         longer needed.
8922         (TARGET_STRIP_NAME_ENCODING): Undefine.
8923         * config/stormy16/stormy16-protos.h: Delete prototype for
8924         xstormy16_strip_name_encoding.
8925
8926 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
8927
8928         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
8929         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
8930         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
8931         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
8932         config/alpha/predicates.md, config/arc/arc.h,
8933         config/arm/arm.h, config/arm/ieee754-df.S,
8934         config/arm/ieee754-sf.S, config/bfin/bfin.c,
8935         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
8936         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
8937         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
8938         config/m68hc11/m68hc11.h, config/mips/mips.c,
8939         config/mips/mips.h, config/mips/openbsd.h,
8940         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
8941         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
8942         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
8943         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
8944         config/sparc/linux.h, config/sparc/linux64.h,
8945         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
8946         doc/extend.texi, doc/gcov.texi, doc/install.texi,
8947         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
8948         typos.  Follow spelling conventions.
8949
8950 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
8951
8952         PR c/23113
8953         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
8954         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
8955         specially.  Check for side effects only for COND_EXPR.
8956         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
8957         return with TREE_NO_WARNING.
8958
8959 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
8960
8961         PR rtl-optimization/23233
8962         * loop.c (combine_movables): Require the modes to be the same.
8963         (move_movables): Remove handling of cases where the replacement
8964         had a different mode to the original.
8965
8966 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
8967
8968         PR tree-optimization/23128
8969         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
8970         subtraction wrap, and set TREE_OVERFLOW if they do.
8971
8972 2005-08-05  Richard Henderson  <rth@redhat.com>
8973
8974         PR 21728
8975         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
8976         FORCED_LABEL labels.
8977
8978 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
8979
8980         PR middle-end/23135
8981         * reload.c (find_reloads_subreg_address): Pass down TYPE
8982         unchanged.  Change all callers except find_reloads_toplev.
8983
8984 2005-08-05  Michael Matz  <matz@suse.de>
8985
8986         * genattrtab.c (current_alternative_string): Remove.
8987         (SIMPLIFY_ALTERNATIVE): Ditto.
8988         (attr_alt_bit_p): Ditto.
8989         (alternative_name): Make const char *.
8990         (evaluate_eq_attr): Remove use of above things.
8991         (simplify_test_exp): Ditto.
8992         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
8993         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
8994
8995 2005-08-04  James E Wilson  <wilson@specifix.com>
8996
8997         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
8998         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
8999         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
9000         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
9001         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
9002
9003 2005-08-04  Richard Henderson  <rth@redhat.com>
9004
9005         PR 21529
9006         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
9007         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
9008         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
9009         if we'd have to instantiate too many members.
9010
9011 2005-08-04  Richard Henderson  <rth@redhat.com>
9012
9013         PR 21291
9014         * tree-outof-ssa.c (coalesce_asm_operands): New.
9015         (coalesce_ssa_name): Use it.  Split out ...
9016         (coalesce_phi_operands, coalesce_result_decls): ... these.
9017
9018 2005-08-04  Paul Brook  <paul@codesourcery.com>
9019
9020         * read-rtl.c (read_quoted_string): Break if EOF.
9021
9022 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
9023
9024         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
9025         (fold_build2): Likewise.
9026         (fold_build3): Likewise.
9027         (fold_build1_stat): New function prototype.
9028         (fold_build2_stat): Likewise.
9029         (fold_build3_stat): Likewise.
9030         * fold-const.c (fold_build1): Rename to ..
9031         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9032         through to build1_stat.
9033         (fold_build2): Rename to ..
9034         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9035         through to build2_stat.
9036         (fold_build3): Rename to ..
9037         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9038         through to build3_stat.
9039
9040 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
9041             Ian Lance Taylor  <ian@airs.com>
9042
9043         * function.c (assign_stack_local_1): Do not correct stack slot
9044         address if allocation size is smaller than mode size.
9045
9046 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
9047
9048         PR 22037
9049         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
9050         (tree_merge_blocks): Propagate anything allowed by
9051         may_propagate_copy.
9052         Clarify documentation.
9053         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
9054         SSA form, schedule an update if necessary.
9055
9056 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
9057
9058         * doc/install.texi (Binaries): Remove broken link to
9059         Sinix/Reliant Unix binaries.
9060
9061 2005-08-03  Richard Henderson  <rth@redhat.com>
9062
9063         PR 23221
9064         * function.c (stack_protect_epilogue): Export.
9065         * tree.h (stack_protect_epilogue): Declare.
9066         * calls.c (expand_call): Call it.
9067
9068 2005-08-03  Eric Christopher  <echristo@apple.com>
9069
9070         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
9071         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
9072         spec.
9073
9074 2005-08-04  Jan Hubicka  <jh@suse.cz>
9075
9076         * profile.c (branch_prob): Split edges with goto locus on them
9077         to get proper line counts.
9078         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
9079
9080 2005-08-03  Paul Brook  <paul@codesourcery.com>
9081
9082         * function.c (assign_parms): Round current_function_args_size
9083         to PARM_BOUNDARY, not STACK_BOUNDARY.
9084
9085 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
9086
9087         * config/i386/i386.c (x86_elf_aligned_common)
9088         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
9089
9090 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
9091
9092         PR tree-optimization/23157
9093         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
9094         before emitting them.
9095
9096 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9097
9098         PR tree-optimization/19899
9099         * Makefile.in (tree-scalar-evolution.o): Add real.h.
9100         * tree-scalar-evolution.c: Include real.h.
9101         (add_to_evolution): Build constant -1 of correct type.
9102
9103 2005-08-03  Jan Hubicka  <jh@suse.cz>
9104
9105         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
9106         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
9107         profile updating for complette unrolling.
9108         * loop-unroll.c (peel_loop_completely): Use it.
9109         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
9110         (tree_unroll_loops_completely): Disable code growing unrolling of cold
9111         loops.
9112
9113 2005-08-03  Paul Brook  <paul@codesourcery.com>
9114
9115         * combine.c (can_change_dest_mode): New function.
9116         (try_combine, simplify_set): Use it.
9117
9118 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
9119
9120         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
9121         TFmode to BLKmode.
9122
9123 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
9124
9125         * doc/install.texi (Specific): Adjust link to openavr.org.
9126         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
9127         (Binaries): Adjust HP-UX Porting Center link.
9128         (Binaries): Adjust Free Software Foundation ordering link.
9129
9130 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
9131
9132         * convert.c (convert_to_integer): Use fold_build1 instead of
9133         build1 when converting an integer to an integer.
9134
9135 2005-08-02  Richard Henderson  <rth@redhat.com>
9136
9137         * combine.c (combine_instructions): Don't use reg_equal/equiv
9138         results if the mode doesn't match.
9139
9140 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
9141
9142         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
9143         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
9144
9145 2005-08-02  Richard Henderson  <rth@redhat.com>
9146
9147         PR 23196
9148         * explow.c (memory_address): Remove special-case for
9149         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
9150
9151 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
9152
9153         PR 23164
9154         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
9155         number of calls to cleanup_tree_cfg_1.
9156
9157 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
9158
9159         * doc/invoke.texi: document file extensions .F90 and .F95
9160
9161 2005-08-02  Richard Guenther  <rguenther@suse.de>
9162
9163         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
9164         positive if its first argument is positive.
9165
9166 2005-08-02  Richard Guenther  <rguenther@suse.de>
9167
9168         PR tree-optimization/23177
9169         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
9170         on TMR_TAG.
9171
9172 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
9173
9174         PR tree-optimization/23129
9175         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
9176         varying for divisions with anti-ranges.
9177
9178 2005-08-02  Jan Hubicka  <jh@suse.cz>
9179
9180         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
9181         * tree-ssa-threadupdate.c (thread_block): Add it here.
9182
9183 2005-08-01  James E Wilson  <wilson@specifix.com>
9184
9185         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
9186         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
9187         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
9188         New.
9189         * config/mips/predicates.md (const_call_insn_operand): Add check for
9190         SYMBOL_REF_LONG_CALL_P.
9191         * doc/extend.texi (long_call): Document the new attribute.
9192
9193 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9194             Richard Henderson  <rth@redhat.com>
9195
9196         * Makefile.in (RTL_BASE_H): Add real.h.
9197         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
9198         instead of memcpy.
9199         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
9200         directly.
9201         * rtl.c (rtl_check_failed_code_mode): New.
9202         * rtl.h (struct rtx_def): Add u.rv.
9203         (XCMWINT, XCNMPRV): New.
9204         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
9205         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
9206
9207 2005-08-01  Richard Henderson  <rth@redhat.com>
9208
9209         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
9210         with auto-inc codes.
9211
9212         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
9213
9214 2005-08-01  Jan Hubicka  <jh@suse.cz>
9215
9216         * i386-protos.h (asm_preferred_eh_data_format): Declare.
9217         * i386.c: Include dwarf2.h
9218         (asm_preferred_eh_data_format): New.
9219         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
9220
9221 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9222
9223         * config/host-linux.c (linux_gt_pch_get_address): Add new name
9224         randomize_va_space for virtual address randomization control.
9225
9226 2005-08-01  Steven Bosscher  <stevenb@suse.de>
9227
9228         * common.opt (flag_ipa_cp): Put in right place to maintain
9229         alphabetic sort.
9230
9231 2005-08-01  Jan Hubicka  <jh@suse.cz>
9232
9233         * profile.c (compute_value_histograms): Fix thinko.
9234         * value-prof.c: Include toplev.h
9235         (check_counter): New function.
9236         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9237         tree_mod_subtract_transform): Add sanity check.
9238
9239 2005-08-01  Richard Guenther  <rguenther@suse.de>
9240
9241         PR tree-optimization/23133
9242         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
9243         current functions parameter decls to find defs to cse
9244         reciprocals of.
9245
9246 2005-08-01  Richard Guenther  <rguenther@suse.de>
9247
9248         PR tree-optimization/23109
9249         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
9250         If trapping math is in effect, use post-dominator information
9251         to check if we'd in any case reach a trapping point before
9252         doing the reciprocal insertion.
9253         (execute_cse_reciprocals): Compute post-dominators, if necessary.
9254         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
9255         expressions are invariant only if trapping math is not in effect.
9256
9257 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9258
9259         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
9260         cgraph_function_versioning): New declarations.
9261         * cgraphunit.c: Add include to ipa-prop.h.
9262         (update_call_expr, cgraph_copy_node_for_versioning,
9263         cgraph_function_versioning): New functions.
9264         * integrate.c (copy_decl_for_inlining): Remove.
9265         * ipa-prop.h (ipa_replace_map): New struct.
9266         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
9267         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
9268         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
9269         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
9270         ipcp_iterate_stage, ipcp_method_scale_print,
9271         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
9272         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
9273         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
9274         ipcp_update_bb_counts, ipcp_update_profiling,
9275         ipcp_update_edges_counts): New functions.
9276         (ipcp_method_cval_init): Remove restriction regarding local methods.
9277         (ipcp_init_stage): Add ipcp_method_compute_scale.
9278         (ipcp_insert_stage): Add versioning.
9279         (ipcp_structures_print): Add ipcp_method_scale_print.
9280         (ipcp_driver): Dump profiling info.
9281         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
9282         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
9283         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
9284         (struct inline_data): Add versioning_p, ipa_info, new fields.
9285         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
9286         declare_return_variable): Replace calls to copy_decl_for_inlining with
9287         copy_decl_for_dup.
9288         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
9289         versioning support.
9290         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
9291         Add argument VERSIONING.
9292         (copy_arguments_for_versioning, copy_static_chain,
9293         function_versionable_p, tree_versionable_function_p,
9294         tree_function_versioning, replace_ref_tree): New functions.
9295         * tree-inline.h: Include varray.h.
9296         (tree_versionable_function_p,  tree_function_versioning,
9297         tree copy_decl_for_dup): New declarations.
9298
9299 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9300
9301         * ipa-cp.c: New file. Contains IPCP specific functionality.
9302         * ipa-prop.h: New file. Contains structures/definitions that can be
9303         used by several interprocedural data flow optimizations (and also IPCP).
9304         * ipa-prop.c: New file.
9305         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
9306         * common.opt: Add ipa-cp flag.
9307         * timevar.def: Add IPCP optimization.
9308         * tree-optimize.c (init_tree_optimization_passes): Schedule
9309         pass_ipa_cp.
9310         * tree-pass.h (pass_ipa_cp): Declare.
9311
9312 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
9313
9314         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
9315         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
9316         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
9317         config/i386/i386.c, config/mips/mips.h,
9318         config/rs6000/rs6000.h, config/sh/sh.c,
9319         config/stormy16/stormy16.c: Fix comment typos.
9320
9321 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
9322
9323         PR c/22311
9324         * c-typeck.c (build_binary_op): Use common_type wrapper on
9325         shortened types.
9326         (common_type): Update comment.
9327
9328 2005-07-31  Steven Bosscher  <stevenb@suse.de>
9329
9330         PR target/23095
9331         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
9332         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
9333         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
9334
9335 2005-07-31  Jan Hubicka  <jh@suse.cz>
9336
9337         * pretty-print.h (pp_widest_integer): New macro.
9338         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
9339         counts.
9340
9341 2005-07-31  Jan Hubicka  <jh@suse.cz>
9342
9343         * output.h (enum section_category): Export from varasm.c
9344         (categorize_decl_for_section): Likewise.
9345         * varasm.c (enum section_category): Kill.
9346         (categorize_decl_for_section): Make global.
9347         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
9348         Declare.
9349         * i386.c (ix86_section_threshold): New static variable.
9350         (ix86_in_large_data_p, ix86_encode_section_info,
9351         x86_64_elf_unique_section,
9352         x86_64_elf_select_section): New functions.
9353         (TARGET_ENCODE_SECTION_INFO): Define
9354         (override_options): Enable medium model for PIC.
9355         (ix86_expand_prologue): Expand gen_set_got_rex64.
9356         (legitimate_constant_p): Handle new UNSPECs.
9357         (legitimate_pic_address_disp_p): Likewise.
9358         (legitimize_pic_address): Lower MEDIUM model addressing.
9359         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
9360         (enum cmodel): Add MEDIUM_PIC.
9361         (SYMBOL_REF_FAR_ADDR_P): New macro.
9362         (SYMBOL_FLAG_FAR_ADDR): New flag.
9363         * i386.md (movdi): Support medium model.
9364         (set_got_rex64): New pattern.
9365         * i386.opt (mlarge-data-threshold): New flag.
9366         * predicates.md (zext_operand/sext_operand): Deal with medium model.
9367         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
9368         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
9369         TARGET_ASM_UNIQUE_SECTION): New.
9370
9371         * invoke.texi (-mlarge_data_threshold): Document
9372
9373 2005-07-31  Jan Hubicka  <jh@suse.cz>
9374
9375         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
9376         (coalesce_vars): Likewise.
9377         * tree-ssa-live.c (coalesce_cost): New.
9378         (build_tree_conflict_graph): Use coalesce_cost.
9379         * tree-ssa-live.h (coalesce_cost): Declare.
9380
9381 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
9382
9383         * arm.md (all peepholes for post-increment operations): Delete.
9384         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
9385         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
9386         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
9387         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
9388         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
9389
9390 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
9391
9392         * fold-const.c (tree_expr_nonnegative_p): Always return true for
9393         non-integral types.
9394
9395 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
9396
9397         PR target/22582
9398         * doc/invoke.texi: Document -rdynamic.
9399
9400 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
9401
9402         PR c/23143
9403         * c-parser.c (c_parser_parms_list_declarator): Call
9404         mark_forward_parm_decls.
9405         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
9406         decls with visibility structure.
9407
9408 2005-07-30  Paul Brook  <paul@codesourcery.com>
9409
9410         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
9411
9412 2005-07-30  Paul Brook  <paul@codesourcery.com>
9413
9414         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9415         prototype.
9416         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
9417         value for mode.
9418         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
9419
9420 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9421
9422         PR c/529
9423         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
9424         nested function declarators.
9425         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
9426         (grokparms): Call warn_if_shadowing for parameters used within the
9427         parameter list.
9428         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
9429         not used within the parameter list.
9430         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
9431
9432 2005-07-30  Jan Hubicka  <jh@suse.cz>
9433
9434         * expr.c (expand_expr_real_1): Do not load mem targets into register.
9435         * i386.c (ix86_fixup_binary_operands): Likewise.
9436         (ix86_expand_unary_operator): Likewise.
9437         (ix86_expand_fp_absneg_operator): Likewise.
9438         * optabs.c (expand_vec_cond_expr): Validate dest.
9439
9440 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9441
9442         PR c/21720
9443         * real.c (real_from_string): Also set last bit if there is a
9444         nonzero hex digit beyond GCC's internal precision after ".".
9445
9446 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
9447
9448         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
9449         define_constants.  Change duplicate values to unassigned numbers.
9450         Change UNSPEC_SUBS to UNSPEC_VSUBS.
9451         (*altivec_vspltsf): New.
9452         (altivec_vperm_v4sf): Delete.
9453         (altivec_vperm_<mode>): Use mode macro V.
9454         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
9455         (altivec_predicate_v4sf): Delete.
9456         (altivec_predicate_<mode>): Use mode macro V.
9457         (*altivec_lvesfx): New.
9458         (*altivec_stvesfx): New.
9459         (vec_realign_load_v4sf): Delete.
9460         (vec_realign_load_<mode>): Use mode macro V.
9461         * config/rs6000/rs6000.c (generate_set_vrsave): Use
9462         UNSPECV_SET_VRSAVE.
9463
9464 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
9465
9466         PR bootstrap/23131
9467         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
9468         string.
9469         * configure: Regenerated.
9470
9471 2005-07-29  Paul Brook  <paul@codesourcery.com>
9472
9473         * doc/install.texi: Add link to GFortran binaries wiki page.
9474
9475 2005-07-29  David Ung  <davidu@mips.com>
9476
9477         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
9478         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
9479         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
9480         * config/mips/mips.md (cpu): Add 5kf name.
9481         (includes): Includes 5k.md.
9482         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
9483         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
9484         -march flag.
9485
9486 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9487
9488         PR 22550
9489         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
9490         (cleanup_tree_cfg): ... here.
9491         Call cleanup_tree_cfg_1 until there are no more cleanups to
9492         do.
9493
9494 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
9495
9496         * tree-vrp.c (compare_range_with_value): Return true or false
9497         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
9498         EQ_EXPR respectively.
9499
9500 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
9501
9502         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
9503         Fix comment typos.
9504
9505 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9506
9507         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
9508         (tree_ssa_dominator_optimize): Increment it.
9509         (dump_dominator_optimization_stats): Print it.
9510
9511 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
9512             Steven Bosscher  <stevenb@suse.de>
9513
9514         PR rtl-optimization/23117
9515         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
9516         when head == tail.  Tidy comment.
9517
9518 2005-07-28  Richard Henderson  <rth@redhat.com>
9519
9520         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
9521         * cselib.c (rtx_equal_for_cselib_p): Likewise.
9522         * jump.c (rtx_renumbered_equal_p): Likewise.
9523         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
9524         CONST_INT and CONST_DOUBLE.
9525         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
9526         * reload.c (operands_match_p): Special case CONST_INT and
9527         CONST_DOUBLE; check mode earlier.
9528
9529 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9530
9531         PR c/22240
9532         * c-typeck.c (convert_for_assignment): Do not check
9533         DECL_IN_SYSTEM_HEADER on NULL fundecl.
9534
9535 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9536
9537         PR c/22192
9538         * c-typeck.c (composite_type): Prefer constant size arrays to
9539         VLAs.
9540
9541 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9542
9543         PR c/21720
9544         * real.c (real_from_string): Set last bit if there is a nonzero
9545         hex digit beyond GCC's internal precision.
9546
9547 2005-07-28  Richard Henderson  <rth@redhat.com>
9548
9549         PR rtl-opt/22619
9550         * cfgcleanup.c (try_forward_edges): Watch out for end of
9551         insn chain.
9552
9553 2005-07-28  James E Wilson  <wilson@specifixinc.com>
9554
9555         PR c/23106
9556         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
9557
9558 2005-07-28  Jan Hubicka  <jh@suse.cz>
9559
9560         * Makefile.in (rtl-profile.o): Kill all traces of it.
9561         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
9562         * coverage.h (rtl_coverage_counter_ref): Kill.
9563         * opts.c (flag_speculative_prefetching_set): Kill.
9564         (flag_loop_optimize_set): New.
9565         (common_handle_option): Disable loop optimizer when profiling;
9566         do not handle speculative prefetching.
9567         * passes.c (init_optimization_passes): Replace pass_profiling combo
9568         by branch_prob pass.
9569         * profile.c (compute_value_histograms): Update for simplified value
9570         profiles.
9571         (rtl_register_profile_hooks): Kill.
9572         (pass_profiling): Kill.
9573         (rest_of_handle_branch_prob): Do not profile.
9574         * toplev.c (process_options): Remove speculative prefetching.
9575         * toplev.h (flag_tree_based_profiling): Kill.
9576         * tree-profile.c (prepare_instrumented_value,
9577         tree_gen_interval_profiler, tree_gen_pow2_profiler,
9578         tree_gen_one_value_profiler, do_tree_profiling): Update for
9579         simplified datastructures.
9580         * value-prof.c: Add comment that speculative prefetching was dropped;
9581         update rest of file for simplified datastructures.
9582         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
9583         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
9584         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
9585         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
9586         rtl_mod_subtract, gen_speculative_prefetch,
9587         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
9588         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
9589         (gate_handle_value_profile_transformations,
9590         rest_of_handle_value_profile_transformations,
9591         pass_value_profile_transformations): Kill.
9592         * value-prof.h (histogram_value_t): Remove IL based unions.
9593         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
9594         rtl_profile_hooks): Remove hooks.
9595
9596         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
9597
9598         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
9599         (cgraph_clone_node): Likewise.
9600         * cgraph.h (cgraph_clone_edge): Update prototype.
9601         (cgraph_clone_node): Likewise.
9602         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
9603         cgraph_clone_node.
9604         (lookup_recursive_calls): Consider profile.
9605         (cgraph_decide_recursive_inlining): Fix updating; use new
9606         probability argument; use profile.
9607         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
9608         * tree-inline.c (copy_bb): Update clal of clone_edge.
9609         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
9610
9611         * invoke.texi (min-inline-recursive-probability): Document.
9612
9613 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
9614
9615         * doc/install.texi (Configuration): Update Valgrind homepage.
9616
9617 2005-07-28  Richard Henderson  <rth@redhat.com>
9618
9619         PR middle-end/21362
9620         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
9621         labels we want to delete.
9622         (cfg_layout_merge_blocks): Likewise.
9623
9624 2005-07-28  Richard Henderson  <rth@redhat.com>
9625
9626         PR target/17692
9627         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
9628         when expanding to nothing.
9629
9630 2005-07-28  Josh Conner  <jconner@apple.com>
9631
9632         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
9633         (cgraph_decide_inlining_of_small_functions): Likewise.
9634
9635 2005-07-28  Josh Conner  <jconner@apple.com>
9636
9637         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
9638         direction of badness if negative.
9639         (cgraph_default_inline_p): Add reason to parameters, and assign it
9640         a value.
9641         (cgraph_decide_inlining_of_small_functions): New parameter in call
9642         to cgraph_default_inline_p.
9643         (cgraph_decide_inlining_incrementally): Likewise.
9644         * cgraphunit.c (decide_is_function_needed): Likewise.
9645         * cgraph.h (cgraph_default_inline_p): Likewise.
9646
9647 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9648
9649         * builtins.c: Fix comment typo(s).
9650         * genautomata.c: Likewise.
9651         * gimplify.c: Likewise.
9652         * tree-dfa.c: Likewise.
9653         * tree-flow-inline.h: Likewise.
9654         * tree-into-ssa.c: Likewise.
9655         * tree-ssa-alias.c: Likewise.
9656         * tree-ssa-ccp.c: Likewise.
9657         * tree-ssa-copy.c: Likewise.
9658         * tree-ssa-dce.c: Likewise.
9659         * tree-ssa-dom.c: Likewise.
9660         * tree-ssa-operands.c: Likewise.
9661         * tree-tailcall.c: Likewise.
9662         * tree-vectorizer.c: Likewise.
9663         * tree-vrp.c: Likewise.
9664         * tree.c: Likewise.
9665
9666 2005-07-28  Jeff Law  <law@redhat.com>
9667
9668         * tree-vrp.c (test_for_singularity): Extracted from  ...
9669         (simplify_cond_using_ranges): Attempt to simplify a relational
9670         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
9671
9672 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
9673
9674         PR tree-optimization/22506
9675         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
9676         phis whose argument is constant.
9677
9678 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
9679
9680         PR rtl-optimization/18992
9681         Back out this patch:
9682           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9683           PR optimization/12142
9684           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
9685           uses of the register in the SET_SRC.  Remove unnecessary argument.
9686
9687         Replace it with this:
9688         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
9689         if flag_non_call_exceptions is set and the insn may trap, pass
9690         pc_rtx as dest for recursion.
9691         In SET_SRC part of SET case, if dest is already set, pass it down
9692         unchanged.
9693
9694 2005-07-28  Jan Hubicka  <jh@suse.cz>
9695
9696         * cfg.c (update_bb_profile_for_threading): Use RDIV.
9697         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
9698         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
9699         roundoff errors.
9700         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
9701         profile when available.
9702
9703 2005-07-28  Jan Beulich <jbeulich@novell.com>
9704
9705         * config/ia64/ia64.c (ia64_load_pair_ok): New.
9706         (ia64_print_operand): Describe and handle 'X'.
9707         (ia64_register_move_cost): Also handle FP_REGS.
9708         (ia64_preferred_reload_class): Likewise.
9709         (ia64_secondary_reload_class): Likewise.
9710         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
9711         it. Also check for ITANIUM_CLASS_FLDP.
9712         * config/ia64/ia64.h (FP_REGNO_P): New.
9713         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
9714         (reg_class): Add FP_REGS.
9715         (REG_CLASS_NAMES): Adjust for it.
9716         (REG_CLASS_CONTENTS): Likewise.
9717         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
9718         (REG_CLASS_FROM_LETTER): Handle 'x'.
9719         (CLASS_MAX_NREGS): Handle FP_REGS.
9720         (MEMORY_MOVE_COST): Likewise.
9721         * config/ia64/ia64.md (itanium_class): Add fldp.
9722         (type): Handle fldp.
9723         (movti_internal): More allowable operand combinations. Use ldfp8 when
9724         splitting unnecessary. Remove predicable attribute. Adjust
9725         itanium_class attribute.
9726         (smuldi3_highpart): Remove outdated comment.
9727         (mulditi3, umulditi3, rotlti3): New expanders.
9728         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
9729         (absti2): Disabled new insn for future reference.
9730         Respective new splitters.
9731         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
9732         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
9733         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
9734
9735 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
9736
9737         PR rtl-optimization/23047
9738         * simplify-rtx.c (simplify_const_relational_operation): Respect
9739         flag_wrapv for comparisons with ABS.
9740
9741 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
9742
9743         PR tree-optimization/22493
9744         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
9745         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
9746
9747 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
9748
9749         * config/frv/frv.opt (moptimize-membar): New.
9750
9751         * doc/invoke.texi: Document -moptimize-membar and its inverse.
9752
9753         * config/frv/frv.h: Remove machine_function definition.
9754
9755         * config/frv/frv.c (struct frv_io): New.
9756         (struct machine_function): Moved from frv.h.  Add has_membar_p.
9757         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
9758         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
9759         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
9760         (frv_optimize_membar_global, frv_optimize_membar): New functions.
9761         (frv_reorg): Call frv_optimize_membar when appropriate.
9762         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
9763         (frv_expand_builtin): Adjust calls accordingly.
9764         (frv_io_address_cookie): New function.
9765         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
9766         load or store rather than a special insn.  Add ccnstant address and
9767         io-type operands to the membar.
9768         (frv_ifcvt_modify_tests): Unsign regno.
9769         (frv_ifcvt_modify_tests): Same.
9770
9771         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
9772         UNSPEC_OPTIONAL_MEMBAR constant.
9773         (builtin_read_<mode>): Delete.
9774         (builtin_write_<mode>): Delete.
9775         ("optional_membar_<mode>"): Add operand.
9776
9777         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
9778         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
9779         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
9780         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
9781         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
9782         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
9783         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
9784         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
9785         * testsuite/gcc.target/frv/all-read-write-1.c: New.
9786
9787 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9788
9789         * df.c (df_uses_record): Handle SCRATCH.
9790
9791 2005-07-28  Steven Bosscher  <stevenb@suse.de>
9792
9793         PR debug/20161
9794         * passes.c (rest_of_decl_compilation): If decl is a type and
9795         we have encountered errors, don't emit debug information.
9796
9797 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
9798
9799         * params.def: Fixed comment.
9800
9801 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
9802
9803         PR target/19885
9804         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
9805         (TARGET_ASM_UNALIGNED_HI_OP): Add.
9806         (TARGET_ASM_UNALIGNED_SI_OP): Add.
9807
9808 2005-07-27  Steven Bosscher  <stevenb@suse.de>
9809
9810         PR c++/22003
9811         * varasm.c (assemble_start_function): Don't do anything that may
9812         require a CFG if the current function is a thunk.
9813
9814 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
9815
9816         * doc/install.texi (Prerequisites): Mention that perl is needed
9817         to do export control in libstdc++ targetting Darwin.
9818
9819 2005-07-27  Steven Bosscher  <stevenb@suse.de>
9820
9821         PR rtl-optimization/17808
9822         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
9823         (sched_insns_conditions_mutex_p): Split out from...
9824         (add_dependence): ...here.  But don't call it from here.
9825         (add_dependence_list): Check sched_insns_conditions_mutex_p
9826         before calling add_dependence.
9827         (add_dependence_list_and_free): Likewise.
9828         (fixup_sched_groups): Likewise.
9829         (sched_analyze_1): Likewise.
9830         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
9831         (sched_analyze): Likewise.
9832         (sched_analyze_insn): Likewise.
9833         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
9834         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
9835         dependencies on all COND_EXEC insns to jumps ending basic blocks
9836         when doing intrablock scheduling.
9837         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
9838
9839 2005-07-27  Jeff Law  <law@redhat.com>
9840
9841         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
9842         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
9843         equivalency sets, correctly handle the case were vr0 has an
9844         equivalency set, but vr1 does not.
9845
9846 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
9847
9848         PR tree-optimization/23073
9849         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
9850         vect_print_dump_info before fprintf.
9851
9852 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9853
9854         PR tree-optimize/22348
9855         * tree-ssa-loop-niter.c (number_of_iterations_cond):
9856         Fold the partial computation.
9857
9858 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9859
9860         PR tree-optimization/22325
9861         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
9862         Declare.
9863         * tree-scalar-evolution.c (scev_const_prop): Add generic final
9864         value replacement.
9865         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
9866         (force_var_cost): ... this function.
9867         (compute_phi_arg_on_exit): Export.
9868
9869 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9870
9871         PR tree-optimization/20773
9872         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
9873         edge.
9874
9875 2005-07-27  Richard Guenther  <rguenther@suse.de>
9876
9877         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
9878         Avoid pushing again if current struct contains only
9879         fields we decomposed.
9880
9881 2005-07-27  Jan Hubicka  <jh@suse.cz>
9882
9883         PR tree-optimization/22574
9884         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
9885         not available.
9886
9887         * tree-tailcall.c (decrease_profile): New function.
9888         (eliminate_tail_call): Use it.
9889
9890         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
9891         visibility flags correctly in whole program mode.
9892
9893 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
9894
9895         PR rtl-optimization/22472
9896         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
9897
9898 2005-07-26  Steven Bosscher  <stevenb@suse.de>
9899
9900         PR tree-optimization/22504
9901         * tree-complex.c (expand_complex_addition): Use 'code' instead
9902         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
9903
9904 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
9905
9906         * config.gcc (cpu_type): Add frv case.
9907         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
9908         (supported_defaults): Add fr550 case.
9909
9910 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
9911
9912         PR 22591
9913         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
9914         whether a pointer of type T * may point to objects of type T *.
9915
9916 2005-07-26  DJ Delorie  <dj@redhat.com>
9917
9918         * configure: Regenerate.
9919
9920 2005-07-26  Dale Johannesen  <dalej@apple.com>
9921
9922         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
9923
9924 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
9925
9926         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
9927         Clarify use of "build" in name.
9928
9929 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
9930
9931         * doc/extend.texi (Raw read/write Functions): New section.
9932         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
9933         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
9934         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
9935         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
9936         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
9937         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
9938         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
9939         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
9940         * config/frv/frv.c: Add bdesc_loads global.
9941         Add bdesc_stores global.
9942         (frv_init_builtins): Add support for __builtin_{read/write}*.
9943         (frv_volatile_memref): New.
9944         (frv_expand_load_builtin): New.
9945         (frv_expand_store_builtin): New.
9946         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
9947         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
9948         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
9949         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
9950         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
9951         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
9952         (builtin_read_<mode>): New.
9953         (builtin_write_<mode>): New.
9954         (builtin_write64): New.
9955         (optional_membar_<mode>): New.
9956
9957 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
9958
9959         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
9960         (rather than units) against HOST_BITS_PER_WIDE_INT.
9961
9962 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
9963
9964         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
9965         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
9966         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
9967         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
9968         FSF address.
9969
9970         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
9971         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
9972         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
9973         comment typos.
9974         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
9975
9976 2005-07-26  Richard Guenther  <rguenther@suse.de>
9977
9978         PR tree-optimization/22486
9979         * fold-const.c (fold_unary): Fold away useless component
9980         references of the form (T *)&T.x, if the address
9981         doesn't change.
9982
9983 2005-07-25  James E Wilson  <wilson@specifixinc.com>
9984
9985         * dwarf2out.c (add_call_src_coords_attributes): New.
9986         (gen_inlined_subroutine_die): Call it.
9987         (maybe_emit_file, init_file_table): Add comments.
9988         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
9989         maybe_emit_file.
9990         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
9991         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
9992         * tree.h (BLOCK_SOURCE_LOCATION): New.
9993         (struct tree_block): New field locus.
9994
9995 2005-07-26  Andreas Schwab  <schwab@suse.de>
9996
9997         PR rtl-optimization/23043
9998         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
9999         when allocating a struct unoccr.
10000
10001 2005-07-25  Richard Henderson  <rth@redhat.com>
10002
10003         PR 22626
10004         * tree-complex.c (gate_no_optimization): True if errors.
10005         * Makefile.in (tree-complex.o): Update dependencies.
10006
10007 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
10008
10009         * config/frv/predicates.md (integer_register_operand): Use
10010         GPR_AP_OR_PSEUDO_P.
10011
10012 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
10013
10014         PR tree-opt/22484
10015         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
10016         after fold.
10017         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
10018
10019 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
10020
10021         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
10022         types when flag_unsafe_math_optimizations is true.
10023
10024 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
10025
10026         * gcc.c (option_map): Add --sysroot.
10027         (process_command): Handle --sysroot.
10028         (display_help): Document it.
10029         * doc/cppopts.tex (-isysroot): Document.
10030         * doc/invoke.texi (--sysroot): Document.
10031         * doc/install.texi (--with-build-sysroot): Document.
10032
10033         * Makefile.in (inhibit_libc): New variable.
10034         (INHIBIT_LIBC_CFLAGS): Likewise.
10035         (LIBGCC2_CFLAGS): Include
10036         $(INHIBIT_LIBC_CFLAGS).
10037         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
10038         ($(T)crtbegin.o): Do not use @inhibit_libc@.
10039         ($(T)crtend.o): Likewise.
10040         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
10041         ($(T)crtendS.o): Likewise.
10042         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
10043         ($(T)crtendT.o): Likewise.
10044         (stmp-fixinc): Do not complain about missing headers if
10045         inhibit_libc.
10046         * configure.ac (inhibit_libc): Set it to true/false.
10047         (--with-build-sysroot): New option.  Use it to set
10048         SYSTEM_HEADER_DIR.
10049         * configure: Regenerated.
10050
10051 2005-07-25  Manfred Hollstein  <mh@suse.com>
10052
10053         * calls.c (store_one_arg): Fix unsigned comparison warning.
10054
10055 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10056
10057         PR other/22337
10058         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
10059         (ggc_print_statistics): Initialize variable before use.
10060
10061 2005-07-25  Richard Guenther  <rguenther@suse.de>
10062
10063         * tree-dfa.c (mark_new_vars_to_rename): Protect against
10064         calling with a PHI_NODE argument.
10065
10066         * tree-flow-inline.h (overlap_subvar): Protect against
10067         possible overflow.
10068
10069 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
10070
10071         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
10072         * configure: Regenerate.
10073
10074 2005-07-25  Ira Rosen  <irar@il.ibm.com>
10075
10076         * expr.c (highest_pow2_factor): Make extern.
10077         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
10078         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
10079         record_array_differ_p, array_ptr_differ_p): Likewise.
10080         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
10081         additional cases. Call the above functions.
10082         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
10083         base_object_differ_p when there are two base objects. Otherwise, compare
10084         base address and offset. Call may_alias_p.
10085         (dump_data_reference): Use a correct field name.
10086         (analyze_array): Make static. Initialize new data-ref fields.
10087         (analyze_indirect_ref): New function.
10088         (init_data_ref): Initialize new data-ref fields.
10089         (strip_conversion): Moved from tree-vect-analyze.c.
10090         (analyze_offset_expr, get_ptr_offset, address_analysis,
10091         object_analysis): Likewise.
10092         (analyze_offset): New function.
10093         (create_data_ref): Likewise.
10094         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
10095         dimensions for ARRAY_REFs only.
10096         (build_classic_dist_vector): Make static.
10097         (access_functions_are_affine_or_constant_p): Call macro to get the
10098         address of access functions.
10099         (compute_all_dependences): Add new parameter
10100         compute_self_and_read_read_dependences. Compute self and read-read
10101         dependences if it is true.
10102         (find_data_references_in_loop): Call create_data_ref. Initialize new
10103         data-ref fields.
10104         (compute_data_dependences_for_loop): Add new parameter
10105         compute_self_and_read_read_dependences. Remove parameter nb_loops,
10106         compute nb_loops. Call compute_all_dependences,
10107         build_classic_dist_vector and build_classic_dir_vector with correct
10108         parameters.
10109         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
10110         with correct parameters. Compare dimensions for ARRAY_REFs only.
10111         (free_data_refs): Call macro to free access functions.
10112         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
10113         fields from stmt_vinfo.
10114         (struct base_object_info): New structure.
10115         (struct data_reference): Move fields to base_object_info. Add fields
10116         first_location and object_info for above structures. Move fields from
10117         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
10118         aligned_to.  Add macros to access the new fields.
10119         Update functions declarations.
10120         * tree-flow.h (is_aliased_with): Declare.
10121         * tree-loop-linear.c (linear_transform_loops): Call
10122         compute_data_dependences_for_loop with correct parameters.
10123         * tree-ssa-alias.c (is_aliased_with): New function.
10124         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
10125         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
10126         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
10127         vect_base_addr_differ_p, compute_subscript_distance and
10128         build_classic_dist_vector. Add printings. Check absolute value of
10129         distance.
10130         (vect_analyze_data_ref_dependences): Go through ddrs instead of
10131         data-refs.
10132         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
10133         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
10134         to bytes. Add printing.
10135         (vect_compute_data_refs_alignment): Go through loads and stores in one
10136         loop.
10137         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
10138         vect_analyze_data_ref_access): Likewise.
10139         (vect_analyze_pointer_ref_access): Remove.
10140         (vect_address_analysis, vect_object_analysis): Likewise.
10141         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
10142         and analyze data-refs in the loop.
10143         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
10144         fields of data-ref instead of stmt. Add init to the offset from the
10145         base.
10146         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
10147         (vect_update_init_of_dr): Likewise.
10148         (vect_update_inits_of_drs): Go through loads and stores in one loop.
10149         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
10150         removed fields.
10151         (new_loop_vec_info): Initialize new fields.
10152         (destroy_loop_vec_info): Free new fields.
10153         (vect_strip_conversion): Remove.
10154         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
10155         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
10156         datarefs. Add new field ddrs.
10157         Add macros for the new fields access.
10158         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
10159         base_aligned_p, misalignment, memtag, ptr_info and subvars.
10160         Remove their macros.
10161         * tree.h (highest_pow2_factor): Declare.
10162
10163 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
10164
10165         * calls.c (store_one_arg): Check for sibling call MEM arguments
10166         from already clobbered incoming argument area.
10167
10168 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10169
10170         * c-common.c (check_missing_format_attribute): New.
10171         * c-common.h (check_missing_format_attribute): Likewise.
10172         * c-typeck.c (convert_for_assignment): Use it.
10173
10174 2005-07-24  Andreas Schwab  <schwab@suse.de>
10175
10176         * config/m68k/m68k.md ("extendqidi2"): When source is an address
10177         register use a word move.  Correct operand of ext.w in 68000 code.
10178
10179 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
10180
10181         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
10182         variables as declarations, rather than definitions.
10183
10184 2005-07-24  Ira Rosen  <irar@il.ibm.com>
10185
10186         PR tree-optimization/22526
10187         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
10188         of the zero node.
10189
10190 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10191
10192         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
10193         that C99 reserve for future use. Use it to define clog10,
10194         clog10f and clog10l.
10195
10196 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10197
10198         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
10199         * configure.ac: Check for -Wmissing-format-attribute.
10200
10201         * configure: Regenerate.
10202
10203 2005-07-23  Richard Henderson  <rth@redhat.com>
10204
10205         PR tree-optimization/22623
10206         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
10207
10208 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
10209
10210         PR target/22577
10211         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
10212
10213 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10214
10215         * Makefile.in (C_TREE_H): Update dependencies.
10216         * c-tree.h: Include toplev.h.
10217         * diagnostic.h (diagnostic_set_info): Add format attribute.
10218         * rtl-error.c (diagnostic_for_asm): Likewise.
10219
10220 2005-07-23  Chao-ying Fu  <fu@mips.com>
10221
10222         * config/mips/mips-dsp.md: New file.
10223         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
10224         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
10225         functions.
10226         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
10227         MIPS_BUILTIN_BPOSGE32.
10228         (mips_expand_builtin_direct): Add one parameter to indicate that
10229         builtin functions need to return a value.
10230         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
10231         functions.
10232         (mips_regno_to_class): Add classes for 12 new DSP registers.
10233         (mips_subword): Change to check four HI registers.
10234         (mips_output_move): Output move to and from 6 new DSP accumulators.
10235         (override_options): Make sure -mdsp and -mips16 are not used together.
10236         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
10237         for machine modes.
10238         (mips_conditional_register_usage): Disable 6 new DSP accumulators
10239         when !TARGET_DSP.
10240         (print_operand): Add 'q' for printing DSP accumulators.
10241         (mips_cannot_change_mode_class): Check ACC_REGS.
10242         (mips_secondary_reload_class): Check ACC_REGS.
10243         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
10244         (mips_register_move_cost): Check ACC_REGS.
10245         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
10246         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
10247         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
10248         (dsp_bdesc): New array.
10249         (bdesc_arrays): Add DSP builtin function table.
10250         (mips_prepare_builtin_arg): Check predicate again after
10251         copy_to_mode_reg.
10252         (mips_expand_builtin): Add one more parameter to
10253         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
10254         MIPS_BUILTIN_BPOSGE32.
10255         (mips_init_builtins): Initialize new function types.
10256         (mips_expand_builtin_direct): Check if builtin functions need to
10257         return a value and pass operands properly.
10258         (mips_expand_builtin_bposge): New function.
10259         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
10260         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
10261         (FIRST_PSEUDO_REGISTER): Increase to 188.
10262         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
10263         Update for 12 new DSP registers.
10264         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
10265         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
10266         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
10267         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
10268         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
10269         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
10270         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
10271         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
10272         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
10273         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
10274         (REGISTER_NAMES): Add names for 12 new DSP registers.
10275         * config/mips/mips.md: Include mips-dsp.md.
10276         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
10277         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
10278         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
10279         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
10280         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
10281         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
10282         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
10283         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
10284         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
10285         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
10286         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
10287         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
10288         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
10289         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
10290         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
10291         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
10292         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
10293         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
10294         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10295         (UNSPEC_RDDSP): New constants.
10296         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
10297         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
10298         A<-d alternative.
10299         * config/mips/mips.opt (-mdsp): New option.
10300         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
10301         (reg_imm10_operand): New predicates.
10302         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
10303         * doc/invoke.texi (-mdsp): Document new option.
10304
10305 2005-07-22  DJ Delorie  <dj@redhat.com>
10306
10307         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
10308         to warning calls.
10309         * tree-inline.c (inlinable_function_p): Likewise.
10310
10311 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
10312
10313         PR debug/21828
10314         * toplev.c (check_global_declarations): Do not mark undefined
10315         variables as DECL_IGNORED_P.
10316         * varasm.c (first_global_object_name): GTY it.
10317         (weak_global_object_name): Likewise.
10318         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
10319         a string to go into {weak,first}_global_object_name.
10320
10321 2005-07-22  DJ Delorie  <dj@redhat.com>
10322
10323         * c-format.c (check_function_format): Change warning control
10324         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
10325
10326 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
10327
10328         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
10329         &PTR->FLD a dereference of PTR.
10330         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
10331         a potential dereference of PTR.
10332
10333 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
10334
10335         PR rtl-optimization/20370
10336         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
10337         call allocate_reg_info if necessary.
10338
10339         PR rtl-optimization/21848
10340         * calls.c (emit_library_call_value_1): For const functions, add
10341         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
10342
10343         PR rtl-optimization/22445
10344         * cselib.c (target.h): Include.
10345         (rtx_equal_for_cselib_p): Allow commutative matches.
10346         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
10347         Remove MODE parameter.  Changed all callers.
10348
10349         PR rtl-optimization/22258
10350         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
10351         New functions.
10352         (try_combine): Use likely_spilled_retval_p.
10353
10354 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
10355
10356         * config.gcc: Add crx-elf support.
10357
10358         * doc/contrib.texi: Mention crx.
10359         * doc/extend.texi: Document crx extensions.
10360         * doc/install.texi: Document crx install.
10361         * doc/invoke.texi: Document crx options.
10362         * doc/md.texi: Document crx constraints.
10363
10364         * config/crx/crx-protos.h: New file.
10365         * config/crx/crx.c: New file.
10366         * config/crx/crx.h: New file.
10367         * config/crx/crx.md: New file.
10368         * config/crx/crx.opt: New file.
10369         * config/crx/t-crx: New file.
10370
10371 2005-07-22  Manfred Hollstein  <mh@suse.com>
10372
10373         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
10374         warnings.
10375         (int_add_graph_edge): Likewise.
10376         (collapse_nodes): Likewise.
10377         (process_unification_queue): Likewise.
10378
10379 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10380             Laurent GUERBY  <laurent@guerby.net>
10381
10382         PR tree-optimization/22336
10383         * function.c (record_block_change): Check for
10384         cfun->ib_boundaries_block.
10385
10386 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
10387
10388         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
10389         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
10390
10391 2005-07-21  DJ Delorie  <dj@redhat.com>
10392
10393         * toplev.c (warn_deprecated_use): Add warning control to warning
10394         call.
10395         * c-typeck.c (parser_build_binary_op): Likewise.
10396         (c_finish_if_stmt): Likewise.
10397         * c-common.c (check_function_sentinel): Likewise.
10398         (check_nonnull_arg): Likewise.
10399
10400 2005-07-21  Richard Henderson  <rth@redhat.com>
10401
10402         PR tree-opt/22504
10403         * tree-complex.c (complex_ssa_name_components): New.
10404         (cvc_lookup): Allow entry not found.
10405         (create_components): Remove.
10406         (create_one_component_var, get_component_var): New.
10407         (get_component_ssa_name, set_component_ssa_name): New.
10408         (extract_component): Use get_component_ssa_name.
10409         (update_complex_components): Use set_component_ssa_name.
10410         (update_complex_components_on_edge): Likewise.
10411         (update_phi_components): Create new PHI nodes directly, instead
10412         of adding insns to edges.
10413         (tree_lower_complex): Allocate and free complex_variable_components
10414         and complex_ssa_name_components here.
10415
10416 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
10417
10418         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
10419         revert to returning false.
10420
10421 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10422
10423         PR target/21149
10424         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
10425
10426 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10427
10428         PR target/22576
10429         * config/i386/i386.md (cmpxf): Change operand constraints
10430         to "nonmemory_operand".
10431
10432 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10433
10434         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
10435
10436 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10437
10438         PR middle-end/21180
10439         * fold-const.c (fold_build1): Add checksum for the operands.
10440         (fold_build2): Likewise.
10441         (fold_build3): Likewise.
10442
10443 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10444
10445         PR middle-end/19055
10446         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
10447
10448 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10449
10450         * common.opt (-fforward-propagate): Committed by mistake,
10451         removed.
10452
10453 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10454
10455         * reg-stack.c: Fix comment typo(s).
10456         * tree-ssa-operands.c: Likewise.
10457         * tree-vectorizer: Likewise.
10458
10459 2005-07-21  Nick Clifton  <nickc@redhat.com>
10460
10461         * config/sh/symbian.c: Replace C++ style line comments with C
10462         style line comments.
10463         (symbian_add_attribute): Do not use a ? operator on the LHS of
10464         an assignment.
10465         (sh_symbian_handle_dll_attribute): Change the type of the
10466         method vector to "VEC(tree,gc)*" and use vector accessor
10467         macros to walk over the elements.
10468         (symbian_export_vtable_and_rtti_p): Likewise.
10469         (symbian_class_needs_attribute_p): Likewise.
10470
10471 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10472
10473         PR target/22085
10474         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
10475         initialize targetm.resolve_overloaded_builtin here.
10476         (altivec_expand_overloaded_builtin): Make it non-static.
10477         * config/rs6000/rs6000-protos.h
10478         (altivec_expand_overloaded_builtin): New prototype.
10479         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
10480         targetm.resolve_overloaded_builtin here.
10481         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
10482
10483 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10484             Zdenek Dvorak  <dvorakz@suse.cz>
10485
10486         PR tree-optimization/19210
10487         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
10488         New.
10489         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
10490         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
10491         rely on unproven assumptions.
10492         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
10493         * tree-flow.h (number_of_iterations_exit): Add final parameter.
10494         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
10495         to number_of_iterations_exit.
10496         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
10497         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
10498         * tree-ssa-loop-niter.c (find_loop_niter,
10499         estimate_numbers_of_iterations_loop): Likewise.
10500         (number_of_iterations_exit): Honor the new options.
10501         * doc/invoke.texi (Wunsafe-loop-optimizations,
10502         funsafe-loop-optimizations): Document them.
10503
10504 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
10505
10506         PR rtl-optimization/22167
10507         * gcse.c (hoist_code): Fix hoist_exprs[] check.
10508
10509 2005-07-20  Adam Nemet  <anemet@lnxw.com>
10510
10511         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
10512         __do_global_dtors_aux longcall.
10513
10514 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
10515
10516         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
10517         (old_special_pred_table): Don't reference
10518         SPECIAL_MODE_PREDICATES.
10519         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
10520         * config/arc/arc.h: Don't mention PREDICATE_CODES.
10521         * config/sh/predicates.h: Don't mention
10522         SPECIAL_MODE_PREDICATES.
10523         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
10524         Remove.
10525
10526 2005-07-20  DJ Delorie  <dj@redhat.com>
10527
10528         * config.gcc: Add m32c-elf support.
10529
10530         * doc/contrib.texi: Mention m32c.
10531         * doc/extend.texi: Document m32c extensions.
10532         * doc/install.texi: Mention m32c.
10533         * doc/invoke.texi: Document m32c options.
10534         * doc/md.texi: Document m32c constraints.
10535
10536         * config/m32c/addsub.md: New file.
10537         * config/m32c/bitops.md: New file.
10538         * config/m32c/cond.md: New file.
10539         * config/m32c/jump.md: New file.
10540         * config/m32c/m32c-lib1.S: New file.
10541         * config/m32c/m32c-lib2.c: New file.
10542         * config/m32c/m32c-modes.def: New file.
10543         * config/m32c/m32c-pragma.c: New file.
10544         * config/m32c/m32c-protos.h: New file.
10545         * config/m32c/m32c.abi: New file.
10546         * config/m32c/m32c.c: New file.
10547         * config/m32c/m32c.h: New file.
10548         * config/m32c/m32c.md: New file.
10549         * config/m32c/m32c.opt: New file.
10550         * config/m32c/minmax.md: New file.
10551         * config/m32c/mov.md: New file.
10552         * config/m32c/muldiv.md: New file.
10553         * config/m32c/predicates.md: New file.
10554         * config/m32c/prologue.md: New file.
10555         * config/m32c/shift.md: New file.
10556         * config/m32c/t-m32c: New file.
10557
10558 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10559
10560         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
10561         (stack_protect_set, stack_protect_test): New expanders.
10562         (stack_protect_set_si, stack_protect_set_si_media,
10563         stack_protect_set_di_media, stack_protect_test_si,
10564         stack_protect_test_si_media, stack_protect_test_di_media):
10565         New insns.
10566
10567 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
10568
10569         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
10570
10571 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
10572
10573         * tree.h (tree_expr_nonzero_p): Export.
10574         * fold-const.c (tree_expr_nonzero_p): Likewise.
10575         Return true for CALL_EXPRs that are alloca calls.
10576         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
10577         against zero.
10578         * tree-flow.h (expr_computes_nonzero): Remove.
10579         * tree-vrp.c (expr_computes_nonzero): Remove.
10580         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
10581         (extract_range_from_unary_expr): Likewise.
10582         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
10583         tree_expr_nonzero_p.
10584
10585 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
10586
10587         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
10588         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
10589         extra arg "picreg" and use it instead of pic_offset_table_rtx.
10590         All callers changed.
10591         (frame_related_constant_load): New arg "related" which controls
10592         setting of RTX_FRAME_RELATED_P.  All callers changed.
10593         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
10594         (bfin_expand_prologue): Add stack limit checking.
10595         * config/bfin/bfin.md (trapifcc): New pattern.
10596
10597         * config/bfin/bfin.c: Include "langhooks.h".
10598         (def_builtin): Go through lang_hooks to call builtin_function.
10599
10600         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
10601         * config/bfin/predicates.md (symbol_ref_operand): New.
10602         (call_insn_operand): Delete.  All callers changed to use
10603         register_no_elim_operand.
10604         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
10605         call_cookie field.
10606         (function_arg): Use it to generate the call's operand 2.
10607         (bfin_longcall_p): New function.
10608         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
10609         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
10610         determine if the address needs to be in a REG.
10611         (bfin_handle_longcall_attribute): New function.
10612         (bfin_attribute_table): Add "longcall" and "shortcall".
10613         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
10614         (CUMULATIVE_ARGS): New member call_cookie.
10615         (PREDICATE_CODES): Add symbol_ref_operand.
10616         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
10617         extra USE to the pattern.
10618         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
10619         New patterns, split off call_insn, sibcall_insn, call_value_insn and
10620         sibcall_value_insn; now the new patterns handle direct calls and the
10621         old ones indirect calls.
10622         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
10623
10624 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
10625
10626         * doc/trouble.texi: Update section on handling of empty loops.
10627
10628 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
10629
10630         * config.gcc: Remove support for sparc-*-openbsd*,
10631         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
10632         ns32k-*-netbsd*.
10633         * config.host: Remove support for i860-*-sysv4* as a host.
10634         * config/i860/*, config/ip2k/*, config/ns32k/*,
10635         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
10636         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
10637         mention obsolete ports.
10638
10639 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10640
10641         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
10642         soft frame pointer.
10643         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
10644         of frame_pointer_rtx.
10645         (sh_expand_epilogue): Likewise.
10646         (sh_set_return_address): Likewise.
10647         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
10648         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
10649         offsets from FRAME_POINTER_REGNUM.
10650         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
10651         (sh_register_names): Add initializer for sfp.
10652         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
10653         (VALID_REGISTER_P): Likewise.
10654         (FIRST_PSEUDO_REGISTER): Update.
10655         (DWARF_FRAME_REGISTERS): Define.
10656         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
10657         (HARD_FRAME_POINTER_REGNUM): Define.
10658         (FRAME_POINTER_REGNUM): Redefine.
10659         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
10660         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
10661         from FRAME_POINTER_REGNUM.
10662         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
10663         FRAME_POINTER_REGNUM.
10664         (REG_CLASS_CONTENTS): Add sfp.
10665         (REG_ALLOC_ORDER): Likewise.
10666         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
10667         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
10668         of frame_pointer_rtx.
10669         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10670
10671 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
10672
10673         * fold-const.c (tree_expr_nonnegative_p): Only return true for
10674         ABS_EXPR when flag_wrapv is false because of INT_MIN.
10675         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
10676         of an ABS_EXPR.
10677         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
10678         ABS_EXPR<x>.
10679
10680 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
10681
10682         Make CONSTRUCTOR use VEC to store initializers.
10683         * c-common.c (complete_array_type): Update to cope with VEC in
10684         CONSTRUCTOR_ELTS.
10685         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
10686         (pp_c_constructor_elts): New function.
10687         * c-pretty-print.h (pp_c_constructor_elts): Declare.
10688         * c-typeck.c (build_function_call, build_c_cast, digest_init,
10689         struct constructor_stack, struct initializer_stack,
10690         constructor_elements, push_init_level, pop_init_level,
10691         add_pending_init, find_init_member, output_init_element): Update to
10692         cope with VEC in CONSTRUCTOR_ELTS.
10693         * coverage.c (build_fn_info_value, build_ctr_info_value,
10694         build_gcov_info): Likewise.
10695         * expr.c (categorize_ctor_elements_1, store_constructor,
10696         expand_expr_real_1): Likewise.
10697         * fold-const.c (fold_ternary): Likewise.
10698         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
10699         gimplify_init_constructor, gimplify_expr): Likewise.
10700         * tree-dump.c (dequeue_and_dump): Likewise.
10701         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
10702         node.
10703         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
10704         CONSTRUCTOR_ELTS.
10705         * tree-sra.c (generate_element_init_1): Likewise.
10706         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
10707         * tree-ssa-operands.c (get_expr_operands): Likewise.
10708         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10709         * tree-vect-transform.c (vect_get_vec_def_for_operand):
10710         (get_initial_def_for_reduction): Likewise.
10711         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
10712         value handle in annotations.
10713         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
10714         tree_node_structure): Add support for constr_kind.
10715         (build_vector_from_ctor, build_constructor_single,
10716         build_constructor_from_list): New functions.
10717         (build_constructor): Update to take a VEC instead of a TREE_LIST.
10718         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
10719         Update to cope with VEC in CONSTRUCTOR_ELTS.
10720         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
10721         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
10722         CONSTRUCTOR_APPEND_ELT): New macros.
10723         (struct constructor_elt, struct tree_constructor): New data types.
10724         (union tree_node): Add tree_constructor field.
10725         * treestruct.def: Define TS_CONSTRUCTOR.
10726         * varasm.c (const_hash_1, compare_constant, copy_constant,
10727         compute_reloc_for_constant, output_addressed_constants,
10728         initializer_constant_valid_p, output_constant,
10729         array_size_for_constructor, output_constructor): Update to cope with
10730         VEC in CONSTRUCTOR_ELTS.
10731         * vec.h (VEC_empty, VEC_copy): New macros.
10732
10733 2005-07-19  Devang Patel  <dpatel@apple.com>
10734
10735         * dbxout.c (dbxout_type): Check Objective-C++ lang.
10736
10737 2005-07-19  Richard Henderson  <rth@redhat.com>
10738
10739         PR tree-opt/22278
10740         * gimplify.c (gimplify_expr): Use main variant type for the temp
10741         destination for a discarded volatile read.
10742         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
10743         casts between non-void types that change volatility.
10744
10745 2005-07-15  DJ Delorie  <dj@redhat.com>
10746
10747         * toplev.h: Add comment about the first parameter for warning().
10748         * errors.h: Likewise.
10749
10750         * c.opt (Wpragmas): New.
10751         * doc/invoke.texi: Document it.
10752
10753         * function.c (do_warn_unused_parameter): Add warning control to
10754         warning call.
10755         * c-decl.c (warn_if_shadowing): Likewise.
10756         * c-lex.c (cb_def_pragma): Likewise.
10757         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
10758         (pop_alignment): Likewise.
10759         (handle_pragma_pack): Likewise.
10760         (apply_pragma_weak): Likewise.
10761         (handle_pragma_weak): Likewise.
10762         (handle_pragma_redefine_extname): Likewise.
10763         (add_to_renaming_pragma_list): Likewise.
10764         (handle_pragma_extern_prefix): Likewise.
10765         (maybe_apply_renaming_pragma): Likewise.
10766         (handle_pragma_visibility): Likewise.
10767
10768         * config/c4x/c4x-c.c (BAD): Likewise.
10769         (c4x_parse_pragma): Likewise.
10770         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
10771         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
10772         (rs6000_pragma_longcall): Likewise.
10773         * config/v850/v850-c.c (pop_data_area): Likewise.
10774         (ghs_pragma_section): Likewise.
10775         (ghs_pragma_section): Likewise.
10776         (ghs_pragma_interrupt): Likewise.
10777         (ghs_pragma_starttda): Likewise.
10778         (ghs_pragma_startsda): Likewise.
10779         (ghs_pragma_startzda): Likewise.
10780         (ghs_pragma_endtda): Likewise.
10781         (ghs_pragma_endsda): Likewise.
10782         (ghs_pragma_endzda): Likewise.
10783
10784 2005-07-19  Danny Berlin <dberlin@dberlin.org>
10785             Kenneth Zadeck <zadeck@naturalbridge.com>
10786
10787         * Makefile.in: Removed tree-promote-statics.c
10788         * tree-promote-statics.c: Removed.
10789         * common.opt: Removed flag-promote-statics.
10790         * opts.c: Ditto.
10791         * passes.c: Removed tree-promote-statics pass.
10792         * tree-pass.h: Ditto.
10793         * timevar.def: Removed TV_PROMOTE_STATICS.
10794
10795
10796 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
10797
10798         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
10799         and *-*-freebsd9.
10800         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
10801
10802 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10803
10804         PR c/22476
10805         * c-common.c (check_function_arguments): Call
10806         'check_function_format' if either -Wformat or
10807         -Wmissing-format-attribute are specified.
10808         * c-format.c (check_function_format): Check -Wformat before
10809         calling 'check_format_info'.
10810         * c-opts.c (c_common_post_options): Don't warn for
10811         -Wmissing-format-attribute without -Wformat.
10812         * c-typeck.c (convert_for_assignment): Detect additional cases for
10813         -Wmissing-format-attribute.
10814         * doc/invoke.texi (-Wmissing-format-attribute): Document new
10815         behavior.
10816
10817 2005-07-19  Richard Guenther  <rguenther@suse.de>
10818
10819         * config/i386/i386.md (lrint<mode>2): Use temporary
10820         instead of clobbering non-existent memory.
10821
10822 2005-07-19  Nick Clifton  <nickc@redhat.com>
10823
10824         * config/avr/avr.c (legitimate_address_p): Fix debugging print
10825         statement to avoid displaying ASCII control characters.
10826
10827 2005-07-19  Ben Elliston  <bje@au.ibm.com>
10828
10829         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
10830         * cfganal.c (find_edge_index): Ditto.
10831         * combine.c (combine_instructions): Ditto.
10832         * ddg.c (create_scc): Ditto.
10833         (find_successors): Ditto.
10834         (find_predecessors): Ditto.
10835         (find_nodes_on_paths): Ditto.
10836         (longest_simple_path): Ditto.
10837         * flow.c (update_life_info): Ditto.
10838         (count_or_remove_death_notes): Ditto.
10839         (clear_log_links): Ditto.
10840         * modulo-sched.c (generate_reg_moves): Ditto.
10841         (find_max_asap): Ditto.
10842         (find_max_hv_min_mob): Ditto.
10843         (find_max_dv_min_mob): Ditto.
10844         * sbitmap.c (sbitmap_first_set_bit): Ditto.
10845         * sched-rgn.c (extract_edgelst): Ditto.
10846         * tree-into-ssa.c (prepare_names_to_update): Ditto.
10847         (dump_update_ssa): Ditto.
10848         (ssa_names_to_replace) Ditto.
10849         (switch_virtuals_to_full_rewrite): Ditto.
10850         (update_ssa): Ditto.
10851         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
10852
10853 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
10854
10855         Fix PR tree-optimization/22483
10856
10857         * tree-complex.c (create_components): Use
10858         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
10859         * tree-flow-inline.h (fill_referenced_var_vec): New function.
10860         * tree-flow.h (safe_referenced_var_iterator): New structure.
10861         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
10862         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
10863         safe_referenced_var iterator.
10864         (add_type_alias): Ditto.
10865
10866 2005-07-19  Steven Bosscher  <stevenb@suse.de>
10867
10868         * loop-init.c (rest_of_handle_loop2): Remove.
10869         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
10870         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
10871         (pass_rtl_loop_init, pass_rtl_loop_done,
10872         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
10873         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
10874         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
10875         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
10876         pass_tree_loop_done, and pass_tree_unswitch.
10877         (gate_loop): Rename to gate_tree_loop.
10878         * passes.c (init_optimization_passes): Update for renamed tree
10879         loop passes.  Add the new loop2 passes as subpasses of loop2.
10880         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
10881         Update for the renamed tree loop passes.
10882
10883 2005-07-18  Ian Lance Taylor  <ian@airs.com>
10884
10885         PR middle-end/22057
10886         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
10887         blocks when optimizing.
10888
10889 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
10890
10891         * common.opt (frename-registers): Initialize to 2.
10892         (fweb): Ditto.
10893         (fgcse-after-reload): Ditto.
10894         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
10895         (process_options): Only change flag_web, flag_rename_registers,
10896         and flag_rerun_cse_after_loop if not explicitly set by user.
10897
10898 2005-07-18  Jan Beulich  <jbeulich@novell.com>
10899
10900         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
10901         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
10902         in 64-bit mode the same as DImode in 32-bit mode.
10903         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
10904         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
10905         mode. Add new mode parameter.
10906         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
10907         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
10908         x86_64_shift_adj): New expanders.
10909         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
10910         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
10911         insns.
10912         Respective new splitters. Use renamed shift splitter helpers in 32-bit
10913         DImode shift splitters.
10914         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
10915         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
10916         mode parameter.
10917
10918 2005-07-18  Jan Beulich  <jbeulich@novell.com>
10919
10920         * i386.md (movdi_extzv_1): New.
10921         (zero_extendhidi2): Combine alternatives and never force use of
10922         REX64 prefix.
10923         (zero_extendqidi2): Likewise. Don't restrict input selection.
10924
10925 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10926
10927         Fix PR tree-optimization/22531
10928         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
10929          moment.
10930
10931 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10932
10933         * tree-promote-statics.c (pass_promote_statics): Change dump file
10934          name.
10935
10936 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10937
10938         * tree-optimize.c (init_tree_optimization_passes): Add
10939         pass_eliminate_useless_stores pass.
10940         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
10941         * tree-ssa-pre.c (is_copy_stmt): New function.
10942         (follow_copies_till_vuse): Ditto.
10943         (do_eustores): Ditto.
10944         (gate_eustores): Ditto.
10945
10946 2005-07-16  Richard Henderson  <rth@redhat.com>
10947
10948         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
10949
10950 2005-07-16 Danny Berlin <dberlin@dberlin.org>
10951            Kenneth Zadeck <zadeck@naturalbridge.com>
10952
10953         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
10954         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
10955         ipa-type-escape.h, tree-promote-statics.c
10956         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
10957         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
10958         tree-promote-statics.c: new files.
10959         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
10960         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
10961         int nonlocal_set_p, mark_constant_function): Deleted.
10962         (rest_of_handle_cfg): Removed call to mark_constant_function.
10963         (nonoverlapping_component_refs_p): Added calls to support
10964         type based aliasing.
10965         * tree-ssa-alias.c (may_alias_p,
10966         compute_flow_insensitive_aliasing): Ditto.
10967         * calls.c (flags_from_decl_or_type): Removed reference to
10968         cgraph_rtl_info.
10969         * c-typeck.c (convert_arguments): Make builtins tolerant of having
10970         too many arguments.  This is necessary for Spec 2000.
10971         * cgraph.h (const_function, pure_function): Removed.
10972         * common.opt: Added "fipa-pure-const", "fipa-reference",
10973         "fipa-type-escape", and "ftree-promote-static".
10974         * opts.c: Ditto.
10975         * passes.c: Added ipa and tree-promote-statics passes.
10976         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
10977         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
10978         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
10979         * tree-flow.h: Added exposed sra calls and addition of
10980         reference_vars_info field for FUNCTION_DECLS.
10981         * tree-pass.h: Added passes.
10982         * tree-sra.c: (sra_init_cache): New function.
10983         (sra_insert_before, sra_insert_after) Made public.
10984         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
10985         and made public.
10986         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
10987         aliasing. (may_alias_p): Added code to use type escape analysis to
10988         improve alias sets.
10989         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
10990         code to prune clobbers of static variables based on information
10991         produced in ipa-reference pass.  Changed call clobbering so that
10992         statics are not marked as clobbered if the call does not clobber
10993         them.
10994
10995 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
10996
10997         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
10998         too.
10999
11000 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11001
11002         * doc/install.texi (*-*-solaris2*): Document recommended version
11003         of GNU binutils and mention GNU linker problem on Solaris 10.
11004
11005 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
11006
11007         PR c/22421
11008         * c-decl.c (c_build_bitfield_integer_type): New function.
11009         (finish_struct): Call it.
11010         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
11011
11012 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11013
11014         * c-typeck.c (digest_init): Call 'convert_for_assignment'
11015         before returning.
11016
11017 2005-07-16  Jan Hubicka  <jh@suse.cz>
11018
11019         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
11020         (scale_bbs_frequencies_int): Watch roundoff errors.
11021         * predict.c (return_prediction): Initialize return_stmt.
11022
11023 2005-07-16  Jan Hubicka  <jh@suse.cz>
11024
11025         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
11026         after RTL profiling.
11027
11028 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
11029
11030         PR middle-end/22398
11031         * fold-const.c (build_range_check): Convert high/low to etype
11032         if we are only comparing against exp.
11033
11034 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
11035
11036         Fix PR tree-optimization/22376
11037         * tree-ssa-structalias.c (build_constraint_graph): We really meant
11038         special var here.
11039         (need_to_solve): New function.
11040         (compute_points_to_sets): Use it.
11041
11042 2005-07-15  Jan Hubicka  <jh@suse.cz>
11043
11044         * cfg.c (update_bb_profile_for_threading): More diagnostic.
11045         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
11046
11047 2005-07-15  Richard Guenther  <rguenther@suse.de>
11048
11049         * c-common.c (handle_flatten_attribute): New function.
11050         Add flatten function attribute.
11051         * doc/extend.texi: Document flatten function attribute.
11052         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
11053         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
11054         New functions.
11055         (cgraph_decide_inlining): Handle functions with flatten
11056         attribute.
11057
11058 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
11059
11060         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
11061         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
11062         UNSPEC_XCHG, UNSPEC_AND): New.
11063         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
11064         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
11065         * config/rs6000/sync.md (FETCHOP): New code macro.
11066         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
11067         New code attrs.
11068         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
11069         (sync_compare_and_swap<mode>): Same.
11070         (sync_lock_test_and_set<mode>): Same.
11071         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
11072         for QImode and HImode, and not PPC405.
11073         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
11074         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
11075         (sync_<fetchop>{si,di}_internal): New.
11076         (sync_nand{si,di}_internal): New.
11077         (sync_old_<fetchop>{si,di}_internal): New.
11078         (sync_old_nand{si,di}_internal): New
11079         (sync_new_<fetchop>{si,di}_internal): New.
11080         (sync_new_nand{si,di}_internal): New.
11081         (atomic_and{si,di}): New.
11082         (sync_new_nand{si,di}_internal): New.
11083         (atomic_and{si,di}): New.
11084         (sync_add<mode>_internal): Delete.
11085         (sync_addshort_internal): Use unspec instead of unspec_volatile.
11086         (sync_sub<mode>_internal): Delte.
11087         (sync_subshort_internal): New.
11088         (sync_andsi_internal): Use unspec instead of unspec_volatile.
11089         (sync_anddi_internal): Delete.
11090         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
11091         (sync_booldi_internal): Delete.
11092         (sync_boolc<mode>_internal): Delete.
11093         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
11094         (sync_boolc<mode>_internal2): Delete.
11095         (sync_boolcc<mode>_internal): Delete.
11096         (isync, lwsync): Use unspec instead of unspec_volatile.
11097         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
11098         Revert UNSPEC_VOLATILE.
11099         (rs6000_split_atomic_op): New.
11100         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
11101
11102 2005-07-14  Eric Christopher  <echristo@redhat.com>
11103
11104         * config/mips/mips.c (mips_canonicalize_comparison): Cast
11105         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
11106
11107 2005-07-14  Eric Christopher  <echristo@redhat.com>
11108
11109         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
11110
11111 2005-07-14  Steven Bosscher  <stevenb@suse.de>
11112
11113         PR tree-optimization/22230
11114         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
11115         the computation of the four cross productions for "range op range".
11116
11117 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
11118             Ulrich Weigand  <uweigand@de.ibm.com>
11119
11120         PR target/20126
11121         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
11122         in some insn.
11123
11124 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
11125
11126         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
11127
11128 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
11129
11130         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
11131
11132 2005-07-14  Richard Guenther  <rguenther@suse.de>
11133
11134         PR middle-end/22347
11135         * config/i386/i386-protos.h (ix86_function_value): Change
11136         prototype to match new target hook.
11137         * config/i386/i386.c (ix86_value_regno): Change prototype
11138         to take extra type argument.
11139         (TARGET_FUNCTION_VALUE): Define.
11140         (ix86_function_ok_for_sibcall): Pass extra argument to
11141         ix86_value_regno, check return slot rtx for exact match.
11142         (ix86_function_value): Take extra parameter.  Dispatch to
11143         ix86_value_regno with fndecl/fntype as provided.
11144         (ix86_value_regno): Handle extra type argument.
11145         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
11146
11147         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
11148         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
11149         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
11150         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
11151         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
11152
11153 2005-07-14  Richard Guenther  <rguenther@suse.de>
11154
11155         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
11156         * calls.c (expand_call): Pass fntype to hard_function_value.
11157         (emit_library_call_value_1): Likewise.
11158         * explow.c: Include target.h.
11159         (hard_function_value): Take extra argument, the fntype.
11160         Use new target hook for function_value.
11161         * expr.h (hard_function_value): Change prototype.
11162         * function.c (aggregate_value_p): Pass 0 as fntype to
11163         hard_function_value.
11164         (assign_parms): Use new target hook for function_value.
11165         Pass 0 as fntype to hard_function_value.
11166         (expand_function_end): Likewise.
11167         * reg-stack.c: Include target.h.
11168         (stack_result): Use new target hook for function_value.
11169         * target-def.h: New target hook function_value.
11170         * target.h: Likewise.
11171         * targhooks.c (default_function_value): New function.
11172         * targhooks.h (default_function_value): Declare.
11173
11174 2005-07-13  Ian Lance Taylor  <ian@airs.com>
11175
11176         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
11177
11178 2005-07-14  Jan Hubicka  <jh@suse.cz>
11179
11180         * tree-dfa.c (dump_variable): Use default_def function.
11181         * tree-ssa-alias.c (dump_points_to_info): Likewise.
11182         * tree-ssa.c (verify_use): Likewise.
11183         * tree-ssanames.c (release_ssa_name): Likewise.
11184         * tree-tailcall.c (eliminate_tail_call): Likewise.
11185         (tree_optimize_tail_calls_1): Likewise.
11186         * tree-vrp.c (get_value_range): Likewise.
11187
11188 2005-07-14  Ben Elliston  <bje@au.ibm.com>
11189
11190         * gcc.c (main): Compare language[0] with '*' when iterating over
11191         the infiles.
11192
11193 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11194
11195         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
11196         "s390_emit_compare".  Add handling of CCZ1mode.
11197         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
11198         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
11199         checking.
11200         (s390_branch_condition_mask): Add CCZ1mode handling.
11201         * config/s390/s390.md: ("seq", "*seq"): New pattern.
11202         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
11203         Use CCZ1mode instead of CCZmode.
11204         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
11205
11206 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11207
11208         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
11209         pattern.
11210         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
11211
11212 2005-07-13  Eric Christopher  <echristo@redhat.com>
11213
11214         * config/mips/mips.c (mips_canonicalize_comparison): New.
11215         (mips_emit_int_relational): Use.
11216
11217 2005-07-13  Eric Christopher  <echristo@redhat.com>
11218
11219         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11220         static extra parts.
11221         * config/s390/s390.md: Include tpf.md. Move tpf specific
11222         patterns...
11223         * config/s390/tpf.md: To here.
11224         * config/s390/s390.opt: Move tpf specific options...
11225         * config/s390/tpf.opt: to here. Add mmain option.
11226         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11227         * config/s390/tpf.h: Rewrite.
11228
11229 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11230
11231         * doc/tm.texi: Remove @xref{Cross-profiling}.
11232
11233 2005-07-13  Jeff Law  <law@redhat.com>
11234
11235         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
11236         expressions, test their _DECL operands for pointer equality rather
11237         than using operand_equal_p.
11238
11239 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11240
11241         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
11242         (TARGET_POSIX_IO): This.
11243         * config/darwin.h: Likewise.
11244         * config/freebsd.h: Likewise.
11245         * config/linux.h: Likewise.
11246         * config/lynx.h: Likewise.
11247         * config/netbsd.h: Likewise.
11248         * config/rs6000/linux64.h: Likewise.
11249         * config/rs6000/linux.h: Likewise.
11250         * config/s390/tpf.h: Likewise.
11251         * config/sh/embed-elf.h: Likewise.
11252         * config/sparc/linux64.h: Likewise.
11253         * config/sparc/linux.h: Likewise.
11254         * config/svr4.h: Likewise.
11255         * gcov-io.h: Likewise.
11256
11257         * doc/tm.texi: Updated.
11258
11259         * libgcov.c (create_file_directory): Defined only if
11260         TARGET_POSIX_IO is defined.
11261         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
11262         is defined.
11263
11264 2005-07-13  Jan Hubicka  <jh@suse.cz>
11265
11266         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
11267
11268 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
11269
11270         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
11271         structure as argument.
11272
11273 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
11274
11275         PR tree-optimization/21921
11276         * tree-iterator.c (tsi_link_before): Support the case when
11277         tsi_end_p (tsi) == true.
11278
11279 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11280
11281         PR tree-optimization/22442
11282         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
11283         correctly.
11284
11285 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11286
11287         PR rtl-optimization/20376
11288         * toplev.c (process_options): Enable -fweb and -frename-registers when
11289         unrolling.
11290         * doc/invoke.texi: Update the information about when -fweb and
11291         -frename-registers are enabled.
11292
11293 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11294
11295         PR tree-opt/21840
11296         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
11297         if *rhs_p is not a SSA_NAME.
11298
11299 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
11300
11301         Fix PR tree-optimization/22422
11302         * tree-ssa-structalias.c (struct variable_info): Add flag for
11303         special vars.
11304         (get_varinfo): Now a static function.
11305         (new_varinfo): init has_union and is_special_var to false.
11306         (solution_set_add): Check has_union.
11307         (do_da_constraint): Move temporary variable so it gets reset
11308         properly.
11309         Also check for special variable.
11310         (do_ds_constraint): Ditto.
11311         (do_sd_constraint): Ditto.
11312         (do_structure_copy): Check for special variable.
11313         (find_func_aliases): Ditto.
11314         (init_base_vars): Set special vars properly.
11315
11316 2005-07-13  Jan Hubicka  <jh@suse.cz>
11317
11318         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
11319         do unit-at-a-time.
11320
11321         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
11322         (get_expr_operands): Fix thinko wrt flags and subvars.
11323
11324         PR tree-optimize/22379
11325         * tree-inline.c (expand_call_inline): Do not output sorry in early
11326         inlining.
11327
11328 2005-07-12  Dale Johannesen  <dalej@apple.com>
11329
11330         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
11331
11332 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11333
11334         PR bootstrap/21704
11335         * host-linux.h: Include limits.h.
11336
11337 2005-07-12  Dale Johannesen  <dalej@apple.com>
11338
11339         * expr.c (compress_float_constant):  Add cost check.
11340         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
11341
11342 2005-07-12  Dale Johannesen  <dalej@apple.com>
11343
11344         * gcc.target/i386/compress-float-sse.c:  New.
11345         * gcc.target/i386/compress-float-sse-pic.c:  New.
11346         * gcc.target/i386/compress-float-387.c:  New.
11347         * gcc.target/i386/compress-float-387-pic.c:  New.
11348         * gcc.dg/compress-float-ppc.c:  New.
11349         * gcc.dg/compress-float-ppc-pic.c:  New.
11350
11351 2005-07-12  Eric Christopher  <echristo@redhat.com>
11352
11353         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11354         static extra parts.
11355         * config/s390/s390.md: Include tpf.md. Move tpf specific
11356         patterns...
11357         * config/s390/tpf.md: To here.
11358         * config/s390/s390.opt: Move tpf specific options...
11359         * config/s390/tpf.opt: to here. Add mmain option.
11360         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11361         * config/s390/tpf.h: Rewrite.
11362
11363 2005-07-12  Eric Christopher  <echristo@redhat.com>
11364
11365         * gcc.c (struct infile): Update comment for language.
11366         (main): Rewrite input file resetting code.
11367
11368 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11369
11370         PR tree-opt/22335
11371         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
11372         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
11373         (lookup_avail_expr): Use constant_boolean_node instead
11374         of boolean_false_node/boolean_true_node.
11375
11376 2005-07-12  Ben Elliston  <bje@au.ibm.com>
11377
11378         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
11379         and use it when printing num_edges.
11380
11381 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
11382
11383         * doc/extend.texi (Blackfin Built-in Functions): New section.
11384         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
11385         @opindex.
11386
11387 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
11388
11389         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
11390         s/cmpstrsi/cmpstrnsi
11391         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
11392         'cmpstrnsi'.
11393         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
11394         (init_optabs): Initialize cmpstrn_optab.
11395         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
11396         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
11397         * expr.c: (enum insn_code cmpstrn_optab): Declare.
11398         * config/i386/i386.md: s/cmpstr/cmpstrn
11399         * config/c4x/c4x.md: s/cmpstr/cmpstrn
11400         * doc/md.texi: Update documentation.
11401
11402 2005-07-11  Richard Henderson  <rth@redhat.com>
11403
11404         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
11405         build_va_arg_indirect_ref.
11406         (alpha_gimplify_va_arg): Likewise.
11407         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11408         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
11409         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
11410         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11411         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
11412         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
11413         Likewise.
11414         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11415
11416 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11417
11418         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
11419         * passes.c (init_optimization_passes): Add pass_empty_loop.
11420         * tree-pass.h (pass_empty_loop): Declare.
11421         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
11422         try_remove_empty_loop, remove_empty_loops): New functions.
11423         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
11424         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
11425
11426 2005-07-12  Peter Barada  <peter@the-baradas.com>
11427
11428         PR middle-end/16719
11429         PR middle-end/18421
11430         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
11431         in address registers.
11432         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
11433         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
11434         alternative of addsi3_5200.
11435
11436 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11437
11438         * config/mips/mips.md (ffs<mode>2): Remove.
11439
11440 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11441
11442         * doc/tree-ssa.texi (Cleanups): Improve description of
11443         TRY_FINALLY_EXPR.
11444         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
11445
11446 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11447
11448         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
11449         * tree.h (DECL_ARGUMENT_FLD): New macro.
11450
11451 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11452
11453         Fix PR tree-optimization/22404
11454
11455         * tree-ssa-structalias.c (create_variable_info_for): Use
11456         correct offset.
11457
11458 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
11459
11460         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
11461         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
11462         for second comparison operand.
11463         * config/bfin/predicates.md (reg_or_const_int_operand): New.
11464
11465         * config/bfin/bfin.md (define_attr "type"): Add "sync".
11466         (define_insn_reservation "alu"): Likewise.
11467         (csync, ssync): Now of type sync.
11468         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
11469         -mcsync-anomaly -mspecld-anomaly.
11470         * config/bfin/bfin.opt (mcsync): Remove.
11471         (mcsync-anomaly, mspecld-anomaly): Add.
11472         * config/bfin/bfin.c: Include "insn-codes.h".
11473         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
11474         (TARGET_DEFAULT_TARGET_FLAGS): New.
11475         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
11476
11477 2005-07-11  Steven Bosscher  <stevenb@suse.de>
11478
11479         * basic-block.h: Give the BB flags enum a name, bb_flags.
11480         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
11481         * cfgcleanup.c (enum bb_flags): Remove here.
11482         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
11483         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
11484         (update_forwarder_flag): Likewise.
11485         (thread_jump): Likewise.
11486         (try_forward_edges): Likewise.
11487         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
11488         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
11489         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
11490
11491 2005-07-11  Richard Guenther  <rguenther@suse.de>
11492
11493         * config/i386/i386.opt: New target option -msseregparm.
11494         * config/i386/i386.c (override_options): Error out for
11495         -msseregparm but no SSE support.
11496         (ix86_function_sseregparm): Check for global sseregparm.
11497         * doc/invoke.texi: Document -msseregparm.
11498
11499 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11500
11501         * config.gcc (m32r-*-linux*): Use the default extra_parts.
11502         (m32rle-*-linux*): Ditto.
11503
11504 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
11505
11506         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
11507         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
11508         bytes.
11509
11510 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11511
11512         PR middle-end/22239
11513         PR target/20126
11514         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
11515         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
11516
11517 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
11518
11519         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
11520         (varmap): Heapify varmap.
11521         (constraints): Heapify constraints.
11522         (struct constraint_graph): Heapify succs and preds.
11523         (constraint_vec_find): Update for heapification.
11524         (constraint_set_union): Ditto.
11525         (insert_into_complex): Ditto.
11526         (constraint_edge_vec_find): Ditto.
11527         (erase_graph_self_edge): Ditto.
11528         (add_graph_edge): Ditto.
11529         (get_graph_weights): Ditto.
11530         (merge_graph_nodes): Ditto.
11531         (build_constraint_graph): Ditto.
11532         (topo_visit): Ditto.
11533         (solve_graph): Ditto.
11534         (create_variable_info_for): Ditto.
11535         (init_base_vars): Ditto.
11536         (delete_points_to_sets): Free graph, varmap, and complex constraints.
11537         (condese_varmap_nodes): Free complex vector.
11538         (clear_edges_for_node): Clear succs and preds vector.
11539
11540 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11541
11542         * tree-ssa-structalias.c (update_alias_info): Change counting of
11543         references to not include vdefs.
11544
11545 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11546
11547         * tree-ssa-alias.c (free_used_part_map): Add missing free.
11548         (up_insert): Ditto.
11549
11550 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11551
11552         * pa.c (pa_commutative_p): Make PLUS commutative when
11553         TARGET_NO_SPACE_REGS is true.
11554
11555 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11556
11557         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
11558         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
11559         * tree-dfa.c (dump_subvars_for): New.
11560         (debug_subvars_for): New.
11561         (dump_variable): Show subvariables if VAR has them.
11562         * tree-flow-inline.h (get_subvar_at): New.
11563         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
11564         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
11565         Update all users.
11566         (struct subvar): Change fields offset and size to unsigned
11567         HOST_WIDE_INT.
11568         (dump_subvars_for): Declare.
11569         (debug_subvars_for): Declare.
11570         (get_subvar_at): Declare.
11571         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
11572         to unsigned HOST_WIDE_INT *.
11573         (overlap_subvar): Likewise.
11574         * tree-gimple.c (is_gimple_reg): Always return false for
11575         SFTs and memory tags.
11576         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
11577         Update all callers.
11578         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
11579         (compute_may_aliases): Call compute_points_to_sets.
11580         (collect_points_to_info_for): Remove.
11581         (compute_points_to_and_addr_escape): Remove.
11582         (delete_alias_info): Call delete_points_to_sets.
11583         (compute_flow_sensitive_aliasing): If the call to
11584         find_what_p_points_to returns false, call set_pt_anything.
11585         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
11586         (set_pt_anything): Clear pi->pt_vars.
11587         (set_pt_malloc): Remove.
11588         (merge_pointed_to_info): Remove.
11589         (add_pointed_to_expr): Remove.
11590         (add_pointed_to_var): Remove.
11591         (collect_points_to_info_r): Remove.
11592         (is_escape_site): Make extern.
11593         (create_sft): New.
11594         (create_overlap_variables_for): Call it.
11595         * tree-ssa-copy.c (merge_alias_info): Never merge
11596         flow-sensitive alias information.
11597         * tree-ssa-operands.c (get_expr_operands): Adjust variables
11598         offset and size to be unsigned HOST_WIDE_INT.
11599         (add_to_addressable_set): Rename from note_addressable.
11600         Set TREE_ADDRESSABLE as the variables are added to the set.
11601         Update all users.
11602         (add_stmt_operand): Do not try to micro-optimize unmodifiable
11603         operands into VUSEs when adding V_MAY_DEFs for members in an
11604         alias set.
11605         * tree-ssa-operands.h (add_to_addressable_set): Declare.
11606         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
11607         (struct variable_info): Add bitfield is_heap_var.
11608         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
11609         (new_var_info): Initialize is_heap_var.
11610         (get_constraint_for): Add HEAP variables to the symbol table.
11611         Mark them with is_heap_var.
11612         (update_alias_info): New.  Taken mostly from the old
11613         compute_points_to_and_addr_escape.
11614         (handle_ptr_arith): New.
11615         (find_func_aliases): Call update_alias_info.
11616         Call handle_ptr_info for tcc_binary expressions.
11617         Call mark_stmt_modified.
11618         (create_variable_info_for): If DECL has subvars, do not create
11619         variables for its subvars.  Always add all the fields.
11620         (set_uids_in_ptset): If the solution includes ANYOFFSET and
11621         SFTs, then add all the SFTs of the structure.
11622         If VI->DECL is an aggregate with subvariables, add the SFT at
11623         VI->OFFSET.
11624         (find_what_p_points_to): If VI is an artificial variable,
11625         translate to bitfields in SSA_NAME_PTR_INFO.
11626         If the solution is empty, set pi->pt_vars to NULL
11627         (init_base_vars): Create ANYOFFSET.
11628         (compute_points_to_sets): Rename from create_alias_vars.
11629         Make extern.
11630         (pass_build_pta): Remove.
11631         (delete_points_to_sets): Rename from delete_alias_vars.
11632         (pass_del_pta): Remove.
11633         * tree-ssa-structalias.h (struct alias_info): Move from
11634         tree-ssa-alias.h.
11635         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
11636         NUM_REFERENCES_SET): Likewise.
11637         (compute_points_to_sets, delete_points_to_sets): Declare.
11638
11639 2005-07-09  Richard Henderson  <rth@redhat.com>
11640
11641         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
11642         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
11643         alpha_split_lock_test_and_set_12): New functions.
11644         * config/alpha/alpha-protos.h: Update.
11645         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
11646         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
11647         * config/alpha/sync.md (I12MODE): New.
11648         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
11649         (sync_<fetchop_name><I48MODE>): Likewise.
11650         (sync_nand<I48MODE>): Likewise.
11651         (sync_old_<fetchop_name><I48MODE>): Likewise.
11652         (sync_new_<fetchop_name><I48MODE>): Likewise.
11653         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
11654         (sync_compare_and_swap<I48MODE>): Likewise.
11655         (sync_lock_test_and_set<I48MODE>): Likewise.
11656         (sync_compare_and_swap<I12MODE>): New.
11657         (sync_compare_and_swap<I12MODE>_1): New.
11658         (sync_lock_test_and_set<I12MODE>): New.
11659         (sync_lock_test_and_set<I12MODE>_1): New.
11660
11661 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11662
11663         PR 21356
11664         PR 22332
11665         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
11666
11667 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
11668
11669         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
11670         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
11671
11672 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
11673
11674         PR target/21656
11675         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
11676
11677 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
11678
11679         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
11680         memory_operand constraint.
11681         (store_conditional_<mode>): Same.
11682         (sync_compare_and_swap<mode>): Same.
11683         (sync_lock_test_and_set<mode>): Same.
11684
11685 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
11686
11687         Rewrite PIC support to more closely model actual instructions.
11688         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
11689         (cris_symbol): Remove prototypes for removed functions.
11690         (cris_pic_symbol_type_of, cris_valid_pic_const)
11691         (cris_expand_pic_call_address): Prototypes for new functions.
11692         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
11693         variable.
11694         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
11695         modifiers.
11696         <case ':'>: Add case for new punctuation character.
11697         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
11698         emitting (extra) PIC modifier.
11699         <case UNSPEC>: Do not assert for PLT.
11700         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
11701         (cris_expand_prologue, cris_expand_epilogue): Check
11702         for pic_offset_table_rtx usage instead of taking
11703         current_function_uses_pic_offset_table as the final word.
11704         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
11705         Remove flag_pic difference.
11706         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
11707         the moral equivalents of...
11708         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
11709         functions.
11710         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
11711         (cris_handle_option): Mark ARG as unused.
11712         (cris_expand_pic_call_address): New worker function for "call",
11713         "call_value".
11714         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
11715         output PIC constructs here.
11716         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
11717         as symbol-specific modifers, not whole or part of operands.
11718         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
11719         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
11720         constants and flag_pic.
11721         (CONSTANT_INDEX_P): Adjust for new functions.
11722         (enum cris_pic_symbol_type): New helper type.
11723         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
11724         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
11725         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
11726         define_constants.
11727         ("movsi"): Emit actual instructions for GOT and relative access.
11728         ("*movsi_got_load"): New pattern to set up the register holding
11729         the GOT pointer.
11730         ("*movsi_internal"): Operand 1 is not a plain general_operand.
11731         Adjust FIXME for 'S'.
11732         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
11733         Use "movs" for -fpic cases.
11734         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
11735         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
11736         ("call", "call_value"): Just call cris_expand_pic_call_address for
11737         PIC addresses.
11738         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
11739         Remove special pattern.
11740         ("*expanded_call_side", "*expanded_call_value_side"): New
11741         patterns.
11742         (gotplt-to-plt, gotplt-to-plt-side-call)
11743         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
11744         peephole2:s.
11745         * config/cris/cris/predicates.md
11746         ("cris_general_operand_or_gotless_symbol"): Remove unused
11747         predicate.
11748         ("cris_general_operand_or_symbol"): Adjust for new functions.
11749
11750 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11751
11752         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
11753
11754 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
11755
11756         * Makefile.in (TREE_H): Add treestruct.def.
11757         (c-decl.o): Add pointer-set.h
11758         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
11759         visibility on regular DECL's.
11760         (merge_decls): Fix the copying of decl nodes of various types for
11761         the new structures.  Don't update RTL, section name, weak status,
11762         etc, on DECL's without RTL.
11763         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
11764         Don't check volatile on non-variable types.
11765         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
11766         to check whether we have seen arguments.
11767         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
11768         flag is checked before field (flag is common, field is not).
11769         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
11770         TS_DECL_COMMON could have an origin.
11771         (add_location_or_const_value_attribute): Don't check section name
11772         on non-var/function decls.
11773         (dwarf2out_var_location): Reverse order of tests.
11774         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
11775         with DECL_WRTL_CHECK.
11776         * expmed.c (make_tree): rtl is now in decl_with_rtl.
11777         * fold-const.c (fold_binary): Don't check weakness on
11778         non-var/function decls.
11779         (tree_expr_nonzero_p): Ditto.
11780         (fold_checksum_tree): Use tree_decl_extra as sizeof
11781         buffer.
11782         * ggc-page.c (extra_order_size_table): Add sizes for
11783         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
11784         tree_field_decl.
11785         * gimplify.c (gimplify_bind_expr): Only set
11786         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
11787         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
11788         without RTL.
11789         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
11790         * langhooks.h (init_ts). New langhook.
11791         * passes.c (rest_of_decl_compilation): Reverse order of tests.
11792         * print-tree.c (print_node): Update to only print fields that
11793         exist in the structures the passed decl has.
11794         * toplev.c (wrapup_global_declarations): Don't reset
11795         DECL_DEFER_OUTPUT on DECL's that don't contain it.
11796         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
11797         * tree-inline.c (remap_decl): Ditto.
11798         * tree-outof-ssa.c (create_temp): Reverse order of tests.
11799         * tree-pretty-print.c (print_declaration): Don't print
11800         DECL_REGISTER on things that don't contain it.
11801         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
11802         non-var/function decls.
11803         * tree.c (tree_contains_struct): New structure.
11804         (init_priority_for_decl): New hashtable.
11805         (tree_int_map): New structure.
11806         (tree_int_map_eq): New function.
11807         (tree_int_map_marked_p): Ditto.
11808         (tree_int_map_hash): Ditto.
11809         (tree_map): Move to tree.h.
11810         (tree_map_eq): Externalize.
11811         (tree_map_hash): Ditto.
11812         (tree_map_marked_p): Ditto.
11813         (init_ttree): Set up tree_contains_struct and call langhook.
11814         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
11815         (tree_code_size): Update for new structures.
11816         (tree_node_structure): Update for new structures.
11817         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
11818         without the field.
11819         (copy_node_stat):  Copy init priority.
11820         (build_decl_stat): Ditto for visibility.
11821         (ts_enum_names): New.
11822         (tree_contains_struct_check_failed): New function.
11823         (decl_init_priority_lookup): Ditto.
11824         (decl_init_priority_insert): Ditto.
11825         * treestruct.def: New file.
11826         * tree.h (CODE_CONTAINS_STRUCT): New macro.
11827         (CONTAINS_STRUCT_CHECK): Ditto.
11828         (tree_contains_struct_check_failed): New prototype.
11829         (DECL_CHECK): Removed.
11830         (DECL_MINIMAL_CHECK): New.
11831         (DECL_COMMON_CHECK): Ditto.
11832         (DECL_WRTL_CHECK): Ditto.
11833         (DECL_NON_COMMON_CHECK): Ditto.
11834         (DECL_WITH_VIS_CHECK): Ditto.
11835         (VAR_OR_FUNCTION_DECL_P): Ditto
11836         (struct tree_decl_minimal): New structure.
11837         (struct tree_decl_common): Ditto.
11838         (struct tree_decl_with_rtl): Ditto.
11839         (struct tree_decl_with_vis): Ditto.
11840         (struct tree_decl_non_common): Ditto.
11841         (struct tree_field_decl): Ditto.
11842         (struct tree_parm_decl): Ditto.
11843         (struct tree_var_decl): Ditto.
11844         (struct tree_function_decl): Ditto.
11845         (struct tree_const_decl): Ditto.
11846         (struct tree_result_decl): Ditto.
11847         (union tree_node): Add new structures.
11848         * var-tracking.c (track_expr_p): Reverse order of tests.
11849
11850         * doc/c-tree.texi: Add documentation on DECL node internal structure.
11851
11852 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
11853
11854         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
11855         * system.h: Poison FINALIZE_PIC.
11856         * doc/tm.texi (FINALIZE_PIC): Remove.
11857
11858 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11859
11860         PR tree-opt/22329
11861         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
11862         to the correct type if we have a MODIFY_EXPR.
11863
11864 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
11865
11866         PR tree-optimization/22360
11867         * tree.c (upper_bound_in_type): Fix calculations for casting
11868         to a non-wider signed type and casting a signed value to a
11869         wider unsigned type.
11870         (lower_bound_in_type): Fix calculations for casting to a
11871         non-wider signed type.
11872
11873         PR tree-optimization/20139
11874         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
11875         release_defs.
11876         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
11877         fold_cond_expr_cond.
11878         * tree-ssanames.c (release_defs): Assert in_ssa_p.
11879         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
11880
11881 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11882
11883         PR tree-opt/22356
11884         * tree-complex.c (expand_complex_libcall): Produce
11885         REALPART_EXPR/IMAGPART_EXPR with the correct type.
11886
11887 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
11888
11889         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
11890         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
11891         b" assert and inserted fastpath code for this case.
11892         (bitmap_ior): Removed "a != b" assert.
11893
11894 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11895
11896         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
11897         (ENDFILE_SPEC): Likewise.
11898         * config/m32r/m32r.h (ASM_SPEC): Likewise.
11899
11900         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
11901         a large stack frame at epilogue.
11902
11903 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
11904
11905         * final.c: Include sdbout.h when required.
11906
11907 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
11908
11909         * config.gcc (*-*-darwin*): Only one target-specific header file
11910         for generic darwin.
11911         (powerpc-*-darwin*): Add version-specific header files.
11912         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
11913         * config.in: Regenerate.
11914         * configure: Regenerate.
11915         * gcc.c: Include xregex.h.
11916         (version_compare_spec_function): New.
11917         (spec_function): Add version-compare.
11918         (replace_outfile_spec_function): Reformat comment.
11919         (compare_version_strings): New.
11920         * config/darwin-c.c (version_as_macro): New.
11921         (builtin_define): New.
11922         (darwin_cpp_builtins): New.
11923         * config/darwin-protos.h (darwin_cpp_builtins): New.
11924         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
11925         (LIB_SPEC): Make unconditional, update comment.
11926         (TARGET_C99_FUNCTIONS): Define.
11927         * config/darwin.opt: Sort.
11928         (mmacosx-version-min=): New.
11929         * config/darwin7.h: Delete.
11930         * config/darwin8.h: Delete.
11931         * config/i386/darwin.h (): Call darwin_cpp_builtins.
11932         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
11933         (TARGET_C99_FUNCTIONS): Define.
11934         * config/rs6000/darwin7.h: New.
11935         * config/rs6000/darwin8.h: New.
11936         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
11937         (-mmacosx-version-min): Document.
11938
11939 2005-07-07  Ian Lance Taylor  <ian@airs.com>
11940
11941         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
11942
11943 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
11944
11945         PR middle-end/22239
11946         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
11947
11948 2005-07-07  Khem Raj  <kraj@mvista.com>
11949
11950         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
11951         in bytes, not words.
11952
11953 2005-07-07  Paul Brook  <paul@codesourcery.com>
11954
11955         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
11956         DEFAULT_FUNCTION_ARG_PADDING to upward.
11957
11958 2005-07-07  Richard Henderson  <rth@redhat.com>
11959
11960         * function.c (locate_and_pad_parm): Record parameter alignment in
11961         stack_alignment_needed.
11962
11963 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
11964
11965         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
11966         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
11967         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
11968         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
11969         (define_attr "type"): Add isync, sync, load_l, store_c.
11970         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
11971         Create scratch volatile MEM.
11972         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
11973         sync.
11974         (load_locked_<mode>): New.
11975         (store_conditional_<mode>): New.
11976         (sync_compare_and_swap<mode>): Replace with splitter.
11977         (sync_lock_test_and_set<mode>): Replace with splitter.
11978         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
11979         and UNSPECV_ISYNC.
11980         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
11981         is ics.  Attribute isync.
11982         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
11983         lwsync.
11984         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
11985         and UNSPECV_SYNC_OP.
11986         (emit_unlikely_jump): New.
11987         (emit_load_locked): New.
11988         (emit_store_conditional): New.
11989         (rs6000_split_compare_and_swap): New.
11990         (rs6000_split_lock_test_and_set): New.
11991         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
11992         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
11993         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
11994         rs6000_split_lock_test_and_set): Declare.
11995         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
11996         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
11997         store_c, isync, sync.
11998
11999 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
12000
12001         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
12002         filenames to gtyp-gen.h.
12003         (s-typ-gen): Use it in place of for loops.
12004
12005 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
12006
12007         * hooks.c (hook_bool_rtx_int_false): New function.
12008         * hooks.h (hook_bool_rtx_int_false): Declare.
12009         * target-def.h (TARGET_COMMUTATIVE_P): Define.
12010         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
12011         * target.h (struct gcc_target): Add commutative_p member.
12012         * targhooks.c (hook_bool_rtx_commutative_p): New function.
12013         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
12014         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
12015         (pa_commutative_p): New function.
12016         * jump.c (target.h): Include.
12017         (rtx_renumbered_equal_p): Use targetm.commutative_p.
12018         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
12019
12020 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12021
12022         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
12023         (s390_expand_setmem): New.
12024         * config/s390/s390.c: Likewise.
12025         (print_shift_count_operand): Truncate to 12 bits instead of 6.
12026         Adapt comments.
12027         * config/s390/s390.md: ("setmem<mode>"): Accept character as
12028         general_operand.  Call new function "s390_expand_setmem".
12029         ("clrmem_long", "*clrmem_long"): Rewrite to ...
12030         ("setmem_long", "*setmem_long"): ... this.
12031
12032 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12033
12034         * config/s390/s390.c: (optimization_options): Enable
12035         TARGET_MVCLE at -Os.
12036         * doc/invoke.texi: Document changes in default behaviour.
12037         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
12038
12039 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12040
12041         * expr.c: (set_storage_via_setmem): Convert opchar to mode
12042         defined by back-end.
12043
12044 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
12045
12046         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
12047         all sets in the pattern.
12048         * config/rs6000/rs6000.md (stack_protect_testsi,
12049         stack_protect_testdi): Likewise.
12050
12051 2005-07-06  Jeff Law  <law@redhat.com>
12052
12053         * tree-vrp.c (simplify_using_ranges): Kill.
12054         (vrp_finalize): Remove call to simplify_using_ranges.
12055         (simplify_stmt_using_ranges): New function extracted from
12056         simplify_using_ranges.
12057         (simplify_div_or_mod_using_ranges): Likewise.
12058         (simplify_abs_using_ranges): Likewise.
12059         (simplify_cond_using_ranges): New function.
12060         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
12061         * tree-ssa-propagate.c (substitute_and_fold): Call
12062         simplify_stmt_using_ranges if we have range information.
12063
12064 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
12065
12066         * config/ia64/ia64.c (ia64_reorg): Check optimize before
12067         ia64_flag_schedule_isns2.
12068
12069         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
12070         reading/writing general registers.
12071         (ia64_function_arg): Revert 2005-06-18 change.
12072
12073 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
12074
12075         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
12076         (legitimize_tls_address): Use gcc_unreachable instead of abort.
12077
12078 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
12079
12080         * function.c (expand_function_end): Revert part of 2005-06-27
12081         patch.  Do sjlj_emit_function_exit_after after return_label.
12082
12083 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12084
12085         * doc/install.texi (--disable-libssp): New.
12086
12087 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
12088
12089         * doc/invoke.texi: Update -fforce-mem documentation.
12090         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
12091         code for -fforce-mem.
12092         * expmed.c: (store_bit_field,store_fixed_bit_field,
12093         extract_bit_field): Ditto.
12094         * expr.c: (convert_move): Ditto.
12095         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
12096         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
12097         emit_conditional_add,expand_float,expand_fix): Ditto.
12098         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
12099         (common_handle_option): Issue warning when -fforce-mem specified.
12100
12101 2005-07-06  Paul Brook  <paul@codesourcery.com>
12102
12103         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
12104         argument is empty.
12105         * configure: Regenerate.
12106
12107 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
12108
12109         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
12110
12111 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
12112
12113         Fix PR tree-optimization/22319
12114         Fix PR tree-optimization/22140
12115         Fix PR tree-optimization/22310
12116
12117         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
12118         variable sized types.
12119         Use correct type for intermediate structure on *a = *b structure
12120         copies.
12121
12122 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12123
12124         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
12125         Remove.
12126         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
12127         (machine_function): Move typedef to...
12128         * config/rs6000/rs6000.c (machine_function): ... here.  Add
12129         varargs_save_offset field.
12130         (rs6000_stack_t): Remove varargs_size field.
12131         (setup_incoming_varargs): Allocate varargs save area using
12132         assign_stack_local, try to make it as small as possible.
12133         Save offset from virtual_stack_vars_rtx to the save area
12134         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
12135         instead of magic 8 when fp word byte size is used.
12136         (rs6000_va_start): Use cfun->machine->varargs_save_offset
12137         instead of -RS6000_VARARGS_SIZE.
12138         (rs6000_stack_info, debug_stack_info,
12139         rs6000_initial_elimination_offset): Remove all traces of
12140         varargs_size.
12141         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
12142         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
12143         RS6000_VARARGS_AREA.
12144
12145 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
12146
12147         PR tree-optimization/21963
12148         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
12149         constant_multiple_of in the same way get_computation_cost_at does.
12150
12151 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12152
12153         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
12154         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
12155         (gen_compare_reg): If sparc_compare_emitted is set, clear it
12156         and return its previous value.
12157         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
12158         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
12159         constants.
12160         (stack_protect_set, stack_protect_test): New expanders.
12161         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
12162         stack_protect_testdi): New insns.
12163         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12164         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
12165
12166 2005-07-06  Jeff Law  <law@redhat.com>
12167
12168         * tree-ssa-dce.c (cfg_altered): New global.
12169         (tree_dce_init): Initialize cfg_altered.
12170         (remove_dead_stmt): If we remove an edge in the CFG, then set
12171         CFG_ALTERED.
12172         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
12173         the dominators.
12174
12175 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12176
12177         * Makefile.in (stamp-collect-ld): Use
12178         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
12179         ./collect-ld if it already exists.
12180         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
12181         Don't remove ./nm if it already exists.
12182
12183 2005-07-05  Devang Patel  <dpatel@apple.com>
12184
12185         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
12186         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
12187         * tree-vectorizer.c (vect_loop_location): New.
12188         (vect_print_dump_info): Use vect_loop_location.
12189         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
12190         (vectorize_loops): Set vect_loop_location.
12191         * tree-vect-analyze.c (vect_analyze_offset_expr,
12192         vect_determin_vectorization_factor, vect_analyze_operations,
12193         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
12194         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
12195         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
12196         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
12197         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
12198         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
12199         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
12200         vect_analyze_loop): Adjust vect_print_dump_info API.
12201         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
12202         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
12203         vect_finish_stmt_generation, vectorizable_assignment,
12204         vectorizable_operation, vectorizable_store, vectorizable_load,
12205         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
12206         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
12207         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
12208         vect_transform_loop): Same.
12209         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
12210         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
12211         Same.
12212
12213 2005-07-05  Randolph Chung  <tausq@debian.org>
12214
12215         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
12216         * configure: Regenerate.
12217         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
12218         (pa_tls_referenced_p): Declare.
12219         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
12220         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
12221         (legitimize_tls_address): New.
12222         (hppa_legitimize_address): Handle TLS addresses.
12223         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
12224         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12225         (emit_move_sequence): Handle TLS addresses.
12226         (pa_encode_section_info): Call default handler to handle common
12227         sections.
12228         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
12229         (CONSTANT_ADDRESS_P): Reject TLS operands.
12230         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
12231         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
12232         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
12233         (UNSPEC_TLSLE): Define new constants.
12234         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
12235         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
12236         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
12237         (tie_symbolic_operand, tle_symbolic_operand): New
12238
12239 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
12240
12241         * aclocal.m4: Update macros for autoconf 2.59 style.
12242         * configure.ac: Likewise.
12243
12244 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12245
12246         * pa.c (function_value): Handle small aggregates on 32-bit targets.
12247         (function_arg): Pass small aggregates in general registers on 32-bit
12248         targets.
12249         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
12250
12251 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
12252
12253         * Makefile.in (final.o): Fix dependencies.
12254
12255 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12256
12257         PR c/22013
12258         PR c/22098
12259         * langhooks.h (struct lang_hooks): Add expr_to_decl.
12260         * langhooks.c (lhd_expr_to_decl): New.
12261         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
12262         New.
12263         (LANG_HOOKS_INITIALIZER): Update.
12264         * tree.c (recompute_tree_invarant_for_addr_expr): Call
12265         expr_to_decl langhook.
12266         * c-tree.h (c_expr_to_decl): Declare.
12267         * c-typeck.c (c_expr_to_decl): New.
12268         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
12269         specially.
12270         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
12271
12272 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12273
12274         PR c/22308
12275         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
12276         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
12277
12278 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
12279
12280         * Makefile.in: Adjust dependencies.
12281         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
12282         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
12283         * alias.c (rest_of_handle_cfg, pass_cfg): New.
12284         * bb-reorder.c (duplicate_computed_gotos): Make it static.
12285         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
12286         rest_of_compilation.
12287
12288         * bb-reorder.c (gate_duplicate_computed_gotos,
12289         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
12290         rest_of_handle_reorder_blocks, pass_reorder_blocks,
12291         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
12292         pass_partition_blocks): New.
12293         * bt-load.c (gate_handle_branch_target_load_optimize,
12294         rest_of_handle_branch_target_load_optimize,
12295         pass_branch_target_load_optimize): New.
12296         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
12297         pass_jump2): New.
12298         * cfglayout.c (pass_insn_locators_initialize): New.
12299         * cfgrtl.c (pass_free_cfg): New.
12300         * combine.c (gate_handle_combine, rest_of_handle_combine,
12301         pass_combine): New.
12302         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
12303         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
12304         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
12305         * except.c (pass_set_nothrow_function_flags,
12306         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
12307         pass_rtl_eh): New.
12308         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
12309         rest_of_handle_shorten_branches, pass_shorten_branches,
12310         rest_of_clean_state, pass_clean_state): New.
12311         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
12312         rest_of_handle_remove_death_notes, pass_remove_death_notes,
12313         rest_of_handle_life, pass_life, rest_of_handle_flow2,
12314         pass_flow2): New.
12315         * function.c (pass_instantiate_virtual_regs, pass_init_function,
12316         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
12317         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
12318         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
12319         pass_gcse): New.
12320         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
12321         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
12322         pass_rtl_ifcvt, gate_handle_if_after_combine,
12323         rest_of_handle_if_after_combine, pass_if_after_combine,
12324         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
12325         pass_if_after_reload): New.
12326         * integrate.c (pass_initial_value_sets): New.
12327         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
12328         pass_purge_lineno_notes): New.
12329         * mode-switching.c (rest_of_handle_mode_switching,
12330         pass_mode_switching): New.
12331         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
12332         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
12333         pass_loop2): New.
12334         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
12335         pass_loop_optimize): New.
12336         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
12337         pass_sms): New.
12338         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
12339         pass_gcse2): New.
12340         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
12341         pass_postreload_cse): New.
12342         * profile.c (gate_handle_profiling, pass_profiling,
12343         rest_of_handle_branch_prob, pass_branch_prob): New.
12344         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
12345         pass_split_before_regstack, gate_handle_split_before_regstack,
12346         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
12347         rest_of_handle_split_all_insns, pass_split_all_insns): New.
12348         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
12349         pass_stack_regs): New.
12350         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
12351         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
12352         pass_stack_adjustments): New.
12353         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
12354         pass_regrename): New.
12355         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
12356         pass_delay_slots, gate_handle_machine_reorg,
12357         rest_of_handle_machine_reorg, pass_machine_reorg): New.
12358         * rtl.h (extern void purge_line_number_notes): New.
12359         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
12360         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
12361         pass_sched2): New.
12362         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
12363         pass_tracer): New.
12364         * value-prof.c (gate_handle_value_profile_transformations,
12365         rest_of_handle_value_profile_transformations,
12366         pass_value_profile_transformations): New.
12367         * var-tracking.c (gate_handle_var_tracking,
12368         pass_variable_tracking): New.
12369         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
12370
12371         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
12372         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
12373         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
12374         rest_of_handle_old_regalloc, rest_of_handle_regrename,
12375         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
12376         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
12377         rest_of_handle_gcse2, rest_of_handle_regmove,
12378         rest_of_handle_tracer, rest_of_handle_if_conversion,
12379         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
12380         rest_of_handle_web, rest_of_handle_branch_prob,
12381         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
12382         rest_of_handle_jump_bypass, rest_of_handle_combine,
12383         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
12384         rest_of_handle_gcse, rest_of_handle_loop_optimize,
12385         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
12386         rest_of_handle_mode_switching, rest_of_handle_jump,
12387         rest_of_handle_eh, rest_of_handle_stack_adjustments,
12388         rest_of_handle_flow2, rest_of_handle_jump2,
12389         rest_of_handle_peephole2, rest_of_handle_postreload,
12390         rest_of_handle_shorten_branches, rest_of_clean_state,
12391         rest_of_compilation): Remove.
12392
12393         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
12394         * passes.c (dump_flags, in_gimple_form, all_passes,
12395         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12396         register_dump_files, next_pass_1, last_verified, execute_todo,
12397         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
12398         from tree-optimize.c.
12399         (init_optimization_passes): Moved from tree-optimize.c,
12400         adding the RTL optimizations.
12401         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
12402         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
12403         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12404         register_dump_files, next_pass_1, last_verified, execute_todo,
12405         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
12406         init_tree_optimization_passes, ipa_passes): Delete.
12407         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
12408         the RTL dumps.
12409         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
12410         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
12411         from tree.h.
12412         (ipa_passes): Remove.
12413         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
12414         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
12415         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
12416         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
12417         (dump_info_p, dump_flag): Moved to tree-dump.h.
12418
12419         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
12420         cgraph.c, opts.c.
12421         * passes.c (finish_optimization_passes): Use dump_begin
12422         and dump_end, TDI_end.
12423         (gate_rest_of_compilation): New.
12424         (pass_rest_of_compilation): Use it.
12425         (gate_postreload, pass_postreload): New.
12426         * toplev.c (general_init): Rename init_tree_optimization_passes.
12427         * toplev.h (init_tree_optimization_passes): Rename to
12428         init_optimizations_passes.
12429         * tree-dump.c (dump_flag): Make static.
12430         (dump_files): Remove RTL dumps.
12431         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
12432         pass_cleanup_cfg, pass_free_cfg_annotations,
12433         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
12434         pass_init_datastructures, pass_fixup_cfg): Make non-static.
12435         * tree-pretty-print.c: Include tree-pass.h.
12436         * cgraph.c: Include tree-dump.h.
12437
12438 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12439
12440         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
12441         Only fall back to saying it points to readonly memory if
12442         we can't do better.
12443
12444 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12445
12446         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
12447         * config/m32r/m32r.c (m32r_compute_frame_size,
12448         m32r_expand_prologue): Take current_function_profile into
12449         account whenever we reference
12450         current_function_uses_pic_offset_table.
12451         (m32r_finalize_pic): Remove.
12452         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
12453
12454 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
12455
12456         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
12457         instead of $<.  Don't remove ./as if it already exists.
12458
12459 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12460
12461         PR target/21723
12462         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
12463         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
12464         for complex modes when generating code for PA 1.0.
12465         (VALID_FP_MODE_P): New macro.
12466         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12467         sets for all general and floating point modes.  Align wide floating
12468         point modes to even register boundaries to comply with architectural
12469         requirements.
12470         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
12471         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
12472         (VALID_FP_MODE_P): New macro.
12473         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12474         sets for all general and floating point modes.  Align wide floating
12475         point modes to even register boundaries to comply with architectural
12476         requirements.
12477
12478 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12479
12480         * tree-dump.c (dump_files): Initialize dump number for .cgraph
12481         to 0.
12482
12483 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12484
12485         * tree-ssa-structalias.c: Don't include expr.h.
12486
12487 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12488
12489         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
12490         comments.
12491
12492 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12493
12494         Fix PR tree-optimization/22279
12495
12496         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
12497         correct operator.
12498
12499 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
12500
12501         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
12502
12503 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12504
12505         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
12506         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
12507         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
12508         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
12509         config/stormy16/stormy16.c, config/v850/v850.c,
12510         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
12511         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
12512         Avoid "." or "\n" at end of diagnostics and capital letters at
12513         start of diagnostics.
12514         * combine.c, cse.c: Don't translate dump file output.
12515         * toplev.c (print_version): Only translate output if going to
12516         stderr.
12517
12518 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12519
12520         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
12521         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
12522         typos.
12523
12524 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12525
12526         * pa.c (fix_range): Fix typo in comment.
12527
12528 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12529
12530         * tree-vrp.c (extract_range_from_assert): Replace
12531         fold (build (...)) with fold_build2.
12532
12533 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12534
12535         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
12536         gcc_gfc_char_table, init_dynamic_gfc_info): New.
12537         (format_types_orig, handle_format_attribute): Add support for
12538         format "gcc_gfc".
12539
12540 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12541
12542         * varasm.c (assemble_variable): Fix format specifier thinko.
12543
12544 2005-07-03  Ira Rosen  <irar@il.ibm.com>
12545
12546         PR tree-optimization/22029 (and 22135)
12547         * tree-pretty-print.c (dump_generic_node): Check that the node is not
12548         a phi node before calling dump_vops.
12549
12550 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12551
12552         * tree-dump.h (dump_string_field): Declare.
12553         * tree-dump.c: Use it instead of dump_string.
12554         (dump_string_field): Make non-static.
12555
12556 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
12557
12558         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
12559         up the minimal CFG stuff always when optimize > 0.  Call
12560         split_all_insns_noflow in PIC case if needed.
12561
12562 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12563             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
12564
12565         PR c++/18279
12566         * c-decl.c (c_write_global_declarations): Dump contents of
12567         external scope to.
12568         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
12569         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
12570         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
12571         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
12572         is enabled.
12573
12574 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12575
12576         * c-common.h (GCC_DIAG_STYLE): Define.
12577         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
12578         version for format checking to 4.1.
12579         * c-format.c: Include toplev.h after c-common.h.
12580         (enum format_type): Add gcc_tdiag_format_type.
12581         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
12582         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
12583         (format_types_orig): Add gcc_tdiag.
12584         (init_dynamic_diag_info): Support gcc_tdiag formats.
12585         (handle_format_attribute): Likewise.
12586         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
12587         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
12588         version for format checking to 4.1.
12589         (warning0, warning, error, pedwarn, sorry): Use
12590         ATTRIBUTE_GCC_DIAG.
12591         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
12592         (finish_aliases_1): Do not use %qE.
12593         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
12594         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
12595         Correct format bugs.
12596         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
12597         parameter to unsigned HOST_WIDE_INT.
12598         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
12599
12600 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
12601
12602         PR middle-end/21742
12603         * expr.c (write_complex_part): Use adjust_address for MEM.
12604         (read_complex_part): Same.
12605
12606 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
12607
12608         Fix PR tree-optimization/22280
12609
12610         * tree-sra.c (generate_element_init): Remove useless loop.
12611
12612 2005-07-02  Richard Henderson  <rth@redhat.com>
12613
12614         * config/alpha/alpha.c (alpha_legitimize_address): Check for
12615         TLS_MODEL_NONE.
12616         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
12617
12618 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
12619
12620         PR middle-end/14490
12621         * fold-const.c (fold_binary): Handle the return value of
12622         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
12623         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
12624
12625 2005-07-02  Jeff Law  <law@redhat.com>
12626
12627         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
12628         a eliminate type conversion which feeds an equality comparison
12629         if the original type or either operand in the comparison is a
12630         function pointer.
12631
12632 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
12633
12634         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
12635         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
12636         texts.
12637         * config/avr/avr.c: Do not use '`' as left quote.
12638         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
12639         Remove "." from end of diagnostics.  Make diagnostics start with
12640         lowercase letter.
12641
12642 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
12643             Joseph S. Myers  <joseph@codesourcery.com>
12644
12645         * toplev.c (default_tree_printer): Handle setting location with
12646         '+' flag.
12647         * c-objc.common.c (c_tree_printer): Likewise.
12648         * c-format.c (gcc_diag_flag_specs): Add '+'.
12649         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
12650         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
12651         formats.
12652         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
12653         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
12654         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
12655         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
12656         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
12657         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
12658         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
12659         format arguments where %J is used without %D.
12660
12661 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
12662
12663         * gcc.c (LINK_SSP_SPEC): Define.
12664         (link_ssp_spec): New variable.
12665         (LINK_COMMAND_SPEC): Add %(link_ssp).
12666         (static_specs): Add link_ssp_spec.
12667         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
12668         * configure: Rebuilt.
12669         * config.in: Rebuilt.
12670
12671         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12672         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12673         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12674         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12675         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
12676         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
12677         -0x7008(2) instead of reading __stack_chk_guard variable.
12678         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
12679         number.
12680         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
12681         (stack_protect_set, stack_protect_test): Use *_tls* patterns
12682         if TARGET_THREAD_SSP_OFFSET is defined.
12683         (stack_tls_protect_set_si, stack_tls_protect_set_di,
12684         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
12685
12686         Revert:
12687         2005-06-27  Richard Henderson  <rth@redhat.com>
12688         * libgcc-std.ver (GCC_4.1.0): New.
12689         * libgcc.h (__stack_chk_guard): Declare.
12690         (__stack_chk_fail, __stack_chk_fail_local): Declare.
12691         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
12692         * mklibgcc.in (lib2funcs): Add them.
12693
12694 2005-07-01  Richard Henderson  <rth@redhat.com>
12695
12696         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
12697         void * before struct sigcontext *.
12698         (x86_fallback_frame_state): Likewise.
12699
12700 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
12701
12702         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
12703
12704 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
12705
12706         PR tree-opt/22269
12707         * tree-ssa-reassoc.c (should_transpose): Fix which operand
12708         we check for SSA_NAME for.
12709
12710 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
12711
12712         Fix PR tree-optimization/22071
12713
12714         * tree-ssa-structalias.c (offset_overlaps_with_access): New
12715         function.
12716         (get_constraint_for_component_ref): Use it.
12717
12718 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
12719
12720         PR other/22264
12721         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
12722         print out the last new line.
12723
12724 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
12725
12726         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
12727         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
12728         * config/cris/cris.c (cris_conditional_register_usage): Adjust
12729         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
12730         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
12731         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
12732         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
12733         (enum reg_class): New member CC0_REGS.
12734         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
12735         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
12736         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
12737         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
12738         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
12739         Adjust for register now described.
12740
12741 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
12742
12743         PR target/22262
12744         * config/i386/i386.md (stack_protect_test_si,
12745         stack_protect_test_di): Add earlyclobber for scratch 3.
12746         * config/rs6000/rs6000.md (stack_protect_testsi,
12747         stack_protect_testdi): Add earlyclobber for scratch 3,
12748         remove earlyclobber from scratch 4.
12749
12750 Older entries for 2005 can be found in ChangeLog-2005.