OSDN Git Service

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