OSDN Git Service

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