OSDN Git Service

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