OSDN Git Service

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