OSDN Git Service

2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2
3         PR c++/23333
4         * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
5         number is a single digit '0'.
6
7 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
8
9         PR tree-optimization/23518
10         * fold-const.c (make_range): Don't move a constant to the
11         other side of the comparison if the type is signed and -fwrapv
12         is given.
13
14 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
15
16         * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
17         of vr0.type.
18
19 2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>
20
21         PR middle-end/24998
22         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
23         _floatundisf.
24
25 2005-12-21  Andrew Haley  <aph@redhat.com>
26
27         PR middle-end/25121
28         * recog.c (peephole2_optimize): Don't peephole any
29         RTX_FRAME_RELATED_P insns.
30
31 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
32
33         * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
34         fold_build2 with fold_binary.
35         * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
36         Replace fold_build1 with fold_unary.
37         * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
38         with fold_binary.
39
40 2005-12-21  Steven Bosscher  <stevenb@suse.de>
41
42         PR rtl-optimization/25196
43         * postreload-gcse.c (record_last_set_info): Notice stack pointer
44         changes in push insns without REG_INC notes.
45
46 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
47
48         PR tree-optimization/25382.
49         * tree-vrp.c (extract_range_from_binary_expr): Extract a range
50         from BIT_AND_EXPR.
51
52 2005-12-21  Janis Johnson  <janis187@us.ibm.com>
53             Ben Elliston  <bje@au.ibm.com>
54
55         * configure.ac: Enable C extension for decimal float if invoked
56         with --enable-decimal-float.
57         * doc/install.texi (Configuration): Document it.
58         * configure, config.in: Regenerate.
59
60 2005-12-20  Mike Stump  <mrs@apple.com>
61
62         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
63         ambiguity between -seg_addr_table and -seg_addr_table_filename.
64         (WORD_SWITCH_TAKES_ARG): Likewise.
65         (LINK_SPEC): Likewise.
66
67 2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>
68
69         * cfganal.c (flow_reverse_top_sort_order_compute):
70         Renamed to post_order_compute and additional parameter added which
71         allows the inclusion of entry and exit blocks into list.
72         (mark_dfs_back_edges): Fixed comment.
73         (flow_depth_first_order_compute): Renamed to
74         pre_and_rev_post_order_compute additional parameter added which
75         allows the inclusion of entry and exit blocks into list.
76         * global.c (set_up_bb_rts_numbers): Call to
77         flow_reverse_top_sort_order_compute renamed to
78         post_order_compute.
79         * var-tracking.c (vt_stack_adjustments): Fixed comment.
80         (vt_find_locations): Call to
81         flow_depth_first_order_compute renamed to
82         pre_and_rev_post_order_compute.
83         * cfgloop.c (flow_find_loops): Ditto.
84         * tree-ssa-reassoc.c (init_reassoc): Ditto.
85         * df.c (df_analyze_1, df_analyze_subcfg): Calls to
86         flow_reverse_top_sort_order_compute renamed to post_order_compute
87         and calls to flow_reverse_top_sort_order_compute renamed to
88         post_order_compute.
89         * basic_block.h: Ditto.
90
91
92 2005-12-20  Roger Sayle  <roger@eyesopen.com>
93             Paolo Bonzini  <bonzini@gnu.org>
94
95         PR rtl-optimization/25115
96         * gcse.c (pre_insert_copy_insn): Fall back to the sole
97         SET in the insn if there is no SET for an
98         expression that is equivalent to EXPR.
99
100 2005-12-20  Richard Guenther  <rguenther@suse.de>
101
102         PR middle-end/24306
103         * builtins.c (std_gimplify_va_arg_expr): Do not align
104         va frame for zero sized types.
105         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
106
107 2005-12-20  Kazu Hirata  <kazu@codesourcery.com>
108
109         PR tree-optimization/25501
110         * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
111         used in the PHI argument corresponding to the edge from BB to
112         DEST.
113
114 2005-12-20  Richard Guenther  <rguenther@suse.de>
115
116         Revert
117         2005-12-02  Richard Guenther  <rguenther@suse.de>
118
119         * tree-cfg.c (mark_used_vars): New function.
120         (dump_function_to_file): Dump only used VAR_DECLs.
121
122 2005-12-19  Roger Sayle  <roger@eyesopen.com>
123
124         * combine.c (try_combine): Improve splitting of binary operators
125         by taking advantage of reassociative transformations.
126
127 2005-12-19  Jeff Law  <law@redhat.com>
128
129         * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
130         Strip away all type conversions after simplifying the
131         condition.
132
133         * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
134         cases the forwarder block dominates the destination.
135
136 2005-12-19  DJ Delorie  <dj@redhat.com>
137
138         * reload1.c (spill_failure): Dump reload data to dump file.
139         (find_reload_regs): Likewise.
140
141 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
142
143         PR tree-optimization/24793
144         * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
145         original reference if there are subvars.
146         * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
147
148 2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>
149
150         * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
151         Corrected basic block number calculations for changes in entry and
152         exit numbering.
153         
154 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
155
156         * tree-flow.h (struct var_ann_d): Change type of
157         may_aliases field to VEC(tree, gc) *.
158         (may_aliases): Declaration changed.
159         * tree-ssa-alias.c (group_aliases, add_may_alias,
160         replace_may_alias, dump_may_aliases_for,
161         is_aliased_with, add_type_alias, new_type_alias):
162         Work with VEC(tree, gc) * instead of varray.
163         * tree-flow-inline.h (may_aliases): Ditto.
164         * tree-ssa.c (verify_flow_insensitive_alias_info,
165         verify_name_tags): Ditto.
166         * tree-ssa-operands.c (add_stmt_operand): Ditto.
167
168 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
169
170         * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
171         comes back.
172
173 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
174
175         * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
176         check.
177
178 2005-12-19  Ben Elliston  <bje@au.ibm.com>
179
180         * doc/install.texi (Configuration): Typo in Fortran subheading.
181
182 2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>
183
184         * config/mt/mt.md (decrement_and_branch_until_zero): Add another
185         scratch.  Correct its reload split. Adjust its peephole.
186         (doloop_end): Add additional scratch.
187         (nop): Use 'nop'.
188         * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
189         (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
190         (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
191         (mt_builtin_saveregs): Replace with ...
192         (mt_setup_incoming_varargs): ... here.  Save just the varadic
193         args.
194         (mt_va_start): Remove.
195         (mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
196         (mt_machine_reorg): Split all insns here.
197         (TARGET_SETUP_INCOMING_VARARGS): Override.
198         * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
199         Set to CPU type.
200         (EXPAND_BUILTIN_VA_START): Remove.
201
202 2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
203
204         * flow.c (update_life_info, count_or_remove_death_notes): Fixed
205         latent bug that could happen if update_life_info was called with a
206         blocks parameter and the call to cleanup_cfg actually deleted one
207         of those blocks. 
208
209 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
210
211         * tree-ssa-structalias.c (update_alias_info): Remove handling
212         of may_be_aliased (SSA_NAME_VAR (op)) case.
213
214 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
215
216         * tree-flow.h (struct stmt_ann_d): Remove
217         makes_aliased_loads and makes_aliased_stores fields.
218         * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
219         and makes_aliased_loads fields.
220         * tree-ssa-dom.c (eliminate_redundant_computations): Do not
221         use makes_aliased_stores.
222         * tree-ssa-operands.c (clobbered_aliased_loads,
223         clobbered_aliased_stores, ro_call_aliased_loads): Removed.
224         (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
225         add_call_read_ops): Do not set makes_aliased_stores and
226         makes_aliased_loads fields.
227         * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
228         field.
229
230 2005-12-18  Geoffrey Keating  <geoffk@apple.com>
231
232         * config/darwin.h: Don't include darwin-sections.def to declare
233         global variables; instead create darwin_section_enum.
234         (darwin_section_enum): New.
235         (darwin_sections): New.
236         * config/darwin.c: Don't include darwin-sections.def to define
237         global variables.
238         (darwin_sections): New.
239         (output_objc_section_asm_op): Rewrite to take advantage of
240         darwin_sections.
241         (darwin_init_sections): Rewrite to use darwin_sections.
242         (machopic_output_indirection): Update for darwin_sections array.
243         (machopic_select_section): Likewise.
244         (machopic_select_rtx_section): Likewise.
245         (machopic_asm_out_constructor): Likewise.
246         (machopic_asm_out_destructor): Likewise.
247         (darwin_file_end): Likewise.
248         * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
249         * config/i386/i386.c (machopic_output_stub): Likewise.
250
251 2005-12-18  Richard Guenther  <rguenther@suse.de>
252
253         PR tree-optimization/25481
254         * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
255         don't have a varinfo for.
256
257 2005-12-18  Jon Grimm  <jgrimm2@us.ibm.com>
258             Janis Johnson  <janis187@us.ibm.com>
259             Ben Elliston  <bje@au.ibm.com>
260
261         * optabs.c (init_floating_libfuncs): Handle decimal float modes.
262         (init_optabs): Handle libfuncs for decimal float.
263         * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
264         * stor-layout.c (int_mode_for_mode): Likewise.
265         * simplify-rtx.c (simplify_immed_subreg): Likewise.
266         (simplify_unary_operation_1): Skip optimisations for decimal float
267         modes.
268         * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
269         * emit-rtl.c (gen_const_vector): Add assertion check.
270         (init_emit_once): Populate const_tiny_rtx with constants in each
271         decimal float mode.
272         * expmed.c (extract_high_half, expand_mult_highpart_optab,
273         expand_mult_highpart): Assert that mode is not a scalar float
274         mode.
275         * expr.c (convert_move): Handle conversion between decimal and
276         binary floats of the same size.
277         * convert.c (convert_to_real): Consider decimal float types when
278         folding.
279         * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
280         describe decimal floating point types.
281         
282 2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
283
284         PR rtl-optimization/21041
285         * reload.c (find_reloads_subreg_address): Replace paradoxical
286         subreg of MEM by widened access only if the resulting memory
287         is properly aligned, even on !STRICT_ALIGNMENT targets.
288
289 2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
290
291         * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
292
293 2005-12-18  Steven Bosscher  <stevenb@suse.de>
294
295         * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
296         the 2005-12-17 patch to renumber the entry and exit blocks.
297
298 2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
299
300         * doc/objc.texi (Type encoding): Fix typo.
301
302 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
303
304         * tree-tailcall.c (find_tail_calls): Use XNEW.
305         * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
306         (free_all_edge_infos): Use explicit cast to convert from void *.
307         (vrp_free): Likewise.
308         (dom_opt_finalize_block): Likewise.
309         (record_equivalences_from_incoming_edge): Likewise.
310         (thread_across_edge): Likewise.  Use XCNEWVEC.
311         (record_cond): Use XCNEW.
312         (record_conditions): Use XNEWVEC.
313         (record_edge_info): Use XCNEWVEC.
314         (lookup_avail_expr): Use XNEW.
315         (record_range): Likewise.  Use GGC_NEW.
316         * tree-nested.c (var_map_hash): Use explicit cast to convert from
317         void *.
318         (var_map_eq): Likewise.
319         (lookup_field_for_decl): Likewise.
320         (convert_nonlocal_reference): Likewise.
321         (convert_local_reference): Likewise.
322         (convert_nl_goto_reference): Likewise.
323         (convert_nl_goto_receiver): Likewise.
324         (convert_call_expr): Likewise.
325         (convert_tramp_reference): Likewise.
326         (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
327         (convert_nl_goto_reference): Likewise.
328         (lookup_field_for_decl): Use GGC_NEW.
329         (create_nesting_tree): Use GGC_CNEW.
330         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
331         * tree-ssa-alias.c (init_alias_info): Use XCNEW.
332         (create_alias_map_for): Likewise.
333         (setup_pointers_and_addressables): Use XCNEWVEC.
334         (get_ptr_info): Use GGC_NEW.
335         (used_part_map_eq): Use explicit cast to convert from void *.
336         (up_lookup): Likewise.
337         (up_insert): Use XNEW.
338         (get_or_create_used_part_for): Use XCNEW.
339         (get_tmt_for): Likewise.
340         * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
341         * tree-ssa-pre.c (phi_trans_add): Use XNEW.
342         (bitmap_set_new): Use explicit cast to convert from void *.
343         (set_new): Likewise.
344         (insert_into_set): Likewise.
345         (pool_copy_list): Likewise.
346         (phi_translate): Likewise.
347         (create_value_expr_from): Likewise.
348         (insert_aux): Use XCNEWVEC.
349         (compute_avail): Use XNEWVEC.
350         * tree-ssa-live.c (calculate_live_on_entry): Likewise.
351         (sort_coalesce_list): Likewise.
352         (build_tree_conflict_graph): Use XCNEWVEC.
353         * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
354         * tree-ssa-copy.c (init_copy_prop): Likewise.
355         (fini_copy_prop): Likewise.
356         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
357         and XCNEWVEC.
358         (record_equiv): Use XNEW.
359         (uncprop_into_successor_phis): Use explicit cast to convert from
360         void *.
361         (uncprop_initialize_block): Likewise.
362
363 2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>
364
365         PR tree-optimization/24378      
366         * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
367         basic-block after loop-versioning. 
368
369 2005-12-18  Jeff Law  <law@redhat.com>
370
371         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
372         to simplify SWITCH_EXPR_CODE moved from here to ...
373         * tree-ssa-forwprop.c (simplify_switch_expr): Here.
374         (tree-ssa-forward_propagate_single_use_vars): Call
375         simplify_switch_expr when appropriate.
376
377 2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>
378
379         * doc/objc.texi (Type encoding): Add documentation about encoding
380         complex types and _Bool.
381
382 2005-12-17  Paul Brook  <paul@codesourcery.com>
383
384         * config/m68k/m68k.md (m68k_output_function_prologue): Always call
385         dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
386         when frame_pointer_needed. 
387
388 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
389
390         * tree-vn.c (vn_add): Use XNEW.
391         * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
392         (ccp_fold): Likewise.
393         (fold_stmt_r): Use explicit cast to convert from void *.
394         * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
395         (new_temp_expr_table): Likewise.
396         * gimplify.c (lookup_tmp_var): Use XNEW.
397         (gimplify_asm_expr): Use explcit cast to convert from void *.
398         * tree-into-ssa.c (get_ssa_name_ann): Likewise.
399         (get_def_blocks_for): Use XNEW.
400         (add_to_repl_tbl): Likewise.
401         (mark_def_sites): Use explicit cast to convert from void *.
402         (def_blocks_free): Likewise.
403         (mark_def_sites_initialize_block): Likewise.
404         (update_ssa): Use XNEWVEC.
405         * tree-dfa.c (create_var_ann): Use GGC_NEW.
406         (create_stmt_ann): Likewise.
407         (create_tree_ann): Likewise.
408         (referenced_var_insert): Likewise.
409         (set_default_def): Likewise.
410         (referenced_var_lookup_if_exists): Use explicit cast to convert
411         from void *.
412         (referenced_var_lookup): Likewise.
413         (default_def): Likewise.
414         (set_default_def): Likewise.
415         * tree-cfg.c (create_bb): Likewise.
416         (edge_to_cases_cleanup): Likewise.
417         (verify_node_sharing): Likewise.
418         (record_switch_edge): Use XNEW.
419         (cleanup_dead_labels): Use XCNEWVEC.
420         (tree_duplicate_sese_region): Use XNEWVEC.
421         * tree-scalar-evolution.c (get_instantiated_value): Likewise.
422         * tree-ssa.c (verify_ssa): Use XCNEWVEC.
423         (int_tree_map_eq): Use explicit cast to convert from void *.
424         * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
425         (__gcov_execl): Likewise.
426         (__gcov_execlp): Likewise.
427         (__gcov_execle): Likewise.
428         * tree-eh.c (struct_ptr_eq): Likewise.
429         (struct_ptr_hash): Likewise.
430         (lookup_stmt_eh_region_fn): Likewise.
431         (outside_finally_tree): Likewise.
432         (find_goto_replacement): Likewise.
433         (make_eh_edge): Likewise.
434         (mark_eh_edge): Likewise.
435         (add_stmt_to_eh_region_fn): Use GGC_NEW.
436         (record_in_finally_tree): Use XNEW.
437         (maybe_record_in_goto_queue): Use XRESIZEVEC.
438         (lower_try_finally_copy): Use XCNEWVEC.
439
440 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
441
442         * tree-inline.c (copy_body_r): Use explicit cast when converting
443         from void *.
444         (copy_bb): Likewise.
445         (copy_edges_for_bb): Likewise.
446         (remap_decl_1): Likewise.
447         (estimate_num_insns_1): Likewise.
448         * cgraph.c (hash_node): Use explicit cast when converting from
449         void *.
450         (eq_node): Likewise.
451         (cgraph_create_node): Use GGC_CNEW.
452         (cgraph_create_edge): Use GGC_NEW.
453         (cgraph_remove_node): Use explicit cast when converting from void *.
454         (hash_varpool_node): Likewise.
455         (eq_varpool_node): Likewise.
456         (cgraph_varpool_node): Use GGC_CNEW.
457         * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
458         * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
459         (eq_scev_info): Use explicit cast when converting from void *.
460         (find_var_scev_info): Likewise.
461         (set_instantiated_value): Likewise.
462         (gather_stats_on_scev_database_1): Likewise.
463         * cfgloop.h (simple_loop_desc): Use explicit cast when converting
464         from void *.
465         * c-pch.c (c_common_write_pch): Use XNEWVEC.
466         (c_common_read_pch): Likewise.
467         * prefix.c (save_string): Use XNEWVEC.
468         (translate_name): Use explicit cast when converting from void *.
469         * c-ppoutput.c (print_line): Use explicit cast when converting
470         from void *.
471         (pp_dir_change): Likewise.
472         * c-cppbuiltin.c (builtin_define_std): Likewise.
473         (builtin_define_with_value): Likewise.
474         (builtin_define_with_value_n): Likewise.
475         (builtin_define_with_int_value): Likewise.
476         (builtin_define_type_max): Likewise.
477         * c-incpath.c (add_env_var_paths): Use XNEWVEC.
478         (add_path): Use XNEW.
479         * c-format.c (check_format_info_main): Use GGC_NEW.
480         (format_type_warning): Use explicit cast when converting from void *.
481         * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
482         xmalloc. 
483         (start_init): Likewise.
484         * tree-flow-inline.h (first_referenced_var): Use explicit cast
485         when converting from void *.
486         (next_referenced_var): Likewise.
487         * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
488         * gensupport.c (lookup_predicate): Use explicit cast to convert
489         from void *.
490         (init_predicate_table): Use XCNEW instead of xcalloc.
491         * genpreds.c (process_define_predicate): Likewise.
492
493 2005-12-17  Danny Berlin <dberlin@dberlin.org>
494             Kenneth Zadeck <zadeck@naturalbridge.com>
495
496         * basic-block.h: Changed basic block numbering so that the entry
497         block is 0 and the exit block is 1.  Changed insn iterators so
498         that they are tolerant of blocks with no insns.
499         * regrename.c (copyprop_hardreg_forward): Changed basic block
500         numbering so that the entry block is 0 and the exit block is 1.
501         * sched-ebb.c (sehedule_ebbs): Ditto.
502         * tracer.c (branch_ratio_cutoff): Ditto.
503         * cfgloopmanip.c (fix_loop_structure): Ditto.
504         * cfghooks.c (verify_flow_info): Ditto.
505         * cfg.c (compact_blocks): Ditto.
506         * reorg.c (dbr_schedule): Ditto.
507         * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
508         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
509         calculate_dominance_info): Ditto.
510         * cfganal.c (create_edge_list, print_edge_list,
511         flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
512         flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
513         dfs_enumerate_from): Ditto.
514         * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
515         * ifcvt.c (find_if_case_2): Ditto.
516         * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
517         find_basic_blocks): Ditto.
518         * predict.c (predict_loops, tree_bb_level_predictions,
519         predict_paths_leading_to, propagate_freq): Ditto.
520         * lcm.c (compute_antinout_edge, compute_laterin,
521         compute_available): Ditto.
522         * function.c (thread_prologue_and_epilogue_insns): Ditto.
523         * gcse.c (gcse_main, bypass_jumps): Ditto.
524         * profile.c (compute_branch_probabilities,
525         compute_value_histograms, branch_prob): Ditto.
526         * tree-flow-inline.h (bsi_start, bsi_after_labels,
527         bsi_last): Ditto.
528         * tree-ssa-phiopt.c (tree_ssa_phiopt,
529         blocks_in_phiopt_order): Ditto.
530         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
531         compute_out, link_btr_uses, migrate_btr_defs): Ditto.
532         * tree-dfa.c (collect_dfa_stats): Ditto.
533         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
534         * cfglayout.c (fixup_reorder_chain): Ditto.
535         * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
536         partition_hot_cold_basic_blocks): Ditto.
537         * var-tracking.c (vt_find_locations): Ditto.
538         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
539         * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
540         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
541         label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
542         * tree-ssa-reassoc.c (init_reassoc): Ditto.
543         * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
544         rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
545         * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
546         and removed unused reverse orders.
547         * df.h (): Ditto.
548         * combine.c: Fix document typo.
549
550 2005-12-17  Jan Hubicka  <jh@suse.cz>
551
552         * tree-flow-inline.h (set_default_def, default_def): Kill.
553         * tree-dfa.c (default_defs): New global variable.
554         (default_def, set_default_def): New functions.
555         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
556         * tree-flow.h (struct var_ann_d): Kill default_def field.
557         (set_default_def, default_def): Update prototype.
558         (default_defs): Declare.
559
560 2005-12-16  Jeff Law  <law@redhat.com>
561
562         * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
563         (simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
564         into tree-ssa-forwprop.c.
565         (eliminate_redundant_computations): Do not call
566         simplify_rhs_and_lookup_avail_expr anymore.
567         * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
568         extracted from remnants of simplify_rhs_and_lookup_avail_expr.
569         (tree_ssa_forward_propagate_single_use_vars): Call
570         simplify_not_neg_expr appropriately.
571
572 2005-12-16  Bernd Trog  <berndtrog@yahoo.com>
573
574         PR target/20016
575         * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
576
577 2005-12-17  Kazu Hirata  <kazu@codesourcery.com>
578
579         PR rtl-optimization/25456
580         * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
581         info->x_start with p->x_start.
582
583 2005-12-17  Alan Modra  <amodra@bigpond.net.au>
584
585         * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
586         introduced 2005-12-16.
587
588 2005-12-16  Steven Bosscher  <stevenb@suse.de>
589
590         PR rtl-optimization/23837
591         * optabs.c (expand_binop): For a multi-word rotate, never emit
592         a REG_NO_CONFLICT block.
593
594 2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
595
596         PR middle-end/25457
597         * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
598
599         PR target/25447
600         * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
601         MODE_DECIMAL_FLOAT.
602
603 2005-12-16  Steven Bosscher  <stevenb@suse.de>
604
605         * loop-invariant.c (move_loop_invariants): Add missing hunk from
606         the previous patch, to nullify df.
607
608 2005-12-16  Steven Bosscher  <stevenb@suse.de>
609
610         * reorg.c (mostly_true_jump): Clean up code depending on
611         LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
612         poor man's branch prediction, instead rely on REG_BR_PROB
613         notes to be available.
614
615 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
616
617         PR rtl-optimization/24899
618         * loop.c (strength_reduce): Don't reduce giv that is not always
619         computable and where add_val or mult_val can trap.
620
621         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
622
623 2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
624
625         * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
626         names of ms1-16-002 files.
627
628 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
629
630         PR driver/20425
631         * gcc.c (for_each_path): New function.
632         (add_to_obstack, file_at_path): New functions.
633         (struct file_at_path_info, struct add_to_obstack_info): New.
634         (build_search_list): Rewrite using for_each_path.  Constify struct
635         path_prefix pointer.  Add do_multi param.  Adjust all callers.
636         (find_a_file): Similarly, but just change existing param to bool.
637         (putenv_from_prefixes): Add do_multi param, make "paths" const.
638         (do_spec_path): Delete.
639         (struct spec_path_info): New.
640         (spec_path): New function.
641         (do_spec_1): Use for_each_path for %D and %I.
642         (find_file): Adjust for find_a_file changes.
643         (main): Search multilibs for specs.  Print multilib lib path for
644         -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
645         (read_specs): Search multilibs for %include and %include_noerr.
646         (is_directory): Remove second string param.  Change last param
647         to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
648         check path is a dir.  Update all callers.
649         * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
650         * system.h (SMALL_ARG_MAX): Poison.
651         * config.gcc: Don't define SMALL_ARG_MAX.
652         * config.host: Likewise.
653         * config.build: Likewise.
654
655 2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
656
657         * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
658         FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
659         ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
660         simplify_logical): Move simplifications that do not require
661         additional infrastructure...
662         * simplify-rtx.c (simplify_unary_operation_1,
663         simplify_binary_operation_1): ... here.
664
665 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
666
667         PR 24823
668         * flow.c (mark_used_dest_regs): New function.
669         (mark_used_regs): Call mark_used_dest_regs.
670
671 2005-12-16  Jeff Law  <law@redhat.com>
672
673         * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
674         represent a use and definition of the same SSA_NAME.
675
676 2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
677             Janis Johnson  <janis187@us.ibm.com>
678             Ben Elliston  <bje@au.ibm.com>
679
680         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
681         (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
682         * target.h (struct gcc_target): Add decimal_float_supported_p.
683         * targhooks.c (default_scalar_mode_supported_p): Handle
684         MODE_DECIMAL_FLOAT.
685         * builtins.def: Add new builtins for 32, 64 and 128 bit variants
686         of inf, nan, finite, isinf and isnan.
687         * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
688         BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
689         BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
690         BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
691         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
692         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
693         BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
694         * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
695         Pedwarn if decimal floating point types are used.  Error if
696         decimal floating point is not supported by the target.
697         (finish_declspecs): Return type from DFP typespec_word.
698         * c-typeck.c (c_common_type): Choose the decimal floating point
699         type with the greater precision when determining a common type.
700         (convert_arguments): Warn if there is a mismatch between argument
701         and prototype for decimal float types.  Warn of conversions with
702         binary float types and of precision narrowing due to prototype.
703         * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
704         (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
705         (c_token_starts_declspecs): Likewise.
706         (c_parser_attributes): Likewise.
707         * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
708         RID_DFLOAT64, RID_DFLOAT128.
709         (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
710         * c-common.c (c_common_type_for_mode): Handle decimal float modes.
711         (shorten_compare): Convert DFP/BFP operands to a common type.
712         (c_common_modes_and_builtins): Register built-in decimal float
713         types if the target supports them.
714         (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
715         * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
716         inf, nan, finite, isinf and isnan builtins.
717         * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
718         (builtin_define_float_constants): Assert non-decimal radix.
719         (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
720         Call builtin_define_decimal_float_constants for each type.
721         * c-lex.c (interpret_float): Decode decimal float types from CPP_N
722         flags.  Use real_from_string3, which can handle binary or decimal
723         floats.
724         * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
725         cts_dfloat64, cts_dfloat128.
726         * tree.c (build_common_tree_nodes_2): Add decimal float types.
727         * tree.h (enum tree_index): Add new enumeration values
728         TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
729         TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
730         (dfloat32_type_node): New macro.
731         (dfloat64_type_node, dfloat128_type_node): Likewise.
732         (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
733         (dfloat128_ptr_type_node): Likewise.
734         * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
735         bit decimal floating point types with "df", "dd" and "dl".
736         * c-format.h (enum format_lengths): Add new enumeration values
737         FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
738         * c-format.c (printf_length_specs, scanf_length_specs): Add
739         entries for H, D, DD.
740         (print_char_table, scan_char_table): Use new entries.
741         (asm_fprintf_char_table, gcc_diag_char_table,
742         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
743         length arrays.
744         * defaults.h (DECIMAL32_TYPE_SIZE): Define.
745         (DECIMAL64_TYPE_SIZE): Likewise.
746         (DECIMAL128_TYPE_SIZE): Likewise.
747         (TARGET_DEC_EVAL_METHOD): Likewise.
748         * doc/extend.texi (Decimal Float): New node.
749         (Constructing Calls): Document decimal float built-ins.
750         * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
751         * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
752         * ginclude/decfloat.h: New file.
753
754 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
755
756         * reload.c (find_reloads): Fix comment typo.
757         * recog.h (recog_memoized): Correct comment.
758
759 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
760
761         * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
762         config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
763         reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
764         tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
765         * doc/invoke.texi, doc/tm.texi: Fix typos.
766
767 2005-12-16  Ben Elliston  <bje@au.ibm.com>
768
769         * real.c (decimal_quad_format): Correct values for emin, emax.
770
771 2005-12-15  DJ Delorie  <dj@redhat.com>
772
773         * config/m32c/predicates.md (m32c_psi_scale): New.
774         * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
775         * config/m32c/muldiv.md (mulpsi3): Support negative constants.
776
777 2005-12-16  Jan Hubicka  <jh@suse.cz>
778
779         PR rtl-optimization/25224
780         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
781         tables.
782
783 2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
784             Steven Bosscher <stevenb@suse.de>
785
786         * loop-invariant.c (df): New global variable.
787         (find_defs, check_dependencies, find_invariant_insn, record_uses,
788         find_invariants_bb, find_invariants_body, find_invariants,
789         find_invariants_to_move, move_invariants, free_inv_motion_data,
790         move_single_loop_invariants, move_loop_invariants): Do not pass df in
791         arguments.
792
793 2005-12-15  Jakub Jelinek  <jakub@redhat.com>
794
795         * varasm.c (default_unique_section_1): Use special section
796         names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
797
798 2005-12-16  Ben Elliston  <bje@au.ibm.com>
799
800         * doc/invoke.texi (Warning Options): Document -Walways-true being
801         enabled by -Wall.
802
803 2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
804
805         PR other/25028
806         * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
807         * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
808         __floatunditf): Use #error if type sizes don't match requirements
809         of implementation.
810         (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
811         as wider floating-point type.  Use #error if type sizes don't
812         match requirements of implementation.  Avoid overflow in computing
813         Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
814         shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
815         (__floatundisf, __floatundidf): Likewise.
816         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
817         * config/ia64/ia64.c (ia64_init_libfuncs): Use
818         _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
819         TFmode-TImode conversions.
820         * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
821
822 2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
823
824         * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
825         Use builtin_define_with_int_value() instead of
826         adding a new check for every new major FreeBSD version.
827
828 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
829
830         * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
831
832 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
833
834         * config/arm/predicates.md (call_memory_operand): New.
835         * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
836
837 2005-12-15  Andrew Haley  <aph@redhat.com>
838
839         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
840         against prev_cache_entry == NULL when moving a cache entry to the
841         head of the list.
842         
843 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
844
845         * config/mt/mt.c (mt_override_options): Require lower case
846         architectures.  Revert accidental default to ms2.
847         * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
848         ENDFILE_SPEC): Require lower case architectures.  Revert default
849         to ms2.
850
851         * doc/invoke.texi (MT Options): Rename and update.
852         * doc/md.texi (MorphoTech family): Rename and update.
853
854 2005-12-15  Olivier Hainque  <hainque@adacore.com>
855
856         * stor-layout.c (layout_type): Don't complain about a too small
857         an array element type size compared to its alignment when the
858         size overflows.
859
860 2005-12-15  Jan Hubicka  <jh@suse.cz>
861
862         PR target/24969
863         * i386.c (classify_argument): Properly adjust offset of bitfield for
864         substructures.
865
866 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
867
868         * final.c (final_scan_insn): Flip in_cold_section_p when changing
869         between the hot and cold sections.  Use current_function_section
870         to get the new section.
871         * dwarf2out.c (output_line_info): Use in_cold_section_p to
872         determine whether we are assembling hot or cold code.
873         (secname_for_decl, dwarf2out_var_location): Likewise.
874         (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
875         * varasm.c (last_text_section): Delete.
876         (in_cold_section_p): New variable.
877         (hot_function_section): New function.
878         (current_function_section): Pass in_cold_section_p as the
879         reloc argument to select_section.  Use it to decide between
880         unlikely_function_section and hot_function_section.
881         (assemble_start_function): Use switch_to_section.  Set
882         in_cold_section_p instead of last_text_section.
883         (assemble_end_function): Use switch_to_section.
884         (switch_to_section): Don't set last_text_section.
885         * config/darwin/darwin.c (machopic_select_section): Trust the reloc
886         argument to make the right choice between hot and cold sections.
887
888 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
889
890         Second part of MS1->MT renaming
891         * config/mt/mt.md (doloop_end): Call mt_add_loop.
892         (movqi, movhi): Call mt_set_memflags.
893         (*movdf_internal): Call mt_split_words. 
894         (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
895         mt_set_memflags.
896         (cmpsi): Store to mt_compare_op[01].
897         (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
898         bungt, bunle, bunlt): Call mt_emit_cbranch.
899         (prologue): Call mt_expand_prologue.
900         (epilogu): Call mt_expend_epilogue.
901         (eh_return): Call mt_expand_eh_return.
902         (eh_epilogue): Call me_emit_eh_epilogue.
903         (conditional_trap): Store to mt_compare_op[01].
904         * config/mt/crti.asm: Adjust comment.
905         * config/mt/crtn.asm: Adjust comment.
906         * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
907         (mt_compare_op0, mt_compare_op1): Renamed.
908         (current_frame_info, zero_frame_info): Adjust type.
909         (mt_ucmpsi3_libcall): Renamed.
910         (mt_flag_delayed_branch): Renamed.
911         (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
912         (mt_nops_required, mt_nop_reasons): Renamed.
913         (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
914         mt_debug_stack, mt_print_operand_simple_address,
915         mt_print_operand_address, mt_print_operand): Renamed, adjusted.
916         (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
917         mt_function_arg_advance, mt_arg_partial_bytes,
918         mt_pass_by_reference, mt_function_arg_boundary,
919         mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
920         mt_legitimate_address_p): Renamed, adjusted.
921         (mt_cpu): Renamed.
922         (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
923         mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
924         mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
925         mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
926         mt_expand_eh_return, mt_emit_eh_prologue,
927         mt_handl_interrupt_attribute): Renamed, adjusted.
928         (mt_attribute_table): Renamed, adjusted.
929         (mt_initial_elimination_offset, mt_generate_compare,
930         mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
931         mt_secondary_reload_class, mt_function_value, mt_split_words,
932         mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
933         mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
934         (mt_labels): Renamed.
935         (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
936         mt_machine_reorg): Renamed, adjusted.
937         (mt_attribute_table: Renamed.
938         (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
939         TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
940         TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
941         * config/mt/mt.opt (march): Set mt_cpu_string.
942         * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
943         (TARGET_CPU_CPP_BUILTINS): Adjust.
944         (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
945         TARGET_MS2): Adjust.
946         (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
947         (MT_MIN_INT): Renamed.
948         (RETURN_ADDR_RTX): Adjust.
949         (struct mt_frame_info): Renamed.
950         (current_frame_info): Adjust type.
951         (INITIAL_ELIMINATION_OFFSET): Adjust.
952         (MT_NUM_ARG_REGS): Renamed.
953         (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
954         FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
955         LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
956         GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
957         FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
958         (mt_compare_op0, mt_compare_op1): Renamed.
959         * config/mt/mt-protos.h: Rename prototypes.
960
961 2005-12-15  Richard Guenther  <rguenther@suse.de>
962
963         * tree-flow.h (okay_component_ref_for_subvars): Remove.
964         (get_ref_base_and_extent): Declare.
965         * tree-dfa.c (okay_component_ref_for_subvars): Remove.
966         (get_ref_base_and_extent): New function.
967         * tree-ssa-alias.c (find_used_portions): Use it.
968         * tree-ssa-structalias.c (get_constraint_for_component_ref):
969         Likewise.
970         * tree-ssa-operands.c (get_expr_operands): Likewise.
971
972 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
973
974         * combine.c: Remove force_to_mode's fourth parameter.
975         (force_to_mode): Do not handle REG.
976         (canon_reg_for_combine): New.
977         (make_field_assignment): Use it where the removed argument was non-NULL.
978
979 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
980
981         PR target/25406
982         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
983         error_mark_node.  Make alignment params unsigned.
984         * config/rs6000/rs6000-protos.h
985         (rs6000_special_round_type_align): Update prototype.
986         (rs6000_machopic_legitimize_pic_address): Remove arg names.
987
988 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
989
990         PR rtl-optimization/25310
991         * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
992         of the eliminable register when substituting into a PLUS.
993
994 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
995
996         PR debug/25023
997         * config/i386/i386.c (ix86_force_to_memory): Always use
998         SImode push for HImode in -m32.
999         (ix86_free_from_memory): Likewise.
1000
1001 2005-12-14  Richard Sandiford  <richard@codesourcery.com>
1002
1003         * gcc/config/arm/arm.md: Provide a big-endian version of the
1004         (zero_extend:SI (subreg:QI ...)) splitter.
1005
1006 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1007
1008         * struct-equiv.c (note_local_live): Handle hard regs with different
1009         hard_regno_nregs.
1010
1011 2005-12-14  Jeff Law  <law@redhat.com>
1012
1013         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
1014         to a structure containing state rather than a pointer to bool.
1015         (case ARRAY_REF): New code to handle folding some array references.
1016         (case ADDR_EXPR): Note when we are processing expressions found
1017         within an ADDRE_EXPR.
1018         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
1019         for state variables rather than just a pointer to a boolean.
1020         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1021         handling of constant string references.
1022
1023 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1024
1025         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
1026         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
1027         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
1028         Move other tst* patterns to retain partial order.
1029
1030 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1031
1032         * config/s390/s390.md ("d0", "1"): New mode attributes.
1033         ("<shift>di3", "<shift>si3"): Merge.
1034         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
1035         ("ashrdi3", "ashrsi3"): Merge.
1036         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
1037         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
1038         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
1039         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
1040         ("*ashrdi3", "*ashrsi3"): Merge.
1041         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
1042
1043 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1044
1045         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
1046         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
1047         ("*extendqidi2", "*extendqisi2") Merge.
1048         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
1049         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1050         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
1051         Move some patterns to retain partial ordering.
1052
1053 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1054
1055         * config/s390/s390.md ("atype", "length"): Rewrite.
1056         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
1057
1058 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1059
1060         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
1061
1062 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1063
1064         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
1065         PARALLELs with a mode.
1066
1067 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1068
1069         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1070         cond_expr parameter.
1071
1072 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1073
1074         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1075
1076 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1077
1078         PR bootstrap/25397:
1079
1080         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1081         of STACK_REGS bits.
1082
1083         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1084
1085 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1086
1087         PR target/25254
1088         PR target/24188
1089         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1090         DECL_P, call get_section rather than get_named_section.  Supply
1091         section flags to it.
1092
1093 2005-12-14  Ben Elliston  <bje@au.ibm.com>
1094
1095         * c-common.c (c_common_truthvalue_conversion): Generalise warning
1096         for addresses converted to booleans; not just function addresses.
1097         * c-typeck.c (build_binary_op): Warn for address comparisons which
1098         can never be NULL (eg. func == NULL or &var == NULL).
1099         * common.opt (Walways-true): New option.
1100         * c-opts.c (c_common_handle_option): Set it with -Wall.
1101         * doc/invoke.texi: Document it.
1102
1103 2005-12-13  Paul Brook  <paul@codesourcery.com>
1104
1105         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1106         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1107
1108 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1109
1110         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1111         (EXTRA_MULTILIB_PARTS): Define.
1112
1113 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1114
1115         PR rtl-optimization/20070 / part1
1116         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1117         count_or_remove_death_notes with kill == -1.
1118         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1119         registers if PROP_POST_REGSTACK is set.
1120         (mark_used_reg): Likewise.
1121         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1122         REG_UNUSED notes for stack regs.
1123         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1124         to match rtx_equiv_p machinery.  Change caller.
1125         (outgoing_edges_match): Likewise.
1126         (try_crossjump_to_edge): Use struct_equiv_block_eq
1127         instead of flow_find_cross_jump.
1128         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1129         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1130         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1131         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1132         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1133         (insns_match_p): Update prototype.
1134         (flow_find_cross_jump): Remove prototype.
1135         (struct_equiv_block_eq, struct_equiv_init): Declare.
1136         (rtx_equiv_p, condjump_equiv_p): Likewise.
1137         * struct-equiv.c: Include reload.h.
1138         (IMPOSSIBLE_MOVE_FACTOR): Define.
1139         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1140         (struct_equiv_improve_checkpoint): Likewise.
1141         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1142         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1143         (struct_equiv_merge, find_dying_input): Likewise.
1144         (resolve_input_conflict, note_local_live): Likewise.
1145         (death_notes_match_p): Change parameters and processing
1146         to match rtx_equiv_p machinery.  Change caller.
1147         (insns_match_p): Likewise.
1148         (flow_find_cross_jump): Replace with:
1149         (struct_equiv_block_eq).
1150
1151         Back out this change:
1152         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1153           * recog.c (verify_changes): Make it static.
1154           * recog.h: Remove the corresponding prototype.
1155
1156 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1157
1158         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1159         values.
1160
1161 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1162
1163         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1164         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
1165         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1166         TARGET_MS1_64_001 appropriately.
1167         (ms1_machine_reorg): Use TARGET_MS2.
1168
1169 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
1170
1171         PR debug/25023
1172         PR target/25293
1173         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1174         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1175         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1176         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1177         Set mode to SI, adjust constraints.
1178         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1179         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1180         32-bit code.
1181
1182 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
1183
1184         * c-cppbuiltin.c (builtin_define_float_constants): Add
1185         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1186         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1187         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1188         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1189         to "((double)%sL)" otherwise "%s".
1190
1191 2005-12-13  Paul Brook  <paul@codesourcery.com>
1192
1193         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1194         apcs/atpcs.
1195
1196 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1197
1198         * tree-flow.h: Allow compilation with a C++ compiler.
1199         (struct edge_prediction): Prefix all field names  with "ep_".
1200         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1201         (tree_predict_edge, combine_predictions_for_bb): Likewise.
1202         (remove_predictions_associated_with_edge): Likewise.
1203         
1204 2005-12-12  Jeff Law  <law@redhat.com>
1205
1206         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1207         reassociation code.
1208         * passes.c (init_optimization_passes): Run reassociation again
1209         after loop optimizations.
1210
1211 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
1212
1213         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1214         if necessary.
1215         (optimize_stmt): Ditto.
1216         (canonicalize_comparison): New function.
1217         * tree-ssa-operands.c (swap_tree_operands): Make external.
1218         (get_expr_operands): Stop auto-canonicalization.
1219         * tree-ssa-reassoc.c: Rewrite.
1220         (init_optimization_passes): 
1221         * tree-flow.h (swap_tree_operands): Prototype.
1222         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1223
1224 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1225
1226         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1227         indicate function epilogue has been output.
1228         (pa_asm_output_mi_thunk): Likewise.
1229         (output_deferred_plabels): Put plabels in readonly data section when
1230         not generating PIC code.
1231         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1232         information.  Add assert.
1233         (som_output_comdat_data_section_asm_op): New function.
1234         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1235         instead of output_section_asm_op for COMDAT sections.
1236
1237 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
1238
1239         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1240         Fix whitespace in vincinity of to-be-installed changes.
1241         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1242         (insns_match_p): Likewise.
1243
1244 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1245
1246         * config.gcc (ms1): Replace with ...
1247         (mt): ... this.
1248         * config/ms1: Rename to ...
1249         * config/mt: ... here.  Rename ms1 files to mt.
1250         * config/mt/mt.c: Adjust gt-mt.h #include.
1251         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1252         (crti.o, crtn.o): Adjust file names.
1253
1254 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1255
1256         * varray.h: Allow compilation with a C++ compiler.
1257         (union varray_data_tag): Prefix all field names with "vdt_".
1258         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1259         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1260         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1261         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1262         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1263         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1264         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1265         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
1266         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
1267         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
1268         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
1269         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
1270         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
1271         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1272         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
1273         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
1274         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
1275         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
1276         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
1277         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
1278         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
1279         VARRAY_TOP_TREE_PTR): Likewise.
1280         * varray.c (varray_grow): Likewise.
1281         (varray_clear): Likewise.
1282
1283 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
1284
1285         PR target/25299
1286         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1287         alignment to doubleword if the first field is a double array.
1288         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1289
1290 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1291
1292         * tree-ssa-structalias.c (process_constraint): Remove code to
1293         transform addressofs into scalar.
1294         (create_variable_info_for): In whole-program IPA, globals don't
1295         point to ANYTHING by default.
1296
1297 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1298
1299         * timevar.def (TV_IPA_PTA): New.
1300         * tree-pass.h (pass_ipa_pta): New
1301         * tree-ssa-structalias.c: Include cgraph.h
1302         (in_ipa_mode): New.
1303         (predbitmap_obstack): New.
1304         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1305         (struct constraint_stats): Add num_edges.
1306         (new_var_info): Don't call bitmap_clear.
1307         (struct constraint_edge): Update docs.
1308         (new_constraint_edge): Remove src param.
1309         (struct constraint_graph): Add zero_weight_succs,
1310         zero_weight_preds.  Update docs.
1311         (constraint_expr_equal): Reformat.
1312         (constraint_edge_equal): Update for removal of src.
1313         (constraint_edge_less): Ditto.
1314         (constraint_edge_vec_find): Ditto.
1315         (erase_graph_self_edge): Update for removal of src and and zero
1316         weight bitmap.
1317         (clear_edges_for_node): Ditto.
1318         (add_graph_edge): Ditto.
1319         (get_graph_weights): Ditto.
1320         (allocate_graph_weights): Ditto.
1321         (merge_graph_nodes): Ditto.
1322         (int_add_graph_edge): Ditto.
1323         (valid_graph_edge): Ditto.
1324         (valid_weighted_graph_edge): Ditto.
1325         (build_constraint_graph): Ditto.
1326         (scc_visit): Ditto.
1327         (collapse_nodes): Ditto.
1328         (process_unification_queue): Ditto.
1329         (topo_visit): Ditto.
1330         (solve_graph): Ditto.
1331         (do_structure_copy): Ditto.
1332         (perform_var_substitution): Ditto.
1333         Init and release obstack.
1334         (handle_ptr_arith): Try to resolve directly.
1335         (find_func_aliases): Don't call update_alias_info here
1336         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1337         (do_sd_constraint): Add code for propagating faster.
1338         Update.
1339         (do_ds_constraint): Ditto.
1340         (count_num_arguments): New function.
1341         (create_function_info_for): Ditto.
1342         (create_variable_info_for): Handle FUNCTION_DECL.
1343         (intra_create_variable_infos): Use make_constraint_to_anything.
1344         (init_alias_vars): Init obstacks here.
1345         (need_to_solve): Handle zero weight graph changes.
1346         (compute_points_to_sets): Call update_alias_info here.
1347         (delete_points_to_sets): Free zero weight preds/succs here.
1348         (gate_ipa_pta): New.
1349         (ipa_pta_execute): New
1350
1351 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1352
1353         * tree-ssa-structalias.c (var_anyoffset): Removed.
1354         (anyoffset_tree): Ditto.
1355         (anyoffset_id): Ditto.
1356         (do_deref): Take vector of constraints, no return value.
1357         Update to work on vector.                
1358         (get_constraint_for): Ditto.
1359         (get_constraint_for_component_ref): Ditto.
1360         (do_structure_copy): Ditto.
1361         (handle_ptr_arith): Ditto.
1362         (find_func_aliases): Ditto.
1363         (set_uids_in_ptset): Remove anyoffset handling.
1364         (init_base_vars): Ditto.
1365
1366 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
1367
1368         PR c++/25010
1369         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1370         DECL_EXTERNAL functions have no bodies.  Tidy.
1371
1372 2005-12-10  Andreas Schwab  <schwab@suse.de>
1373
1374         * except.c (switch_to_exception_section): Only define if
1375         TARGET_UNWIND_INFO is not defined.
1376
1377 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1378
1379         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1380         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1381
1382 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1383
1384         * output.h (init_section, fini_section): Delete.
1385         * varasm.c (init_section, fini_section): Delete.
1386         (init_varasm_once): Don't initialize them.
1387         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1388         there are no corresponding varasm.c variables.
1389
1390 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1391
1392         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1393         of EH_FRAME_SECTION_NAME into...
1394         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
1395         if it is still null.
1396         * except.c (default_exception_section): Delete, moving most
1397         of the code to...
1398         (switch_to_exception_section): ...this new function.  Set
1399         exception_section if it is still null, then switch to it.
1400         (output_function_exception_table): Use switch_to_exception_section.
1401         * varasm.c (exception_section, eh_frame_section): Update comments.
1402         (get_section): Hoist use of SECTION_NAMED.
1403         (init_varasm_once): Don't set exception_section and eh_frame_section.
1404         * output.h (default_exception_section): Delete.
1405         (default_eh_frame_section): Delete.
1406
1407 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1408
1409         * config/bfin/bfin.c: Include "cgraph.h".
1410         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1411         Return the reg that holds the pointer to the GOT.
1412         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1413         doing stack checking.
1414
1415 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
1416
1417         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1418         recompute_tree_invarant_for_addr_expr.
1419         Update uses everywhere.
1420
1421 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
1422
1423         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1424         (MULTILIB_DIRNAMES): Define.
1425
1426 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1427
1428         PR target/25311
1429         * config/s390/s390.c (struct s390_address): New field literal_pool.
1430         (s390_decompose_address): Compute literal_pool field.  Do not 
1431         assume register %r13 is always (and solely) used as pool base.
1432         (s390_extra_constraint_str): Use literal_pool field.
1433
1434 2005-12-09  Thiemo Seufer  <ths@networkno.de>
1435
1436         * config/mips/mips.c (override_options): Don't allow too small
1437         integers in FP registers.
1438
1439 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1440
1441         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1442         targetm.binds_local_p to check for local function calls.
1443
1444 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
1445
1446         PR debug/24908
1447         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1448         call_used_regs can't be used to save reg in another reg.
1449
1450 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1451             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1452
1453         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1454         abort.
1455         * except.c (output_ttype): Likewise.
1456         * tree-object-size.c (collect_object_sizes_for): Likewise.
1457         (check_for_plus_in_loops_1): Likewise.
1458         (check_for_plus_in_loops): Likewise.
1459         (compute_object_sizes): Use gcc_unreachable instead of abort.
1460
1461 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1462
1463         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1464         (loop_end, loop_init, doloop_end): New insns.
1465         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1466         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1467         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1468         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1469         * config/ms1/ms1.c: #include basic-block.h
1470         (struct machine_function): Add has_loops field.
1471         (ms1_add_loop): New.
1472         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1473         (struct loop_info, struct loop_work): New.
1474         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1475         (ms1_reorg_loops): New loop optimization.
1476         (ms1_machine_reorg): Call it.
1477         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1478
1479 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
1480
1481         PR tree-optimization/25248
1482         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1483         evolution_of_loop from the failed attempt.  Remove handling
1484         of MULT_EXPR.
1485
1486 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1487
1488         * tree.h (DECL_EXTERNAL): Clarify documentation.
1489
1490 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1491             Jakub Jelinek  <jakub@redhat.com>
1492
1493         PR target/25268
1494         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1495         argument.  Don't drop outer ANDs.
1496         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1497         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1498         prototype.
1499         * config/s390/predicates.md (setmem_operand): Remove.
1500         (shift_count_operand): Rename to...
1501         (shift_count_or_setmem_operand): ... this.  Adjust
1502         s390_decompose_shift_count caller.
1503         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1504         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1505         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1506         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1507         rotl<mode>3_and, setmem_long_and): New insns.
1508         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1509         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1510         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1511         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1512         of shift_count_operand.
1513         (setmem_long): Use shift_count_or_setmem_operand instead of
1514         setmem_operand.
1515
1516 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
1517             Andreas Tobler  <a.tobler@schweiz.ch>
1518
1519         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1520         tr expression.
1521
1522 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1523
1524         * expr.c (force_operand): Use convert_to_mode for conversions.
1525
1526 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1527
1528         * reload.h (reg_equiv_invariant): Declare.
1529         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1530         register also when reg_equiv_invariant[R] is set.
1531
1532 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1533             Andreas Tobler  <a.tobler@schweiz.ch>
1534
1535         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1536
1537 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
1538
1539         * tree-ssa-pre.c (bitmap_set_and): New function.
1540         (bitmap_set_and_compl): New function.
1541         (bitmap_set_empty_p): New function.
1542         (insert_extra_phis): New function.
1543         (compute_avail): Use insert_extra_phis.
1544
1545 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1546
1547         * config/s390/s390.c (s390_expand_atomic): New function.
1548         Adjust comment of helper functions.
1549         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1550         * config/s390/s390.md ("ATOMIC"): New code macro.
1551         ("atomic"): Corresponding new code attribute.
1552         ("sync_lock_test_and_set[hq]i", 
1553         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1554
1555 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1556
1557         * config/s390/s390.c (s390_expand_mask_and_shift, 
1558         struct alignment_context, init_alignment_context, 
1559         s390_expand_cs_hqi): New.
1560         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1561         * config/s390/s390.md ("sync_compare_and_swaphi",
1562         "sync_compare_and_swapqi"): New pattern.
1563
1564 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
1565
1566         Fix PR tree-optimization/25291
1567         * tree-ssa-operands.c (add_call_clobber_ops): Remove
1568         redundant and crashing check.
1569
1570 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
1571
1572         PR target/25212
1573         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1574         tests further when !strict && reload_in_progress.
1575         (print_operand): Check that both operands of indexed address are regs.
1576         (print_operand_address): Likewise.
1577         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1578         (INT_REG_OK_FOR_BASE_P): Correct.
1579
1580 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1581
1582         Preparation for PR rtl-optimization/20070 / part1
1583         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1584         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1585         outgoing_edges_match.
1586         (outgoing_edges_match): Use condjump_equiv_p.
1587         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
1588         into..
1589         * struct-equiv.c: New file.
1590         (death_notes_match_p) New function, broken out of insns_match_p.
1591         * Makefile.in (OBJS-common): Add struct-equiv.o.
1592         (struct-equiv.o): New target.
1593
1594 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1595
1596         * coretypes.h: Revert previous change.
1597         * config/darwin.h: Revert previous reversion.
1598         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
1599
1600 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1601
1602         * coretypes.h (section): Provide dummy definition for target files.
1603         * config/darwin.h: Revert previous change.
1604
1605 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1606
1607         * doc/sourcebuild.texi (all.build, install-normal): Remove.
1608         * configure.ac: Remove all.build and install-normal from target_list
1609         * configure: Regenerate.
1610         * Makefile.in (install): Don't depend on install-normal.
1611
1612 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1613
1614         * Makefile.in: Document the use of stamps.
1615
1616 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
1617
1618         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
1619         * Makefile.in: Add code to compute some dependencies on s-gtype
1620         automatically.  Remove the declaration of those dependencies.
1621
1622 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1623
1624         * gcc/reload.c (push_secondary_reload): Fix typo:
1625         s/insn_constraint/scratch_constraint/.
1626
1627 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1628
1629         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
1630
1631 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1632
1633         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
1634         (alpha_elf_select_rtx_section): Return the selected section rather
1635         than emitting assembly code.
1636         (alpha_write_linkage): Emit a ".link" directive directly and then
1637         set in_section to NULL.
1638         (vms_asm_out_constructor): Use switch_to_section.
1639         (vms_asm_out_destructor): Likewise.
1640         (unicosmk_output_common): Set in_section to NULL instead of calling
1641         the dummy common_section function.
1642         (unicosmk_text_section): Delete in favor of...
1643         (unicosmk_output_text_section_asm_op): ...this new function.
1644         (unicosmk_data_section): Delete in favor of...
1645         (unicosmk_output_data_section_asm_op): ...this new function.
1646         (unicosmk_init_sections): New function.
1647         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
1648         (unicosmk_output_ssib): Set in_section to NULL instead of calling
1649         the dummy ssib_section function.
1650         (unicosmk_section_buf): Delete.
1651         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
1652         (unicosmk_data_section): Delete.
1653         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1654         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
1655         (SECTION_FUNCTION_TEMPLATE): Delete.
1656         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
1657         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1658         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
1659         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1660         (TARGET_ASM_INIT_SECTIONS): Define.
1661         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
1662         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1663         (link_section, literals_section): Delete.
1664         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
1665         set in_section to NULL.
1666
1667         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
1668         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
1669         (COMMON_SECTION): Delete.
1670         (TARGET_ASM_INIT_SECTIONS): Define.
1671         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
1672         the dummy common_section function.
1673         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1674         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
1675         between readonly_data_section and text_section to check whether
1676         read-only data is being put in the text section.
1677         (arm_output_function_epilogue): Use switch_to_section.
1678         (arm_elf_asm_constructor): Likewise.
1679         (thumb_call_via_reg): Replace call to in_text_section with
1680         a comparison between in_section and text_section.
1681         (arm_file_end): Use switch_to_section.
1682         (aof_text_section): Delete in favor of...
1683         (aof_output_text_section_asm_op): ...this new function.
1684         (aof_data_section): Delete in favor of...
1685         (aof_output_data_section_asm_op): ...this new function.
1686         (aof_asm_init_sections): New function.
1687         (zero_init_section): Moved from config/arm/aof.h.
1688         (aof_dump_imports, aof_file_start): Use switch_to_section.
1689         * config/arm/arm.h (thumb_call_via_label): Update comment.
1690         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
1691         (common_section): Delete.
1692         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1693         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1694         global switch_to_section function instead of the old port-local one.
1695         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
1696         (SWITCH_TO_SECTION_FUNCTION): Delete.
1697         (drectve_section): Redefine as a macro.
1698         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
1699         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
1700         switch_to_section.
1701
1702         * config/avr/avr.c (progmem_section): New variable.
1703         (avr_output_progmem_section_asm_op): New function.
1704         (avr_asm_init_sections): New function.
1705         (avr_output_addr_vec_elt): Use switch_to_section.
1706         * config/avr/avr.h (progmem_section): Declare.
1707         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1708         (READONLY_DATA_SECTION): Delete.
1709         (TARGET_ASM_INIT_SECTIONS): Define.
1710         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1711         * config/avr/avr-protos.h (progmem_section): Delete.
1712
1713         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1714
1715         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1716         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
1717
1718         * config/darwin-sections.def: New file.
1719         * config/darwin.c: Define all sections in darwin-sections.def.
1720         (output_objc_section_asm_op, darwin_init_sections): New functions.
1721         (machopic_output_indirection): Use switch_to_section.
1722         (machopic_select_section): Return the selected section rather than
1723         emitting assembly code.  Replace the static function table with
1724         inline conditional expressions.  Update the tests of last_text_section
1725         and move them into the FUNCTION_DECL block.
1726         (machopic_select_rtx_section): Return the selected section rather than
1727         emitting assembly code.
1728         (machopic_asm_out_constructor, machopic_asm_out_destructor)
1729         (darwin_file_end): Use switch_to_section.
1730         * config/darwin.h: Use darwin-sections.def to declare sections.
1731         (INIT_SECTION_ASM_OP): Remove empty definition.
1732         (HAS_INIT_SECTION): Define this instead.
1733         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1734         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1735         (TARGET_ASM_EH_FRAME_SECTION): Delete.
1736         (TARGET_ASM_INIT_SECTIONS): Define.
1737         * config/darwin-protos.h (darwin_init_sections): Declare.
1738         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
1739         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
1740         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1741         (constructor_section, destructor_section, mod_init_section): Delete.
1742         (mod_term_section): Delete.
1743         (darwin_exception_section, darwin_eh_frame_section): Delete.
1744         (machopic_select_section): Return a section.
1745         (machopic_select_rtx_section): Likewise.
1746         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
1747         (const_section, const_coal_section, const_data_section): Delete.
1748         (const_data_coal_section, data_coal_section, cstring_section): Delete.
1749         (literal4_section, literal8_section, constructor_section): Delete.
1750         (mod_init_section, mod_term_section, destructor_section): Delete.
1751         (objc_class_section, objc_meta_class_section, objc_category_section)
1752         (objc_class_vars_section, objc_instance_vars_section): Delete.
1753         (objc_cls_meth_section, objc_inst_meth_section): Delete.
1754         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
1755         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
1756         (objc_symbols_section, objc_module_info_section): Delete.
1757         (objc_image_info_section, objc_protocol_section): Delete.
1758         (objc_string_object_section, objc_constant_string_object_section)
1759         (objc_class_names_section, objc_meth_var_names_section): Delete.
1760         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
1761         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
1762         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
1763         (darwin_exception_section, darwin_eh_frame_section): Delete.
1764         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
1765
1766         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
1767         (frv_asm_out_destructor): Likewise.
1768         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1769         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
1770         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
1771         get_named_section.
1772         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
1773         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
1774         (data_section): Delete.
1775
1776         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1777         (DRECTVE_SECTION_FUNCTION): Delete.
1778         (drectve_section): Redefine as a macro that sets in_section after
1779         emitting the directive.
1780         (SWITCH_TO_SECTION_FUNCTION): Delete.
1781         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
1782         in_text_section with comparison between in_section and text_section.
1783         * config/i386/i386.c (x86_64_elf_select_section): Return the section
1784         rather than emitting assembly code.  Use get_named_section.
1785         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
1786         get_named_section.
1787         (machopic_output_stub): Use switch_to_section.
1788         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
1789         (nwld_named_section_asm_out_destructor): Use get_section and
1790         switch_to_section.
1791
1792         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
1793         rather than emitting assembly code.
1794         (ia64_rwreloc_select_section): Likewise.
1795         (ia64_rwreloc_select_rtx_section): Likewise.
1796         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
1797         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
1798         switch_to_section.
1799         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1800         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
1801
1802         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
1803         section rather than emitting assembly code.
1804         (iq2000_select_section): Likewise.
1805         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
1806         (sbss_section): Delete.
1807
1808         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
1809         and get_named_section.
1810         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
1811
1812         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
1813         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
1814         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
1815         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
1816         in_section to NULL.
1817         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1818         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1819         global switch_to_section function instead of the old port-local one.
1820         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1821         (SWITCH_SECTION_FUNCTION): Delete.
1822         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
1823         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
1824         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
1825         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
1826         in_section to NULL.
1827         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
1828         global switch_to_section function instead of the old port-local one.
1829         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
1830
1831         * config/mips/mips.c (mips_file_start): Update comment.
1832         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
1833         (mips_output_aligned_decl_common): Use switch_to_section.
1834         (mips_select_rtx_section): Return the section rather than emitting
1835         assembly code.  Use get_named_section.
1836         (mips_function_rodata_section: Likewise get_section.
1837         (build_mips16_function_stub): Use switch_to_section.
1838         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
1839         (SDATA_SECTION_ASM_OP): Delete.
1840         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
1841         (EXTRA_SECTION_FUNCTIONS): Delete.
1842
1843         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
1844         (mmix_asm_output_aligned_local): Use switch_to_section.
1845
1846         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
1847         (som_one_only_readonly_data_section): New variables.
1848         (pa_output_function_epilogue): Set in_section to NULL instead of
1849         calling forget_section.
1850         (output_deferred_plabels): Use select_section.
1851         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
1852         of calling forget_section.
1853         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
1854         (pa_asm_output_aligned_local): Use select_section.
1855         (som_text_section_asm_op): Delete in favor of...
1856         (som_output_text_section_asm_op): ...this new function.
1857         (pa_som_asm_init_sections): New function.
1858         (pa_select_section): Return the section rather than emitting
1859         assembly code.
1860         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1861         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
1862         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
1863         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
1864         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
1865         (som_readonly_data_section, som_one_only_readonly_data_section)
1866         (som_one_only_data_section, forget_section): Delete.
1867         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
1868         (TARGET_ASM_INIT_SECTIONS): Define.
1869         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
1870
1871         * config/rs6000/rs6000.c (read_only_data_section): New variable.
1872         (private_data_section, read_only_private_data_section): New variables.
1873         (sdata2_section, toc_section): New variables.
1874         (rs6000_file_start): Use switch_to_section.
1875         (rs6000_assemble_integer): Use comparisons against in_section
1876         instead of calling in_toc_section and in_text_section.  Use
1877         unlikely_text_section_p.
1878         (rs6000_elf_output_toc_section_asm_op): New function, derived
1879         from the old rs6000/sysv4.h toc_section function.
1880         (rs6000_elf_asm_init_sections): New function.
1881         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
1882         the section rather than emitting assembly code.
1883         (machopic_output_stub): Use switch_to_section.
1884         (toc_section): Delete dummy function.
1885         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
1886         switch_to_section and get_section.
1887         (rs6000_xcoff_output_readonly_section_asm_op): New function.
1888         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
1889         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
1890         the old rs6000/xcoff.h toc_section function.
1891         (rs6000_xcoff_asm_init_sections): New function.
1892         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
1893         the section rather than emitting assembly code.
1894         (rs6000_xcoff_file_start): Use switch_to_section.
1895         (rs6000_xcoff_file_end): Likewise.
1896         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
1897         (sdata2_section, sbss_section, private_data_section): Delete.
1898         (read_only_data_section, read_only_private_data_section): Delete.
1899         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1900         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
1901         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
1902         (FINI_SECTION_FUNCTION): Delete.
1903         (TARGET_ASM_INIT_SECTIONS): Define.
1904         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
1905         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1906         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
1907         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
1908         (READONLY_DATA_SECTION): Delete.
1909         (TARGET_ASM_INIT_SECTIONS): Define.
1910         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
1911         to NULL rather than no_section.
1912         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1913
1914         * config/sh/sh.c (sh_file_start): Use switch_to_section.
1915
1916         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
1917         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
1918         from call to current_function_section.
1919
1920         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
1921         (bss100_section): New variable.
1922         (xstormy16_asm_output_aligned_common): Use switch_to_section.
1923         (xstormy16_asm_init_sections): New function.
1924         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
1925         switch_to_section and get_section.
1926         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
1927         from calls to current_function_section.
1928         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
1929         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
1930         (TARGET_ASM_INIT_SECTIONS): Define.
1931         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
1932
1933         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1934         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
1935         (FINI_SECTION_FUNCTION): Delete.
1936
1937         * config/v850/v850.c: Include gt-v850.h.
1938         (rosdata_section, rozdata_section, tdata_section, zdata_section)
1939         (zbss_section): New variables.
1940         (v850_output_aligned_bss): Use switch_to_section.
1941         (v850_asm_init_sections): New function.
1942         (v850_select_section): Return the section rather than emitting
1943         assembly code.
1944         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
1945         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
1946         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
1947         (TARGET_ASM_INIT_SECTIONS): Define.
1948         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
1949         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
1950         (zbss_section): Delete.
1951
1952         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
1953
1954         * config/vx-common.h (vxworks_exception_section): Delete.
1955         (TARGET_ASM_EXCEPTION_SECTION): Delete.
1956
1957         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
1958         section rather than emitting assembly code.
1959         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
1960         switch_to_section.
1961
1962         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
1963         * coretypes.h (section): New union and typedef.
1964         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
1965         from call to current_function_section.
1966         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
1967         (dbxout_symbol_location): Use switch_to_section.
1968         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
1969         most of the code into...
1970         (default_eh_frame_section): ...here.  Return a section.
1971         (collect2_eh_frame_section): Delete, moving most of the code into..
1972         (switch_to_eh_frame_section): ...this new function.
1973         (debug_info_section, debug_abbrev_section, debug_aranges_section)
1974         (debug_macinfo_section, debug_line_section, debug_loc_section)
1975         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
1976         variables.
1977         (output_call_frame_info): Call switch_to_eh_frame_section instead of
1978         eh_frame_section.  Use switch_to_section and get_section.
1979         (dwarf2out_begin_prologue): Use switch_to_section.
1980         (AT_string_form): Check the flags in debug_str_section instead of
1981         DEBUG_STR_SECTION_FLAGS.
1982         (output_comp_unit): Use switch_to_section, get_section, and
1983         debug_info_section.
1984         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
1985         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
1986         from call to current_function_section.
1987         (dwarf2out_var_location): Use unlikely_text_section_p.
1988         (dwarf2out_source_line): Use switch_to_section.  Remove argument
1989         from call to current_function_section.
1990         (dwarf2out_start_source_file, dwarf2out_end_source_file)
1991         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
1992         debug_macinfo_section.
1993         (dwarf2out_init): Initialize the new section variables.  Use them
1994         instead of calls to named_section_flags.  Use switch_to_section.
1995         (output_indirect_string): Use switch_to_section and debug_str_section.
1996         (dwarf2out_finish): Use switch_to_section and the new section
1997         variables.
1998         * except.c (default_exception_section): Return the section instead
1999         of emitting assembly code.
2000         (output_function_exception_table): Use the global exception_section
2001         variable instead of the target hook.  Use switch_to_section.  Remove
2002         argument from call to current_function_section.
2003         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
2004         (shorten_branches): Use pointer comparisons to detect whether the
2005         text section is the same as readonly_data_section.
2006         (profile_function): Use switch_to_section.  Remove argument from
2007         call to current_function_section.
2008         (final_scan_insn): Likewise.  Update use of last_text_section.
2009         * gengtype.c (open_base_files): Add an include of output.h.
2010         * output.h (text_section, data_section, readonly_data_section)
2011         (ctors_section, dtors_section, bss_section, init_section)
2012         (fini_section, sdata_section): Turn into section pointers.
2013         (in_text_section, in_unlikely_text_section, exports_section)
2014         (drectve_section, named_section, mergeable_string_section)
2015         (last_text_section_name): Delete.
2016         (default_exception_section, default_eh_frame_section): Return sections.
2017         (SECTION_DECLARED, SECTION_NAMED): New macros.
2018         (SECTION_MACH_DEP): Bump value.
2019         (section_common, named_section, unnamed_section): New structures.
2020         (unnamed_section_callback): New typedef.
2021         (section): New union.
2022         (sbss_section, exception_section, eh_frame_section): New variables.
2023         (in_section, last_text_section): Turn into section pointers.
2024         (get_unnamed_section, get_section, get_named_section): New functions.
2025         (mergeable_constant_section, function_section): Return a section.
2026         (unlikely_text_section): Likewise.
2027         (current_function_section): Likewise.  Remove the decl argument.
2028         (unlikely_text_section_p, switch_to_section): New functions.
2029         (output_section_asm_op): New function.
2030         (set_named_section_flags, named_section_flags, named_section_real)
2031         (named_section_first_declaration): Delete.
2032         (default_select_section, default_elf_select_section): Return a section.
2033         (default_elf_select_section_1, default_function_rodata_section)
2034         (default_no_function_rodata_section, default_select_rtx_section)
2035         (default_elf_select_rtx_section): Likewise.
2036         * rtl.h (in_data_section): Delete.
2037         * sdbout.c (sdbout_one_type): Use switch_to_section.
2038         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
2039         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
2040         (TARGET_ASM_EH_FRAME_SECTION): Poison.
2041         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
2042         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
2043         (TARGET_ASM_OUT): Update after above changes.
2044         * target.h (init_sections): New hook.
2045         (exception_section, eh_frame_section): Delete.
2046         (select_section, select_rtx_section, function_rodata_section): Return
2047         a section rather than emitting assembly code.
2048         * varasm.c (text_section, data_section, readonly_data_section)
2049         (ctors_section, dtors_section, bss_section, init_section)
2050         (fini_section): Turn into section pointers.
2051         (sdata_section, sbss_section, exception_section): New variables.
2052         (eh_frame_section): New variable.
2053         (in_section): Make global and turn into a section pointer.
2054         (last_text_section): Turn into a section pointer.
2055         (unnamed_sections): New variable.
2056         (in_named_name, last_text_section_name): Delete.
2057         (EXTRA_SECTION_FUNCTIONS): Delete.
2058         (in_named_entry): Delete.
2059         (section_htab): New variable, replacing...
2060         (in_named_htab): ...this deleted variable.
2061         (section_entry_eq, section_entry_hash): New functions, based on...
2062         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
2063         (get_unnamed_section, get_section): New functions.
2064         (unlikely_text_section): Return a section instead of emitting
2065         assembly code.
2066         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2067         (get_named_section_flags, named_section_first_declaration): Delete.
2068         (unlikely_text_section_p): New function.
2069         (named_section_real, named_section): Delete.
2070         (get_named_section): New function.
2071         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2072         (function_section): Return a section rather than emitting
2073         assembly code.
2074         (current_function_section): Likewise.  Remove argument.  Use
2075         last_text_section if nonnull, otherwise use function_section.
2076         (default_function_rodata_section): Return a section rather than
2077         emitting assembly code.  Use get_section.
2078         (default_no_function_rodata_section): Return a section rather than
2079         emitting assembly code.
2080         (variable_section): Use switch_to_section and get_named_section.
2081         (mergeable_string_section): Return a section rather than emitting
2082         assembly code.  Use get_section.  Make static.  Don't take special
2083         countermeasures for empty strings.
2084         (mergeable_constant_section): Return a section rather than emitting
2085         assembly code.  Use get_section.
2086         (default_named_section_asm_out_destructor): Use switch_to_section
2087         and get_section.
2088         (default_dtor_section_asm_out_destructor): Use switch_to_section.
2089         (default_named_section_asm_out_constructor): Use switch_to_section
2090         and get_section.
2091         (default_ctor_section_asm_out_constructor): Use switch_to_section.
2092         (assemble_start_function): Likewise.  Set last_text_section to
2093         NULL rather than no_section.  Change the type of save_section.
2094         (assemble_zeros, assemble_variable): Use the section flags to detect
2095         whether or not a section is text.
2096         (assemble_static_space): Use switch_to_section.
2097         (assemble_trampoline_template): Likewise.
2098         (output_constant_def_contents): Use switch_to_section and
2099         get_named_section.
2100         (output_constant_pool_1): Use switch_to_section.  Use the section
2101         flags to see whether sections contain mergeable data.
2102         (init_varasm_once): Initialize section_htab instead of in_named_htab.
2103         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
2104         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2105         whether a section has already been declared.
2106         (default_select_section, default_elf_select_section): Return a
2107         section rather than emitting assembly code.
2108         (default_elf_select_section_1): Likewise.  Use bss_section for
2109         SECCAT_BSS if nonnull.  Use get_named_section.
2110         (default_select_rtx_section): Return a section rather than
2111         emitting assembly code.
2112         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
2113         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2114         (output_section_asm_op, switch_to_section): New functions.
2115         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2116         get_named_section.
2117
2118         * doc/tm.texi: Expand the introduction to the sections documentation.
2119         (TRAMPOLINE_SECTION): Document new interface.
2120         (SDATA_SECTION_ASM_OP): Document new macro.
2121         (READONLY_DATA_SECTION): Delete.
2122         (SDATA_SECTION_ASM_OP): Document new macro.
2123         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2124         (TARGET_ASM_INIT_SECTIONS): Document new hook.
2125         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2126         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2127         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2128
2129 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
2130
2131         * gcc.c (init_gcc_specs): Match braces inside conditionally
2132         compiled strings.
2133
2134 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
2135
2136         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2137
2138 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
2139
2140         PR C++/24138
2141         * tree.c (integer_all_onesp): Always return true if all bits on.
2142
2143         * testsuite/g++.dg/init/array0.C: New.
2144
2145 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
2146
2147         * doc/md.texi: Adapt to implementation.
2148
2149 2005-12-06  Andreas Schwab  <schwab@suse.de>
2150
2151         * opts.c (decode_options): Fix typo in message.
2152
2153 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
2154
2155         PR other/13873
2156         * longlong.h: Merge PPC tests from upstream.
2157
2158 2005-12-06  Richard Guenther  <rguenther@suse.de>
2159
2160         * fold-const.c (fold_convert): Do not build and fold
2161         CONVERT_EXPR, but always use NOP_EXPR.
2162
2163 2005-12-06  Jan Beulich  <jbeulich@novell.com>
2164
2165         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2166         __builtin_ia32_paddq and __builtin_ia32_subq.
2167         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2168         __builtin_ia32_pshufw.
2169         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2170
2171 2005-12-05  James E Wilson  <wilson@specifix.com>
2172
2173         PR target/24934
2174         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2175         is set.
2176
2177 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
2178         
2179         * print-tree.c (print_node): Ditto.
2180         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2181         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2182         before accessing DECL_ARTIFICIAL. 
2183         Handle new tag tree codes.
2184         * tree-flow-inline.h (clear_call_clobbered): Update for tag
2185         changes.
2186         (unmodifiable_var_p): Ditto.
2187         * tree-flow.h (mem_tag_kind): Remove.
2188         (struct var_ann_d): Remove mem_tag_kind member.
2189         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2190         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2191         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2192         (group_aliases): Ditto.
2193         (setup_pointers_and_addressables): Ditto.
2194         (is_escape_site): Ditto.                                          
2195         (may_alias_p): Ditto.
2196         (create_tag_raw): New function.
2197         (create_memory_tag): Use it.
2198         (dump_alias_info): Update for tags.
2199         (may_be_aliased): Ditto.
2200         (add_type_alias): Ditto.
2201         (new_type_alias): Ditto.
2202         (create_sft): Ditto.
2203         (create_structure_vars): Ditto.
2204         * tree-ssa-ccp.c (get_default_value): Ditto.
2205         * tree-ssa-operands.c (get_expr_operands): Ditto.
2206         (add_stmt_operand): Ditto.
2207         (add_call_clobber_ops): Remove duplicated condition.
2208         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2209         tags.
2210         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2211         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2212         * tree.c (init_ttree): Update structures for new tree codes.
2213         (tree_code_size): Update sizes for new tree codes.
2214         (make_node_stat): Don't try to set common things on minimal
2215         structures.
2216         (tree_node_structure): Update for tags.
2217         (is_global_var): Ditto.
2218         * tree.def: Add new tree codes.
2219         * tree.h (MTAG_P): New macro.
2220         (TREE_MEMORY_TAG_CHECK): Ditto.
2221         (SSA_VAR_P): Update for tags.
2222         (struct tree_memory_tag): New structure.
2223         (MTAG_GLOBAL): New macro.
2224         (union tree_node): Add memory tag member.
2225         * treestruct.def (TS_MEMORY_TAG): New.
2226         
2227 2005-12-05  Dale Johannesen  <dalej@apple.com>
2228
2229         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
2230         what was approved (PR 24323).
2231
2232 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2233
2234         * doc/c-tree.texi (Function Bodies): Remove description of
2235         RETURN_INIT.
2236
2237 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
2238
2239         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2240         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2241         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2242         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2243         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2244         __divxc3): Document.
2245
2246 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
2247
2248         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2249         previous behaviour.
2250         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2251         hook_bool_void_false.
2252         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2253         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2254
2255         * config/darwin.c (machopic_select_section): It's not defined
2256         as weak if it's only marked as weak_import.
2257         
2258         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2259         Prototype.
2260
2261         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2262         A hidden weak object does bind locally.  Strong linkonce data
2263         counts like any other strong symbol for binding.
2264         (weak_finish_1): Don't specially handle weakrefs, they no longer
2265         arrive here.
2266         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2267         * c-common.c (handle_alias_attribute): Allow static aliases
2268         of variables.
2269         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2270         * gthr-dce.h: Make weakrefs static.
2271         * gthr-tpf.h: Likewise.
2272         * gthr-solaris.h: Likewise.
2273         * gthr-posix.h: Likewise.
2274         * gthr-posix95.h: Likewise.
2275         * config/darwin.c (darwin_encode_section_info): static weakref
2276         variables are not necessarily defined in this translation unit.
2277         * doc/extend.texi (Function Attributes): Mention that an alias
2278         attribute creates a definition for the thing it's attached to.
2279         Change the documentation for weakref to say that the thing
2280         it's attached to must be static.
2281
2282         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2283         we don't go into an infinite loop.
2284
2285 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2286
2287         * config/rs6000/predicates.md (logical_const_operand): Split
2288         out of logical_operand.
2289         (logical_operand): Use it.
2290         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2291         logical_const_operand.
2292
2293 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2294
2295         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2296         and IX86_BUILTIN_CMPNESS.
2297         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2298         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2299         * config/i386/i386.md (movti_internal): Correct type attribute.
2300         Simplify mode attribute.
2301         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2302         Correct type attribute.
2303         (absxf2): Correct operator.
2304         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2305         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2306         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2307         mode attribute.
2308         (sse2_vmsqrtv2df2): Correct mode attribute.
2309
2310 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2311
2312         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2313         16 bits. Provide insn pattern for this case.
2314
2315 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2316
2317         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2318         result.
2319         (__popcountDI2): Likewise.
2320
2321 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2322
2323         PR target/25166
2324         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2325         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2326         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2327         functions.
2328
2329 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2330
2331         * c-typeck.c (null_pointer_constant_p): New function.
2332         (build_conditional_expr, build_c_cast, convert_for_assignment,
2333         build_binary_op): Use it.
2334
2335 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2336
2337         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2338         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2339         CONVERT_EXPR.
2340         (check_function_arguments_recurse): Allow both NOP_EXPR and
2341         CONVERT_EXPR but check conversions preserve precision.
2342         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2343         but check conversions preserve precision.
2344         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
2345         default case.
2346
2347 2005-12-04  Roger Sayle  <roger@eyesopen.com>
2348
2349         PR c/7776
2350         * common.opt (Wstring-literal-comparison): New command line option.
2351         * c-opts.c (c_common_handle_option): Set it with -Wall.
2352         * c-typeck.c (parser_build_binary_op): Issue warning if either
2353         operand of a comparison operator is a string literal, except for
2354         testing equality or inequality against NULL.
2355
2356         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2357
2358 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2359
2360         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2361         of building a NOP_EXPR.
2362         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
2363         NOP_EXPR.
2364         * c-convert.c (convert): Use fold_convert instead of building
2365         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
2366         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
2367         #if 0 code.
2368         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2369         NOP_EXPR the same as CONVERT_EXPR.
2370         * c-typeck.c (build_function_call): Use fold_convert instead of
2371         building a NOP_EXPR directly.
2372         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2373
2374 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2375
2376         PR rtl-optimization/25197
2377         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2378         have a reg.
2379
2380 2005-12-02  Stuart Hastings  <stuart@apple.com>
2381
2382         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2383         warning.
2384
2385 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2386
2387         * c-typeck.c (default_function_array_conversion,
2388         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2389         (build_conditional_expr): Apply integer_zerop to orig_op1 and
2390         orig_op2.  Don't check them for NOP_EXPR.
2391         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2392         around integer zero.
2393
2394 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2395
2396         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2397         toc_save_offset, toc_size, lr_size.
2398         (rs6000_stack_info): Use memset rather than bss struct copy to init.
2399         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2400         Adjust for removal of unused rs6000_stack_t fields.
2401         (debug_stack_info): Adjust.
2402         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
2403         first, and don't bother checking for set/inc of lr on sibcalls.
2404         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2405
2406 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
2407
2408         PR target/25199
2409         * config/i386/i386.md (movqi_1): Only force imovx for alternative
2410         5 if operand 1 is not aligned.  Undo previous constraint change.
2411         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2412
2413 2005-12-02  Richard Guenther  <rguenther@suse.de>
2414
2415         * tree.h (build): Remove prototype.
2416         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2417         * tree.c (build): Remove.
2418         (build0_stat): Update comment.
2419
2420 2005-12-02  Richard Guenther  <rguenther@suse.de>
2421
2422         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2423         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2424         Likewise.
2425         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2426         maybe_fold_offset_to_component_ref): Likewise.
2427         * tree-ssa-dom.c (thread_across_edge,
2428         simplify_rhs_and_lookup_avail_expr,
2429         find_equivalent_equality_comparison, record_equivalences_from_stmt):
2430         Likewise.
2431         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2432         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2433         lower_try_finally_switch): Likewise.
2434         * tree-if-conv.c (add_to_dst_predicate_list,
2435         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2436         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2437         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2438         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2439         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2440         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2441         gimplify_init_ctor_eval, gimplify_init_constructor,
2442         gimplify_variable_sized_compare, gimplify_boolean_expr,
2443         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2444         gimplify_expr, gimplify_body, gimplify_function_tree,
2445         force_gimple_operand): Likewise.
2446         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2447         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2448         mx_register_decls): Likewise.
2449         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2450         get_frame_field, finalize_nesting_tree_1): Likewise.
2451         * tree-inline.c (setup_one_parameter): Likewise.
2452         * tree-vect-transform.c (vectorizable_condition): Likewise.
2453         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2454         Likewise.
2455         * tree-profile.c (tree_gen_edge_profiler): Likewise.
2456         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2457         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2458         * tree-chrec.h (build_polynomial_chrec): Likewise.
2459
2460 2005-12-02  Richard Guenther  <rguenther@suse.de>
2461
2462         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2463         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2464         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2465         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2466         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2467         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2468         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2469         Likewise.
2470         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2471         sh_adjust_unroll_max): Likewise.
2472         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2473         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2474         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2475         Likewise.
2476         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2477         Likewise.
2478         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2479         Likewise.
2480
2481 2005-12-02  Richard Guenther  <rguenther@suse.de>
2482
2483         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2484         simplify_cond_using_ranges): Use buildN instead of build.
2485         * tree-tailcall.c (adjust_accumulator_values,
2486         adjust_return_value): Likewise.
2487         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2488         generate_element_copy, generate_element_zero,
2489         generate_one_element_init): Likewise.
2490         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2491         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2492         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2493         perfect_nestify): Likewise.
2494
2495 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2496
2497         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2498
2499 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2500
2501         * ggc.h (GGC_RESIZEVEC): New.
2502
2503 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2504
2505         * gcc.c (execute): Improve readability.
2506
2507 2005-12-02  Richard Guenther  <rguenther@suse.de>
2508
2509         * tree-cfg.c (mark_used_vars): New function.
2510         (dump_function_to_file): Dump only used VAR_DECLs.
2511
2512 2005-12-02  Richard Guenther  <rguenther@suse.de>
2513
2514         * convert.c (convert_to_integer): Fix compare for nonpositive
2515         constant to use tree_int_cst_sgn <= 0.
2516
2517 2005-12-02  Richard Guenther  <rguenther@suse.de>
2518
2519         * convert.c (convert_to_integer): Use fold_convert instead
2520         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
2521         instead of comparing against 0.  Use build_int_cst instead
2522         of converting integer_zero_node.
2523
2524 2005-12-02  Richard Guenther  <rguenther@suse.de>
2525
2526         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2527         and RROTATE_EXPR.
2528  
2529 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2530
2531         PR target/21017
2532         * combine.c (simplify_logical <IOR>): Simplify more patterns to
2533         rotates.
2534
2535 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2536
2537         PR middle-end/25176
2538         * function.c (expand_function_end): Emit blockage for unwinder
2539         after return label.
2540
2541 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2542
2543         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2544         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2545         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2546         integer constant comparisons.
2547
2548 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
2549             Janis Johnson  <janis187@us.ibm.com>
2550             David Edelsohn  <dje@watson.ibm.com>
2551             Ben Elliston  <bje@au.ibm.com>
2552
2553         * dfp.h, dfp.c: New files.
2554         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2555         (DECNUM_H): Likewise.
2556         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2557         (INCLUDES): Append $(DECNUMINC).
2558         (OBJS-common): Add dfp.o.
2559         (dfp.o): New rule.
2560         * real.h (EXP_BITS): Pinch one bit to ..
2561         (struct real_value): Add decimal field.
2562         (real_format): Change table size, update documentation.
2563         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2564         (real_from_string3): Declare.
2565         (decimal_single_format): Declare.
2566         (decimal_double_format): Declare.
2567         (decimal_quad_format): Declare.
2568         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2569         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2570         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2571         * real.c: Include dfp.h.
2572         (normalize): Early return for decimal floats.
2573         (do_add): Zero decimal field.
2574         (do_compare): Call do_decimal_compare for decimal floats.
2575         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2576         (real_arithmetic): Call decimal_real_arithmetic for decimal
2577         floating point operands.
2578         (real_identical): If a and b are of differing radix, return false.
2579         (real_to_integer): Call decimal_real_to_integer if the value is a
2580         decimal float.
2581         (real_to_integer2): Likewise, call decimal_real_to_integer2.
2582         (real_to_decimal): Likewise, call decimal_real_to_decimal.
2583         (real_to_hexadecimal): Place "N/A" in the return string for
2584         decimal float.
2585         (real_from_string3): New variant, given a mode.
2586         (real_maxval): Use decimal_real_maxval for decimal floats.
2587         (round_for_format): Use decimal_round_for_format for decimals.
2588         (real_convert): Use decimal_real_convert where appropriate.
2589         (significand_size): Handle base 10.
2590         (encode_decimal_single, decode_decimal_single,
2591         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
2592         decode_decimal_quad): New functions.
2593         (decimal_single_format): New.
2594         (decimal_double_format): New.
2595         (decimal_quad_format): New.
2596         * machmode.def: Add SD, DD and TD decimal floating point modes.
2597         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
2598         Include MODE_DECIMAL_FLOAT.
2599         (DECIMAL_FLOAT_MODE_P): New.
2600         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
2601         * genmodes.c (struct mode_data): Add counter field.
2602         (struct mode_data): Update comment for format.
2603         (blank_mode): Initialise counter field.
2604         (new_mode): Increment counter field for each mode defined.
2605         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
2606         using a format.
2607         (make_complex_modes): Handle modes containing `D'.
2608         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
2609         (make_decimal_float_mode): New.
2610         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
2611         (cmp_modes): Compare counter field if other characteristics
2612         similar.
2613         (emit_real_format_for_mode): Support formats for decimal floats.
2614         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
2615         Document MODE_DECIMAL_FLOAT.
2616
2617 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2618
2619         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
2620         Delete dead code.
2621
2622 2005-12-01  Richard Henderson  <rth@redhat.com>
2623
2624         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
2625
2626 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2627
2628         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
2629
2630         * config/pa/pa.c (pa_init_builtins): If we detect
2631         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
2632         putc_unlocked.
2633
2634 2005-12-01  Richard Guenther  <rguenther@suse.de>
2635
2636         * fold-const.c (fold_binary): Use fold_build2, not
2637         fold (build (...)).
2638
2639 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2640
2641         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
2642
2643         * vec.h (VEC_block_remove): New.
2644
2645 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2646
2647         PR c/13384
2648         * c-common.c (lvalue_error): Fix wording.
2649
2650 2005-12-01  Richard Guenther  <rguenther@suse.de>
2651
2652         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
2653         thinko in last patch.
2654
2655 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
2656
2657         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
2658         than -flat_namespace.
2659
2660 2005-12-01  Ben Elliston  <bje@au.ibm.com>
2661
2662         * mklibgcc.in: Parameterise the script to build soft float
2663         functions by iterating over each type, rather than cloning the
2664         code for each type.
2665
2666 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2667
2668         PR middle-end/25158
2669         * builtins.c (fold_builtin_fputs): Defer check for missing
2670         replacement functions.
2671
2672 2005-11-30  Kean Johnston  <jkj@sco.com>
2673
2674         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
2675         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
2676
2677 2005-11-30  Richard Guenther  <rguenther@suse.de>
2678
2679         PR tree-optimization/22501
2680         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
2681         function split out from ...
2682         (forward_propagate_addr_expr): ... here.  Use it to propagate
2683         ADDR_EXPRs to all uses.
2684
2685 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2686
2687         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
2688         * builtins.c (expand_builtin_mathfn): Use them.
2689         (expand_builtin_mathfn_2): Likewise.
2690         (expand_builtin_mathfn_3): Likewise.
2691         (expand_builtin_int_roundingfn): Likewise.
2692         (expand_builtin): Likewise.
2693         (integer_valued_real_p): Likewise.
2694         (fold_builtin_int_roundingfn): Likewise.
2695         (fold_builtin_bitop): Likewise.
2696         (fold_builtin_logarithm): Likewise.
2697         (fold_builtin_1): Likewise.
2698         * convert.c (convert_to_integer): Likewise.
2699         * fold-const.c (negate_mathfn_p): Likewise.
2700         (tree_expr_nonnegative_p): Likewise.
2701
2702 2005-11-30  Dale Johannesen  <dalej@apple.com>
2703             Andrew Pinski  <pinskia@physics.uc.edu>
2704
2705         * combine.c (find_split_point):  Sign extend bitmask
2706         when changing bitfield assignment to IOR of AND.
2707
2708 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2709
2710         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
2711         clobber to scratch reg.
2712         (*decrement_and_branch_until_zero_no_clobber): Remove.
2713         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
2714         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
2715         * config/ms1/ms1.opt (mmul): Remove.
2716         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
2717         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
2718
2719 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2720             Bernd Schmidt  <bernd.schmidt@analog.com>
2721
2722         * pa/predicates.md (symbolic_operand): Add comment.
2723         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
2724         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
2725         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
2726         (pa_secondary_reload_class): Delete.
2727         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
2728         and pa_secondary_reload_class.  Reorder some checks.  Update inline
2729         copy of symbolic operand.
2730         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
2731
2732 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2733
2734         * loop-doloop.c (add_test): Only add jump notes if we did emit a
2735         jump.
2736
2737 2005-11-30  Jeff Law  <law@redhat.com>
2738
2739         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
2740         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2741
2742 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
2743
2744         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
2745         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
2746         (ia64_expand_move): Adjust caller.
2747
2748         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
2749         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
2750         negate VAL.
2751
2752 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
2753
2754         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2755         Always produce an output if we can remove NEGs or canonicalize
2756         (minus (minus ...)) expressions.  Provide a fast path for the
2757         two-operand case.
2758         (simplify_gen_binary): Do not call simplify_plus_minus.
2759         (simplify_binary_operation_1): Reassociate at the end of the
2760         function.
2761
2762 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
2763
2764         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
2765         moves and unpack to speed up.
2766
2767 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
2768
2769         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
2770         argument, they are always sparc_compare_op0 and sparc_compare_op1.
2771         (gen_v9_scc): Update callers.
2772         * config/sparc/sparc.md: Likewise.
2773         * config/sparc/sparc-protos.h: Update extern declaration.
2774
2775         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
2776
2777 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2778
2779         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
2780         the if.
2781
2782 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2783
2784         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
2785         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
2786         (negate_expr): Here.
2787
2788 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2789
2790         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
2791         Fix typo in comment.
2792
2793 2005-11-29  Ben Elliston  <bje@au.ibm.com>
2794
2795         * Makefile.in (clean-target): Depend on clean-target-libgcc.
2796         (clean-target-libgcc): Import rule from the top-level Makefile.in.
2797
2798 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2799
2800         PR middle-end/20109
2801         PR middle-end/25120
2802         * builtins.c (init_target_chars): New.
2803         (expand_builtin_printf, expand_builtin_fprintf,
2804         expand_builtin_sprintf, fold_builtin_sprintf,
2805         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
2806         fold_builtin_snprintf_chk, fold_builtin_printf,
2807         fold_builtin_fprintf): Check for matching format strings using
2808         the target charset.
2809
2810 2005-11-29  Paul Brook  <paul@codesourcery.com>
2811
2812         * config.gcc: Do not use fixproto on m68k-elf.
2813
2814 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2815
2816         * expmed.c (div_cost): Replace with...
2817         (sdiv_cost, udiv_cost): New.
2818         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
2819         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
2820         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
2821         (expand_divmod): Replace use of div_cost with either sdiv_cost
2822         or udiv_cost depending upon the signedness of the operation.
2823
2824 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2825
2826         PR libfortran/24991
2827         * config/darwin.c (machopic_indirection_name,
2828         machopic_output_indirection): Follow transparent alias chain.
2829
2830 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
2831
2832         * varasm.c (ultimate_transparent_alias_target): Add comment.
2833
2834 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
2835
2836         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
2837         SET_SRC instead of XEXP where appropriate.
2838
2839 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2840
2841         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
2842         __builtin_expect.
2843
2844 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
2845
2846         * config/fp-bit.h (LSHIFT): Take shift count parameter.
2847         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
2848         bit at a time.
2849
2850 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
2851
2852         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
2853         secondary_input_reload_class, made static.  Adapt to new
2854         infrastructure.
2855         (secondary_output_reload_class): Delete.
2856         (TARGET_SECONDARY_RELOAD): New macro.
2857         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
2858         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2859
2860 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
2861
2862         PR c++/21166
2863         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
2864         when its natural alignment is > BITS_PER_UNIT.
2865         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
2866         * c-common.c (handle_packed_attribute): Ignore packing on a field
2867         whose type is naturally char aligned.
2868
2869 2005-11-28  Richard Guenther  <rguenther@suse.de>
2870
2871         * c-common.c (strict_aliasing_warning): Handle all
2872         component-ref like accesses.
2873
2874 2005-11-28  Roger Sayle  <roger@eyesopen.com>
2875             Uros Bizjak  <uros@kss-loka.si>
2876
2877         PR middle-end/20219
2878         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
2879         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
2880         when flag_unsafe_math_optimizations is set and
2881         we don't care about NaNs or Infinities.
2882
2883         Move x/expN(y) and x/pow(y,z) transformation into common
2884         flag_unsafe_math_optimizations section.
2885
2886 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
2887
2888         * gcc.c (main): Change type of argv to "char **".
2889
2890 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2891
2892         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
2893         small data sections.
2894         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
2895         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
2896         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
2897         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
2898         output locals to sbss if !rs6000_elf_in_small_data_p.
2899         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
2900
2901 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
2902
2903         PR target/24997
2904         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
2905         generated by reload.
2906         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
2907         indexed_or_indirect_address.
2908         (indexed_or_indirect_address): Don't test for base reg.  Call
2909         address_operand last.  Make it a special predicate.
2910
2911 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
2912
2913         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
2914
2915 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
2916
2917         PR middle-end/24575
2918         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
2919         is undefined.
2920         (negate_expr): Likewise.
2921
2922 2005-11-27  Andreas Schwab  <schwab@suse.de>
2923
2924         * config/m68k/m68k.c: Reindent and fix whitespace, remove
2925         redundant parens.
2926
2927 2005-11-27  Steven Bosscher  <stevenb@suse.de>
2928
2929         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
2930         has EH predecessor edges.
2931
2932 2005-11-26  Eric Christopher  <echristo@apple.com>
2933
2934         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
2935         register stalls by zero extending to the full register.
2936
2937 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
2938
2939         * config/floatunsisf.c, config/floatunsidf.c,
2940         config/floatunsixf.c, config/floatunsitf.c: New files.
2941         * config/ia64/t-hpux: Add floatunsitf.c.
2942         * config/ia64/ia64.c (ia64_init_libfuncs): Use
2943         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
2944
2945 2005-11-26  Richard Henderson  <rth@redhat.com>
2946
2947         * c-lex.c (pragma_lex): Rename from c_lex.
2948         * c-pch.c: Update for pragma_lex rename.
2949         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
2950         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
2951         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
2952         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
2953         * doc/tm.texi: Likewise.
2954
2955 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
2956
2957         PR middle-end/23669
2958         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
2959         when overflow is undefined.
2960
2961 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
2962
2963         * doc/md.texi (Insn Canonicalizations): Refer to the
2964         function commutative_operand_precedence for further rules.
2965
2966 2005-11-25  Roger Sayle  <roger@eyesopen.com>
2967
2968         PR middle-end/21309
2969         * expmed.c (choose_mult_variant): Return immediately when mult_cost
2970         is less than zero.  Limit mult_cost to a reasonable upper bound for
2971         the synthetic multiplication sequence.
2972
2973 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2974
2975         PR middle-end/25022
2976         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
2977         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
2978         Lookup the explicit replacement functions for any unlocked
2979         stdio builtin transformations.
2980
2981 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
2982
2983         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
2984         earlyclobber.
2985         * targhooks.c (default_secondary_reload): Don't require operand 2
2986         for an input reload to be earlyclobber.
2987
2988 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2989
2990         * fold-const.c (negate_mathfn_p): Fix comment and add support
2991         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
2992         BUILT_IN_ATANH.
2993
2994 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2995
2996         PR middle-end/24998
2997         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
2998         _Q_ulltoq for unsigned conversions from SImode and DImode to
2999         TFmode.
3000
3001 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
3002
3003         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
3004         (__floatundidf, __floatundisf): Likewise.
3005
3006 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
3007
3008         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
3009         (rs6000_override_options): Remove initialization of
3010         rs6000_sr_alias_set.
3011         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
3012         (rs6000_emit_stack_tie): Same.
3013         (emit_frame_save): Same.
3014         (gen_frame_mem_offset): Same.
3015         (rs6000_emit_prologue): Same.
3016         (rs6000_emit_epilogue): Same.
3017
3018 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3019
3020         PR middle-end/24989
3021         * fold-const.c (fold_build): Convert bool_var != 1 and
3022         bool_var == 0 to !bool_var.
3023
3024 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3025
3026         PR middle-end/24990
3027         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
3028         for C being INTEGER_CST.  Likewise for !=.
3029
3030 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3031
3032         PR middle-end/24998
3033         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
3034         unsigned conversions from SImode to TFmode.
3035
3036 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3037
3038         * expr.c (expand_expr_real_1): Fix error in last change.
3039
3040 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
3041
3042         * caller-save.c: (this_insn_sets): Move into:
3043         (save_call_clobbered_regs).
3044         (mark_set_regs): Get this_insn_sets from data.
3045
3046         (save_call_clobbered_regs): Take sets of the return value by
3047         sibcalls into account.
3048
3049 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
3050         PR target/21623:
3051
3052         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
3053         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
3054         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
3055         (memory_move_secondary_cost, init_reg_autoinc): Remove
3056         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
3057         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
3058         secondary_reload_class call.
3059         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
3060         callers.
3061         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
3062         (push_secondary_reload): Use secondary_reload target hook.
3063         (secondary_reload_class, scratch_reload_class): New functions.
3064         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
3065         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
3066         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
3067         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
3068         (secondary_reload_class, scratch_reload_class): Declare.
3069         * reload1.c: Include target.h.
3070         (reload_adjust_reg_for_temp): New function.
3071         (reload_adjust_reg_for_icode): Likewise.
3072         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
3073         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
3074         call.
3075         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
3076         for inheritance.  Support case when both secondary & tertiary reloads
3077         are for intermediate registers.
3078         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
3079         with secondary_reload_class call.  Support case when both secondary
3080         & tertiary reloads are for intermediate registers.
3081         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
3082         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
3083         * target.h (secondary_reload_info): New struct / typedef.
3084         (struct gcc_target): New member secondary_reload.
3085         * targhooks.c Include reload.h, optabs.h and recog.h.
3086         (default_secondary_reload): New function.
3087         * targhooks.h (default_secondary_reload): Declare.
3088         * doc/tm.texi: Document secondary_reload target hook.  Update
3089         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
3090         * doc/md.texi: Likewise.
3091
3092         * sh-protos.h (sh_secondary_reload): Declare.
3093         * sh.c (TARGET_SECONDARY_RELOAD): Override.
3094         (sh_secondary_reload): New function.
3095         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
3096         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3097         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3098         (HAVE_SECONDARY_RELOADS): Define.
3099         * sh.md (reload_indf): Rename to:
3100         (reload_indf__frn).
3101         (reload_outdf): Rename to:
3102         (reload_outdf__RnFRm).
3103         (reload_insf): Rename to:
3104         (reload_insf__frn).
3105         (reload_insi): Rename to:
3106         (reload_insi__i_fpul).
3107
3108 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
3109
3110         * configure.ac: Require at least texinfo 4.4.
3111         * configure: Regenerate.
3112
3113         * doc/install.texi (Tools/packages necessary for building GCC):
3114         Update required version of texinfo to at least 4.4.
3115         (Installing GCC: Building): Update required version of texinfo
3116         to at least 4.4.
3117         (Installing GCC: Final installation): Update required version
3118         of texi2dvi to at least 4.4.
3119         (Host/target specific installation notes for GCC): Update required
3120         version of texinfo to at least 4.4.
3121
3122 2005-11-24  Richard Guenther  <rguenther@suse.de>
3123         Dirk Mueller <dmueller@suse.de>
3124
3125         PR c++/14024
3126         * c-common.h (strict_aliasing_warning): Declare.
3127         * c-common.c (strict_aliasing_warning): New function,
3128         split out from ...
3129         * c-typeck.c (build_c_cast): ... here.
3130
3131 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3132
3133         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
3134         to order operands.
3135         (swap_commutative_operands_with_target): New.
3136
3137 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
3138
3139         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
3140         also when doing PRE, rather than only for global CPROP.
3141
3142 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3143
3144         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
3145         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
3146         formatting.
3147         (expand_twoval_unop): Likewise.
3148         (widen_clz): Likewise.
3149         (expand_parity): Likewise.
3150         (expand_unop): Likewise.
3151         (emit_cmp_and_jmp_insn_1): Likewise.
3152         (prepare_float_lib_cmp): Likewise.
3153
3154 2005-11-24  Ben Elliston  <bje@au.ibm.com>
3155
3156         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
3157         Remove unused `class' variable.
3158
3159 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3160
3161         PR c++/21667
3162         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
3163         C/C++ diagnostic function warn_array_subscript_with_type_char.
3164         * c-common.h (warn_array_subscript_with_type_char): Declare.
3165         * c-common.c (warn_array_subscript_with_type_char): Define.
3166
3167 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3168
3169         PR c/21668
3170         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
3171         compiling at the intersection of C and C++.
3172
3173 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
3174
3175         * doc/invoke.texi: For man pages, include gcc-vers.texi.
3176         List @file in the option summary.  Include the libiberty
3177         documentation for @file.
3178         * gcc.c (main): Call expandargv.
3179         * Makefile.in (gcc-vers.texi): Define srcdir.
3180
3181 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
3182
3183         * passes.c (init_optimization_passes): Document
3184         sequencing of passes.
3185
3186 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
3187
3188         * config/m68k/predicates.md (pcrel_address, extend_operator,
3189         post_inc_operand, pre_dec_operand): Remove redundant
3190         conditionals.
3191         (const_uint32_operand, const_sint32_operand): Use gcc_assert
3192         instead of abort.
3193         (valid_dbcc_comparison_p): Rewrite in the lisp style.
3194
3195 2005-11-23  Ben Elliston  <bje@au.ibm.com>
3196
3197         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
3198
3199 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
3200
3201         Preparatory work for PR target/21623:
3202         * alpha.c (secondary_reload_class): Rename to:
3203         (alpha_secondary_reload_class).
3204         * alpha.h, alpha-protos.h: Likewise.
3205         * mn10300.c (secondary_reload_class): Rename to:
3206         (mn10300_secondary_reload_class).
3207         * mn10300.h, mn10300-protos.h: Likewise.
3208         * pa.c (secondary_reload_class): Rename to:
3209         (pa_secondary_reload_class).
3210         * pa.h, pa-protos.h: Likewise.
3211         * rs6000.c (secondary_reload_class): Rename to:
3212         rs6000_secondary_reload_class.
3213         * rs6000.h, rs6000-protos.h: Likewise.
3214
3215 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
3216
3217         PR middle-end/22561
3218         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
3219
3220 2005-11-22  Ian Lance Taylor  <ian@airs.com>
3221
3222         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
3223         a mode_class.
3224         (prepare_cmp_insn): Likewise.
3225
3226 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
3227
3228         PR target/23435
3229         * m68k.md (zero_extendsidi2): Force operands[1] to a register
3230         if both operands[0] and operands[1] are memory.
3231
3232 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3233
3234         PR middle-end/23606
3235         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
3236         COMPARISON_CLASS_P and an integral types create create a new
3237         expression with the new type and fold that.
3238
3239 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
3240
3241         PR target/24988
3242         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
3243         to SUBTARGET_OS_CPP_BUILTINS.
3244
3245 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3246
3247         * arm.c (emit_set_insn): New function.
3248         (arm_split_constant): Call it.
3249         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
3250         (arm_legitimize_address): Likewise.  Use plus_constant.
3251         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
3252         (thumb_expand_prologue): Likewise.
3253         (arm_gen_load_multiple): Use VOIDmode in SET.
3254         (arm_gen_store_multiple): Likewise.
3255         (vfp_emit_fstmx): Likewise.  Use plus_constant.
3256         (emit_multi_reg_push): Likewise.
3257         (emit_sfm): Use plus_constant.
3258
3259 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
3260
3261         PR target/24954
3262         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
3263         typo last change.
3264
3265 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3266
3267         PR middle-end/24950
3268         * expmed.c (store_bit_field): Don't attempt to insv a field
3269         larger than the reg.
3270
3271 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
3272
3273         PR target/24954
3274         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
3275         explicit sign extension, not a (char) cast.
3276
3277 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3278
3279         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
3280         GET_MODE_CLASS (x) == MODE_FLOAT.
3281         * config/i386/i386.c: Likewise.
3282         * config/rs6000/xcoff.h: Likewise.
3283         * config/rs6000/linux64.h: Likewise.
3284         * config/rs6000/rs6000.c: Likewise.
3285         * config/rs6000/rs6000.h: Likewise.
3286         * config/rs6000/predicates.md: Likewise.
3287         * config/rs6000/sysv4.h: Likewise.
3288
3289 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3290
3291         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
3292         flag_pic is set.
3293
3294         * config/alpha/freebsd.h, config/alpha/linux.h,
3295         config/arm/linux-elf.h, config/bfin/bfin.h,
3296         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
3297         config/i386/beos-elf.h, config/i386/gnu.h,
3298         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
3299         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
3300         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
3301         config/rs6000/linux64.h, config/rs6000/sysv4.h,
3302         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
3303         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
3304         config/sparc/linux.h, config/sparc/linux64.h,
3305         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
3306
3307         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
3308         are both defined when either flag -fpic or -fPIC are used.
3309
3310 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3311
3312         * config/fp-bit.c (clzusi): New function.
3313         (si_to_float, usi_to_float): Use it to compute proper shift.
3314         (usi_to_float): Preserve guard bits when shifting right.
3315         * libgcc-std.ver (GCC_4.2.0): New version.
3316         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
3317         __floatundisf): New functions.
3318         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
3319         __floatundisf): Declare.
3320         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
3321         _floatundixf, and _floatunditf.
3322         * optabs.c (expand_float): If target does not define a pattern for
3323         signed or unsigned conversion, use an unsigned libcall instead of
3324         a signed one.
3325         (init_optabs): Initialize ufloat_optab.
3326
3327 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
3328
3329         * config/rs6000/rs6000.opt (mmulhw): New option.
3330         * doc/invoke.texi (-mmulhw): Document.
3331         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
3332         for 405 and 440.
3333         * config/rs6000/rs6000.md: Add half-word multiply and
3334         multiply-accumulate instructions for 405 and 440.
3335
3336 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
3337
3338         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
3339         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
3340         default now includes a linker group which makes the RTEMS one nest.
3341
3342 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3343
3344         * cse.c (fold_rtx): Typo fix.
3345         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
3346
3347 2005-11-21  Richard Henderson  <rth@redhat.com>
3348
3349         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
3350         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
3351
3352         * c-tree.h (lookup_name): Move declaration ...
3353         * c-common.h (lookup_name): ... here.
3354         * config/darwin-c.c: Include c-common.h.
3355         * config/t-darwin: Update dependencies.
3356
3357 2005-11-22  Ben Elliston  <bje@au.ibm.com>
3358
3359         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
3360         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
3361         * genopinit.c (gen_insn): Likewise.
3362         * reload.c (find_equiv_reg): Likewise.
3363         * loop.c (load_mems): Likewise.
3364         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
3365         * cse.c (find_comparison_args, fold_rtx): Likewise.
3366         * dwarf2out.c (add_const_value_attribute): Likewise.
3367         * expr.c (convert_move): Likewise.
3368         * recog.c (general_operand, register_operand): Likewise.
3369         * reg-stack.c (replace_reg): Likewise.
3370         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
3371         * c-common.c (handle_vector_size_attribute): Likewise.
3372         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3373         (simplify_binary_operation_1): Likewise.
3374         (simplify_const_binary_operation): Likewise.
3375         (simplify_relational_operation): Likewise.
3376         (simplify_const_relational_operation): Likewise.
3377         (simplify_immed_subreg): Likewise.
3378         * emit-rtl.c (gen_lowpart_common): Likewise.
3379         * expmed.c (expand_mult): Likewise.
3380         * stor-layout.c (layout_type): Likewise.
3381
3382 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
3383
3384         PR target/24951
3385         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
3386         cst2 only for SPE vectors.
3387
3388 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
3389
3390         PR target/24953
3391         * config/rs6000/predicates.md (vrsave_operation): Check
3392         UNSPEC_VOLATILE value.
3393
3394 2005-11-21  Jan Hubicka  <jh@suse.cz>
3395
3396         PR tree-optimization/24653
3397         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
3398
3399 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3400
3401         * config/i386/predicates.md (ax_reg_operand): New predicate.
3402         (memory_displacement_only_operand): New predicate.
3403         * config/i386/i386.md ("modrm" attribute): Return 0 if one
3404         operand is AX register and the other operand is memory operand
3405         with displacement only.
3406
3407 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
3408
3409         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
3410         if we don't care about NaNs or Infinities.
3411
3412 2005-11-20  Ian Lance Taylor  <ian@airs.com>
3413
3414         PR rtl-optimization/24883
3415         * combine.c (combinable_i3pat): When checking whether the
3416         destination of i3 is used in i3, consider paradoxical subregs.
3417
3418 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
3419
3420         PR middle-end/20583
3421         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
3422
3423 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
3424
3425         * combine.c (try_combine): Do not run subst on i1src and i2src in
3426         the case of generating a PARALLEL for a comparison.
3427
3428 2005-11-20  Richard Henderson  <rth@redhat.com>
3429
3430         PR 24931
3431         * tree-sra.c (struct sra_elt): Add all_no_warning.
3432         (struct sra_walk_fns) <use>: Add use_all argument.
3433         (sra_walk_expr): Pass it.
3434         (sra_walk_modify_expr): Likewise.
3435         (scalarize_ldst): Likewise.
3436         (scan_use): Update for new argument.
3437         (mark_no_warning): New.
3438         (scalarize_use): Use it.
3439
3440 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
3441
3442         * expr.c (expand_expr_real): Use usmul_optab for widening
3443         signed * unsigned multiplies.
3444         * genopinit.c (optabs): Add usmul_widen_optab.
3445         * optabs.c (init_optabs): Likewise.
3446         * optabs.h (enum optab_index): Add OTI_usmul_widen.
3447         (usmul_widen_optab): Define.
3448         * config/bfin/bfin.md (usmulhisi3): New pattern.
3449
3450         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
3451
3452 2005-11-20  Graham Stott <btinternet.com>
3453
3454         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
3455
3456 2005-11-20  Andreas Schwab  <schwab@suse.de>
3457
3458         PR target/24757
3459         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
3460         insn.
3461
3462 2005-11-19  Richard Henderson  <rth@redhat.com>
3463
3464         PR tree-opt/24665
3465         * tree-gimple.c (is_gimple_id): Export.
3466         * tree-gimple.h (is_gimple_id): Declare.
3467         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
3468         (get_default_value): Use it.
3469         (maybe_fold_stmt_indirect): Likewise.
3470
3471 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
3472
3473         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
3474         than VR1 or vice-versa.
3475
3476 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
3477
3478         PR middle-end/24912
3479         PR middle-end/24750
3480         * reload.c (find_reloads_address_1): Mention dependency on
3481         gen_reload.
3482         * reload1.c (gen_reload): For IN with an unary operation, try
3483         moving inner expression to OUT if trivial SET is not valid.
3484         Confirm that the result is valid.  Move common code block into...
3485         (emit_insn_if_valid_for_reload): New function.
3486
3487 2005-11-19  Richard Guenther  <rguenther@suse.de>
3488
3489         * fold-const.c (fold_indirect_ref_1): Make sure we fold
3490         ARRAY_REFs of constant strings.
3491
3492 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
3493
3494         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
3495         fatal format string.
3496
3497 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
3498
3499         * combine.c (make_compound_operation): Swap operands of
3500         commutative operation if necessary before returning.
3501
3502 2005-11-19  Richard Guenther  <rguenther@suse.de>
3503
3504         PR middle-end/23294
3505         * fold-const.c (fold_plusminus_mult_expr): New function.
3506         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
3507         cases, remove now unnecessary code.
3508
3509 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
3510
3511         * gensupport.c (old_preds): Rename to std_preds, add special field.
3512         (struct old_pred_table): Rename to struct std_pred_table, add special
3513         field.
3514         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
3515         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
3516         (init_predicate_table): Adjust, and set along the way whether a
3517         predicate is special.
3518
3519 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
3520
3521         * BASE-VER: Change to 4.2.0.
3522
3523 2005-11-18  James E Wilson  <wilson@specifix.com>
3524
3525         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
3526         returning it.
3527
3528 2005-11-18  Mike Stump  <mrs@apple.com>
3529
3530         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
3531         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3532         * c-decl.c (lookup_name_two) Remove.
3533         * c-tree.h (lookup_name_two): Remove.
3534         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3535         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
3536         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
3537         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
3538
3539 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
3540
3541         PR target/24914
3542         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
3543         when not generating code to use that co-processor.
3544
3545 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
3546
3547         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
3548         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
3549         these functions are now in tree-phinodes.c.
3550
3551 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
3552
3553         * config/bfin/bfin.md (trap): New pattern.
3554
3555 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3556
3557         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
3558         on types.
3559
3560         * expr.c (expand_expr_real): Don't call record_block_change unless
3561         ib_boundaries_block is non-null
3562
3563         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
3564
3565         * fold-const.c (build_range_check): Use proper type for subtraction
3566         when merging lower bound.
3567
3568 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3569
3570         PR rtl-optimization/24497
3571         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
3572         the copied insn.
3573
3574 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
3575
3576         * tree-scalar-evolution.c (expression_expensive_p): New function.
3577         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
3578
3579 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
3580
3581         * config/bfin/crtlibid.s: New file.
3582
3583 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3584
3585         PR target/24348
3586         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
3587         when not using sjlj exceptions.
3588         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
3589         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3590         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
3591         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
3592         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
3593         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
3594         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
3595         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
3596         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
3597         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
3598         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
3599         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
3600         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
3601         defines.
3602         * config/pa/hpux-unwind.h: New file.
3603
3604 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
3605
3606         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
3607         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
3608         * varasm.c (do_assemble_alias): Adjust call.
3609         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
3610         is defined.
3611         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
3612
3613 2005-11-17  James E Wilson  <wilson@specifix.com>
3614
3615         * tree.def (FUNCTION_DECL): Correct typo in comment.
3616
3617 2005-11-17  Richard Henderson  <rth@redhat.com>
3618
3619         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
3620         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
3621         and DW_CFA_def_cfa_sf.
3622         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
3623         (dbx_reg_number): Don't assert particular registers here.
3624         (based_loc_descr): ... do it here instead.  Fold in ...
3625         (eliminate_reg_to_offset): ... this function.
3626         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
3627         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
3628         * unwind-dw2.c (execute_cfa_program): Apply data align factor
3629         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
3630         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
3631         (instantiate_virtual_regs): Likewise.
3632         * var-tracking.c (adjust_stack_reference): Likewise.
3633         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
3634
3635 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3636
3637         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
3638         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
3639         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
3640         crtlibid.o.
3641         ($(T)crtlibid.o): New rule.
3642
3643 2005-11-16  Richard Guenther  <rguenther@suse.de>
3644
3645         PR middle-end/24851
3646         * fold-const.c (extract_array_ref): Return byte offset
3647         in all cases.
3648         (fold_binary): Fold &x[a] CMP &x[b] to
3649         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
3650         behavior.
3651
3652 2005-11-16  Richard Henderson  <rth@redhat.com>
3653
3654         PR middle-end/23497
3655         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
3656         parts of an SSA_NAME.
3657
3658 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
3659
3660         PR target/24861
3661         * arm.md (split for movsf with immediate): Restrict split to insns
3662         that set a general register.
3663
3664 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3665
3666         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
3667         uw_update_context.
3668         * unwind-dw2.c (uw_advance_context): Likewise.
3669         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
3670         _Unwind_SjLj_Unregister.
3671         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
3672
3673 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3674
3675         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
3676
3677 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3678
3679         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
3680         langhook to get a DImode integer type.
3681
3682 2005-11-16  Richard Henderson  <rth@redhat.com>
3683             J"orn Rennecke <joern.rennecke@st.com>
3684             Ulrich Weigand  <uweigand@de.ibm.com>
3685
3686         PR rtl-opt/24160
3687         PR target/24621
3688         * reload1.c (reg_equiv_invariant): New.
3689         (reload): Allocate, initialize, and free it.
3690         (calculate_needs_all_insns): Check it when skipping equivalence
3691         setting insns.
3692         (alter_reg): Likewise.
3693         (eliminate_regs_1): Rename from eliminate_regs.  Add new
3694         may_use_invariant argument; only use reg_equiv_invariant when true.
3695         (eliminate_regs): New.
3696         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
3697         a context for which may_use_invariant may be true.
3698
3699 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3700
3701         * fold-const.c (const_binop): Don't constant fold the operation
3702         if the result has overflowed and flag_trapping_math.
3703         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3704
3705 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3706
3707         * config/arm/unwind-arm.c (abort): Add prototype here.
3708         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
3709         (struct phase1_vrs): Add prev_sp.
3710         (unwind_phase2_forced): Save the original core registers instead of
3711         modifying entry_vrs.  Take a new flag argument for resuming unwinding
3712         and set action flags accordingly.  Always set _US_END_OF_STACK when
3713         get_eit_entry fails.  Unwind before calling the stop function.
3714         (_Unwind_GetCFA): New function.
3715         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
3716         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
3717         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
3718         just call unwind_phase2_forced.
3719         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
3720         * config/arm/unwind-arm.h (abort): Remove prototype.
3721         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
3722         prototypes.
3723         (_Unwind_GetCFA): New prototype.
3724         * config/arm/pr-support.c (abort): Add prototype here.
3725         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
3726         forced unwinding.
3727         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
3728         not schedule the prologue with non-call exceptions and EABI.
3729
3730 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
3731
3732         * config/arm/unwind-arm.h: Reorder interface function declarations.
3733         (_URC_END_OF_STACK): New enumeration value.
3734         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
3735         (struct _Unwind_Control_Block): Document reserved field use.
3736         (_Unwind_Stop_Fn): New typedef.
3737         (_Unwind_ForcedUnwind): Declare.
3738         (_Unwind_Resume_or_Rethrow): Declare.
3739         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
3740         argument.  Adjust.
3741         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
3742         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
3743         (UCB_FORCED_STOP_ARG): New.
3744         (search_EIT_table): Update boundary condition checks.
3745         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
3746         (unwind_phase2): Replace for with do..while.
3747         (unwind_phase2_forced): New.
3748         (__gnu_Unwind_RaiseException): Replace for with do..while.
3749         (__gnu_Unwind_ForcedUnwind): New.
3750         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
3751         Use appropriate phase2 unwinder.
3752         (__gnu_Unwind_Resume_or_Rethrow): New.
3753         (__gnu_unwind_pr_common): Cope with forced unwinding.
3754
3755 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
3756
3757         PR target/24772
3758         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
3759
3760         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
3761         roundsf2): Remove "s" from mnemonic.
3762
3763 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3764
3765         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
3766         __PIC__ is defined.
3767         * config/bfin/crtn.s: Change epilogues to match.
3768         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
3769         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
3770         __PIC__ and __pic__.
3771
3772 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3773
3774         PR 24357
3775         * doc/invoke.texi: Distinguish between free and fixed form instead of
3776         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
3777         languages.
3778         * gcc.c (default_compilers): Remove double entries, add entries for
3779         suffixes '.F90' and '.F95'.
3780
3781 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
3782
3783         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
3784         in the stack probing loop.
3785
3786 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3787
3788         * configure.ac: Use .machine power5 not power5x.
3789         * configure: Regenerate.
3790
3791 2005-11-15  Mike Stump  <mrs@apple.com>
3792
3793         * c-decl.c (lookup_name_two): Add.
3794         * c-tree.h (lookup_name_two): Likewise.
3795         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
3796         * config/darwin-c.c (darwin_pragma_unused): Likewise.
3797
3798 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
3799
3800         PR rtl-optimization/23392
3801         * regrename.c (enum scan_actions) Add mark_access.
3802         (scan_actions_name): Ditto.
3803         (scan_rtx_reg): Handle mark_access.
3804         (scan_rtx_address): Do nothing for mark_access.
3805         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
3806         and regs in REG_INC notes before closing chains for dead regs.
3807         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
3808         opening chains for new writes.
3809
3810 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
3811
3812         * c.opt (ffixed-line-length-none): New.
3813
3814 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
3815
3816         * mklibgcc.in: Change contents of eh_dummy.c.
3817
3818 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3819
3820         * loop.c (scan_loop): Do not insert temporaries for hard registers.
3821
3822 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
3823
3824         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
3825         of making syscalls.
3826         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
3827
3828 2005-11-15  Jan Hubicka  <jh@suse.cz>
3829
3830         * invoke.texi (large-unit-insns): Document.
3831         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
3832         * params.def (large-unit-insns): New param.
3833
3834 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
3835
3836         PR target/24869
3837         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
3838         special register for operand 3.  Reindent constraints to align
3839         them vertically.
3840
3841 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
3842
3843         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
3844         -mpopcntb, -mfprnd. Add -mcpu=power5+.
3845         * configure.ac: Add test for FP rounding instructions.
3846         * configure: Regenerate.
3847         * config.in: Regenerate.
3848         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3849         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
3850         features enabled.
3851         * config/rs6000/rs6000.opt (mfprnd): New.
3852         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
3853         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
3854         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
3855         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
3856         (TARGET_FPRND): New.
3857         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
3858         UNSPEC_FRIZ): New.
3859         (btrunc<mode>2): New.
3860         (ceil<mode>2): New.
3861         (floor<mode>2): New.
3862         (round<mode>2): New.
3863
3864 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
3865
3866         * gcc.c (version_compare_spec_function): Use fatal() rather than
3867         abort().
3868
3869         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
3870         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
3871         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
3872         as empty.
3873         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
3874         link in crt2.o.
3875
3876         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
3877         on -mmacosx-version-min setting.
3878
3879 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3880
3881         PR 24840
3882         * tree-vrp.c (infer_value_range): Return false if STMT is a
3883         block terminator and its basic block has no successors.
3884
3885 2005-11-14  Mike Stump  <mrs@apple.com>
3886
3887         * config/i386/i386.c (override_options): -masm=intel isn't
3888         supported on darwin.
3889         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
3890
3891 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3892
3893         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
3894         vfork after including auto-host.h.
3895
3896 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
3897
3898         PR rtl-optimization/22002
3899         * combine.c (distribute_notes): Detect cases where a reg dies
3900         two or more times in a bb, including on the insn we are combining,
3901         and place the death note on the correct range.
3902
3903 2005-11-14  Dale Johannesen  <dalej@apple.com>
3904
3905         * expmed.c (store_bit_field):  Add offset unconditionally for
3906         memory targets.
3907         (extract_bit_field):  Don't force extzv or extv operand into
3908         a register if field is too big.
3909
3910 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3911
3912         * config/arm/arm.c (pic_labelno): New.
3913         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
3914         LABEL_REF.  Pass only the labelno to PIC insns.
3915         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3916         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
3917         * arm.md (UNSPEC_PIC_LABEL): New constant.
3918         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3919         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
3920         Use the correct label prefix.
3921
3922 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
3923
3924         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
3925         REQ_EQUIV note.
3926
3927 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
3928
3929         * loop-invariant.c: Include tm_p.h.
3930         * Makefile.in: Updated.
3931
3932 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3933
3934         * pa.c (store_reg): Revise generation of frame notes in large frames.
3935         (set_reg_plus_d): Likewise.
3936
3937 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
3938
3939         PR tree-optimization/24709
3940         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
3941         loop check.
3942
3943 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3944
3945         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
3946         and duplicate declaration of pthread_self.
3947
3948 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3949             Ian Lance Taylor  <ian@airs.com>
3950
3951         PR middle-end/24003
3952         * calls.c (expand_call): If TARGET is a MEM and some part of the
3953         argument area has been saved, force TARGET to a register.
3954
3955 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
3956
3957         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
3958         checking.
3959
3960 2005-11-13  Jason Merrill  <jason@redhat.com>
3961
3962         PR c++/22489
3963         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
3964         lazily declared methods.
3965         (force_decl_die): Stop if forcing out the context already make a
3966         DIE for the decl.
3967         (force_type_die): Likewise.
3968
3969 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
3970
3971         PR middle-end/24820
3972         * builtins.c (integer_valued_real_p): Add break in
3973         REAL_CST having TREE_OVERFLOW set.
3974
3975 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
3976
3977         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
3978         addressing modes during calculation of costs.
3979
3980 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3981
3982         * function.c (assign_stack_local_1): Restrict sanity check
3983         on frame size overflow to 32-bit and above platforms.
3984
3985 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3986
3987         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
3988         * config/cris/cris.c: Include reload.h.
3989         (cris_initial_elimination_offset): New function.
3990         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
3991         Prototype.
3992
3993 2005-11-12  Richard Guenther  <rguenther@suse.de>
3994
3995         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
3996
3997 2005-11-12  Jan Hubicka  <jh@suse.cz>
3998
3999         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
4000         to compare against 0 when possible.
4001
4002 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
4003
4004         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
4005         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
4006         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
4007         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
4008         in the new order.
4009
4010 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4011
4012         * recog.c (constrain_operands) <case 'g'>: For a match, require
4013         that a non-register matches general_operand when strict >= 0.
4014
4015 2005-11-11  Steven Bosscher  <stevenb@suse.de>
4016
4017         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
4018         previous checkin.
4019
4020 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
4021
4022         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
4023         (memory_address_same): New.
4024         (dse_optimize_stmt): Call memory_address_same.
4025
4026 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
4027
4028         PR middle-end/24750
4029         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
4030         ZERO_EXTEND>: New cases.
4031
4032 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
4033
4034         * longlong.h (__clz_tab): Always provide.
4035
4036 2005-11-11  Steven Bosscher  <stevenb@suse.de>
4037
4038         PR 24265
4039         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
4040         can be assigned to.
4041         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
4042         before check_maybe_invariant.
4043         (move_invariant_reg): Use gen_move_insn instead of replacing
4044         SET_DEST with the temporary for the invariant.
4045         (move_loop_invariants): If checking is enabled, do internal
4046         consistency checks after completing the pass.
4047
4048 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
4049
4050         PR 24644
4051         * common.opt (Wvolatile-register-var): New.
4052         * varasm.c (make_decl_rtl): Only emit warning when option
4053         specified.  Clarify warning message.
4054         * doc/invoke.texi (Wvolatile-register-var): Document new option.
4055
4056         * doc/md.texi (copysign): Document standard named pattern.
4057
4058 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
4059
4060         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
4061         bytes when align is 2.
4062         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
4063         by the first instruction of the loop.
4064
4065 2005-11-11  Jason Merrill  <jason@redhat.com>
4066
4067         PR c++/24686
4068         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
4069         the cleanup list.
4070
4071 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
4072
4073         PR rtl-optimization/22509
4074         * local-alloc.c (memref_used_between_p): Check whether a function call
4075         could not reference the memref.
4076
4077 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
4078
4079         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
4080         algorithm so as to choose the best, not the worst, alternative.
4081         Reset accumulated register class before processing next alternative.
4082
4083 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4084
4085         PR target/24445
4086         * calls.c (expand_call): Copy a return value to a plain register
4087         if needed.
4088
4089 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
4090
4091         PR target/24778
4092         * varasm.c (assemble_name): Recompute name only for transparent
4093         aliases.
4094
4095 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
4096
4097         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
4098
4099 2005-11-04  Jeff Law  <law@redhat.com>
4100
4101         PR middle-end/23181
4102         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
4103         perform reassociation if the parent statement will not die as
4104         a result of the optimization.
4105
4106 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
4107
4108         * tree-ssa-alias.c (compute_may_aliases): Remove call to
4109         delete_old_heap_vars.
4110         * tree-dfa.c (referenced_var_remove): Remove function.
4111         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
4112         (delete_tree_ssa): Remove call to delete_old_heapvars.
4113         Add call to delete_alias_heapvars.
4114         * tree-flow.h (referenced_var_remove): Remove prototype
4115         (init_alias_heapvars): New prototype.
4116         (delete_alias_heapvars): Ditto.
4117         * Makefile.in (tree-ssa-structalias.o): Add
4118         gt-tree-ssa-structalias.o
4119         (GTFILES): Add tree-ssa-structalias.h and
4120         tree-ssa-structalias.c.
4121         (s-gtype): Add gt-tree-ssa-structalias.h.
4122         * tree-ssa-structalias.c (heapvars): Remove.
4123         (oldheapvars): Remove.
4124         (heapvar_for_stmt): New variable.
4125         (heapvar_lookup): New function.
4126         (heapvar_insert): Ditto.
4127         (get_constraint_for): See if we have an old heapvar
4128         to reuse.
4129         (init_alias_heapvars): New function.
4130         (delete_alias_heapvars): Ditto.
4131         Add include of gt-tree-ssa-structalias.h.
4132
4133 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4134
4135         PR middle-end/22127
4136         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
4137
4138 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4139
4140         * tree.c (int_fits_type_p): Only look at the base type
4141         if it has the same precision as the original type.
4142
4143 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
4144
4145         PR other/4372
4146         * varasm.c (assemble_alias): Use %q+D in the error
4147         message instead of %J and %qD.
4148
4149 2005-11-10  Richard Guenther  <rguenther@suse.de>
4150
4151         * gcse.c (free_ldst_entry): Only free hashtable if
4152         it exists.
4153
4154 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4155
4156         * function.c (assign_stack_local_1): Issue an error message if
4157         the frame size overflows in the signed target arithmetics.
4158
4159 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4160
4161         * tree.c (build_qualified_type): Chain the new type to the original
4162         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
4163         a POINTER_TYPE or a REFERENCE_TYPE respectively.
4164         (build_pointer_type_for_mode): Only return unqualified types.
4165         (build_reference_type_for_mode): Likewise.
4166
4167 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4168
4169         * Makefile.in (gnucompare): Do comparison of all files using one of
4170         the chosen methods and only afterwards decide if just warning should
4171         be issued or comparison failure raised.
4172
4173 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4174
4175         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
4176         (noce_try_abs): Negate if the comparison is reversed.
4177         Look only one instruction backwards for a REG_EQUAL note.
4178
4179 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4180
4181         PR other/4372
4182         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
4183         gthr-tpf.h: Define __gthrw.  For all identifiers that might
4184         be weak, introduce weakrefs or non-weak aliases with __gthrw,
4185         and prefix all uses with __ghtrw.
4186
4187 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
4188
4189         PR other/4372
4190         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
4191         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
4192         * c-common.c (handle_weakref_attribute): New.
4193         (c_common_attribute_table): Add weakref.
4194         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
4195         in the assembler.
4196         * configure, config.in: Rebuilt.
4197         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
4198         * doc/extend.texi: Document weakref attribute.
4199         * varasm.c (ultimate_transparent_alias_target): New
4200         (assemble_name): Use it.
4201         (weak_finish_1): Split out of...
4202         (weak_finish): ... and deal with weakrefs in...
4203         (weakref_targets): ... new list.
4204         (globalize_decl): Clean up weakref_targets.
4205         (do_assemble_alias): Handle weakrefs.
4206         (finish_aliases_1): Do not reject weakrefs to external symbols.
4207         (assemble_alias): Handle weakrefs.
4208
4209 2005-11-09  Richard Guenther  <rguenther@suse.de>
4210
4211         PR tree-optimization/24716
4212         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
4213         t_bool to track results from follow_ssa_edge.
4214
4215 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4216
4217         * final.c (force_source_line): New global variable.
4218         (final_scan_insn): Set it to true instead of clearing last_filename.
4219         (notice_source_line): Return true if force_source_line is true,
4220         unless source info is absent.
4221
4222 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
4223
4224         PR c/24644
4225         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
4226         a linkage name for a variable if it a register variable.
4227         * c-decl.c (grokdeclarator): Global register variables
4228         should be set as PUBLIC.
4229
4230 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4231
4232         PR 24624
4233         * config/s390/s390.c (struct s390_frame_layout): New fields
4234         first_save_gpr_slot and last_save_gpr_slot.
4235         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
4236         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
4237         first_save_gpr and last_save_gpr with the _slot variants.
4238         (s390_register_info): Calculate first_save_gpr_slot and
4239         last_save_gpr_slot using regs_ever_live.
4240
4241 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4242
4243         PR 24623
4244         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
4245         for a function containing a landing pad.
4246
4247 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4248
4249         PR 24034
4250         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
4251         is live afterwards.
4252
4253 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
4254
4255         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
4256         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
4257
4258 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4259
4260         Add ms2 support
4261         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
4262         constants.
4263         (call,load,store): New insn types.
4264         (mem_access, branch_access): Adjust reservation conditions.
4265         (define_delay): Adjust condition.
4266         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
4267         type.
4268         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
4269         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
4270         insn type.
4271         (call_internal, call_value_internal, return_internal,
4272         return_interrupt_internal, eh_return_internal, indirect_jump,
4273         tablejump): Set call insn type.
4274         (blockage, ei, di): Use appropriate unspec const.
4275         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
4276         (ms1_get_attr_type): Adjust to give load & store types.
4277         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
4278         backwards past a barrier.
4279         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
4280         branch scheduling.
4281         (struct branch_info, struct label_info): New.
4282         (ms1_labels): New.
4283         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
4284         (ms1_machine_reorg): New.
4285         (TARGET_MACHINE_DEPENDENT_REORG): Override.
4286         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
4287         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
4288         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
4289         (TARGET_MS2): New.
4290
4291 2005-11-09  Per Bothner  <per@bothner.com>
4292             Uros Bizjak  <uros@kss-loka.si>
4293
4294         PR c/24101
4295         * toplev.c (process_options): Initialize debug_hooks early
4296         in case lang_hooks.post_options ends up calling a debug_hook.
4297
4298 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
4299
4300         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
4301         DBX_REGISTER_NUMBER being contiguous.
4302
4303 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
4304             Diego Novillo  <dnovillo@redhat.com>
4305
4306         PR 23046
4307         * tree-vrp.c (register_edge_assert_for): Do not register
4308         always-false predicates.
4309
4310 2005-11-08  Devang Patel <dpatel@apple.com>
4311
4312         PR tree-optimization/23115
4313         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
4314         relation.
4315
4316 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
4317
4318         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
4319         -mcpu=440.
4320
4321 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
4322
4323         Fix PR tree-optimization/23382
4324
4325         * tree-ssa-alias.c (compute_may_aliases): Call
4326         delete_old_heap_vars.
4327         * tree-dfa.c (referenced_var_remove): New function.
4328         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
4329         * tree-flow.h (referenced_var_remove): Add prototype.
4330         (delete_old_heap_vars): Ditto.
4331         * tree-ssa-structalias.c (heapvars): New variable.
4332         (oldheapvars): Ditto.
4333         (get_constraint_for): Put heap vars on heapvars list.
4334         (delete_old_heap_vars): New function.
4335
4336 2005-11-08  Jason Merrill  <jason@redhat.com>
4337
4338         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
4339
4340 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
4341
4342         PR target/19340
4343         * reg-stack.c (reg_to_stack): Update register liveness also
4344         for flag_sched2_use_traces.
4345
4346 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
4347
4348         PR target/23704
4349         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
4350         override prior explicit -mno-powerpc-gfxopt.
4351
4352 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4353
4354         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
4355         if the bitsize is zero.
4356         * doc/md.texi (Standard Pattern Names): Document it.
4357
4358         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
4359         (TARGET_PASS_BY_REFERENCE): Likewise.
4360
4361 2005-11-07  Ian Lance Taylor  <ian@airs.com>
4362
4363         PR rtl-optimization/24683
4364         * config/i386/i386.c (legitimize_pic_address): If constant operand
4365         to PLUS is too large, put it in a register.
4366
4367 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
4368
4369         * configure.ac: Enable checking assembler dwarf2 support for bfin
4370         target.
4371         * configure: Regenerate.
4372
4373 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4374
4375         PR target/24230
4376
4377         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
4378         gen_easy_vector_constant_add_self): Delete.
4379         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
4380         New.
4381         (output_vec_const_move): Use gen_easy_altivec_constant.
4382         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
4383         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
4384         (easy_vector_constant_add_self): Rewritten.
4385         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
4386         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
4387         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
4388         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
4389         Macroize and adjust for the other changes.
4390
4391 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
4392
4393         PR c/24599
4394
4395         * c-typeck.c (build_c_cast): Try using a shared constant, and see
4396         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
4397
4398 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4399
4400         PR rtl-optimization/23567
4401         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
4402         (noce_process_if_block): Don't do any optimizations except
4403         if (cond) x = x; if !set_b and write into orig_x may trap
4404         or fault.  Remove the MEM_READONLY_P check.
4405
4406 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
4407
4408         PR 24670
4409         * tree-vrp.c (fix_equivalence_set): New.
4410         (extract_range_from_assert): Call it.
4411
4412 2005-11-05  Ian Lance Taylor  <ian@airs.com>
4413
4414         PR target/22432
4415         * combine.c (apply_distributive_law): Don't distribute across a
4416         vector mode subreg.
4417
4418 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
4419
4420         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
4421         config/ms1/ms1.h, config/rs6000/predicates.md,
4422         config/s390/s390.c, params.def, postreload-gcse.c,
4423         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
4424         tree-vrp.c, tree.c: Fix comment typos.
4425         * doc/invoke.texi: Fix typos.
4426
4427 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
4428
4429         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
4430         for testing whether the data_dependence_relation contains distance
4431         vectors.  Iterate over all distance vectors of the ddr.
4432         * lambda.h: Define a vec of lambda_vector pointers.
4433         * tree-data-ref.c (dump_data_dependence_relation,
4434         dump_data_dependence_direction): Iterate over all distance and
4435         direction vectors of the ddr.
4436         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
4437         DDR_DIST_VECTS.
4438         (build_classic_dist_vector, build_classic_dir_vector): Push a set
4439         of distance/direction vectors instead of a single one.
4440         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
4441         lambda_vectors with a vec of lambda_vectors.
4442         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
4443         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
4444         DDR_NUM_DIST_VECTS): New.
4445         * tree-loop-linear.c (gather_interchange_stats): Test for the
4446         existence of distance vectors only after having checked that there
4447         is a dependence.  Iterate over all distance vectors of the ddr.
4448         (linear_transform_loops): Use dump_data_dependence_relation.
4449         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
4450         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
4451         distance vectors of the ddr.
4452
4453 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4454
4455         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
4456         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
4457         IS_INTHANDLER; all callers changed.
4458         (n_regs_saved_by_prologue): Take interrupt handler attributes into
4459         account.
4460         (do_link, do_unlink): New argument ALL; all callers changed.
4461         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
4462         If function isn't leaf, save and restore all registers.
4463         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
4464         exception handler.
4465
4466 2005-11-05  Jan Hubicka  <jh@suse.cz>
4467
4468         PR rtl-optimization/23490
4469         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
4470         max-flow-memory-location): Document.
4471         * flow.c: Include params.h
4472         (MAX_MEM_SET_LIST_LEN): Kill.
4473         (add_to_mem_set_list): Use new param.
4474         * cse.c (cse_basic_block): Replace 1000 by new param.
4475         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
4476         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
4477         * predict.c (predict_loops): Use new param.
4478         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
4479
4480         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
4481         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
4482         Do not hold memory returned by cgraph_node_name across other call.
4483
4484 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
4485
4486         PR target/23424
4487         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
4488         Disable.
4489
4490 2005-11-04  Jeff Law  <law@redhat.com>
4491
4492         PR/21883
4493         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
4494         * tree-ssa-dom.c: Include params.h.
4495         (thread_across_edge): If there are too many statements in the
4496         target block, then do not thread through it.
4497         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
4498         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
4499
4500 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
4501
4502         PR 24627
4503         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
4504         TODO_update_ssa instead of TODO_update_ssa_no_phi.
4505
4506 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
4507
4508         PR/18595
4509         * tree-scalar-evolution.c (instantiate_parameters_1,
4510         instantiate_parameters, resolve_mixers): Compute the size of an
4511         expression to be instantiated and give up the instantiation if the
4512         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
4513
4514 2005-11-04  Richard Guenther  <rguenther@suse.de>
4515
4516         * tree-flow.h (ref_contains_indirect_ref): Rename to
4517         array_ref_contains_indirect_ref.
4518         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
4519         (array_ref_contains_indirect_ref): Make comment match the code
4520         and vice-versa.
4521         (ref_contains_array_ref): Likewise.
4522         * tree-ssa-structalias.c (find_func_aliases): Remove call to
4523         ref_contains_indirect_ref.
4524         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4525         Rename calls to ref_contains_indirect_ref.
4526
4527 2005-11-04 Paul Brook  <paul@codesourcery.com>
4528
4529         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
4530         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
4531         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
4532         * config/arm/arm.md: Use match_operand in peephole input templates
4533         and match_dup in peephole output templates.
4534
4535 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4536
4537         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
4538         __aeabi_uidiv.
4539
4540 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
4541             Daniel Jacobowitz  <dan@codesourcery.com>
4542
4543         * longlong.h (add_ssaaaa): Clobber condition code register
4544         in ARM version.
4545         (sub_ddmmss): Likewise.
4546         (umul_ppmm): Likewise.
4547
4548 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4549             Paul Brook  <paul@codesourcery.com>
4550             Phil Blundell  <pb@reciva.com>
4551
4552         * configure.ac: Add test for ARM TLS support.
4553         * configure: Regenerated.
4554         * config/arm/arm-protos.h (legitimize_tls_address)
4555         (arm_tls_referenced_p, tls_mentioned_p)
4556         (arm_output_addr_const_extra): New prototypes.
4557         (thumb_legitimize_pic_address): Delete.
4558         * config/arm/arm.c: Include "gt-arm.h".
4559         (enum tls_reloc): New.
4560         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
4561         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
4562         (arm_call_tls_get_addr, legitimize_tls_address)
4563         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
4564         (arm_init_tls_builtins, arm_emit_tls_decoration)
4565         (arm_output_addr_const_extra): New functions.
4566         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
4567         (TARGET_HAVE_TLS): Define.
4568         (target_thread_pointer): New.
4569         (arm_override_options): Handle -mtp=.
4570         (legitimize_pic_address): Ignore UNSPECs.
4571         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
4572         relative symbols.
4573         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
4574         (tls_get_addr_libfunc): New variable.
4575         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
4576         (arm_init_builtins): Call arm_init_tls_builtins.
4577         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
4578         (arm_encode_section_info): Call default_encode_section_info.
4579         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
4580         (enum arm_tp_type): New.
4581         (target_thread_pointer): Add declaration.
4582         (LEGITIMATE_CONSTANT_P): Handle TLS.
4583         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
4584         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
4585         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
4586         * config/arm/arm.md: Add UNSPEC_TLS.
4587         (movsi): Handle TLS.
4588         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
4589         non-PIC.
4590         (tls_load_dot_plus_eight): New insn and a peephole to create it.
4591         (load_tp_hard, load_tp_soft): New insns.
4592         * arm.opt: Add -mtp=.
4593         * doc/invoke.texi (ARM Options): Document -mtp.
4594
4595 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
4596
4597         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
4598         * config/arm/libunwind.S: Include "lib1funcs.asm".
4599         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
4600         (LIB2ADDEH): Add libunwind.S.
4601         (LIB2ADDEHDEP): Add lib1funcs.asm.
4602         * mklibgcc.in: Handle asm files in libgcc_eh.a.
4603
4604 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4605
4606         PR fortran/18452
4607         * gcc/c.opt: Add a -lang-fortran option.
4608         * gcc/c-opts.c: Add a lang_fortran flag.
4609         (c_common_init_options): Handling the -lang-fortran option.
4610         (c_common_handle_option): Add a case for Fortran options in
4611         preprocessing. Remove cases for -ffixed-form and
4612         -ffixed-line-length. Add a case for -lang-fortran.
4613
4614 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
4615
4616         * config/rs6000/rs6000.c: Include params.h
4617         (optimization_options): Set max-grow-copy-bb-insns default to 16.
4618         (bdesc_2arg): Delete vpkuhss and vpkuwss.
4619         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
4620         (UNSPEC_VPKUWSS): Delete.
4621         (altivec_vpkuhss): Delete.
4622         (altivec_vpkuwss): Delete.
4623         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
4624         final condition.
4625         (neg_eq0<mode>): Remove final condition.
4626         (neg_eq<mode>): Remove condition and split-condition.
4627
4628 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
4629
4630         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
4631         Use associated print macros.
4632
4633 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4634
4635         PR c++/17964
4636         * diagnostic.c (diagnostic_set_info_translated): New function.
4637         (diagnostic_set_info): Use it.  Add comment.
4638         * diagnostic.h (diagnostic_set_info_translated): Declare.
4639
4640 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4641
4642         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
4643         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
4644         reference only if 'public' is true.
4645         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
4646         emit the .hidden directive only if the indirect reference is public.
4647         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
4648         Pass it to dw2_force_const_mem.
4649         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
4650         * dwarf2out.c (output_cfi): Adjust calls to above function.
4651         (output_call_frame_info): Likewise.
4652         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
4653         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
4654
4655 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
4656
4657         PR tree-optimization/24483
4658         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
4659         field to elts if possible.
4660
4661 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4662
4663         PR middle-end/23155
4664         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
4665         CONSTRUCTOR.
4666
4667 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
4668
4669         Fix PR tree-optimization/24351
4670
4671         * tree-ssa-structalias.c (struct variable_info): Add
4672         collapsed_into.
4673         (get_varinfo_fc): New function to follow collapsing.
4674         (new_var_info): Set collapsed_to to NULL.
4675         (dump_constraint): Follow collapsing.
4676         (build_constraint_graph): Handle collapsing.
4677         (do_simple_structure_copy): Return false if something bad
4678         happened.
4679         (collapse_rest_of_var): New function.
4680         (do_structure_copy): Collapse if do_simple_structure_copy returns
4681         false.
4682
4683 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4684
4685         PR middle-end/24589
4686         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
4687         expressions to a statement list instead of gimplifying them.
4688
4689 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4690
4691         PR rtl-optimization/23585
4692         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
4693         that can't trap plus a constant integer, if the mode has zero size.
4694
4695 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4696
4697         PR target/24620
4698         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
4699         as operand 2.
4700         ("*insv<mode>_reg_extimm"): Likewise.
4701
4702 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
4703
4704         PR c/24329
4705         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
4706         c_common_type_for_mode returns an unnamed type.
4707
4708 2005-11-02  Richard Henderson  <rth@redhat.com>
4709
4710         PR target/9350
4711         PR target/24374
4712         * dwarf2out.c (dwarf2out_reg_save_reg): New.
4713         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
4714         * function.c (assign_parms): Use calls.internal_arg_pointer.
4715         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
4716         code.
4717         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
4718         (TARGET_CALLS): Add it.
4719         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
4720         * targhooks.c (default_internal_arg_pointer): New.
4721         * targhooks.h (default_internal_arg_pointer): Declare.
4722         * tree.h (dwarf2out_reg_save_reg): Declare.
4723         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
4724         * config/i386/i386.c (dbx_register_map): Add return column.
4725         (dbx64_register_map, svr4_dbx_register_map): Likewise.
4726         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
4727         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
4728         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
4729         (ix86_save_reg): Save force_align_arg_pointer.
4730         (ix86_emit_save_regs): Make regno unsigned.
4731         (ix86_emit_save_regs_using_mov): Likewise.
4732         (ix86_expand_prologue): Handle force_align_arg_pointer.
4733         (ix86_expand_epilogue): Likewise.
4734         * config/i386/i386.h: (dbx_register_map): Update.
4735         (dbx64_register_map, svr4_dbx_register_map): Update.
4736         (struct machine_function): Add force_align_arg_pointer.
4737         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
4738         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
4739         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
4740
4741 2005-11-02  Jan Hubicka  <jh@suse.cz>
4742
4743         PR target/23303
4744         * i386.md: Add peep2 for simplyfing array accesses.
4745
4746 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
4747
4748         PR target/24615
4749         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
4750         * config/s390/s390.c (s390_decompose_shift_count): New function.
4751         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
4752         (print_shift_count_operand): Use s390_decompose_shift_count.
4753         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
4754         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
4755
4756 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
4757
4758         PR target/24600
4759         * loop.c (loop_givs_rescan): Use force_operand to expand
4760         complex GIVs.
4761
4762 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
4763
4764         PR 22429
4765         * fold-const.c (build_range_check): Use unsigned when signed
4766         overflow is undefined also.  If etype is subtype, make sure that
4767         the subtraction is in the supertype.
4768
4769 2005-11-02  Richard Henderson  <rth@redhat.com>
4770
4771         PR target/24178
4772         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
4773         by MEM_ALIGN.
4774
4775 2005-11-01  Richard Henderson  <rth@redhat.com>
4776
4777         PR 21518
4778         * loop.c (scan_loop): Do not propagate computations to a hard
4779         register destination with SMALL_REGISTER_CLASSES.
4780
4781 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
4782
4783         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
4784         costs for MULT inside PLUS or MINUS.
4785
4786 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
4787
4788         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
4789         (TRAMPOLINE_SIZE): Round up to 60.
4790         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
4791
4792 2005-10-31  James E. Wilson  <wilson@specifix.com>
4793
4794         PR debug/24444
4795         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
4796         ifdef.  Put ifdefs around call in gen_subprogram_die.
4797         (compute_frame_pointer_to_cfa_displacement): Likewise.
4798         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
4799         not defined.
4800
4801         PR rtl-optimization/17356
4802         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
4803         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
4804
4805 2005-10-31  Jan Hubicka  <jh@suse.cz>
4806
4807         PR middle-end/24093
4808         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
4809
4810         PR target/20928
4811         * i386.c (legitimize_pic_address): Deal with large immediates.
4812
4813         PR profile/20815
4814         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
4815         from symbol names while computing checkup.
4816
4817         PR profile/24487
4818         * predict.c (predict_loops): Do not estimate more than
4819         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
4820         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
4821
4822 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
4823
4824         PR tree-optimization/19097
4825         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
4826
4827 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
4828
4829         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
4830
4831 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
4832
4833         PR middle-end/23492
4834         * tree-inline.c (setup_one_parameter): If the init_stmt
4835         is NULL, don't insert the statement.
4836
4837 2005-10-30  Jan Hubicka  <jh@suse.cz>
4838
4839         PR tree-optimization/24172
4840         * tree-inline.c (copy_body_r): Unshare the substituted value first.
4841
4842 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
4843
4844         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
4845         constants for hosts with long != 32 bits.
4846
4847 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
4848
4849         PR middle-end/24093
4850         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
4851
4852 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
4853
4854         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
4855         (TARGET_MS1_16_002): New.
4856         (TARGET_MS1_16_003): New.
4857
4858         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
4859         ("*decrement_and_branch_until_zero_no_clobber"): New.
4860         Add corresponding splitter for decrement_and_branch_until_zero
4861         instruction.
4862         Key all decrement_and_branch_until_zero patterns off of
4863         TARGET_MS1_16_003.
4864
4865 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
4866
4867         PR middle-end/24362
4868         * tree-complex.c (extract_component): Treat RESULT_DECL
4869         like the rest of the decls.
4870
4871 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
4872
4873         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
4874         indirect call to _mcount if the function needs a static chain.
4875
4876 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4877             Caroline Tice  <ctice@apple.com>
4878
4879         PR rtl-optimization/24460
4880         * dwarf2out.c (have_switched_text_sections): New boolean variable.
4881         (dwarf2out_switch_text_section): Set it to true instead of
4882         incrementing separate_line_info_table_in_use.
4883         (output_loc_list): Additionally test have_switched_text_sections.
4884         (output_ranges): Likewise.
4885         (dwarf2out_finish): Likewise.
4886         * varasm.c (assemble_start_function): Do not call
4887         insert_section_boundary_note.
4888         (assemble_end_function): If flag_reorder_blocks_and_partition,
4889         switch to the function's section before emitting the .size directive.
4890         * bb-reorder.c (insert_section_boundary_note): Staticify.
4891         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
4892         * output.h (insert_section_boundary_note): Delete.
4893
4894 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
4895
4896         PR c/23103
4897         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
4898         instead of pointer equality when comparing types.
4899
4900 2005-10-24  James E. Wilson  <wilson@specifix.com>
4901
4902         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
4903         add_dependence_list_and_free calls.
4904
4905 2005-10-24  Steven Bosscher  <stevenb@suse.de>
4906
4907         * contrib.texi: Add the names of the LLNL folks who donated
4908         Cray pointer support for gfortran.
4909
4910 2005-10-24  Steven Bosscher  <stevenb@suse.de>
4911
4912         PR tree-optimization/24225
4913         * profile.c (branch_prob): Look from end to start through a
4914         basic block when looking for a locus.
4915
4916 2005-10-24  Richard Henderson  <rth@redhat.com>
4917
4918         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
4919         parallel.
4920         (hppa_expand_prologue): Likewise.
4921
4922 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4923
4924         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
4925         (NO_DEFERRED_PROFILE_COUNTERS): Define.
4926         * pa.h (NO_PROFILE_COUNTERS): Define.
4927         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
4928         (funcdef_nos): New vector to hold label numbers of deferred profile
4929         counters.
4930         (output_deferred_profile_counters): New function.
4931         (hppa_profile_hook): Push label number onto funcdef_nos.
4932         (pa_hpux_file_end): Call output_deferred_profile_counters if
4933         NO_DEFERRED_PROFILE_COUNTERS is false.
4934
4935         * pa-protos.h (get_deferred_plabel): New prototype.
4936         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
4937         Make global.
4938         (output_call): Adjust calls.
4939
4940 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
4941
4942         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
4943         peculiarity of GOT/TOC section usage.
4944
4945 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
4946
4947         PR objc/24435
4948          * c-common.c (constant_string_class_name): Add documentation.
4949
4950 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
4951
4952         PR target/23832
4953         * recog.c (peephole2_optimize): Increment peep2_current_count
4954         only when the slot is empty.
4955
4956 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4957
4958         PR ada/23957
4959         * except.c (output_function_exception_table): Call
4960         assemble_external_libcall if we need a personality function.
4961
4962 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4963
4964         PR rtl-optimization/24460
4965         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
4966         set the basic block for barriers.
4967
4968 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
4969
4970         * var-tracking.c (vt_initialize): Initialize post.
4971
4972 2005-10-21  Devang Patel  <dpatel@apple.com>
4973
4974         PR/24220
4975         * c-common.c (vector_types_convertible_p): Check vector element type.
4976
4977 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
4978
4979         * config/sh/sh.c (prepare_move_operands): Handle the address
4980         constant which is a tls symbolic address plus a constant.
4981
4982 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
4983
4984         PR driver/24473
4985         * gcc.c (main): Use the correct counter for erroring out
4986         about mulitple files.
4987
4988 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
4989
4990         PR target/24465
4991         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
4992         use r2 for 64-bit tls .got access.
4993
4994 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
4995
4996         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
4997         TRUTH_OR_EXPR.
4998
4999 2005-10-20  Steven Bosscher  <stevenb@suse.de>
5000
5001         PR tree-optimization/24307
5002         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
5003
5004 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
5005
5006         PR middle-end/24295
5007         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
5008         alias targets.
5009         * varasm.c (find_decl_and_mark_needed): After cgraph global info
5010         is ready, stop marking functions, but still mark variables.
5011
5012 2005-10-20  Richard Guenther  <rguenther@suse.de>
5013
5014         PR c++/24439
5015         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
5016         void type operands.
5017
5018 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
5019
5020         PR rtl-optimization/23585
5021         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
5022         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
5023         (may_trap_p_1): New predicate extracted from...
5024         (may_trap_p): ... here.  Invoke may_trap_p_1.
5025         (may_trap_or_fault_p): New predicate.
5026         * rtl.h (may_trap_or_fault_p): Declare it.
5027         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
5028         instead of may_trap_p.
5029         (steal_delay_list_from_fallthrough): Likewise.
5030         (fill_simple_delay_slots): Likewise.
5031         (fill_slots_from_thread): Likewise.
5032         * function.c (pad_to_arg_alignment): Rework comment about
5033         SPARC_STACK_BOUNDARY_HACK.
5034         * config/sparc/sparc.h: Likewise.
5035
5036 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
5037
5038         * config/s390/s390.c (s390_expand_insv): New.
5039         * config/s390/s390-protos.h (s390_expand_insv): Declare.
5040         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
5041         ("icm_hi"): Remove mode attribute.
5042         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
5043         Adjust all uses.
5044         ("*extracthi", "*extractqi"): Remove.
5045         (extv<mode>", "*extzv<mode>"): New.
5046         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
5047         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
5048
5049 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5050
5051         * cfgexpand.c (discover_nonconstant_array_refs_r,
5052         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
5053         (tree_expand_cfg): Call discover_nonconstant_array_refs.
5054         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
5055         discover_nonconstant_array_refs.
5056
5057 2005-10-19  Steven Bosscher  <stevenb@suse.de>
5058
5059         PR c/23228
5060         * c-decl.c (pop_scope): Don't warn about an unused variable
5061         if it is marked with TREE_NO_WARNING.
5062         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
5063         somenow mismatch and olddecl is to be replaced.
5064
5065 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5066
5067         PR middle-end/23199
5068         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
5069         whether registers live on the edge can be saved/restored.
5070
5071 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5072
5073         * config/sh/sh.c (fixup_mova): Skip notes.
5074
5075 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5076
5077         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
5078         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
5079         (s390_can_eliminate): Handle BASE_REGNUM elimination.
5080         (s390_initial_elimination_offset): Likewise.
5081         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
5082         register on TARGET_ZARCH targets.
5083         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
5084         (INITIAL_FRAME_POINTER_OFFSET): Remove.
5085         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
5086         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
5087
5088 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5089
5090         * config/s390/s390.md: Comment describing output modifiers updated.
5091         * config/s390/s390.c (print_operand): Likewise.
5092
5093 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
5094
5095         * config/s390/s390.c (override_options): Added check for -mstack-size
5096         64k limitation.
5097         * doc/invoke.texi: Mention that limit in the documenation.
5098
5099 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
5100
5101         PR #19672
5102         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
5103
5104 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
5105
5106         Fix PR tree-optimization/24231
5107
5108         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
5109         (compute_avail): Ditto.
5110
5111 2005-10-18  Richard Henderson  <rth@redhat.com>
5112
5113         PR target/24428
5114         * config/i386/i386.c (legitimate_constant_p): Check
5115         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
5116         if LABEL_REF.
5117         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
5118         (legitimate_pic_address_disp_p): Reorg CONST checking to make
5119         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
5120         directly.
5121         (print_operand_address): Likewise.
5122         * config/i386/predicates.md (x86_64_immediate_operand): Test
5123         SYMBOL_REF_TLS_MODEL properly inside CONST.
5124         (x86_64_zext_immediate_operand): Likewise.
5125         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
5126         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
5127         * config/i386/i386-protos.h: Remove predicates.md entries.
5128
5129 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
5130
5131         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
5132         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
5133
5134 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5135             Ian Lance Taylor <ian@airs.com>
5136
5137         PR middle-end/23522
5138         * fold-const.c (fold_widened_comparison): Do not allow range based
5139         constant folding when right operand cannot be unwidened.
5140
5141 2005-10-17  Richard Henderson  <rth@redhat.com>
5142
5143         * builtins.c (expand_builtin_synchronize): Build a new-style asm
5144         with a memory clobber.
5145
5146 2005-10-17  James E Wilson  <wilson@specifix.com>
5147
5148         PR rtl-optimization/17356
5149         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
5150         checking for EDGE_EH.
5151
5152 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
5153
5154         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
5155         the slot on an even boundary for any type with 16-byte alignment.
5156
5157 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
5158
5159         PR target/23424
5160         * md.texi (Modifiers) <%>: Clarify that % doesn't work
5161         after register allocation.
5162
5163 2005-10-17  DJ Delorie  <dj@redhat.com>
5164
5165         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
5166         as frame related.
5167
5168 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
5169
5170         PR c++/22551
5171         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
5172         overflow flags.
5173
5174 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5175
5176         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
5177         to 2 if it's already non-zero.
5178         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
5179         is set and warn about it if flag_schedule_insns is 1.
5180
5181 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
5182
5183         * config/crx/crx.md: Compare-and-branch instructions need to
5184         invalidate CC.
5185
5186 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
5187
5188         PR target/24315
5189         * config/i386/i386.md (*pushdi2_rex64 splitter)
5190         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
5191         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
5192         flow2 pass only when (optimize > 0 && flag_peephole2).
5193
5194 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
5195
5196         PR driver/22544
5197         * gcc.c (have_c): New static variable.
5198         (have_o): Likewise.
5199         (process_command): Remove declation of have_c.
5200         Set have_o to 1 when handling -o.
5201         (main): Add a fatel error if there are multiple
5202         files specified and -o and -c/-S is passed witout
5203         -combine or multiple languages.
5204
5205 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
5206
5207         Fix PR tree-optimization/22444
5208         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
5209         Assert that we don't hit something with subvars.
5210         (setup_pointers_and_addressables): Don't add things with subvars,
5211         because we'll already process the subvars for aliasing purposes.
5212
5213 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
5214
5215         PR target/23424
5216         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
5217         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
5218         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
5219         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
5220         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
5221         swapped, alternatives for the R constraint.
5222
5223         PR middle-end/24341
5224         * builtins.c (get_builtin_sync_mode): Make unlimited
5225         mode_for_size request.
5226
5227 2005-10-15  Richard Henderson  <rth@redhat.com>
5228
5229         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
5230         (gimplify_expr): ... here.
5231         (gimplify_compound_lval): Use it in initial scan loop.  Allow
5232         fb_lvalue in base expression.
5233
5234 2005-10-15  Richard Henderson  <rth@redhat.com>
5235
5236         PR 23714
5237         * builtins.c (expand_builtin_trap): Export.
5238         * expr.h (expand_builtin_trap): Declare.
5239         * expr.c (expand_assignment): Emit a trap for integral offsets
5240         from registers that weren't reduced to bitpos.
5241
5242         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
5243         (mark_array_ref_addressable): Remove.
5244         * tree-flow.h (mark_array_ref_addressable): Remove.
5245         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
5246
5247 2005-10-15  James E Wilson  <wilson@specifix.com>
5248
5249         PR target/24232
5250         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
5251         (add_dependence_list_and_free): Likewise.
5252         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
5253         call.
5254
5255 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
5256
5257         PR 23141
5258         PR 23142
5259         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
5260         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
5261         anti-range.
5262         (vrp_visit_phi_node): Only prevent infinite iterations when
5263         the previous result and the new result are both VR_RANGEs.
5264
5265 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
5266
5267         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
5268         function comment.
5269
5270 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5271
5272         PR c/23439
5273         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
5274         to initialize loc.
5275
5276 2005-10-14  Per Bothner  <per@bothner.com>
5277
5278         PR preprocessor/21250
5279         * c-ppoutput.c (print_line): Print internal line 0 as 1.
5280
5281 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
5282
5283         PR c++/22551
5284         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
5285         overflow flags.  Refactor some conditionals.
5286
5287 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
5288
5289         PR tree-opt/21304
5290         * tree-dfa.c (add_referenced_var): Only look at decls which
5291         have TREE_CONSTANT or TREE_READONLY set instead of if
5292         !TREE_PUBLIC or !TREE_CONSTANT.
5293
5294 2005-10-13  James E Wilson  <wilson@specifix.com>
5295
5296         * doc/invoke.texi: For -x, add f95-cpp-input.
5297         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
5298
5299 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
5300
5301         PR tree-optimization/24262
5302         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
5303         in loop all the time.
5304
5305 2005-10-12  Richard Henderson  <rth@redhat.com>
5306
5307         PR c/24255
5308         * tree.h (DECL_TRANSPARENT_UNION): Remove.
5309         * function.c (assign_parm_find_data_types): Don't support it.
5310         * print-tree.c (print_node): Likewise.
5311         * c-common.c (handle_transparent_union_attribute): Likewise.
5312         Use build_duplicate_type.
5313         * tree-inline.c (remap_type_1): Split out of remap_type;
5314         properly remap aggregate fields.
5315         (build_duplicate_type): New.
5316         * doc/extend.texi (Variable Attributes): Remove documentation
5317         for transparent_union.
5318
5319 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5320
5321         PR target/24284
5322         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
5323         (gen_stack_pointer_dec): Likewise.
5324
5325 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
5326
5327         PR middle-end/21275
5328         PR middle-end/21766
5329         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
5330         target hook.
5331         (struct cxx): Add adjust_class_at_definition target hook.
5332         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
5333         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
5334         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
5335         hook_void_tree. Add to TARGET_CXX.
5336         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
5337         dllimport_flag.
5338         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
5339         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
5340         instead of attribute. Check for dllexport override.  Warn if
5341         inconsistent dll linkage. Don't lose old dllimport if decl has
5342         had address referenced.   Tweak lookup of dllimport atribute.
5343         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
5344         for target specific rules.  Don't add dllimport attribute if
5345         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
5346         dllimport attribute.
5347         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
5348         * varasm.c (initializer_constant_valid_p): Replace
5349         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
5350
5351         PR target/21801
5352         PR target/23589
5353         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
5354         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
5355         (i[34567]86-*-mingw32*): Likewise.
5356
5357         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
5358         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
5359
5360         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
5361         C++-specific code. Change return value to bool.
5362         (i386_pe_dllimport_p): Likewise.
5363         (associated_type): Simplify and make language-independent
5364         (i386_pe_encode_section_info): Replace override of ambiguous
5365         dllimport symbol refs with a gcc_assert.
5366         (i386_pe_valid_dllimport_attribute_p): Define.
5367         * config/i386/winnt-cxx.c: New file. Define C++ versions of
5368         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5369         i386_pe_adjust_class_at_definition.
5370         * config/i386/winnt-stubs.c: New file. Define stub versions of
5371         lang-specific functions.
5372         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
5373         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
5374         i386_pe_adjust_class_at_definition.
5375         (i386_pe_valid_dllimport_attribute_p): Declare.
5376         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
5377         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
5378         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
5379
5380         PR target/19704
5381         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
5382         dllimport attribute with test of DECL_DLLIMPORT_P.
5383
5384 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
5385
5386         * combine.c (make_extraction): Correct offset computation.
5387
5388 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
5389
5390         * config/cris/t-linux (LIMITS_H_TEST): Define.
5391
5392 2005-10-12  Richard Henderson  <rth@redhat.com>
5393
5394         PR rtl-opt/23324
5395         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
5396
5397 2005-10-12  Richard Guenther  <rguenther@suse.de>
5398
5399         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
5400
5401 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
5402
5403         PR c++/19964
5404         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
5405         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
5406         type.
5407
5408 2005-10-12  Richard Guenther  <rguenther@suse.de>
5409
5410         PR c++/23799
5411         * varasm.c (output_constant): Correct typo from previous
5412         patch by DJ.
5413
5414 2005-10-11  Ian Lance Taylor  <ian@airs.com>
5415
5416         PR rtl-optimization/13931
5417         * combine.c: Revert patch of 2003-05-14, and:
5418         (try_combine): Only set elim_i1 and elim_i2 if the destination is
5419         completely killed in the appropriate insn.
5420         (distribute_notes): Don't skip multiple hard register test for
5421         elim_i1 and elim_i2.
5422
5423 2005-10-11  Richard Henderson  <rth@redhat.com>
5424
5425         PR c/24255
5426         * c-typeck.c (convert_for_assignment): Use build_constructor_single
5427         to initialize a transparent union instead of a nop_expr.
5428
5429 2005-10-11  Richard Henderson  <rth@redhat.com>
5430
5431         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
5432         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
5433         (tree_ssa_dce_loop): Call scev_reset.
5434
5435         PR tree-opt/24300
5436         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
5437         * tree-ssa-dce.c: Include cfgloop.h.
5438         (tree_ssa_dce_loop, pass_dce_loop): New.
5439         * tree-pass.h (pass_dce_loop): Declare it.
5440         * passes.c (init_optimization_passes): Use it.
5441
5442 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5443
5444         PR middle-end/24263
5445         * convert.c (convert_to_real): Revert 2005-10-05 patch.
5446         Only apply the optimization for rounding builtins if the inner
5447         cast is also an extension.
5448
5449 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
5450
5451         PR tree-opt/23946
5452         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
5453         mark_new_vars_to_rename instead of update_stmt.
5454
5455 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5456
5457         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
5458
5459 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
5460
5461         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
5462         for setting MMX register to 0 rather than mmx.
5463
5464 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
5465
5466         PR target/12098
5467         * configure.ac: Move gas check from mips specific case to common case.
5468         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
5469         * configure: Regenerate
5470         * doc/install.texi: Update.
5471
5472 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5473
5474         PR target/24284
5475         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
5476
5477 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
5478
5479         * gcc.c (do_spec_1): Accept numeric characters in file name
5480         suffixes.
5481
5482 2005-10-10  Nick Clifton  <nickc@redhat.com>
5483
5484         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
5485         describing the deleted arm_gen_rotated_half_load function.
5486
5487 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5488
5489         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
5490         __fpscr_values.
5491
5492 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
5493
5494         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
5495         gnu_ld assignments.
5496         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
5497         (EXTRA_MULTILIB_PARTS): Define.
5498         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5499         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5500         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
5501         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
5502         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
5503         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
5504
5505 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
5506
5507         PR tree-optimization/24226
5508         * tree-cfg.c (remove_bb): Clean up unreachable loops.
5509         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
5510         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
5511         Export.
5512
5513 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
5514
5515         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
5516
5517 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
5518
5519         PR target/24136
5520         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
5521         Rewrite for no need for the early clobber.
5522
5523 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5524
5525         Merge from csl-arm-branch:
5526         2005-09-07  Paul Brook  <paul@codesourcery.com>
5527         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
5528         space to string.
5529
5530         2005-04-30  Paul Brook  <paul@codesourcery.com>
5531         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
5532         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
5533
5534         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
5535         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
5536         (arm_override_options): Use TARGET_AAPCS_BASED.
5537         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
5538         (PTRDIFF_TYPE): Use int for AAPCS.
5539         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
5540         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
5541         (DEFAULT_SHORT_ENUMS): Delete.
5542         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
5543
5544         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
5545         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
5546         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
5547         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
5548
5549         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
5550         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
5551
5552         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
5553         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
5554
5555         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
5556         * config.gcc (arm*-*-linux-gnueabi): Add it.
5557         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
5558         redefining it.
5559         (TARGET_OS_CPP_BUILTINS): Likeiwse.
5560         * config/arm/linux-eabi.h: New file.
5561         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
5562         (LINUX_TARET_LINK_SPEC): Likewise.
5563         (LINK_SPEC): Use it.
5564         * config/arm/t-linux-eabi: New file.
5565
5566 2005-10-08  Steven Bosscher  <stevenb@suse.de>
5567
5568         PR other/22202
5569         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
5570         spaces.
5571         (PARAM_SMS_DFA_HISTORY): Likewise.
5572
5573 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
5574
5575         PR middle-end/23150
5576         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
5577         (load_register_parameters): Call it.
5578         (check_sibcall_argument_overlap_1): Likewise.
5579         (store_one_arg): Likewise.
5580
5581 2005-10-07  James E. Wilson  <wilson@specifix.com>
5582
5583         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
5584         DImode not VECINT24 for operand 2.
5585
5586         PR target/23644
5587         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
5588         -mtune-arch.
5589
5590         PR target/24193
5591         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
5592         fr_spill): Use destination_operand for operand 0.
5593
5594 2005-10-07  DJ Delorie  <dj@redhat.com>
5595
5596         * varasm.c (output_constant): Limit error to expanding
5597         conversions.
5598
5599 2005-10-07  Richard Guenther  <rguenther@suse.de>
5600
5601         PR middle-end/24227
5602         * fold-const.c (fold_binary): Fix operand types during folding
5603         of X op (A, Y).  Evaluation order of the side-effects of
5604         X and A are frontend-defined, so ensure we honour that even for
5605         tcc_comparison class operands; eased by removing duplicate code.
5606
5607 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5608
5609         * stor-layout.c (layout_type): Do not allow alignment of array
5610         elements to be greater than their size.
5611
5612 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
5613
5614         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
5615         host_xmake_file.
5616         (hppa*-*-linux*): Ditto.
5617         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
5618         * config/host-hpux.c: New.
5619         * config/x-hpux: New.
5620         * config/pa/x-hpux: Remove.
5621         * config/pa/x-linux: Remove.
5622         * config/pa/pa-host.c: Remove.
5623
5624 2005-10-07  Jeff Law  <law@redhat.com>
5625
5626         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
5627         determine whether or not to try and thread outgoing edges.
5628
5629 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
5630
5631         * config/rs6000/rs6000.md (eqsi_power): New.
5632         (neg_eq0si): Add TARGET_POWER to final condition.
5633         (neg_eqsi): Same.
5634
5635 2005-10-06  Richard Henderson  <rth@redhat.com>
5636
5637         * config/rs6000/rs6000.c: Revert last change.
5638
5639 2005-10-06  Richard Henderson  <rth@redhat.com>
5640
5641         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
5642         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
5643
5644 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
5645
5646         PR middle-end/22216
5647         PR middle-end/23651
5648         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
5649         out return_label and naked_return_label.
5650
5651 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5652
5653         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
5654         change.
5655
5656 2005-10-06  Richard Henderson  <rth@redhat.com>
5657
5658         PR tree-opt/22237
5659         * tree-inline.c (declare_return_variable): Handle modify_dest not
5660         being a DECL.
5661
5662 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
5663
5664         Fix PR tree-optimization/22488
5665         * tree-ssa-structalias.c (check_for_overlaps): New function.
5666         (create_variable_info_for): Use it.
5667
5668 2005-10-06  Richard Henderson  <rth@redhat.com>
5669
5670         PR debug/24070
5671         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
5672         (dwarf2out_start_source_file): Print it.
5673
5674 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
5675
5676         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
5677
5678 2005-10-06  Richard Henderson  <rth@redhat.com>
5679
5680         PR 23706
5681         * mode-switching.c (optimize_mode_switching): Clear transp bit
5682         for block with incomming abnormal edges.
5683
5684         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
5685         (fpscr_set_from_mem): Use them.
5686         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
5687         (fpscr postinc splitters): Rewrite as peephole2+split.
5688
5689 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
5690
5691         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
5692         (eq<mode>_compare): Same.
5693
5694 2005-10-06  Richard Guenther  <rguenther@suse.de>
5695
5696         PR tree-optimization/24238
5697         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
5698
5699 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
5700
5701         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
5702         here.  Use AC_PATH_PROG for environment variables instead of
5703         test -x.
5704         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
5705         objdump also.
5706         * configure: Regenerated.
5707
5708 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
5709
5710         PR target/23783
5711         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
5712         then force it into a register.
5713         (call_value): Likewise.
5714
5715 2005-10-06  Richard Henderson  <rth@redhat.com>
5716
5717         PR 24049
5718         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
5719         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
5720         under pass_vectorize.
5721
5722 2005-10-05  Devang Patel  <dpatel@apple.com>
5723
5724         PR Debug/23205
5725         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
5726         handling constants. Check NAMESPACE_DECL context for constants.
5727
5728 2005-10-05  Eric Christopher  <echristo@apple.com>
5729
5730         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
5731
5732 2005-10-05  Richard Henderson  <rth@redhat.com>
5733
5734         PR 23714
5735         * tree-cfg.c (mark_array_ref_addressable_1): New.
5736         (mark_array_ref_addressable): New.
5737         * tree-flow.h (mark_array_ref_addressable): Declare.
5738         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
5739
5740 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
5741
5742         PR middle-end/20606
5743         PR middle-end/24069
5744         * reload.c (subst_reloads): When adding a REG_LABEL to a
5745         jump instruction, also update JUMP_LABEL.
5746
5747 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
5748
5749         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
5750         * bb-reorder.c (copy_bb_p): Use it.
5751         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
5752
5753 2005-10-05  Richard Henderson  <rth@redhat.com>
5754
5755         PR target/23602
5756         * toplev.c (process_options): Warn about unsupported combinations
5757         of unwind tables and omit-frame-pointer.
5758         * config/i386/i386.c (override_options): Similarly.  Enable
5759         accumulate-outgoing-args if not explicitly disabled.
5760
5761 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
5762
5763         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
5764         Handle big endian vs. small endian.
5765         (vec_initv2sf): Handle big endian vs. small endian.
5766         (*vec_extractv2sf_1): Ditto.
5767
5768 2005-10-05  Dale Johannesen  <dalej@apple.com>
5769
5770         * convert.c (convert_to_real):  Don't convert
5771         (float)floor(double d) to floorf((float)d).
5772
5773 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
5774
5775         * config/arm/arm.md (insv): Use gen_int_mode in more places.
5776
5777 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
5778
5779         PR tree-optimization/18587
5780         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
5781         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
5782         build_vuses): Change to VEC type.
5783         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
5784         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
5785         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
5786         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
5787         (get_name_decl): New.  Return DECL_UID of base variable.
5788         (operand_build_cmp): New.  qsort comparison routine.
5789         (operand_build_sort_virtual): New.  Sort virtual build vector.
5790         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
5791         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
5792         (FINALIZE_BASE): Use get_name_decl.
5793         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
5794         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
5795         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
5796         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
5797         direct VEC_* manipulations.
5798         (build_ssa_operands): Call operand_build_sort_virtual.
5799         (copy_virtual_operand, create_ssa_artficial_load_stmt,
5800         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
5801         with direct VEC_* manipulations.
5802         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
5803         with direct VEC manipulations.
5804
5805 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
5806
5807         PR tree-optimization/21419
5808         PR tree-optimization/24146
5809         PR tree-optimization/24151
5810
5811         * c-typeck.c (readonly_error): Handle USE being lv_asm.
5812         (build_asm_expr): Call it if outputs are read-only.
5813         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
5814
5815 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
5816             Paolo Bonzini  <bonzini@gnu.org>
5817
5818         PR target/23809
5819
5820         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
5821         enable the instructions and not just the built-ins.
5822         * doc/invoke.texi (x86 Options): Likewise.
5823
5824 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
5825
5826         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
5827
5828         * doc/invoke.texi (Option Summary): Correct spelling
5829         of -mmacosx-version-min.
5830
5831 2005-10-04  Devang Patel  <dpatel@apple.com>
5832
5833         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
5834         real types.
5835
5836 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
5837
5838         * tree-vect-transform.c (vect_create_epilog_for_reduction):
5839         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
5840
5841 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
5842
5843         * config/s390/s390.md ("TDSI","DP"): New mode macros.
5844         ("TE","tg"): New mode attributes.
5845         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
5846         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
5847         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
5848         dword_mode and one for GPRmode.
5849
5850 2005-10-04  Ian Lance Taylor  <ian@airs.com>
5851
5852         PR preprocessor/13726
5853         * c-ppoutput.c (cb_include): Add comments parameter, and print out
5854         any comments passed in.
5855
5856 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5857
5858         * tree.c (annotate_with_file_line): Fix typo.
5859
5860 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5861
5862         PR ada/19382
5863         * builtins.c (fold_builtin_memcmp): When constructing the pointer
5864         type used to access data in the inlined length == 1 case, use
5865         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
5866         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
5867
5868 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
5869
5870         * config/i386/i386.h (TARGET_FISTTP): Enable also for
5871         TARGET_SSE3 and only for TARGET_80387.
5872         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
5873         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
5874         Do not depend on TARGET_80387.
5875
5876 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5877
5878         * tree.c (last_annotated_node): Change type to location_t*.
5879         (annotate_with_file_line): Reflect the change of
5880         last_annotated_node type.
5881
5882 2005-10-04  Richard Guenther  <rguenther@suse.de>
5883
5884         PR c/23576
5885         * c-decl.c (grokdeclarator): Don't write to fields
5886         of error_mark_node.
5887
5888 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
5889
5890         PR middle-end/23125
5891         * c-decl.c (finish_decl): Use set_user_assembler_name even for
5892         register variables.
5893         * varasm.c (make_decl_rtl): If a register variable does not
5894         have a set user assmbler name, error out.
5895         Decode the asmspec is now name+1 bypassing '*'.
5896
5897 2005-10-04  Steven Bosscher  <stevenb@suse.de>
5898
5899         PR tree-optimization/23049
5900         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
5901         of a COND_EXPR is folded before calling fold on the whole rhs of a
5902         conditional assignment.
5903         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
5904         document that a COND_EXPR may appear there.
5905
5906 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
5907
5908         PR 23445
5909         * tree-vrp.c (extract_range_from_assert): If the new numeric
5910         range created out of the assertion contradicts the existing
5911         numeric range of the ASSERT_EXPR variable, make the new range
5912         varying.
5913
5914 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5915
5916         * config/sh/sh.c (sh_register_move_cost): Add case for moving
5917         from T_REGS to FP register class.
5918
5919 2005-10-03  Richard Henderson  <rth@redhat.com>
5920
5921         PR 24135
5922         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
5923         before creating a new one.
5924
5925 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
5926
5927         * config/rs6000/t-aix43 (LDFLAGS): New.
5928         * config/rs6000/t-aix52 (LDFLAGS): New.
5929
5930 2005-10-03  Ian Lance Taylor  <ian@airs.com>
5931
5932         * gimplify.c (find_single_pointer_decl_1): New static function.
5933         (find_single_pointer_decl): New static function.
5934         (internal_get_tmp_var): For a formal variable, set restrict base
5935         information if appropriate.
5936         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
5937         return it.
5938         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
5939         (DECL_GET_RESTRICT_BASE): Define.
5940         (SET_DECL_RESTRICT_BASE): Define.
5941         (decl_restrict_base_lookup): Declare.
5942         (decl_restrict_base_insert): Declare.
5943         (struct tree_decl_with_vis): Add based_on_restrict_p field.
5944         * tree.c (restrict_base_for_decl): New static variable.
5945         (init_ttree): Initialize restrict_base_for_decl.
5946         (copy_node_stat): Copy restrict base information.
5947         (decl_restrict_base_lookup): New function.
5948         (decl_restrict_base_insert): New function.
5949         (print_restrict_base_statistics): New static function.
5950         (dump_tree_statistics): Call print_restrict_base_statistics.
5951
5952 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
5953
5954         PR 24142
5955         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
5956         case of anti-ranges.
5957
5958 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
5959
5960         PR c/18851
5961         * c-typeck.c (tagged_tu_seen): Rename to ...
5962         (tagged_tu_seen_cache): this and add val field.
5963         (comptypes): Move functional to comptypes_internal
5964         and free tagged_tu_seen.
5965         (comptypes_internal): New function and call comptypes_internal
5966         instead of comptypes. Speed up by sibcalling
5967         tagged_types_tu_compatible_p.
5968         (alloc_tagged_tu_seen): New function
5969         (free_all_tagged_tu_seen_up_to): New function.
5970         (tagged_types_tu_compatible_p): Return the val of the seen two
5971         types.
5972         Add that the two types are the same to tagged_tu_seen_base
5973         if they are and call comptypes_internal instead of comptypes.
5974         <case UNION_TYPE>: Speed up common type where the fields are
5975         in the same order.
5976         (function_types_compatible_p): Call comptypes_internal instead of
5977         comptypes.
5978         (type_lists_compatible_p): Likewise.
5979         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
5980
5981 2005-10-02  Matthias Klose  <doko@debian.org>
5982
5983         * doc/invoke.texi: Fix typo and speling error.
5984
5985 2005-10-01  Richard Henderson  <rth@redhat.com>
5986
5987         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
5988
5989 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
5990
5991         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
5992         using --start-group and --end-group.
5993
5994 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
5995
5996         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
5997         FIXME note regarding quirky semantics.
5998
5999 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
6000
6001         PR 24141
6002         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
6003         non-null range as a last resort.
6004
6005 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
6006             Diego Novillo  <dnovillo@redhat.com>
6007
6008         PR 23604
6009         * tree-vrp.c (extract_range_from_assert): For !=
6010         assertions, only build an anti-range if LIMIT is a
6011         single-valued range.
6012
6013 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
6014
6015         * arm.md (movqi): On thumb when optimizing, handle loading from
6016         memory by describing this as taking a subreg of a zero-extended load
6017         into an SImode register.
6018         (movhi): Likewise.
6019
6020 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
6021
6022         * reload1.c (merge_assigned_reloads): Do not change any
6023         RELOAD_FOR_OUTPUT_ADDRESS reloads.
6024
6025 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
6026
6027         * Makefile.in (LIPO_FOR_TARGET): Define.
6028         (STRIP_FOR_TARGET): Define.
6029
6030         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
6031         before creating new ones.  Do symlinks before creating the actual
6032         targets.
6033
6034         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
6035         to work out which multilibs are actually being built.
6036
6037 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
6038
6039         * tree-vect-transform.c, config/ms1/ms1.md,
6040         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
6041         Follow spelling conventions.
6042         * doc/invoke.texi, doc/md.texi: Fix typos.
6043
6044 2005-09-30  Andrew Macleod  <amacleod@redat.com>
6045
6046         PR tree-optimization/21430
6047         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
6048         use operands, and set stmt pointer if need be.
6049         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
6050         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
6051         present.
6052
6053 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6054
6055         PR middle-end/24053
6056         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
6057
6058 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
6059
6060         * optabs.c (expand_binop): Initialize first_pass_p.
6061
6062 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
6063
6064         PR middle-end/24109
6065         * c-decl.c (c_write_global_declarations_1): If any
6066         wrapup_global_declaration_2 call returned true, restart the loop.
6067
6068 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
6069
6070         Fix PR tree-optimization/24117
6071         * tree-ssa-structalias.c (find_func_aliases): Strip nops
6072         before considering whether to use anyoffset.
6073
6074 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6075
6076         Revert this patch:
6077
6078         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6079
6080         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6081         to order operands.
6082         (swap_commutative_operands_with_target): New.
6083
6084 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
6085
6086         PR c/21419
6087         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
6088         read-only.
6089
6090 2005-09-29  Steven Bosscher  <stevenb@suse.de>
6091
6092         PR tree-optimization/23911
6093         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
6094         and IMAGPART_EXPR too.
6095
6096 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
6097
6098         PR 17886
6099         * expmed.c (expand_shift): Move logic to reverse rotation
6100         direction when  rotating by constants ...
6101         * optabs.c (expand_binop): ... here.
6102         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
6103         (ix86_rotrdi3): New pattern.
6104         (rotldi3): Handle 32-bit mode.
6105         (ix86_rotldi3): New pattern.
6106
6107 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
6108
6109         PR target/24102
6110         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
6111         check for numbers that need no bit twiddle.
6112
6113 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
6114
6115         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
6116         multilib to be built.
6117
6118         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
6119         (stage1-start): Delete old libgcc and libunwind before moving
6120         anything into the stage directory.
6121         (stage2-start): Likewise.
6122         (stage3-start): Likewise.
6123         (stage4-start): Likewise.
6124         (stageprofile-start): Likewise.
6125         (stagefeedback-start): Likewise.
6126         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
6127         header in tm_file and CPU-specific t-darwin in tmake_file.
6128         (i[34567]86-*-darwin*): Don't change tm_file.
6129         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
6130         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
6131         shared library stub for target OS version.
6132         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
6133         (SHLIB_LINK): Don't make SHLIB_SOLINK.
6134         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
6135         (libgcc_s.%.dylib): New.
6136         (LIBGCC): Define.
6137         (install-darwin-libgcc-stubs): New.
6138         (INSTALL_LIBGCC): New append.
6139         * config/i386/darwin-libgcc.10.4.ver: New.
6140         * config/i386/darwin-libgcc.10.5.ver: New.
6141         * config/i386/t-darwin: New.
6142         * config/rs6000/darwin-libgcc.10.4.ver: New.
6143         * config/rs6000/darwin-libgcc.10.5.ver: New.
6144         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
6145         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
6146
6147 2005-09-28  Paul Brook  <paul@codesourcery.com>
6148
6149         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
6150         denormals.
6151
6152 2005-09-28  Richard Guenther  <rguenther@suse.de>
6153
6154         PR tree-optimization/23853
6155         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
6156         host_integerp to verify misalignment value.
6157
6158 2005-09-28  Richard Henderson  <rth@redhat.com>
6159
6160         * builtins.c (get_builtin_sync_mode): New.
6161         (expand_builtin_sync_operation): Pass in mode argument.
6162         (expand_builtin_compare_and_swap): Likewise.
6163         (expand_builtin_lock_test_and_set): Likewise.
6164         (expand_builtin_lock_release): Likewise.
6165         (expand_builtin): Update to match.
6166
6167 2005-09-28  Nick Clifton  <nickc@redhat.com>
6168
6169         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
6170         formatting.  Add check to PLUS case to ensure that the offset is
6171         within an acceptable range.
6172
6173         * config/v850/v850.md (casesi): Disable the generation of the
6174         switch pattern as it is not being handled properly at the moment.
6175
6176         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
6177         for when the high words are identical.
6178
6179 2005-09-27  Richard Henderson  <rth@redhat.com>
6180
6181         * pretty-print.c (pp_base_format): Fix typo for %>.
6182
6183 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
6184             Devang Patel  <dpatel@apple.com>
6185
6186         PR tree-optimization/23625
6187         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
6188         LABEL_EXPR, assertion check.
6189
6190 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
6191
6192         * optabs.c (no_conflict_move_test): Check if a result of a
6193         to-be-moved insn would be clobbered by an originally
6194         preceding insn.
6195
6196 2005-09-27  Jeff Law  <law@redhat.com>
6197
6198         * passes.c (init_optimization_passes): Replace copy propagation
6199         passes immediately after DOM with phi-only copy propagation
6200         pases.  Add phi-only copy propagation pass after first DOM pass.
6201         * tree-pass.h (pass_phi_only_copy_prop): Declare.
6202         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
6203         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
6204         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
6205         to init_copy_prop.  Callers updated.
6206         (do_phi_only_copy_prop): New function.
6207         (pass_phi_only_copy_prop): New pass descriptor.
6208
6209 2005-09-27  Nick Clifton  <nickc@redhat.com>
6210
6211         * libgcc2.c (__popcount_tab): Remove redundant prototype.
6212
6213 2005-09-26  Jason Merrill  <jason@redhat.com>
6214
6215         PR c++/13764
6216         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
6217
6218         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
6219
6220 2005-09-26  James E Wilson  <wilson@specifix.com>
6221
6222         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
6223         copyright.  Add gcc copyright plus libgcc exception.
6224         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
6225         copyright.
6226         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
6227
6228 2005-09-26  Jeff Law  <law@redhat.com>
6229
6230         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
6231         about when to iterate.
6232
6233 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
6234
6235         PR target/23847
6236         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
6237         for __complex__ double in -mcpu=G5 mode.
6238
6239 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
6240
6241         PR tree-optimization/23942
6242         * Makefile.in (SCEV_H): Depends on PARAMS_H.
6243         * tree-scalar-evolution.c: Include params.h.
6244         (t_bool): New enum.
6245         (follow_ssa_edge, follow_ssa_edge_in_rhs,
6246         follow_ssa_edge_in_condition_phi_branch,
6247         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
6248         Change return type to t_bool.  Use a parameter to limit the size of
6249         trees that are walked before stopping
6250         (analyze_evolution_in_loop): Initialize the limit to 0.
6251         (follow_ssa_edge): Give up by returning t_dont_know if the limit
6252         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
6253
6254 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6255
6256         PR middle-end/23831
6257         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
6258         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
6259
6260 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
6261
6262         * combine.c (make_extraction): Check for valid use of subreg.
6263
6264 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
6265
6266         PR target/24055
6267         * config/i386/i386.md ("*fistdi2_1"): New pattern.
6268         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
6269         ("fist<mode>2_with_temp"): Use only register operands.
6270
6271 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
6272
6273         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
6274         CALL_INSN_FUNCTION_USAGE.
6275
6276 2005-09-26  Richard Guenther  <rguenther@suse.de>
6277
6278         PR middle-end/15855
6279         * gcse.c: Include hashtab.h, define ldst entry hashtable.
6280         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
6281         (ldst_entry): Use the hashtable instead of list-walking.
6282         (find_rtx_in_ldst): Likewise.
6283         (free_ldst_entry): Free the hashtable.
6284         (compute_ld_motion_mems): Create the hashtable.
6285         (trim_ld_motion_mems): Remove entry from hashtable if
6286         removing it from list.
6287         (compute_store_table): Likewise^2.
6288         (store_motion): Free hashtable in case we did not see
6289         any stores.
6290
6291 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
6292
6293         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
6294         and arg1 if we are passing them to fold_build2.
6295
6296 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
6297
6298         PR 23828
6299         * config/i386/i386.c (ix86_function_regparm): Fix the test for
6300         a nested function.
6301
6302 2005-09-25  Richard Henderson  <rth@redhat.com>
6303
6304         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
6305         SYMBOL_REF_TLS_MODEL to be correct.
6306
6307 2005-09-24  Richard Henderson  <rth@redhat.com>
6308
6309         * ipa-type-escape.c (discover_unique_type): Remove dead code at
6310         end of function.  Reindent.
6311
6312 2005-09-24  Ian Lance Taylor  <ian@airs.com>
6313
6314         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
6315         NEGATE_EXPR/BIT_NOT_EXPR case.
6316
6317 2005-09-24  Richard Henderson  <rth@redhat.com>
6318
6319         * c-common.c (handle_mode_attribute): When not modifying in place,
6320         create subtypes for enumerations.
6321         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
6322         * gimplify.c (create_tmp_from_val): Likewise.
6323
6324 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
6325
6326         * config/i386/i386.md (*tls_global_dynamic_64,
6327         *tls_local_dynamic_base_64): Add missing mode to call.
6328         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
6329
6330 2005-09-24  Jan Hubicka  <jh@suse.cz>
6331
6332         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
6333         (cgraph_clone_node): Likewise.
6334         * cgraph.h (cgraph_clone_edge): Update prototype.
6335         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
6336         duplicated prototypes; add updating argument.
6337         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
6338         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
6339         updating profile.
6340         (cgraph_mark_inline_edge): Likewise.
6341         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
6342         (cgraph_flatten_node): Likewise.
6343         (cgraph_decide_recursive_inlining): Likewise.
6344         (cgraph_decide_inlining_of_small_function): Likewise.
6345         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6346
6347 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6348             Pete Steinmetz <steinmtz@us.ibm.com>
6349
6350         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
6351         (rldic.): Set type to "compare".
6352         (rldicr.): Same.
6353         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
6354         mfjmpr for MFCTR/MFLR.
6355         (movdf_hardfloat64): Same.
6356         (movdf_softfloat64): Same.  Correct order of store and move types.
6357         (movti_string): Set type to store_ux/load_ux.
6358         (load_multiple): Set type to load_ux.
6359         (store_multiple): Set type to store_ux.
6360         (movmemsi): Set type to store_ux.
6361         (output_cbranch direct_return): Set type to jmpreg.
6362         (stmw): Set type to store_ux.
6363         (lmw): Set type to load_ux.
6364         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
6365         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
6366         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
6367         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
6368         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
6369         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
6370         (rios1-fpstore): Increase latency to 3.
6371         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
6372         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
6373
6374 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
6375             Andrew Pinski  <pinskia@physics.uc.edu>
6376
6377         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
6378         operand2 constraint to "b".
6379         (sync_<fetchop_name>di_internal): Same.
6380         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
6381         to "b".
6382         (sync_old_<fetchop_name>di_internal): Same.
6383         (sync_new_<fetchop_name>si_internal): Same.
6384         (sync_new_<fetchop_name>di_internal): Same.
6385
6386 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
6387
6388         PR middle-end/23991
6389         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
6390         case, define as macros.
6391
6392         PR rtl-optimization/23837
6393         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
6394         clobber / clobber match between dest and p->first.
6395
6396         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
6397         (no_conflict_move_test): Update comments.
6398
6399 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
6400
6401         * doc/install.texi: Update URL for Jacks.
6402         * doc/sourcebuild.texi: Likewise.
6403
6404 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
6405
6406         PR target/24007
6407         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
6408         registers when choosing register preferences.
6409         (movdf_hardfloat64): Same.
6410
6411 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
6412
6413         * expmed.c (expand_shift): Don't use the target of the rotate as
6414         target for the first expanded shift insn.
6415         * testsuite/gcc.dg/20050922-1.c: Testcase added.
6416
6417 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
6418
6419         PR tree-optimization/22438
6420         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
6421         preserved iv rhs rewriting specially.
6422
6423 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
6424
6425         * tree-data-ref.c (analyze_array_indexes): Only estimate when
6426         estimate_only  is true.
6427         * tree-flow.h (ref_contains_indirect_ref): New prototype.
6428         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
6429         tree-ssa-structalias.c
6430         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
6431         ref_contains_indirect_ref.
6432         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
6433
6434 2005-09-21  DJ Delorie  <dj@redhat.com>
6435
6436         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
6437         MASK_PTR_A0D0.
6438         (mn10300_return_in_memory): Support variable size types also.
6439         (mn10300_pass_by_reference): Likewise.
6440         (mn10300_function_value): New.
6441         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
6442         (FUNCTION_OUTGOING_VALUE): Likewise.
6443         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
6444         * doc/invoke.texi: Document it.
6445
6446 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
6447
6448         PR target/22585
6449         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
6450         force integer op1 into register for XFmode compares.
6451
6452 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
6453
6454         PR middle-end/23971
6455         * expmed.c (alg_code): Add alg_impossible.
6456         (alg_hash_entry): Add cost.
6457         (synth_mult): Record alg_impossible in the hash table if
6458         multiplication by a given integer is impossble within the
6459         limit.  Speed up using alg_impossible.
6460
6461 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6462
6463         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
6464         argument.  Allow and set any offset if needs_anyoffset is passed
6465         in.
6466         (get_constraint_for): Add argument here too.
6467         Pass it down.
6468         (do_structure_copy): Pass NULL to get_constraint_for.
6469         (handle_ptr_arith): Ditto.
6470         (find_func_aliases): Ditto.
6471
6472 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
6473
6474         PR rtl-optimization/23898
6475         * output.h (get_attr_min_length): Declare.
6476         * final.c (get_attr_length_1): New function, broken out of:
6477         (get_attr_length).
6478         (get_attr_min_length): New function.
6479         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
6480         (duplicate_computed_gotos): Likewise.
6481         * genattr.c (insn_min_length): Generate declaration.
6482         * genattrtab.c (min_fn, min_attr_value): New functions.
6483         (make_length_attrs): Generate insn_min_length.
6484
6485 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
6486
6487         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
6488
6489 2005-09-20  Richard Henderson  <rth@redhat.com>
6490
6491         PR tree-optimization/24059
6492         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
6493         EXPAND_STACK_PARM.
6494
6495 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
6496
6497         * c.opt (fextended-identifiers): New.
6498         * c-opts.c (c_common_handle_option): Handle
6499         -fextended-identifiers.
6500         * doc/cpp.texi: Update documentation of extended identifiers.
6501         * doc/cppopts.texi (-fextended-identifiers): Document.
6502
6503 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
6504
6505         PR tree-optimization/23929
6506         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
6507         if expr is NULL.
6508
6509         PR tree-optimization/23818
6510         * tree-stdarg.c (execute_optimize_stdarg): Call
6511         calculate_dominance_info.
6512
6513 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
6514
6515         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
6516         (analyze_siv_subscript_cst_affine): Add weak SIV test.
6517         (compute_overlap_steps_for_affine_1_2): Use
6518         get_number_of_iters_for_loop.
6519         (analyze_subscript_affine_affine): Check whether difference is
6520         zero first.
6521         Use get_number_of_iters_for_loop.
6522         Check whether overlap occurs outside of bounds.
6523         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
6524
6525 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
6526
6527         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
6528         base register if possible.
6529
6530 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
6531
6532         PR tree-optimization/18463
6533         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
6534         converting it directly is not possible.
6535         (chrec_convert_aggressive): New function.
6536         * tree-chrec.h (chrec_convert_aggressive): Declare.
6537         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
6538         Fold chrec conversions aggressively if asked to.
6539         (instantiate_parameters): Modified because of changes in
6540         instantiate_parameters_1.
6541
6542 2005-09-19  Richard Henderson  <rth@redhat.com>
6543
6544         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
6545         (reduc_splus_v2df): New.
6546
6547 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
6548
6549         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
6550         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
6551
6552 2005-09-19  Richard Henderson  <rth@redhat.com>
6553
6554         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
6555         vcondu<SSEMODE12>.
6556
6557 2005-09-19  Richard Henderson  <rth@redhat.com>
6558
6559         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
6560         (ia64_expand_dot_prod_v8qi): New.
6561         * config/ia64/ia64-protos.h: Update.
6562         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
6563         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
6564         sdot_prodv8qi, sdot_prodv4hi): New.
6565         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
6566
6567 2005-09-19  Richard Henderson  <rth@redhat.com>
6568
6569         PR 23941
6570         * real.c (exact_real_truncate): Return false if the format cannot
6571         represent the number as a normal.
6572
6573         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
6574         for a memory source.
6575
6576 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
6577
6578         * tree-ssa-operands.c (swap_tree_operands): Export.
6579         * tree.h (swap_tree_operands): Declare.
6580         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
6581         Call swap_tree_operands.
6582
6583 2005-09-19  Richard Henderson  <rth@redhat.com>
6584
6585         * tree-flow.h (merge_alias_info): Declare.
6586         * tree-ssa-copy.c (merge_alias_info): Export.
6587         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
6588         (vect_create_data_ref_ptr): Use create_iv directly.
6589         (vectorizable_load): Use correct types for integer constants.
6590         (vect_generate_tmps_on_preheader): Likewise.
6591         (vect_gen_niters_for_prolog_loop): Likewise.
6592
6593 2005-09-19  Steven Bosscher  <stevenb@suse.de>
6594
6595         PR rtl-optimization/23943
6596         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
6597
6598 2005-09-18  Jan Hubicka  <jh@suse.cz>
6599
6600         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
6601
6602 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
6603
6604         * varasm.c (output_constant): Do not abort on conversions to union
6605         types between different sizes.
6606
6607 2005-09-18  Richard Guenther  <rguenther@suse.de>
6608
6609         PR middle-end/23944
6610         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
6611         fallback.
6612
6613 2005-09-18  Paul Brook  <paul@codesourcery.com>
6614
6615         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
6616
6617 2005-09-17  Richard Henderson  <rth@redhat.com>
6618
6619         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
6620         * tree-ssa-loop.c (pass_vect_dce): Remove.
6621         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
6622         of pass_vectorize.
6623
6624 2005-09-17  Richard Henderson  <rth@redhat.com>
6625
6626         * tree-pass.h (pass_vect_dce): Declare.
6627         * passes.c (init_optimization_passes): Add it.
6628         * tree-flow.h (tree_ssa_dce): Declare.
6629         * tree-ssa-dce.c (tree_ssa_dce): Export.
6630         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
6631         (gate_tree_vectorize): ... here.
6632         (pass_vect_dce): New.
6633
6634 2005-09-17  Jan Hubicka  <jh@suse.cz>
6635
6636         * except.c (struct eh_status): Turn region_array into vec.
6637         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
6638         convert_from_eh_region_ranges, find_exception_handler_labels,
6639         current_function_has_exception_handlers, assign_filter_values,
6640         build_post_landing_pads, dw2_build_landing_pads,
6641         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
6642         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
6643         foreach_reachable_handler, can_throw_internal_1,
6644         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
6645         region_array.
6646         (duplicate_eh_region_1): Update region_array.
6647         (duplicate_eh_regions): Resize region_array and avoid recomputing.
6648
6649 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
6650
6651         PR middle-end/22067
6652         * expmed.c (expand_mult): Substitute simple register for op0 when
6653         computing max_cost.
6654
6655 2005-09-17  Richard Henderson  <rth@redhat.com>
6656
6657         * expr.c (emit_move_via_integer): Add force argument, pass it on
6658         to emit_move_change_mode.  Update callers.
6659         (emit_move_complex): Pass true to new force argument.
6660         * function.c (expand_function_end): Move expand_eh_return call
6661         earlier.  Merge sub-word complex values into a pseudo before
6662         copying to the return hard register.
6663
6664 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
6665
6666         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
6667         between different sizes.
6668
6669 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
6670
6671         PR 23903
6672
6673         * passes.c (init_optimization_passes): Register dump files for
6674         IPA passes first.
6675
6676 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
6677
6678         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
6679         * config/s390/s390.c (s390_overlap_p): New function.
6680         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
6681         peephole2, "*xc" peephole2): Added overlap check to the peephole2
6682         condition.
6683
6684 2005-09-16  Richard Guenther  <rguenther@suse.de>
6685
6686         * ipa-pure-const.c (static_execute): Free auxiliar information.
6687         * ipa-type-escape.c (discover_unique_type): Free temporary key.
6688         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
6689
6690 2005-09-15  DJ Delorie  <dj@redhat.com>
6691
6692         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
6693
6694 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
6695
6696         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
6697         to order operands.
6698         (swap_commutative_operands_with_target): New.
6699
6700 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
6701
6702         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
6703         parameter.
6704         Update callers.
6705         (estimate_iters_using_array): New function.
6706         * tree-data-ref.h (estimate_iters_using_array): Prototype
6707         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
6708         Use estimate_iters_using_array instead of analyze_array.
6709
6710 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6711
6712         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
6713         as addressable.
6714
6715 2005-09-15  Michael Matz  <matz@suse.de>
6716
6717         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
6718
6719 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
6720
6721         PR tree-optimization/23835
6722         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
6723         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
6724
6725 2005-09-14  Richard Henderson  <rth@redhat.com>
6726
6727         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
6728         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
6729
6730 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
6731
6732         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
6733         in the ARRAY_TYPE case.
6734
6735 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6736
6737         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
6738
6739 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
6740
6741         PR middle-end/22480
6742         * tree-vect-transform.c (vectorizable_operation): Return false for
6743         scalar shift operations and for vector shift operations with
6744         non-invariant shift arguments.  Use scalar tree operand op1 as
6745         a shift operand when vector shift insn pattern uses scalar shift
6746         operand.
6747         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
6748
6749 2005-09-14  Olivier Hainque  <hainque@adacore.com>
6750
6751         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
6752         value if it has side-effects.
6753
6754 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
6755
6756         PR target/22068
6757         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
6758
6759 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
6760
6761         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
6762         passed as NAME as if it were label at start of function code.
6763
6764 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
6765
6766         * config/sh/sh.md (*movv4sf_i): Add general register cases to
6767         the constraints.
6768
6769 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
6770
6771         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
6772         as early clobber.  Rewrite so the PIC register is not implicitly used.
6773
6774 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6775
6776         * tree.c (annotate_with_file_line): Compare line numbers before
6777         file names.
6778
6779 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
6780
6781         PR target/23816
6782         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
6783         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
6784
6785 2005-09-13  Ian Lance Taylor  <ian@airs.com>
6786
6787         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
6788         than a HOST_WIDEST_INT to gen_doloop_begin.
6789
6790 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
6791
6792         * tree-dfa.c (dump_variable): Guard against NULL annotations.
6793
6794 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
6795
6796         PR tree-optimize/23817
6797         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
6798
6799 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
6800
6801         PR target/23774
6802         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
6803         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
6804         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
6805         (restore_stack_nonlocal): Likewise.
6806         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
6807
6808 2005-09-12  Ian Lance Taylor  <ian@airs.com>
6809
6810         PR g++/7874
6811         * c.opt (ffriend-injection): New C++ option.
6812         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
6813         (C++ Dialect Options): Document -ffriend-injection.
6814
6815 2005-09-12  Josh Conner  <jconner@apple.com>
6816
6817         PR middle-end/23237
6818         * ipa-reference.c (static_execute): Don't mark variables in
6819         named sections TREE_READONLY.
6820
6821 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
6822
6823         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
6824         stack_tie.
6825
6826 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
6827
6828         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
6829         V_MUST_DEF instead of just the first_use_p.
6830         Don't mark the virtual variables for renaming on the statement which
6831         is being removed.
6832         (pass_dse): Remove TODO_update_ssa.
6833
6834 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
6835
6836         PR middle-end/23290
6837         * stor-layout.c (compute_record_mode): For records with a single
6838         field, actually check the field's mode size against the type size.
6839
6840         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
6841         registers for TARGET_SHMEDIA.
6842         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
6843         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
6844         of GENERAL_REGS and FP_REGS.
6845
6846 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
6847
6848         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
6849
6850 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
6851
6852         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
6853         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
6854         are omitted.  Exclude stack_tie insn too.
6855
6856 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
6857
6858         PR rtl-optimization/23098
6859         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
6860         0.0f is easy.
6861         * config/rs6000/rs6000.md (movdf splitter): Use
6862         const_double_operand predicate for TARGET_POWERPC64.
6863         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
6864         SYMBOL_REF method to ABI_V4.
6865
6866         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
6867         replace_equiv_address.
6868         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
6869         rs6000_sr_alias_set and MEM_NOTRAP.
6870         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
6871
6872 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
6873
6874         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
6875         handle CALL_EXPR again.
6876
6877 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
6878
6879         * arm/predicates.md (alignable_memory_operand): Delete.
6880
6881 2005-09-10  Richard Henderson  <rth@redhat.com>
6882
6883         PR debug/23806
6884         * dbxout.c (dbxout_expand_expr): New.
6885         (dbxout_symbol): Use it.
6886
6887 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
6888
6889         * arm.c (arm_gen_rotated_half_load): Delete.
6890         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
6891         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
6892         (thumb_set_return_address): Likewise.
6893         (thumb_load_double_from_address): Use adjust_address.
6894         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
6895         (extendhsisi2_mem, movhi_bytes): Use change_address.
6896         (movhi): Use widen_memory_access.
6897         (reload_out_df): Use replace_equiv_address.
6898         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
6899
6900 2005-09-09  Richard Henderson  <rth@redhat.com>
6901
6902         PR debug/20998
6903         * dbxout.c: Include expr.h.
6904         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
6905         (dbxout_symbol): Handle DECL_VALUE_EXPR.
6906         * Makefile.in (dbxout.o): Add EXPR_H.
6907
6908 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
6909
6910         PR tree-optimization/23509
6911         * tree-cfg.c (replace_uses_by): Use replace_exp.
6912         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
6913         pointers have name_mem_tag or type_mem_tag set.
6914
6915 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
6916
6917         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
6918         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
6919         of wrongly accessing operands.
6920
6921 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
6922
6923         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
6924         * tree-chrec.c: Include tree-scalar-evolution.h.
6925         (chrec_convert): Instantiate the base and step before calling
6926         scev_probably_wraps_p that would fail on parametric evolutions.
6927         Collect all the fails into a single section failed_to_convert,
6928         print a diagnostic, and return chrec_dont_know instead of calling
6929         fold_convert.
6930         * tree-scalar-evolution.c (loop_closed_phi_def): New.
6931         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
6932         phi nodes.
6933         (scev_const_prop): Don't replace the definition of a loop closed ssa
6934         phi node by itself, or by another loop closed ssa phi node.
6935         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
6936         that base and step are defined.
6937
6938 2005-09-09  Richard Guenther  <rguenther@suse.de>
6939
6940         PR c++/23624
6941         * fold-const.c (fold_ternary): Check truth_value_p before
6942         calling invert_truthvalue.
6943
6944 2005-09-09  Nick Clifton  <nickc@redhat.com>
6945
6946         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
6947         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
6948         dimension of these arrays.
6949         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
6950         these arrays.
6951         * longlong.h: Only provide a prototype for the __clz_tab[] array
6952         if this header has not been included from libgcc2.h.
6953         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
6954         defining own types.
6955         Provide prototypes for exported functions.
6956         Use the __clz_tab[] and __popcount_tab[] arrays provided by
6957         libgcc2.c.
6958
6959 2005-09-08  Josh Conner  <jconner@apple.com>
6960
6961         PR c++/21135
6962         PR c++/23180
6963         * expr.c (expand_expr_addr_expr_1): Don't invoke
6964         expand_simple_binop for EXPAND_INITIALIZER.
6965
6966 2005-09-08  Richard Henderson  <rth@redhat.com>
6967
6968         PR debug/23190
6969         * toplev.c (wrapup_global_declaration_1): Split out ...
6970         (wrapup_global_declaration_2): ... from ...
6971         (wrapup_global_declarations): ... here.  Return bool.
6972         (check_global_declaration_1): Split out ...
6973         (check_global_declarations): from here.
6974         (emit_debug_global_declarations): New.
6975         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
6976         check_global_declaration_1, emit_debug_global_declarations): Declare.
6977         * c-decl.c (c_write_global_declarations_1): Don't create a vector
6978         of decls.  Call wrapup_global_declaration_1,
6979         wrapup_global_declaration_2, check_global_declaration_1 directly.
6980         (c_write_global_declarations_2): New.
6981         (ext_block): New.
6982         (c_write_global_declarations): Call c_write_global_declarations_2.
6983         * langhooks.c (write_global_declarations): Call
6984         emit_debug_global_declarations.
6985
6986         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
6987         remove decls that have DECL_RTL_SET_P.
6988         * passes.c (rest_of_decl_compilation): Invoke
6989         cgraph_varpool_finalize_decl for all but functions.
6990
6991 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6992
6993         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
6994         the result of a conversion if the new min and max cannot be compared.
6995
6996 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
6997
6998         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
6999         (override_options): Setting s390_sr_alias_set removed.
7000         (save_fpr, save_gprs): Set alias set to vararg or frame.
7001         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
7002         s390_sr_alias_set with get_frame_alias_set ().
7003         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
7004         get_varargs_alias_set ().
7005
7006 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
7007
7008         PR objc/20574
7009         PR objc/19324
7010         * c-parser.c (c_parser_objc_method_definition): If the next
7011         token is not "{", error out and don't start the function.
7012
7013 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
7014
7015         * tree-vrp.c (extract_range_from_expr): Move the check for non
7016         nullness after the check for gimple invariant.
7017
7018 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7019
7020         * tree.c (host_integerp, tree_low_cst): Correct function comment.
7021
7022 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7023
7024         PR target/23747
7025         * config/m32r.md (movmemsi_internal): Canonicalize order of
7026         operands in PLUS component of template.
7027
7028 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7029
7030         * reload1.c (fixup_eh_region_note): Remove assertion.
7031         (fixup_abnormal_edges): Reverted removal of call to
7032         find_many_sub_basic_blocks made on 2005-08-31.
7033
7034 2005-09-07  Richard Henderson  <rth@redhat.com>
7035
7036         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
7037         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
7038         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
7039         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
7040         rearrange for better packing.
7041         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
7042         (lookup_cfa_1): Remove inline marker.
7043         (cfa_equal_p): Split out of ...
7044         (def_cfa_1): ... here.  Use INVALID_REGNUM.
7045         (build_cfa_loc): Handle !cfa->indirect.
7046         (frame_pointer_cfa_offset): New.
7047         (dbx_reg_number): Assert register elimination performed; do
7048         leaf register remapping.
7049         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
7050         (eliminate_reg_to_offset): New.
7051         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
7052         for verifiably local stack frame addresses; re-base to CFA.
7053         (mem_loc_descriptor): Remove can_use_fbreg argument.
7054         (concat_loc_descriptor, loc_descriptor): Likewise.
7055         (containing_function_has_frame_base): Remove.
7056         (rtl_for_decl_location): Don't do register elimination or
7057         leaf register remapping here.
7058         (secname_for_decl): Split out from ..
7059         (add_location_or_const_value_attribute): ... here.
7060         (convert_cfa_to_loc_list): New.
7061         (compute_frame_pointer_to_cfa_displacement): New.
7062         (gen_subprogram_die): Use them.
7063         * tree.h (frame_base_decl): Remove.
7064         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
7065         (prologue_stack_adjust): Remove.
7066         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
7067         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
7068         (set_frame_base_location): Remove.
7069         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
7070         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
7071         (vt_add_function_parameters): Don't eliminate_regs.
7072         (vt_initialize): Don't create frame_base_decl.
7073
7074 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7075
7076         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
7077         version of GNU binutils for 4.x and later.
7078
7079 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
7080
7081         * ggc-page.c (ggc_push_context): Remove.
7082         (ggc_pop_context): Likewise.
7083         * ggc.h (ggc_push_context): Remove.
7084         (ggc_pop_context): Likewise.
7085
7086 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7087
7088         PR target/8973
7089         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
7090         returning from an interrupt handler.
7091
7092 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7093
7094         PR target/8972
7095         * config/arc/arc.c (output_shift): Add check for loop count when
7096         optimizing.
7097
7098 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7099
7100         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
7101         form manually.
7102         (abs_replacement): Likewise.
7103         (pass_phiopt): Remove TODO_update_ssa.
7104
7105 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7106
7107         PR c/23075
7108         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
7109         if "return with no value, in function returning non-void" warning
7110         has been issued.
7111         * tree-cfg.c (execute_warn_function_return): Don't look at
7112         RETURN_EXPRs with TREE_NO_WARNING set.
7113
7114         PR target/22362
7115         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
7116         for internal functions doesn't use registers used by global registers
7117         variables.  Use fewer register parameters if there are global register
7118         variables.
7119
7120 2005-09-06  Olivier Hainque  <hainque@adacore.com>
7121             Eric Botcazou  <ebotcazou@adacore.com>
7122
7123         PR middle-end/14997
7124         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
7125         when we would be extracting outside its bit span (bitpos+bitsize
7126         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
7127         Ada unchecked conversions.
7128
7129 2005-09-06  Steven Bosscher  <stevenb@suse.de>
7130
7131         * tree-ssa-pre.c (try_look_through_load): New function.
7132         (compute_avail): Use it to try to look through loads for some
7133         more useful expressions.
7134
7135 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
7136
7137         * simplify-rtx.c (simplify_binary_operation_1): Correct the
7138         condition for detecting cases like (a&a) and (a^a).
7139
7140 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
7141
7142         * common.opt: Add option ftree-vect-loop-version.
7143         * params.def: Add --param vect-max-version-checks.
7144         * doc/invoke.texi: Document ftree-vect-loop-version and
7145         --param vect-max-version-checks.
7146         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
7147         may_misalign_stmts and defines for accessors.
7148         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
7149         LOOP_VINFO_MAY_MISALIGN_STMTS.
7150         (destroy_loop_vec_info): VEC_free for
7151         LOOP_VINFO_MAY_MISALIGN_STMTS.
7152         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7153         Update documentation.
7154         (vect_update_misalignment_for_peel): New.
7155         (vect_enhance_data_refs_alignment): Update to choose loop
7156         peeling or loop versioning if appropriate for the (potentially)
7157         unaligned data references in the loop.
7158         (vect_analyze_data_refs_alignment): Remove call to
7159         vect_enhance_data_refs_alignment so the checks can be done
7160         earlier.
7161         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
7162         and move up call to vect_analyze_data_refs_alignment.
7163         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
7164         (vect_transform_loop): Add call to loop_version.
7165
7166 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
7167
7168         PR rtl-optimization/23098
7169         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
7170         * simplify-rtx.c (constant_pool_reference_p): New function.
7171         * rtl.h (constant_pool_reference_p): New prototype.
7172         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
7173         constant_pool_reference_p in condition and
7174         avoid_constant_pool_reference in preparation statements.
7175
7176 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7177
7178         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
7179         STRICT_LOW_PART SETs.
7180
7181 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
7182
7183         PR middle-end/21460
7184         * except.c (sjlj_emit_function_enter): Find the function begin
7185         note even when it's not in first basic block.
7186
7187 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
7188
7189         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
7190         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
7191         * aclocal.m4: Regenerate.
7192
7193 2005-09-05  DJ Delorie  <dj@redhat.com>
7194
7195         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
7196         of macro.
7197
7198 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
7199
7200         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
7201         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
7202         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
7203         Follow spelling conventions.
7204         * doc/invoke.texi: Follow spelling conventions.
7205
7206 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7207
7208         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
7209         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
7210         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
7211
7212 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
7213
7214         PR target/23683
7215         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
7216         (output_stack_adjust): Use gen_tmp_stack_mem.
7217         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
7218         (sh_set_return_address, sh_allocate_initial_value): Likewise.
7219         (sh_get_pr_initial_val): Likewise.
7220         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
7221         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
7222         * sh.md (divsi_inv_m0): Use gen_const_mem.
7223         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
7224         (movdf_i4+1): Use gen_tmp_stack_mem.
7225         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
7226         (fpu_switch+2): Likewise.
7227         (movv4sf_i, movv16sf_i): Use adjust_address.
7228         (symGOT_load): Set MEM_NOTRAP_P bit.
7229
7230 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7231
7232         PR target/23721
7233         * pa.c (emit_move_sequence): Fix typo in last change.
7234
7235 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
7236
7237         PR rtl-optimization/23454
7238         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
7239         is true.
7240
7241 2005-09-03  Richard Henderson  <rth@redhat.com>
7242             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7243
7244         PR middle-end/23671
7245         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
7246         gen_rtx_MEM.
7247
7248 2005-09-02  Nicolas Pitre <nico@cam.org>
7249
7250         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
7251         to bit_count to 32 bits.
7252
7253 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
7254
7255         PR c++/23167
7256         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
7257         generating synthetic loads from volatile lvalues.
7258
7259 005-09-02  Nick Clifton  <nickc@redhat.com>
7260
7261         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
7262         __ctzhi2, __clzhi2): New functions.
7263
7264 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
7265
7266         PR middle-end/23547
7267         * tree-nested.c (struct var_map_elt): Mark with GTY.
7268         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
7269         var_map_elt.
7270         (lookup_field_for_decl): Allocate new element in GC memory.
7271         (lookup_tramp_for_decl): Likewise.
7272         (convert_nl_goto_reference): Likewise
7273         (create_nesting_tree): Allocate info in GC memory. Likewise for
7274         info->var_map.
7275         (free_nesting_tree): Free with ggc_free instead of free.
7276         (root): New static variable.
7277         (lower_nested_functions): Remove root as local variable.  And zero out
7278         root at the end of the function.
7279
7280 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
7281
7282         PR rtl-optimization/20365
7283         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
7284         to short.  New member ix.
7285         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
7286         (simplify_plus_minus): Initialize ix members before calling qsort.
7287
7288 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
7289
7290         PR tree-optimization/23626
7291         * tree-cfg.c (replace_uses_by): Clean up eh info.
7292
7293 2005-09-01  DJ Delorie  <dj@redhat.com>
7294
7295         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
7296         fprintf.
7297
7298 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
7299
7300         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
7301         (rs6000_split_multireg_move): Use replace_equiv_address instead of
7302         gen_rtx_MEM.
7303
7304 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7305
7306         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
7307         do not issue warning for a variable definition following
7308         a declaration.
7309
7310 2005-09-01  Richard Henderson  <rth@redhat.com>
7311
7312         PR 23668
7313         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
7314         conversion to CONST_VECTOR.
7315
7316 2005-09-01  Richard Henderson  <rth@redhat.com>
7317
7318         PR 23676
7319         * reload1.c (reload_as_needed): Check !CALL_P before calling
7320         fixup_eh_region_note.
7321         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
7322
7323 2005-09-01  DJ Delorie  <dj@redhat.com>
7324
7325         * varasm.c (output_constant): Let the target resolve
7326         conversions of addresses to non-default pointer sizes.
7327
7328 2005-09-01  Nicolas Pitre <nico@cam.org>
7329
7330         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
7331         to alow matching ARM pre-indexed addressing mode.
7332         (arm_override_options): Remove now irrelevant comment.
7333
7334 2005-09-01  Phil Edwards  <phil@codesourcery.com>
7335
7336         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
7337         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
7338         * config/i386/vxworks.h:  Likewise.
7339         * config/i386/t-vxworksae:  New file, for VxWorks AE.
7340         * config/i386/vxworksae.h:  Likewise.
7341
7342 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
7343
7344         PR tree-optimization/23410
7345         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
7346         sequence is not wrapping during the first step.
7347
7348 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7349
7350         PR debug/7241
7351         * dwarf2out.c (base_type_die): Compare char_type_node with
7352         TYPE_MAIN_VARIANT (type), not type.
7353
7354 2005-09-01  Richard Guenther  <rguenther@suse.de>
7355
7356         PR tree-optimization/15366
7357         * common.opt: Add -finline-functions-called-once.
7358         Put -fearly-inlining in alphabetically ordered place.
7359         * doc/invoke.texi: Document new option.
7360         * ipa-inline.c (cgraph_decide_inlining): Honour
7361         flag_inline_functions_called_once.
7362
7363 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
7364
7365         PR rtl-optimization/23478
7366         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
7367         (alloc_qty): Initialize it.
7368         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
7369         (combine_regs): Combine also n_throwing_calls_crossed fields.
7370         (find_free_reg): Don't attempt to caller-save pseudos crossing
7371         calls that might throw.
7372         * global.c (struct allocno): Add throwing_calls_crossed field.
7373         (global_alloc): Revert 2005-08-22 change.  Initialize
7374         throwing_calls_crossed.
7375         (find_reg): Don't attempt to caller-save pseudos crossing calls that
7376         might throw.
7377
7378 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
7379
7380         PR target/23649
7381         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
7382         (mask64_operand): Reinstate code prior to 2005-06-11 change.
7383         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
7384         (and64_2_operand): Tweak to use predicate.
7385         (and_operand): Adjust for mask_operand changes.
7386         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
7387         (print_operand): Likewise.
7388         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
7389         (mask64_1or2_operand): Delete.
7390         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
7391         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
7392         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
7393         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
7394         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
7395         (rotldi3_internal4): Likewise.
7396         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
7397         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
7398         (ashldi3_internal7): Likewise.
7399         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
7400         (ashldi3_internal, ashldi3_internal9 split): Likewise.
7401         (anddi3 split): Don't match mask64_operand.
7402         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
7403         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
7404         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
7405         't' splitter predicate.
7406         (movdi_internal64 + 2): Revert 2005-06-11 change.
7407
7408 2005-08-31  DJ Delorie  <dj@redhat.com>
7409
7410         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
7411         (m32c_asm_integer): Add support for 32 bit pointers.
7412
7413 2005-08-31  Richard Henderson  <rth@redhat.com>
7414
7415         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
7416         component-like references for setting MEM_NOTRAP_P.
7417
7418         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
7419         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
7420
7421 2005-08-31  Richard Henderson  <rth@redhat.com>
7422
7423         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
7424         into a pseudo before applying gen_lowpart.
7425
7426 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
7427
7428         * doc/install.texi (Specific): Update cctools version required
7429         for full functionality.
7430         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
7431         linkers as -macosx_version_min.
7432
7433 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
7434
7435         PR target/21255
7436         * sh.c (print_operand, %R and %S): Add handling of floating point
7437         registers, memory, constants and invalid operands.
7438
7439 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
7440
7441         * ipa-pure-const.c: Change dump name.
7442
7443 2005-08-31 Uros Bizjak <uros@kss-loka.si>
7444
7445         PR target/23570
7446         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
7447         to "reg_or_0_operand".
7448         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
7449
7450 2005-08-31  Dale Johannesen  <dalej@apple.com>
7451
7452         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
7453         loops that count down.
7454
7455 2005-08-31  Richard Henderson  <rth@redhat.com>
7456
7457         PR rtl-opt/23601
7458         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
7459         (fixup_eh_region_note): New.
7460         (reload_as_needed): Call it.
7461         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
7462         don't call find_many_sub_basic_blocks; call verify_flow_info.
7463         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
7464         (keep_stack_depressed): Likewise.
7465         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
7466
7467 2005-08-31  Richard Henderson  <rth@redhat.com>
7468
7469         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
7470         fp return matching.
7471
7472 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
7473
7474         * expr.c (expand_expr_real_1): Compare size of address
7475         mode to target's address mode size in deciding expansion of
7476         the constant address.
7477
7478 2005-08-31  Richard Guenther  <rguenther@suse.de>
7479
7480         PR middle-end/23477
7481         * expr.c (all_zeros_p): New function.
7482         (expand_expr_real_1): Handle the case of an all-zero
7483         non-addressable constructor separately.
7484
7485 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
7486
7487         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
7488         arguments, adjust all callers.
7489         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
7490
7491 2005-08-30  Richard Henderson  <rth@redhat.com>
7492
7493         PR target/23630
7494         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
7495         whenever the mode sizes match.
7496
7497 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
7498
7499         * calls.c (load_register_parameters): Fix comment typo.
7500         * expr.c (emit_push_insn): Comment formatting.
7501
7502 2005-08-30  Ian Lance Taylor  <ian@airs.com>
7503
7504         * config/i386/x-cygwin (host-cygwin): Change dependency from
7505         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
7506
7507 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
7508
7509         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
7510         parts of 'vals'.
7511
7512 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
7513
7514         PR middle-end/23408
7515         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
7516         call to ggc_collect.
7517
7518 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
7519
7520         PR bootstrap/21268
7521         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
7522         beginning.  Remove $(INCLUDES) from all the rules, if following
7523         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
7524
7525 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
7526
7527         PR middle-end/23484
7528         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
7529         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
7530         not constant, but maxlen is, don't set len to maxlen, rather
7531         set maxlen to len if len is a constant.
7532
7533 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
7534
7535         PR tree-optimization/23475
7536         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
7537         and counts.
7538
7539 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
7540
7541         Fix PR middle-end/22455
7542
7543         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
7544         Checksum only the parts of the tree that exist for the tree code.
7545
7546 2005-08-28  Dale Johannesen  <dalej@apple.com>
7547
7548         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
7549
7550 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
7551
7552         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
7553
7554 2005-08-28  Richard Henderson  <rth@redhat.com>
7555
7556         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
7557         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
7558         of char_type_node.
7559
7560 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
7561
7562         PR ada/23593
7563         * builtins.c (get_memory_rtx): Don't strip nops
7564         in between COMPONENT_REFs.
7565
7566 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
7567
7568         PR middle-end/23463
7569         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
7570         types.
7571         (gimplify_modify_expr): Check for zero sized types and gimplify the
7572         rhs and lhs as statements.
7573
7574 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
7575
7576         PR libgcj/23508
7577         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
7578         state for return address column of signal frames.
7579
7580 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
7581
7582         PR target/23539
7583         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
7584         bytes >= 2 not bytes == 2.
7585         (expand_block_move): Same.
7586
7587 2005-08-27  Richard Guenther  <rguenther@suse.de>
7588
7589         PR target/23575
7590         * config/i386/sse.md (sse2_movsd): Add missing closing
7591         braces.
7592
7593 2005-08-27  Paul Brook  <paul@codesourcery.com>
7594
7595         * genrecog.c (enum decision_type): Add DT_num_insns.
7596         (struct decision_test): Add u.num_insns.
7597         (add_to_sequence): Add DT_num_insns test.
7598         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
7599         (write_cond, debug_decision_2): Ditto.
7600         (change_state): Assume peep2_next_insn never fails.
7601         Remove "afterward" argument.
7602         (write afterward, write_tree): Update to match.
7603         * recog.c (peep2_current_count): New variable.
7604         (peep2_next_insn): Check it.
7605         (peephole2_optimize): Set peep2_current_count.
7606         * recog.h (peep2_current_count): Declare.
7607
7608 2005-08-26  Josh Conner  <jconner@apple.com>
7609
7610         PR middle-end/23584
7611         * ipa-pure-const.c (check_tree): Check for volatile-ness
7612         when considering a dereference.
7613
7614 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
7615
7616         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
7617
7618 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7619
7620         PR rtl-optimization/23561
7621         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
7622         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
7623         at most LEN bytes long memory fits into the field.
7624         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
7625         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
7626         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
7627
7628 2005-08-26  Richard Henderson  <rth@redhat.com>
7629
7630         PR rtl-opt/23560
7631         * loop.c (biased_biv_may_wrap_p): New.
7632         (maybe_eliminate_biv_1): Use it to suppress non-equality
7633         comparison transformations.  Delete disabled code.
7634
7635 2005-08-26  Ian Lance Taylor  <ian@airs.com>
7636
7637         * combine.c (make_extraction): Avoid reference outside object.
7638
7639 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
7640
7641         * stor-layout.c (finalize_type_size): Restore behaviour for
7642         non-aggregate types to the status quo ante of the patch for
7643         pr 23467.  Document why it matters.
7644
7645 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
7646
7647         PR c/23506
7648         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
7649         array by one element, initialize the BT_LAST element with NULL.
7650
7651 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
7652
7653         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
7654         optimizing for size.
7655         (plus_eqsi): Same.
7656         (compare_plus_eqsi): Same.
7657         (plus_eqsi_compare): Same.
7658         (neg_eq0<mode>): Same.
7659         (neg_eq<mode>): Same.
7660
7661         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
7662         PROCESSOR_POWER4.
7663
7664 2005-08-26  Nick Clifton  <nickc@redhat.com>
7665
7666         * config/v850/v850.c (ep_memory_operand): Return FALSE if
7667         TARGET_EP is not defined.
7668         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
7669         TARGET_EP is enabled.
7670         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
7671         * config/v850/v850.md (save_all_interrupt): Only use the EP
7672         register if TARGET_EP is defined.
7673         (restore_all_interrupt): Likewise.
7674         * config/v850/lib1funcs.asm: Update functions so that the EP
7675         register is only used if __EP__ is defined.
7676
7677 2005-08-26  David Ung  <davidu@mips.com>
7678
7679         * config/mips/mips.c (mips_expand_prologue): Handle case when
7680         generating for MIPS16 and the outgoing argument area is more than
7681         SMALL_OPERAND. Use the frame pointer as temporary to generate the
7682         add instruction.
7683
7684 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
7685
7686         * config/crx/crx.md: Make doloop_end pattern usage controllable
7687         via mloop-nesting=<max-nesting> command line switch. Make sure
7688         the combiner cannot use doloop_end_<mode> in an illegal way.
7689         * config/crx/crx.c: Use regs up to r6 for argument passing.
7690         Refine crx_address_cost (non cst4 displacements are expensive).
7691         * config/crx/crx.opt: Add switch for mloop-nesting=.
7692
7693 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
7694
7695         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
7696         (UNSPEC_MVST): New constant.
7697
7698 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
7699
7700         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
7701         Reject operands containing eliminable registers.
7702         * testsuite/gcc.dg/20050825-1.c: New testcase.
7703
7704 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7705             Jan Hubicka  <jh@suse.cz>
7706
7707         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
7708
7709 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7710
7711         PR tree-optimization/23546
7712         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
7713         and REAL_CST nodes.
7714
7715 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
7716
7717         * params.def (PARAM_MIN_SPEC_PROB): New.
7718         * sched-rgn.c (MIN_PROBABILITY): Delete.
7719         (compute_trg_info): Convert to PARAM_VALUE.
7720         * doc/invoke.texi (param): Document min-spec-prob.
7721
7722 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
7723
7724         * config/darwin.h: define __PIC__
7725         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
7726         TARGET_OS_CPP_BUILTINS macro.
7727
7728 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7729
7730         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
7731         yesterday.
7732
7733 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
7734
7735         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
7736         to duplicate_block.
7737         * cfghooks.c (duplicate_block): Added position where to place
7738         new block as argument.
7739         * cfghooks.h (duplicate_block): Declaration changed.
7740         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
7741         duplicate_block.
7742         * cfglayout.h (copy_bbs): Declaration changed.
7743         * cfgloop.h (loop_version): Declaration changed.
7744         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
7745         position to copy_bbs.
7746         (loop_version): Pass position to duplicate_loop_to_header_edge.
7747         Add place_after argument and position new blocks according to
7748         it.
7749         * modulo-sched.c (sms_schedule): Pass place_after argument
7750         to loop_version.
7751         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
7752         * tree-cfg.c (split_edge_bb_loc): New function.
7753         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
7754         to determine position of new blocks.
7755         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
7756         to loop_version.
7757         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
7758         argument to duplicate_block.
7759         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
7760         Pass position to copy_bbs.
7761
7762 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
7763
7764         * fold-const.c (ptr_difference_const): Use
7765         cst_and_fits_in_hwi instead of host_integerp.
7766
7767 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
7768
7769         * config/darwin.c (gen_pic_offset): New.
7770         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
7771         Use it.
7772
7773 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
7774
7775         PR tree-optimization/23486
7776         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
7777
7778 2005-08-23  Phil Edwards  <phil@codesourcery.com>
7779
7780         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
7781         remove use_collect2.
7782         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
7783
7784         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
7785         configuration files to override the default value.
7786
7787         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
7788         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
7789         * config/vx-common.h:  New file, split out from...
7790         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
7791         * config/vxworksae.h:  New file, for VxWorks AE.
7792         * config/vxworks.opt:  New file.
7793         * config/vxlib.c:  Update for VxWorks 6.
7794
7795         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
7796         other MULTILIB_* variables appropriately.
7797         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
7798         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
7799         * config/rs6000/vxworks.h:  Update for VxWorks 6.
7800         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
7801
7802 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
7803
7804         PR target/20799
7805         * config/darwin.c (machopic_select_section): Remove the hack to
7806         mark "::operator new" and "::operator delete" for coalescing
7807         even though they are not weak.
7808
7809 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
7810
7811         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
7812         * configure: Regenerate.
7813
7814 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
7815
7816         PR middle-end/23517
7817         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
7818         between vectors.
7819         * convert.c (convert_to_integer, convert_to_vector): Likewise.
7820         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
7821         Likewise.
7822
7823 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
7824
7825         * config/rs6000/predicates.md (equality_operator): New.
7826         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
7827         comparison with a large constant.
7828
7829 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
7830
7831         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
7832
7833 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
7834
7835         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
7836         registers is even, and we have a hardware double precision fp,
7837         align the buffer.
7838         (sh_gimplify_va_arg_expr): For floating point arguments, consider
7839         size of current argument when checking if argument was passed in
7840         registers.
7841
7842         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
7843
7844         PR middle-end/23467
7845         * stor-layout.c (finalize_type_size): Dont override
7846         existing alignment with a smaller alignment from the mode.
7847
7848 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
7849
7850         * lambda-code.c (lambda_vector_lexico_pos): Moved...
7851         * lambda.h (lambda_vector_lexico_pos): ... here.
7852         * tree-data-ref.c (build_classic_dist_vector): Return false when
7853         the distance vector is lexicographically negative.
7854
7855 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
7856
7857         PR tree-optimization/23511
7858         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
7859         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
7860
7861 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
7862
7863         PR tree-optimization/22043
7864         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
7865         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
7866         If ALLOW_FLEXARR, handle types ending with flexible array member.
7867         Pass false as second argument to recursive count_type_elements calls.
7868         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
7869         argument to count_type_elements call.
7870         * tree-sra.c (decide_block_copy): Likewise.
7871         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
7872         for a constant-sized object, set cleared as well.  Pass true as
7873         second argument to count_type_elements call.
7874
7875 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
7876
7877         PR target/21571
7878         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
7879         from legitimate_small_data_p, and make global.  Update use.
7880         Remove forward declaration.
7881         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
7882         Declare.
7883         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
7884
7885 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
7886
7887         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
7888         of scratch intermediates.
7889         (eq<mode>_compare): Same.
7890         (neg_eq0<mode>): New.
7891         (neg_eq<mode>): Convert to define_insn_and_split.
7892
7893 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
7894
7895         PR target/23070
7896         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
7897         stdarg functions, set/clear the fp marker even when no variable
7898         args are passed.
7899         * config/rs6000/sysv4.opt (mprototype): Describe.
7900
7901 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
7902
7903         PR rtl-optimization/23478
7904         * regs.h (reg_info): Add throw_calls_crossed.
7905         (REG_N_THROWING_CALLS_CROSSED): Define.
7906         * flow.c (allocate_reg_life_data): Initialize
7907         REG_N_THROWING_CALLS_CROSSED.
7908         (propagate_one_insn, attempt_auto_inc): Update
7909         REG_N_THROWING_CALLS_CROSSED.
7910         * global.c (global_alloc): Don't allocate pseudos across
7911         calls that may throw.
7912
7913 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
7914
7915         PR c/18715
7916         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
7917         value is inbetween the range if we did not find an exact match.
7918
7919 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
7920
7921         * doc/invoke.texi (Option Summary): Add ms1 options.
7922         * doc/extend.texi: Document interrupt handler attribute for ms1.
7923         * doc/md.texi: Document ms1 constraints.
7924         * config.gcc: Add ms1-*-elf.
7925         * config/ms1/ms1.h: New.
7926         * config/ms1/ms1.c: New.
7927         * config/ms1/ms1.md: New.
7928         * config/ms1/ms1-protos.h: New.
7929         * config/ms1/ABI.txt: New.
7930         * config/ms1/crti.asm: New.
7931         * config/ms1/crtn.asm: New.
7932         * config/ms1/lib2extra-funcs.c: New.
7933         * config/ms1/t-ms1: New.
7934         * config/ms1/ms1.opt: New.
7935
7936 2005-08-22 Ira Rosen <irar@il.ibm.com>
7937
7938         * config/rs6000/altivec.md (xorv4sf3): New.
7939         (negv4sf2, neg<mode>2): Likewise.
7940
7941 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
7942
7943         PR target/23485
7944         * config/ia64/ia64.md (divsi3): Check divide by zero.
7945         (udivsi3): Likewise.
7946         (divdi3): Likewise.
7947         (udivdi3): Likewise.
7948
7949 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
7950
7951         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
7952         up to elem_bitsize bits, not max_bitsize.
7953
7954 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
7955
7956         PR tree-optimization/23433
7957         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
7958         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
7959
7960 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
7961
7962         PR tree-optimization/23434
7963         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
7964         the iteration bound is not an INTEGER_CST.
7965
7966 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
7967
7968         * tree-vect-transform.c (get_initial_def_for_reduction): Set
7969         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
7970         NULL if need_epilog_adjust is false.
7971         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
7972         Case 3 always peels first itration, not just for PLUS case, and no need
7973         to use scalar_initial_def here. Create an epilog adjustment only if
7974         scalar_initial_def is not NULL.
7975
7976         (vectorizable_reduction): Remove assert.
7977
7978 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
7979
7980         PR target/23485
7981         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
7982         (__moddi3): Likewise.
7983         (__udivdi3): Likewise.
7984         (__umoddi3): Likewise.
7985         (__divsi3): Likewise.
7986         (__modsi3): Likewise.
7987         (__udivsi3): Likewise.
7988         (__umodsi3): Likewise.
7989
7990 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
7991
7992         * tree-pass.h (TDF_GRAPH): Define.
7993         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
7994         * passes.c (finish_optimization_passes): Only call
7995         finish_graph_dump_file if TDF_GRAPH is set.
7996         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
7997         NULL.  Set TDF_GRAPH bit.
7998         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
7999
8000 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
8001
8002         * arm.h (arm_stack_offsets): Add locals_base field.
8003         * arm.c (arm_get_frame_offsets): Compute it.
8004         (thumb_compute_initial_elimination offset): Make the Thumb frame
8005         pointer point to the base of the local variables.
8006         (thumb_expand_prologue): Update accordingly.
8007         (thumb_expand_epilogue): Likewise.
8008
8009         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
8010         mode of clobbered scratch to DImode.  Handle a case that's known to
8011         need this.
8012
8013 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
8014
8015         * config/rs6000/rs6000.md (gt0<mode>): Delete.
8016         (gt0<mode>_compare): Delete.
8017         (neg_gt0<mode>): Delete.
8018
8019 2005-08-19  Eric Christopher  <echristo@apple.com>
8020
8021         * optabs.h: Change CTI_ to COI_.
8022         * optabs.c: Ditto.
8023
8024 2005-08-19  James E Wilson  <wilson@specifix.com>
8025
8026         * builtins.c (expand_builtin_return_addr): Set
8027         current_function_accesses_prior_frames when count != 0.  Use
8028         frame_pointer_rtx when count == 0.
8029         * function.h (struct function): Add accesses_prior_frames field.
8030         (current_function_accesses_prior_frames): Define.
8031         * reload1.c (init_elim_table): Check
8032         current_function_accesses_prior_frames.
8033         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
8034
8035 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8036
8037         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
8038         indicator.  Return true if the flowgraph changed during
8039         cleanup.
8040
8041 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8042
8043         PR 23476
8044         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
8045         conditional expression before testing its value.
8046
8047 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
8048
8049         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
8050
8051 2005-08-19  Devang Patel  <dpatel@apple.com>
8052
8053         PR tree-optimization/23048
8054         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
8055         third parameter. Check whether latch is dominated by exit
8056         block or not.
8057         (if_convertible_loop_p): Supply exit block itself to
8058         if_convertible_bb_p.
8059
8060 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8061
8062         PR target/23473
8063         * arm.md (arm_load_pic_register): Change argument to the mask of
8064         saved registers.  Call thumb_find_work_register if we need a
8065         scratch register on Thumb.
8066         (arm_expand_prologue): Pass empty register set to
8067         arm_load_pic_register.
8068         (thumb_expand_prologue): Pass live_regs_mask directly to
8069         arm_load_pic_register.
8070         * arm-protos.h (arm_load_pic_register): Update prototype.
8071
8072 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
8073
8074         * sh.c (find_sole_member): New function.
8075         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
8076         if the record's alignment is larger than the size of its only member.
8077
8078 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
8079
8080         PR target/23436
8081         * arm.c (thumb_legitimize_reload_address): New function.
8082         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
8083         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
8084
8085 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
8086
8087         * config/crx/crx.c: Implement crx_decompose_address. Reject
8088         symbolic displacements since CRX register relative adressing
8089         mode can't handle unsigned 32-bit values as displacements.
8090         * config/crx/crx.h: Simplify definitions, remove redundant
8091         parenthesis and obsolete macros.
8092         * config/crx/crx.opt: Add new switch for debugging addresses.
8093         * config/crx/crx-protos.h: Add new declarations for above.
8094
8095 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
8096
8097         PR middle-end/20624
8098         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
8099         looking past it.
8100
8101 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8102
8103         * collect2.c (dup2): Delete.
8104         * configure.ac: Don't check for dup2.
8105
8106         * config.in, configure: Regenerate.
8107
8108 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
8109
8110         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
8111         record with the type of its only member.
8112
8113 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
8114
8115         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
8116         define_insn_and_split.
8117         (plus_ltu<mode>_compare): Same.
8118         (gtu<mode>_compare): Same.
8119         (plus_gtu<mode>_compare): Same.
8120
8121 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
8122
8123         PR tree-optimization/22228
8124         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
8125         todo_flags_start.
8126         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
8127         are recorded in vect_vnames_to_rename for renaming.
8128         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
8129         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
8130         in vect_vnames_to_rename.
8131         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
8132         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
8133
8134 2005-08-18  Jan Hubicka  <jh@suse.cz>
8135
8136         PR c++/22034
8137         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
8138         info only for local statics, not for member variables.
8139
8140 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8141
8142         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
8143
8144 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8145
8146         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
8147
8148 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
8149
8150         PR middle-end/16045
8151         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
8152
8153 2005-08-17  James E Wilson  <wilson@specifix.com>
8154
8155         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8156         array size check.
8157
8158 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
8159
8160         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
8161         (leu<mode>_compare): Same.
8162         (plus_leu<mode>): Same.
8163         (neg_leu<mode>): Same.
8164         (and_neg_leu<mode): Same.
8165         (ltu<mode>_compare): Same.
8166         (plus_ltu<mode>): Same.
8167         (geu<mode>): Same.
8168         (geu<mode>_compare): Same.
8169         (plus_geu<mode>): Same.
8170         (neg_geu<mode>): Same.
8171         (and_neg_geu<mode>): Same.
8172         (plus_gt<mode>): Same.
8173         (gtu<mode>_compare): Same.
8174         (plus_gtu<mode>): Same.
8175
8176 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
8177
8178         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
8179         Move call_table_data to end.  Delete spurious .text.
8180         (callt_save_all_interrupt): Fix comment typo.
8181
8182 2005-08-17  James E Wilson  <wilson@specifix.com>
8183             Kevin Winchester  <winchester@amirix.com>
8184
8185         PR target/21684
8186         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
8187
8188 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
8189
8190         PR target/23268
8191         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
8192         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
8193
8194 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
8195
8196         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
8197         record with the type of its only member if the modes don't match.
8198
8199         * varasm.c (decode_reg_name): Skip empty additional register names.
8200
8201 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
8202
8203         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
8204         lsm_tmp_name_length): New.
8205         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
8206         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
8207
8208 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8209             Andreas Krebbel  <krebbel1@de.ibm.com>
8210
8211         * config.gcc: Added z9-109 switch.
8212         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
8213         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
8214         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
8215         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
8216         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
8217         for "z9_109" cpu attribute.
8218         * config/s390/s390.c (z9_109_cost): New processor cost structure.
8219         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
8220         (s390_handle_arch_option): Added z9-109 switch.
8221         (override_options): Set respective cost function for z9-109.
8222         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
8223         (legitimate_reload_constant_p): Accept extended immediates.
8224         (print_operand): Three new output modifiers added: k, m and o.
8225         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
8226         (s390_output_mi_thunk): Use extended immediate when possible.
8227         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
8228         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
8229         (CONSTRAINT_LEN): Added length of O constraint.
8230         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
8231         * config/s390/s390.md ("cpu"): New value z9_109 added.
8232         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
8233         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
8234         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
8235         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
8236         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
8237         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
8238         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
8239         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
8240         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
8241         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
8242         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
8243         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
8244         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
8245         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
8246         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
8247         immediates.
8248         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
8249         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
8250         insns for TARGET_EXTIMM.
8251
8252 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8253
8254         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
8255
8256 2005-08-17  Nick Clifton  <nickc@redhat.com>
8257
8258         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
8259         Call default_encode_section_info.
8260
8261 2005-08-17  Steven Bosscher  <stevenb@suse.de>
8262
8263         PR tree-optimization/21574
8264         * tree-ssa-ccp.c (likely_value): If the right hand side is a
8265         constant, return CONSTANT.
8266         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
8267         (ccp_fold, visit_assignment): Likewise.
8268         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
8269
8270 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8271
8272         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
8273         fold_buildN instead of buildN then fold_initializer or fold.
8274         (build_unary_op): Likewise.
8275         (build_binary_op): Likewise.
8276         * fold-const.c (fold_initializer): Remove.
8277         (fold_build1_initializer): New function.
8278         (fold_build2_initializer): New function.
8279         (fold_build3_initializer): New function.
8280         * tree.h (fold_initializer): Remove.
8281         (fold_build1_initializer): New function.
8282         (fold_build2_initializer): New function.
8283         (fold_build3_initializer): New function.
8284
8285 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
8286
8287         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
8288         (try_move_mult_to_index): Call fold_build2 instead of build2.
8289         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
8290         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
8291         fold_binary_to_constant.
8292         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
8293         fold (build.
8294         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
8295         check if A == gcd (A, B).  Remove TYPE argument.
8296         (analyze_offset) Use fold_build2 instead of fold (build.
8297         (create_data_ref): Likewise.
8298         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
8299         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
8300         then fold.
8301
8302 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
8303
8304         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
8305         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
8306
8307 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
8308
8309         PR tree-opt/23402
8310         * gimplify.c (zero_sized_type): New function.
8311         (gimplify_modify_expr_rhs): If we have a zero sized type,
8312         replace the statement with an empty statement.
8313
8314 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
8315
8316         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
8317         fxsave.
8318
8319 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8320
8321         * doc/tm.texi (Label Output): Correct typo.
8322
8323 2005-08-16  Steven Bosscher  <stevenb@suse.de>
8324
8325         PR target/23376
8326         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
8327         force_operand will work later on using have_insn_for.
8328
8329 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8330
8331         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
8332
8333 2005-08-16  Ian Lance Taylor  <ian@airs.com>
8334
8335         PR c++/23337
8336         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
8337         vector type, don't try to construct it element by element.  Add an
8338         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
8339
8340 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8341
8342         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
8343
8344 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
8345
8346         * doc/invoke.texi (Precompiled Headers): Document some more options
8347         which are known to be safe.
8348
8349 2005-08-16  James E Wilson  <wilson@specifix.com>
8350
8351         PR tree-optimization/21105
8352         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8353         TREE_OVERFLOW check.
8354
8355 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
8356
8357         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
8358         (neg_ltu<mode>): Same.
8359         (gtu<mode>): Same.
8360         (neg_gtu<mode>): Same.
8361
8362 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8363
8364         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
8365         (fold_builtin_isdigit): Use fold_buildN.
8366         (build_function_call_expr): Likewise.
8367         * c-typeck.c (c_finish_loop): Likewise.
8368
8369 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
8370             Richard Shann <rshann@superh.com>
8371
8372         PR middle-end/20396:
8373         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
8374
8375 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
8376
8377         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
8378
8379 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
8380
8381         PR target/23355
8382         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
8383         arm_compure_save_reg0_reg12_mask to determine when the PIC register
8384         must be saved.
8385
8386 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8387
8388         PR middle-end/23369
8389         * fold-const.c (build_range_check): Disable optimization for function
8390         pointer expressions on targets that require function pointer
8391         canonicalization.
8392
8393 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
8394
8395         * simplify-rtx.c (simplify_const_relational_operation): When
8396         extracting arguments of a COMPARE, recompute the mode as well.
8397
8398 2005-08-15  Ian Lance Taylor  <ian@airs.com>
8399
8400         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
8401
8402 2005-08-15  DJ Delorie  <dj@redhat.com>
8403
8404         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
8405         the stack.
8406         (movsi_splittable): Allow, but split, moves to the stack.
8407         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
8408         stack.
8409
8410 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8411
8412         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
8413         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
8414         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
8415
8416         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
8417         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
8418         Delete HOST_PTR_PRINTF.
8419
8420         * configure, config.in: Regenerate.
8421
8422 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
8423
8424         * config/rs6000/rs6000.md (QHSI): New mode macro.
8425         (wd): Extend mode attr for QImode and HImode
8426         (dbits): New mode attr.
8427         (zero_extend<mode>di2): Convert to mode macro.
8428
8429 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
8430
8431         PR target/21841
8432         * doc/invoke.texi (-mgnu-ld): Update description.
8433         (-mhp-ld): Ditto.
8434
8435 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8436
8437         PR 23391
8438         * Makefile.in (tree-chrec.o): Depends on real.h.
8439         * tree-chrec.c: Include real.h.
8440         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
8441         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
8442         * tree-scalar-evolution.c (add_to_evolution_1,
8443         interpret_rhs_modify_expr): Ditto.
8444
8445 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
8446
8447         PR 23386
8448         * tree-data-ref.c (estimate_niter_from_size_of_data): When
8449         step is negative compute the estimation from init downwards to zero.
8450
8451 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
8452
8453         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
8454
8455 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8456
8457         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
8458         constraint.
8459         (legitimate_reload_constant_p): Fix handling of lliXX operands.
8460         Accept double-word constants that can be split.
8461         * config/s390/s390.md ("movti"): Use 'P' constraint.
8462         ("*movdi_31", "*movdf_31"): Likewise.
8463
8464 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
8465
8466         Fix PR tree-optimization/22615
8467
8468         * tree-ssa-structalias.c (solution_set_add): Handle
8469         first_vi_for_offset returning NULL.
8470         (do_da_constraint): Ditto.
8471         (do_sd_constraint): Ditto.
8472         (do_ds_constraint): Ditto
8473         (find_func_aliases): Ditto.
8474         (build_constraint_graph): RHS is allowed be ANYTHING.
8475         (first_vi_for_offset): Return NULL if we couldn't find anything at
8476         the offset.
8477
8478 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
8479
8480         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
8481         over memory as first operand.
8482
8483 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
8484
8485         PR target/23360
8486         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
8487         available for setting it.
8488
8489 2005-08-14  Ira Rosen  <irar@il.ibm.com>
8490
8491         PR tree-optimization/23320
8492         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
8493         data-refs' types instead of base object nullness. Add check for
8494         pointer type data-refs before first location comparison. Remove
8495         assert.
8496
8497 2005-08-14  Andreas Schwab  <schwab@suse.de>
8498
8499         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
8500
8501 2005-08-13  James E Wilson  <wilson@specifix.com>
8502
8503         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
8504         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
8505         -fstack-protector-all, --param ssp-buffer-size): Document.
8506         (-Wvariadic-macros): Alphabetize.
8507         (-fsched-stalled-insns-dep): Add missing 'f'.
8508
8509         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
8510         macros.
8511
8512 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
8513
8514         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
8515         or indirect address operand.
8516         (EXTRA_ADDRESS_CONSTRAINT): New.
8517         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
8518
8519 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
8520
8521         PR tree-optimization/22236
8522         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
8523         successors and predecessors.
8524         * tree-chrec.c (chrec_convert): Before converting, check that
8525         sequences don't wrap.
8526         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
8527         (analyze_array): Extern.
8528         (find_data_references_in_loop): Remove call to
8529         compute_estimated_nb_iterations.
8530         * tree-data-ref.h (analyze_array): Declared.
8531         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
8532         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
8533         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
8534         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
8535         condition.
8536         * tree-ssa-loop-ivcanon.c: Fix documentation.
8537         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
8538         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
8539         (infer_loop_bounds_from_undefined): New.
8540         (estimate_numbers_of_iterations_loop): Use
8541         infer_loop_bounds_from_undefined.
8542         (used_in_pointer_arithmetic_p): New.
8543         (scev_probably_wraps_p): Pass an extra parameter.  Call
8544         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
8545         (convert_step): Fix documentation.
8546         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
8547         Use initial_condition_in_loop_num and evolution_part_in_loop_num
8548         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
8549         scev_probably_wraps_p.
8550
8551 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
8552
8553         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
8554         (s390_register_info): Ignore clobbered_regs information for fixed
8555         registers, and only fixed registers.
8556         (s390_init_frame_layout): Remove redundant call.
8557
8558 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
8559
8560         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
8561         description of -Wold-style-casts.
8562
8563 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8564             Jakub Jelinek  <jakub@redhat.com>
8565
8566         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8567         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
8568         * config/s390/s390.c (print_operand): New output modifier 'G' added.
8569         (get_thread_pointer): Renamed to s390_get_thread_pointer.
8570         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
8571         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
8572         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
8573         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
8574         ("stack_protect_set", "stack_protect_test"): New expanders.
8575         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
8576         "stack_protect_testdi"): New insn definitions.
8577
8578 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8579
8580         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
8581
8582 2005-08-12  Paul Brook  <paul@codesourcery.com>
8583
8584         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
8585
8586 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8587
8588         * config/s390/predicates.md (setmem_operand): New predicate.
8589         (shift_count_operand): Accept ANDs with special constants as
8590         operand.
8591         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
8592         with special constants.
8593         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
8594         shift_count_operand with setmem_operand.
8595
8596 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8597
8598         * config/s390/s390.c (s390_extract_part, s390_single_part):
8599         Type cast added.
8600         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
8601         (s390_output_mi_thunk): Don't use lg on 31 bit.
8602         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
8603         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
8604
8605 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8606
8607         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
8608         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
8609         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
8610         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
8611         with one of the new macros.
8612
8613 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
8614
8615         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
8616         Don't set save_return_addr_p.
8617         (s390_register_info): Make clobbered_regs not depending on
8618         save_return_addr_p.
8619
8620 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8621
8622         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
8623         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
8624
8625 2005-08-11  James E. Wilson  <wilson@specifix.com>
8626
8627         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
8628
8629 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
8630
8631         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
8632         locations gathered by var-tracking in single entry loc_list
8633         over loc_descriptor_from_tree.
8634
8635         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
8636         pass it down to loc_descriptor.
8637         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
8638         (containing_function_has_frame_base): Move earlier in the file.
8639         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
8640         instead of always assuming fbreg can't be used.
8641
8642 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
8643
8644         * config/rs6000/altivec.md: Change constraint "m" to "Z".
8645         * config/rs6000/predicates.md (indexed_or_indirect_operand):
8646         Accept address wrapped in AND for Altivec.
8647         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
8648         Strip AND wrapping offset address for Altivec.
8649
8650 2005-08-11  Richard Henderson  <rth@redhat.com>
8651
8652         PR middle-end/23312
8653         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
8654         before using TYPE_IS_SIZETYPE.
8655
8656 2005-08-11  Richard Henderson  <rth@redhat.com>
8657
8658         PR target/22225
8659         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
8660         insn types not present on ev4.
8661         (alphaev5_insn_pipe): Similarly.
8662
8663 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
8664
8665         PR target/23250
8666         * arm.c (arm_override_options): If the user has selected callee-super-
8667         interworking, then enable normal interworking.
8668
8669 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8670
8671         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
8672         redefinition.
8673
8674 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
8675
8676         * doc/rtl.texi: Fix two typos.
8677
8678 2005-08-11  Richard Guenther  <rguenther@suse.de>
8679
8680         PR target/23289
8681         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
8682         cases where we call to/from functions returning void.
8683
8684 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
8685
8686         PR c++/23225
8687         * tree.c (build_pointer_type_for_mode): Robustify.
8688
8689 2005-08-10  James E Wilson  <wilson@specifix.com>
8690
8691         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
8692         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
8693
8694         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
8695         "cum->".
8696
8697 2005-08-10  Eric Christopher  <echristo@apple.com>
8698
8699         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
8700         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
8701         V2DFmode.
8702
8703 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
8704
8705         PR target/21887
8706         * config/darwin.c (machopic_indirect_data_reference): Use a new register
8707         for the high part when generating dynamic-no-pic code.
8708
8709 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8710
8711         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
8712         (x86_64-*-linux*): Likewise.
8713
8714         * config/i386/crtfastmath.c: New file.
8715         * config/i386/t-crtfm: Likewise.
8716
8717         * config/i386/linux.h (ENDFILE_SPEC): New.
8718         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
8719
8720         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
8721         crtfastmath.o.
8722
8723 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
8724
8725         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
8726         (vec_shl, vec_shr): Document new operations.
8727         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
8728
8729 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
8730
8731         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
8732         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
8733         change predicate to indexed_or_indirect_address.
8734
8735 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
8736
8737         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
8738         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
8739         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
8740         and __aeabi_uwrite8.
8741         * config/arm/unaligned-funcs.c: New file.
8742         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
8743
8744 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
8745
8746         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
8747         Add dump.
8748         * cfglayout.c (pass_insn_locators_initialize): Add dump.
8749         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
8750         Add dump.
8751         * except.c (pass_convert_to_eh_region_ranges): Add dump.
8752         * final.c (pass_shorten_branches): Add dump.
8753         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
8754         (pass_life): Rename dump.
8755         (rest_of_handle_flow2): Remove initial verify_flow_info.
8756         * function.c (pass_instantiate_virtual_regs): Add dump.
8757         * integrate.c (pass_initial_value_sets): Add dump.
8758         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
8759         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
8760         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
8761         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
8762         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
8763         gate_rtl_unrool_and_peel_loops): New.
8764         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
8765         rtl_doloop): Do not look at flags.
8766         * mode-switching.c (pass_mode_switching): Add dump.
8767         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
8768         pass_split_before_regstack): Add dump.
8769         * regmove.c (pass_stack_adjustments): Add dump.
8770         * tree-optimize.c (pass_fixup_cfg): Add dump.
8771
8772 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8773
8774         PR 23309
8775         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
8776         deciding which instruction sequence to use.
8777
8778 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
8779
8780         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
8781         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
8782
8783 2005-08-09  Richard Guenther  <rguenther@suse.de>
8784
8785         * c-common.c (builtin_function_2): Remove.
8786         (def_builtin_1): New function.
8787         (c_common_nodes_and_builtins): Use def_builtin_1 to
8788         build builtin functions.
8789
8790 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
8791
8792         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
8793         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
8794         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
8795         Visual DSP.
8796
8797 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
8798
8799         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
8800         fold_binary instead of fold_build2 since we don't care about the
8801         resulting tree.
8802         (loop_niter_by_eval): Likewise.
8803         (compare_trees): Likewise.
8804         (proved_non_wrapping_p): Likewise.
8805
8806 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
8807
8808         PR c/23161
8809         PR c/23165
8810         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
8811         if the if is really empty.
8812
8813 2005-08-09  Steven Bosscher  <stevenb@suse.de>
8814
8815         PR tree-optimization/23234
8816         * tree-ssa-math-opts.c (place_reciprocal): New enum.
8817         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
8818         argument of the new enum.
8819         (execute_cse_reciprocals): Add reciprocals for function arguments
8820         on the unique successor edge of the entry block.  Update other calls
8821         to execute_cse_reciprocals_1.
8822
8823 2005-08-08  Richard Henderson  <rth@redhat.com>
8824
8825         PR 22439
8826         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
8827
8828 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
8829
8830         * expr.c (write_complex_part): Return after handling MEM.
8831
8832 2005-08-08  Josh Conner  <jconner@apple.com>
8833
8834         PR rtl-optimization/23241
8835         * combine.c (simplify_comparison): Fix error in determining
8836         whether to lift a subreg from comparison.
8837
8838 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
8839
8840         PR target/18506
8841         * config/rs6000/altivec.md (vec_init<mode>): New.
8842         (vec_set<mode>): New.
8843         (vec_extract<mode>): New.
8844         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
8845         (rs6000_expand_vector_set): New.
8846         (rs6000_expand_vector_extract): New.
8847         (rs6000_legitimate_offset_address_p): Offset addresses are valid
8848         for Altivec modes before reload.
8849         (altivec_expand_vec_init_builtin): New.
8850         (get_element_number): New.
8851         (altivec_expand_vec_set_builtin): New.
8852         (altivec_expand_vec_ext_builtin): New.
8853         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
8854         builtins.
8855         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
8856         builtins.
8857         * config/rs6000/rs6000.h (rs6000_builtins): Add
8858         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
8859         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
8860         * config/rs6000/rs6000-protos.h: Declare new functions.
8861
8862 2005-08-08  Jan Hubicka  <jh@suse.cz>
8863
8864         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
8865         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
8866         * i386.md (movdi*): Use pic_32bit_operand.
8867         * predicates.md (pic_32bit_operand): New.
8868
8869 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
8870
8871         PR c++/21166
8872         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
8873
8874 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
8875
8876         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
8877         (test_for_singularity): Use fold_build2.
8878
8879 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8880
8881         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
8882
8883 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
8884
8885         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
8886         (COMMON_ASM_OP) Define.
8887         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
8888         (ix86_encode_section_info): Likewise.
8889         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
8890         SUBTARGET_ENCODE_SECTION_INFO.
8891
8892 2005-08-06  Richard Henderson  <rth@redhat.com>
8893
8894         PR 21894
8895         * tree-nested.c (convert_local_reference): Save and restore val_only
8896         around component_ref and friends.  Clear walk_subtrees by default.
8897
8898 2005-08-06  Peter O'Gorman  <peter@pogma.com>
8899
8900         PR 21366
8901         * gcc.c (process_command): Check the argument to -b has a dash.
8902         * doc/invoke.texi: Update -b and -V docs.
8903
8904 2005-08-06  James E Wilson  <wilson@specifix.com>
8905
8906         * config/mips/cross64.h, config/mips/t-cross64: Delete.
8907
8908 2005-08-06  Michael Matz  <matz@suse.de>
8909
8910         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
8911         member only if only one insn is associated with the value.
8912
8913 2005-08-06  Nick Clifton  <nickc@redhat.com>
8914
8915         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
8916         New define.
8917         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
8918         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
8919         Check symbol flags instead of symbol name mangling.
8920         (xstormy16_asm_output_aligned_common): Likewise.  Also
8921         simplify code since the bss100_section cass is the only case
8922         where the below100 code will be triggered.
8923         (xstormy16_encode_section_info): Encode below100 attribute
8924         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
8925         the name.
8926         (xstormy16_strip_name_encoding): Delete - this function is no
8927         longer needed.
8928         (TARGET_STRIP_NAME_ENCODING): Undefine.
8929         * config/stormy16/stormy16-protos.h: Delete prototype for
8930         xstormy16_strip_name_encoding.
8931
8932 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
8933
8934         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
8935         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
8936         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
8937         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
8938         config/alpha/predicates.md, config/arc/arc.h,
8939         config/arm/arm.h, config/arm/ieee754-df.S,
8940         config/arm/ieee754-sf.S, config/bfin/bfin.c,
8941         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
8942         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
8943         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
8944         config/m68hc11/m68hc11.h, config/mips/mips.c,
8945         config/mips/mips.h, config/mips/openbsd.h,
8946         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
8947         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
8948         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
8949         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
8950         config/sparc/linux.h, config/sparc/linux64.h,
8951         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
8952         doc/extend.texi, doc/gcov.texi, doc/install.texi,
8953         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
8954         typos.  Follow spelling conventions.
8955
8956 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
8957
8958         PR c/23113
8959         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
8960         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
8961         specially.  Check for side effects only for COND_EXPR.
8962         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
8963         return with TREE_NO_WARNING.
8964
8965 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
8966
8967         PR rtl-optimization/23233
8968         * loop.c (combine_movables): Require the modes to be the same.
8969         (move_movables): Remove handling of cases where the replacement
8970         had a different mode to the original.
8971
8972 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
8973
8974         PR tree-optimization/23128
8975         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
8976         subtraction wrap, and set TREE_OVERFLOW if they do.
8977
8978 2005-08-05  Richard Henderson  <rth@redhat.com>
8979
8980         PR 21728
8981         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
8982         FORCED_LABEL labels.
8983
8984 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
8985
8986         PR middle-end/23135
8987         * reload.c (find_reloads_subreg_address): Pass down TYPE
8988         unchanged.  Change all callers except find_reloads_toplev.
8989
8990 2005-08-05  Michael Matz  <matz@suse.de>
8991
8992         * genattrtab.c (current_alternative_string): Remove.
8993         (SIMPLIFY_ALTERNATIVE): Ditto.
8994         (attr_alt_bit_p): Ditto.
8995         (alternative_name): Make const char *.
8996         (evaluate_eq_attr): Remove use of above things.
8997         (simplify_test_exp): Ditto.
8998         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
8999         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
9000
9001 2005-08-04  James E Wilson  <wilson@specifix.com>
9002
9003         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
9004         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
9005         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
9006         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
9007         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
9008
9009 2005-08-04  Richard Henderson  <rth@redhat.com>
9010
9011         PR 21529
9012         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
9013         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
9014         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
9015         if we'd have to instantiate too many members.
9016
9017 2005-08-04  Richard Henderson  <rth@redhat.com>
9018
9019         PR 21291
9020         * tree-outof-ssa.c (coalesce_asm_operands): New.
9021         (coalesce_ssa_name): Use it.  Split out ...
9022         (coalesce_phi_operands, coalesce_result_decls): ... these.
9023
9024 2005-08-04  Paul Brook  <paul@codesourcery.com>
9025
9026         * read-rtl.c (read_quoted_string): Break if EOF.
9027
9028 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
9029
9030         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
9031         (fold_build2): Likewise.
9032         (fold_build3): Likewise.
9033         (fold_build1_stat): New function prototype.
9034         (fold_build2_stat): Likewise.
9035         (fold_build3_stat): Likewise.
9036         * fold-const.c (fold_build1): Rename to ..
9037         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9038         through to build1_stat.
9039         (fold_build2): Rename to ..
9040         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9041         through to build2_stat.
9042         (fold_build3): Rename to ..
9043         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
9044         through to build3_stat.
9045
9046 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
9047             Ian Lance Taylor  <ian@airs.com>
9048
9049         * function.c (assign_stack_local_1): Do not correct stack slot
9050         address if allocation size is smaller than mode size.
9051
9052 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
9053
9054         PR 22037
9055         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
9056         (tree_merge_blocks): Propagate anything allowed by
9057         may_propagate_copy.
9058         Clarify documentation.
9059         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
9060         SSA form, schedule an update if necessary.
9061
9062 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
9063
9064         * doc/install.texi (Binaries): Remove broken link to
9065         Sinix/Reliant Unix binaries.
9066
9067 2005-08-03  Richard Henderson  <rth@redhat.com>
9068
9069         PR 23221
9070         * function.c (stack_protect_epilogue): Export.
9071         * tree.h (stack_protect_epilogue): Declare.
9072         * calls.c (expand_call): Call it.
9073
9074 2005-08-03  Eric Christopher  <echristo@apple.com>
9075
9076         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
9077         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
9078         spec.
9079
9080 2005-08-04  Jan Hubicka  <jh@suse.cz>
9081
9082         * profile.c (branch_prob): Split edges with goto locus on them
9083         to get proper line counts.
9084         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
9085
9086 2005-08-03  Paul Brook  <paul@codesourcery.com>
9087
9088         * function.c (assign_parms): Round current_function_args_size
9089         to PARM_BOUNDARY, not STACK_BOUNDARY.
9090
9091 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
9092
9093         * config/i386/i386.c (x86_elf_aligned_common)
9094         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
9095
9096 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
9097
9098         PR tree-optimization/23157
9099         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
9100         before emitting them.
9101
9102 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9103
9104         PR tree-optimization/19899
9105         * Makefile.in (tree-scalar-evolution.o): Add real.h.
9106         * tree-scalar-evolution.c: Include real.h.
9107         (add_to_evolution): Build constant -1 of correct type.
9108
9109 2005-08-03  Jan Hubicka  <jh@suse.cz>
9110
9111         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
9112         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
9113         profile updating for complette unrolling.
9114         * loop-unroll.c (peel_loop_completely): Use it.
9115         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
9116         (tree_unroll_loops_completely): Disable code growing unrolling of cold
9117         loops.
9118
9119 2005-08-03  Paul Brook  <paul@codesourcery.com>
9120
9121         * combine.c (can_change_dest_mode): New function.
9122         (try_combine, simplify_set): Use it.
9123
9124 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
9125
9126         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
9127         TFmode to BLKmode.
9128
9129 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
9130
9131         * doc/install.texi (Specific): Adjust link to openavr.org.
9132         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
9133         (Binaries): Adjust HP-UX Porting Center link.
9134         (Binaries): Adjust Free Software Foundation ordering link.
9135
9136 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
9137
9138         * convert.c (convert_to_integer): Use fold_build1 instead of
9139         build1 when converting an integer to an integer.
9140
9141 2005-08-02  Richard Henderson  <rth@redhat.com>
9142
9143         * combine.c (combine_instructions): Don't use reg_equal/equiv
9144         results if the mode doesn't match.
9145
9146 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
9147
9148         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
9149         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
9150
9151 2005-08-02  Richard Henderson  <rth@redhat.com>
9152
9153         PR 23196
9154         * explow.c (memory_address): Remove special-case for
9155         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
9156
9157 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
9158
9159         PR 23164
9160         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
9161         number of calls to cleanup_tree_cfg_1.
9162
9163 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
9164
9165         * doc/invoke.texi: document file extensions .F90 and .F95
9166
9167 2005-08-02  Richard Guenther  <rguenther@suse.de>
9168
9169         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
9170         positive if its first argument is positive.
9171
9172 2005-08-02  Richard Guenther  <rguenther@suse.de>
9173
9174         PR tree-optimization/23177
9175         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
9176         on TMR_TAG.
9177
9178 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
9179
9180         PR tree-optimization/23129
9181         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
9182         varying for divisions with anti-ranges.
9183
9184 2005-08-02  Jan Hubicka  <jh@suse.cz>
9185
9186         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
9187         * tree-ssa-threadupdate.c (thread_block): Add it here.
9188
9189 2005-08-01  James E Wilson  <wilson@specifix.com>
9190
9191         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
9192         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
9193         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
9194         New.
9195         * config/mips/predicates.md (const_call_insn_operand): Add check for
9196         SYMBOL_REF_LONG_CALL_P.
9197         * doc/extend.texi (long_call): Document the new attribute.
9198
9199 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9200             Richard Henderson  <rth@redhat.com>
9201
9202         * Makefile.in (RTL_BASE_H): Add real.h.
9203         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
9204         instead of memcpy.
9205         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
9206         directly.
9207         * rtl.c (rtl_check_failed_code_mode): New.
9208         * rtl.h (struct rtx_def): Add u.rv.
9209         (XCMWINT, XCNMPRV): New.
9210         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
9211         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
9212
9213 2005-08-01  Richard Henderson  <rth@redhat.com>
9214
9215         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
9216         with auto-inc codes.
9217
9218         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
9219
9220 2005-08-01  Jan Hubicka  <jh@suse.cz>
9221
9222         * i386-protos.h (asm_preferred_eh_data_format): Declare.
9223         * i386.c: Include dwarf2.h
9224         (asm_preferred_eh_data_format): New.
9225         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
9226
9227 2005-08-01  Ian Lance Taylor  <ian@airs.com>
9228
9229         * config/host-linux.c (linux_gt_pch_get_address): Add new name
9230         randomize_va_space for virtual address randomization control.
9231
9232 2005-08-01  Steven Bosscher  <stevenb@suse.de>
9233
9234         * common.opt (flag_ipa_cp): Put in right place to maintain
9235         alphabetic sort.
9236
9237 2005-08-01  Jan Hubicka  <jh@suse.cz>
9238
9239         * profile.c (compute_value_histograms): Fix thinko.
9240         * value-prof.c: Include toplev.h
9241         (check_counter): New function.
9242         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9243         tree_mod_subtract_transform): Add sanity check.
9244
9245 2005-08-01  Richard Guenther  <rguenther@suse.de>
9246
9247         PR tree-optimization/23133
9248         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
9249         current functions parameter decls to find defs to cse
9250         reciprocals of.
9251
9252 2005-08-01  Richard Guenther  <rguenther@suse.de>
9253
9254         PR tree-optimization/23109
9255         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
9256         If trapping math is in effect, use post-dominator information
9257         to check if we'd in any case reach a trapping point before
9258         doing the reciprocal insertion.
9259         (execute_cse_reciprocals): Compute post-dominators, if necessary.
9260         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
9261         expressions are invariant only if trapping math is not in effect.
9262
9263 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9264
9265         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
9266         cgraph_function_versioning): New declarations.
9267         * cgraphunit.c: Add include to ipa-prop.h.
9268         (update_call_expr, cgraph_copy_node_for_versioning,
9269         cgraph_function_versioning): New functions.
9270         * integrate.c (copy_decl_for_inlining): Remove.
9271         * ipa-prop.h (ipa_replace_map): New struct.
9272         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
9273         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
9274         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
9275         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
9276         ipcp_iterate_stage, ipcp_method_scale_print,
9277         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
9278         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
9279         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
9280         ipcp_update_bb_counts, ipcp_update_profiling,
9281         ipcp_update_edges_counts): New functions.
9282         (ipcp_method_cval_init): Remove restriction regarding local methods.
9283         (ipcp_init_stage): Add ipcp_method_compute_scale.
9284         (ipcp_insert_stage): Add versioning.
9285         (ipcp_structures_print): Add ipcp_method_scale_print.
9286         (ipcp_driver): Dump profiling info.
9287         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
9288         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
9289         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
9290         (struct inline_data): Add versioning_p, ipa_info, new fields.
9291         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
9292         declare_return_variable): Replace calls to copy_decl_for_inlining with
9293         copy_decl_for_dup.
9294         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
9295         versioning support.
9296         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
9297         Add argument VERSIONING.
9298         (copy_arguments_for_versioning, copy_static_chain,
9299         function_versionable_p, tree_versionable_function_p,
9300         tree_function_versioning, replace_ref_tree): New functions.
9301         * tree-inline.h: Include varray.h.
9302         (tree_versionable_function_p,  tree_function_versioning,
9303         tree copy_decl_for_dup): New declarations.
9304
9305 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
9306
9307         * ipa-cp.c: New file. Contains IPCP specific functionality.
9308         * ipa-prop.h: New file. Contains structures/definitions that can be
9309         used by several interprocedural data flow optimizations (and also IPCP).
9310         * ipa-prop.c: New file.
9311         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
9312         * common.opt: Add ipa-cp flag.
9313         * timevar.def: Add IPCP optimization.
9314         * tree-optimize.c (init_tree_optimization_passes): Schedule
9315         pass_ipa_cp.
9316         * tree-pass.h (pass_ipa_cp): Declare.
9317
9318 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
9319
9320         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
9321         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
9322         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
9323         config/i386/i386.c, config/mips/mips.h,
9324         config/rs6000/rs6000.h, config/sh/sh.c,
9325         config/stormy16/stormy16.c: Fix comment typos.
9326
9327 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
9328
9329         PR c/22311
9330         * c-typeck.c (build_binary_op): Use common_type wrapper on
9331         shortened types.
9332         (common_type): Update comment.
9333
9334 2005-07-31  Steven Bosscher  <stevenb@suse.de>
9335
9336         PR target/23095
9337         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
9338         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
9339         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
9340
9341 2005-07-31  Jan Hubicka  <jh@suse.cz>
9342
9343         * pretty-print.h (pp_widest_integer): New macro.
9344         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
9345         counts.
9346
9347 2005-07-31  Jan Hubicka  <jh@suse.cz>
9348
9349         * output.h (enum section_category): Export from varasm.c
9350         (categorize_decl_for_section): Likewise.
9351         * varasm.c (enum section_category): Kill.
9352         (categorize_decl_for_section): Make global.
9353         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
9354         Declare.
9355         * i386.c (ix86_section_threshold): New static variable.
9356         (ix86_in_large_data_p, ix86_encode_section_info,
9357         x86_64_elf_unique_section,
9358         x86_64_elf_select_section): New functions.
9359         (TARGET_ENCODE_SECTION_INFO): Define
9360         (override_options): Enable medium model for PIC.
9361         (ix86_expand_prologue): Expand gen_set_got_rex64.
9362         (legitimate_constant_p): Handle new UNSPECs.
9363         (legitimate_pic_address_disp_p): Likewise.
9364         (legitimize_pic_address): Lower MEDIUM model addressing.
9365         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
9366         (enum cmodel): Add MEDIUM_PIC.
9367         (SYMBOL_REF_FAR_ADDR_P): New macro.
9368         (SYMBOL_FLAG_FAR_ADDR): New flag.
9369         * i386.md (movdi): Support medium model.
9370         (set_got_rex64): New pattern.
9371         * i386.opt (mlarge-data-threshold): New flag.
9372         * predicates.md (zext_operand/sext_operand): Deal with medium model.
9373         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
9374         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
9375         TARGET_ASM_UNIQUE_SECTION): New.
9376
9377         * invoke.texi (-mlarge_data_threshold): Document
9378
9379 2005-07-31  Jan Hubicka  <jh@suse.cz>
9380
9381         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
9382         (coalesce_vars): Likewise.
9383         * tree-ssa-live.c (coalesce_cost): New.
9384         (build_tree_conflict_graph): Use coalesce_cost.
9385         * tree-ssa-live.h (coalesce_cost): Declare.
9386
9387 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
9388
9389         * arm.md (all peepholes for post-increment operations): Delete.
9390         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
9391         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
9392         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
9393         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
9394         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
9395
9396 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
9397
9398         * fold-const.c (tree_expr_nonnegative_p): Always return true for
9399         non-integral types.
9400
9401 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
9402
9403         PR target/22582
9404         * doc/invoke.texi: Document -rdynamic.
9405
9406 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
9407
9408         PR c/23143
9409         * c-parser.c (c_parser_parms_list_declarator): Call
9410         mark_forward_parm_decls.
9411         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
9412         decls with visibility structure.
9413
9414 2005-07-30  Paul Brook  <paul@codesourcery.com>
9415
9416         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
9417
9418 2005-07-30  Paul Brook  <paul@codesourcery.com>
9419
9420         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9421         prototype.
9422         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
9423         value for mode.
9424         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
9425
9426 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9427
9428         PR c/529
9429         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
9430         nested function declarators.
9431         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
9432         (grokparms): Call warn_if_shadowing for parameters used within the
9433         parameter list.
9434         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
9435         not used within the parameter list.
9436         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
9437
9438 2005-07-30  Jan Hubicka  <jh@suse.cz>
9439
9440         * expr.c (expand_expr_real_1): Do not load mem targets into register.
9441         * i386.c (ix86_fixup_binary_operands): Likewise.
9442         (ix86_expand_unary_operator): Likewise.
9443         (ix86_expand_fp_absneg_operator): Likewise.
9444         * optabs.c (expand_vec_cond_expr): Validate dest.
9445
9446 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9447
9448         PR c/21720
9449         * real.c (real_from_string): Also set last bit if there is a
9450         nonzero hex digit beyond GCC's internal precision after ".".
9451
9452 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
9453
9454         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
9455         define_constants.  Change duplicate values to unassigned numbers.
9456         Change UNSPEC_SUBS to UNSPEC_VSUBS.
9457         (*altivec_vspltsf): New.
9458         (altivec_vperm_v4sf): Delete.
9459         (altivec_vperm_<mode>): Use mode macro V.
9460         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
9461         (altivec_predicate_v4sf): Delete.
9462         (altivec_predicate_<mode>): Use mode macro V.
9463         (*altivec_lvesfx): New.
9464         (*altivec_stvesfx): New.
9465         (vec_realign_load_v4sf): Delete.
9466         (vec_realign_load_<mode>): Use mode macro V.
9467         * config/rs6000/rs6000.c (generate_set_vrsave): Use
9468         UNSPECV_SET_VRSAVE.
9469
9470 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
9471
9472         PR bootstrap/23131
9473         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
9474         string.
9475         * configure: Regenerated.
9476
9477 2005-07-29  Paul Brook  <paul@codesourcery.com>
9478
9479         * doc/install.texi: Add link to GFortran binaries wiki page.
9480
9481 2005-07-29  David Ung  <davidu@mips.com>
9482
9483         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
9484         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
9485         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
9486         * config/mips/mips.md (cpu): Add 5kf name.
9487         (includes): Includes 5k.md.
9488         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
9489         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
9490         -march flag.
9491
9492 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9493
9494         PR 22550
9495         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
9496         (cleanup_tree_cfg): ... here.
9497         Call cleanup_tree_cfg_1 until there are no more cleanups to
9498         do.
9499
9500 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
9501
9502         * tree-vrp.c (compare_range_with_value): Return true or false
9503         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
9504         EQ_EXPR respectively.
9505
9506 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
9507
9508         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
9509         Fix comment typos.
9510
9511 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
9512
9513         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
9514         (tree_ssa_dominator_optimize): Increment it.
9515         (dump_dominator_optimization_stats): Print it.
9516
9517 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
9518             Steven Bosscher  <stevenb@suse.de>
9519
9520         PR rtl-optimization/23117
9521         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
9522         when head == tail.  Tidy comment.
9523
9524 2005-07-28  Richard Henderson  <rth@redhat.com>
9525
9526         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
9527         * cselib.c (rtx_equal_for_cselib_p): Likewise.
9528         * jump.c (rtx_renumbered_equal_p): Likewise.
9529         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
9530         CONST_INT and CONST_DOUBLE.
9531         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
9532         * reload.c (operands_match_p): Special case CONST_INT and
9533         CONST_DOUBLE; check mode earlier.
9534
9535 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9536
9537         PR c/22240
9538         * c-typeck.c (convert_for_assignment): Do not check
9539         DECL_IN_SYSTEM_HEADER on NULL fundecl.
9540
9541 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9542
9543         PR c/22192
9544         * c-typeck.c (composite_type): Prefer constant size arrays to
9545         VLAs.
9546
9547 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
9548
9549         PR c/21720
9550         * real.c (real_from_string): Set last bit if there is a nonzero
9551         hex digit beyond GCC's internal precision.
9552
9553 2005-07-28  Richard Henderson  <rth@redhat.com>
9554
9555         PR rtl-opt/22619
9556         * cfgcleanup.c (try_forward_edges): Watch out for end of
9557         insn chain.
9558
9559 2005-07-28  James E Wilson  <wilson@specifixinc.com>
9560
9561         PR c/23106
9562         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
9563
9564 2005-07-28  Jan Hubicka  <jh@suse.cz>
9565
9566         * Makefile.in (rtl-profile.o): Kill all traces of it.
9567         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
9568         * coverage.h (rtl_coverage_counter_ref): Kill.
9569         * opts.c (flag_speculative_prefetching_set): Kill.
9570         (flag_loop_optimize_set): New.
9571         (common_handle_option): Disable loop optimizer when profiling;
9572         do not handle speculative prefetching.
9573         * passes.c (init_optimization_passes): Replace pass_profiling combo
9574         by branch_prob pass.
9575         * profile.c (compute_value_histograms): Update for simplified value
9576         profiles.
9577         (rtl_register_profile_hooks): Kill.
9578         (pass_profiling): Kill.
9579         (rest_of_handle_branch_prob): Do not profile.
9580         * toplev.c (process_options): Remove speculative prefetching.
9581         * toplev.h (flag_tree_based_profiling): Kill.
9582         * tree-profile.c (prepare_instrumented_value,
9583         tree_gen_interval_profiler, tree_gen_pow2_profiler,
9584         tree_gen_one_value_profiler, do_tree_profiling): Update for
9585         simplified datastructures.
9586         * value-prof.c: Add comment that speculative prefetching was dropped;
9587         update rest of file for simplified datastructures.
9588         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
9589         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
9590         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
9591         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
9592         rtl_mod_subtract, gen_speculative_prefetch,
9593         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
9594         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
9595         (gate_handle_value_profile_transformations,
9596         rest_of_handle_value_profile_transformations,
9597         pass_value_profile_transformations): Kill.
9598         * value-prof.h (histogram_value_t): Remove IL based unions.
9599         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
9600         rtl_profile_hooks): Remove hooks.
9601
9602         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
9603
9604         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
9605         (cgraph_clone_node): Likewise.
9606         * cgraph.h (cgraph_clone_edge): Update prototype.
9607         (cgraph_clone_node): Likewise.
9608         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
9609         cgraph_clone_node.
9610         (lookup_recursive_calls): Consider profile.
9611         (cgraph_decide_recursive_inlining): Fix updating; use new
9612         probability argument; use profile.
9613         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
9614         * tree-inline.c (copy_bb): Update clal of clone_edge.
9615         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
9616
9617         * invoke.texi (min-inline-recursive-probability): Document.
9618
9619 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
9620
9621         * doc/install.texi (Configuration): Update Valgrind homepage.
9622
9623 2005-07-28  Richard Henderson  <rth@redhat.com>
9624
9625         PR middle-end/21362
9626         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
9627         labels we want to delete.
9628         (cfg_layout_merge_blocks): Likewise.
9629
9630 2005-07-28  Richard Henderson  <rth@redhat.com>
9631
9632         PR target/17692
9633         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
9634         when expanding to nothing.
9635
9636 2005-07-28  Josh Conner  <jconner@apple.com>
9637
9638         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
9639         (cgraph_decide_inlining_of_small_functions): Likewise.
9640
9641 2005-07-28  Josh Conner  <jconner@apple.com>
9642
9643         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
9644         direction of badness if negative.
9645         (cgraph_default_inline_p): Add reason to parameters, and assign it
9646         a value.
9647         (cgraph_decide_inlining_of_small_functions): New parameter in call
9648         to cgraph_default_inline_p.
9649         (cgraph_decide_inlining_incrementally): Likewise.
9650         * cgraphunit.c (decide_is_function_needed): Likewise.
9651         * cgraph.h (cgraph_default_inline_p): Likewise.
9652
9653 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9654
9655         * builtins.c: Fix comment typo(s).
9656         * genautomata.c: Likewise.
9657         * gimplify.c: Likewise.
9658         * tree-dfa.c: Likewise.
9659         * tree-flow-inline.h: Likewise.
9660         * tree-into-ssa.c: Likewise.
9661         * tree-ssa-alias.c: Likewise.
9662         * tree-ssa-ccp.c: Likewise.
9663         * tree-ssa-copy.c: Likewise.
9664         * tree-ssa-dce.c: Likewise.
9665         * tree-ssa-dom.c: Likewise.
9666         * tree-ssa-operands.c: Likewise.
9667         * tree-tailcall.c: Likewise.
9668         * tree-vectorizer.c: Likewise.
9669         * tree-vrp.c: Likewise.
9670         * tree.c: Likewise.
9671
9672 2005-07-28  Jeff Law  <law@redhat.com>
9673
9674         * tree-vrp.c (test_for_singularity): Extracted from  ...
9675         (simplify_cond_using_ranges): Attempt to simplify a relational
9676         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
9677
9678 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
9679
9680         PR tree-optimization/22506
9681         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
9682         phis whose argument is constant.
9683
9684 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
9685
9686         PR rtl-optimization/18992
9687         Back out this patch:
9688           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9689           PR optimization/12142
9690           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
9691           uses of the register in the SET_SRC.  Remove unnecessary argument.
9692
9693         Replace it with this:
9694         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
9695         if flag_non_call_exceptions is set and the insn may trap, pass
9696         pc_rtx as dest for recursion.
9697         In SET_SRC part of SET case, if dest is already set, pass it down
9698         unchanged.
9699
9700 2005-07-28  Jan Hubicka  <jh@suse.cz>
9701
9702         * cfg.c (update_bb_profile_for_threading): Use RDIV.
9703         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
9704         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
9705         roundoff errors.
9706         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
9707         profile when available.
9708
9709 2005-07-28  Jan Beulich <jbeulich@novell.com>
9710
9711         * config/ia64/ia64.c (ia64_load_pair_ok): New.
9712         (ia64_print_operand): Describe and handle 'X'.
9713         (ia64_register_move_cost): Also handle FP_REGS.
9714         (ia64_preferred_reload_class): Likewise.
9715         (ia64_secondary_reload_class): Likewise.
9716         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
9717         it. Also check for ITANIUM_CLASS_FLDP.
9718         * config/ia64/ia64.h (FP_REGNO_P): New.
9719         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
9720         (reg_class): Add FP_REGS.
9721         (REG_CLASS_NAMES): Adjust for it.
9722         (REG_CLASS_CONTENTS): Likewise.
9723         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
9724         (REG_CLASS_FROM_LETTER): Handle 'x'.
9725         (CLASS_MAX_NREGS): Handle FP_REGS.
9726         (MEMORY_MOVE_COST): Likewise.
9727         * config/ia64/ia64.md (itanium_class): Add fldp.
9728         (type): Handle fldp.
9729         (movti_internal): More allowable operand combinations. Use ldfp8 when
9730         splitting unnecessary. Remove predicable attribute. Adjust
9731         itanium_class attribute.
9732         (smuldi3_highpart): Remove outdated comment.
9733         (mulditi3, umulditi3, rotlti3): New expanders.
9734         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
9735         (absti2): Disabled new insn for future reference.
9736         Respective new splitters.
9737         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
9738         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
9739         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
9740
9741 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
9742
9743         PR rtl-optimization/23047
9744         * simplify-rtx.c (simplify_const_relational_operation): Respect
9745         flag_wrapv for comparisons with ABS.
9746
9747 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
9748
9749         PR tree-optimization/22493
9750         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
9751         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
9752
9753 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
9754
9755         * config/frv/frv.opt (moptimize-membar): New.
9756
9757         * doc/invoke.texi: Document -moptimize-membar and its inverse.
9758
9759         * config/frv/frv.h: Remove machine_function definition.
9760
9761         * config/frv/frv.c (struct frv_io): New.
9762         (struct machine_function): Moved from frv.h.  Add has_membar_p.
9763         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
9764         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
9765         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
9766         (frv_optimize_membar_global, frv_optimize_membar): New functions.
9767         (frv_reorg): Call frv_optimize_membar when appropriate.
9768         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
9769         (frv_expand_builtin): Adjust calls accordingly.
9770         (frv_io_address_cookie): New function.
9771         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
9772         load or store rather than a special insn.  Add ccnstant address and
9773         io-type operands to the membar.
9774         (frv_ifcvt_modify_tests): Unsign regno.
9775         (frv_ifcvt_modify_tests): Same.
9776
9777         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
9778         UNSPEC_OPTIONAL_MEMBAR constant.
9779         (builtin_read_<mode>): Delete.
9780         (builtin_write_<mode>): Delete.
9781         ("optional_membar_<mode>"): Add operand.
9782
9783         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
9784         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
9785         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
9786         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
9787         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
9788         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
9789         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
9790         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
9791         * testsuite/gcc.target/frv/all-read-write-1.c: New.
9792
9793 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9794
9795         * df.c (df_uses_record): Handle SCRATCH.
9796
9797 2005-07-28  Steven Bosscher  <stevenb@suse.de>
9798
9799         PR debug/20161
9800         * passes.c (rest_of_decl_compilation): If decl is a type and
9801         we have encountered errors, don't emit debug information.
9802
9803 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
9804
9805         * params.def: Fixed comment.
9806
9807 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
9808
9809         PR target/19885
9810         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
9811         (TARGET_ASM_UNALIGNED_HI_OP): Add.
9812         (TARGET_ASM_UNALIGNED_SI_OP): Add.
9813
9814 2005-07-27  Steven Bosscher  <stevenb@suse.de>
9815
9816         PR c++/22003
9817         * varasm.c (assemble_start_function): Don't do anything that may
9818         require a CFG if the current function is a thunk.
9819
9820 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
9821
9822         * doc/install.texi (Prerequisites): Mention that perl is needed
9823         to do export control in libstdc++ targetting Darwin.
9824
9825 2005-07-27  Steven Bosscher  <stevenb@suse.de>
9826
9827         PR rtl-optimization/17808
9828         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
9829         (sched_insns_conditions_mutex_p): Split out from...
9830         (add_dependence): ...here.  But don't call it from here.
9831         (add_dependence_list): Check sched_insns_conditions_mutex_p
9832         before calling add_dependence.
9833         (add_dependence_list_and_free): Likewise.
9834         (fixup_sched_groups): Likewise.
9835         (sched_analyze_1): Likewise.
9836         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
9837         (sched_analyze): Likewise.
9838         (sched_analyze_insn): Likewise.
9839         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
9840         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
9841         dependencies on all COND_EXEC insns to jumps ending basic blocks
9842         when doing intrablock scheduling.
9843         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
9844
9845 2005-07-27  Jeff Law  <law@redhat.com>
9846
9847         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
9848         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
9849         equivalency sets, correctly handle the case were vr0 has an
9850         equivalency set, but vr1 does not.
9851
9852 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
9853
9854         PR tree-optimization/23073
9855         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
9856         vect_print_dump_info before fprintf.
9857
9858 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9859
9860         PR tree-optimize/22348
9861         * tree-ssa-loop-niter.c (number_of_iterations_cond):
9862         Fold the partial computation.
9863
9864 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9865
9866         PR tree-optimization/22325
9867         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
9868         Declare.
9869         * tree-scalar-evolution.c (scev_const_prop): Add generic final
9870         value replacement.
9871         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
9872         (force_var_cost): ... this function.
9873         (compute_phi_arg_on_exit): Export.
9874
9875 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
9876
9877         PR tree-optimization/20773
9878         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
9879         edge.
9880
9881 2005-07-27  Richard Guenther  <rguenther@suse.de>
9882
9883         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
9884         Avoid pushing again if current struct contains only
9885         fields we decomposed.
9886
9887 2005-07-27  Jan Hubicka  <jh@suse.cz>
9888
9889         PR tree-optimization/22574
9890         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
9891         not available.
9892
9893         * tree-tailcall.c (decrease_profile): New function.
9894         (eliminate_tail_call): Use it.
9895
9896         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
9897         visibility flags correctly in whole program mode.
9898
9899 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
9900
9901         PR rtl-optimization/22472
9902         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
9903
9904 2005-07-26  Steven Bosscher  <stevenb@suse.de>
9905
9906         PR tree-optimization/22504
9907         * tree-complex.c (expand_complex_addition): Use 'code' instead
9908         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
9909
9910 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
9911
9912         * config.gcc (cpu_type): Add frv case.
9913         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
9914         (supported_defaults): Add fr550 case.
9915
9916 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
9917
9918         PR 22591
9919         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
9920         whether a pointer of type T * may point to objects of type T *.
9921
9922 2005-07-26  DJ Delorie  <dj@redhat.com>
9923
9924         * configure: Regenerate.
9925
9926 2005-07-26  Dale Johannesen  <dalej@apple.com>
9927
9928         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
9929
9930 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
9931
9932         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
9933         Clarify use of "build" in name.
9934
9935 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
9936
9937         * doc/extend.texi (Raw read/write Functions): New section.
9938         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
9939         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
9940         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
9941         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
9942         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
9943         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
9944         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
9945         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
9946         * config/frv/frv.c: Add bdesc_loads global.
9947         Add bdesc_stores global.
9948         (frv_init_builtins): Add support for __builtin_{read/write}*.
9949         (frv_volatile_memref): New.
9950         (frv_expand_load_builtin): New.
9951         (frv_expand_store_builtin): New.
9952         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
9953         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
9954         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
9955         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
9956         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
9957         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
9958         (builtin_read_<mode>): New.
9959         (builtin_write_<mode>): New.
9960         (builtin_write64): New.
9961         (optional_membar_<mode>): New.
9962
9963 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
9964
9965         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
9966         (rather than units) against HOST_BITS_PER_WIDE_INT.
9967
9968 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
9969
9970         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
9971         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
9972         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
9973         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
9974         FSF address.
9975
9976         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
9977         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
9978         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
9979         comment typos.
9980         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
9981
9982 2005-07-26  Richard Guenther  <rguenther@suse.de>
9983
9984         PR tree-optimization/22486
9985         * fold-const.c (fold_unary): Fold away useless component
9986         references of the form (T *)&T.x, if the address
9987         doesn't change.
9988
9989 2005-07-25  James E Wilson  <wilson@specifixinc.com>
9990
9991         * dwarf2out.c (add_call_src_coords_attributes): New.
9992         (gen_inlined_subroutine_die): Call it.
9993         (maybe_emit_file, init_file_table): Add comments.
9994         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
9995         maybe_emit_file.
9996         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
9997         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
9998         * tree.h (BLOCK_SOURCE_LOCATION): New.
9999         (struct tree_block): New field locus.
10000
10001 2005-07-26  Andreas Schwab  <schwab@suse.de>
10002
10003         PR rtl-optimization/23043
10004         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
10005         when allocating a struct unoccr.
10006
10007 2005-07-25  Richard Henderson  <rth@redhat.com>
10008
10009         PR 22626
10010         * tree-complex.c (gate_no_optimization): True if errors.
10011         * Makefile.in (tree-complex.o): Update dependencies.
10012
10013 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
10014
10015         * config/frv/predicates.md (integer_register_operand): Use
10016         GPR_AP_OR_PSEUDO_P.
10017
10018 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
10019
10020         PR tree-opt/22484
10021         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
10022         after fold.
10023         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
10024
10025 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
10026
10027         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
10028         types when flag_unsafe_math_optimizations is true.
10029
10030 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
10031
10032         * gcc.c (option_map): Add --sysroot.
10033         (process_command): Handle --sysroot.
10034         (display_help): Document it.
10035         * doc/cppopts.tex (-isysroot): Document.
10036         * doc/invoke.texi (--sysroot): Document.
10037         * doc/install.texi (--with-build-sysroot): Document.
10038
10039         * Makefile.in (inhibit_libc): New variable.
10040         (INHIBIT_LIBC_CFLAGS): Likewise.
10041         (LIBGCC2_CFLAGS): Include
10042         $(INHIBIT_LIBC_CFLAGS).
10043         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
10044         ($(T)crtbegin.o): Do not use @inhibit_libc@.
10045         ($(T)crtend.o): Likewise.
10046         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
10047         ($(T)crtendS.o): Likewise.
10048         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
10049         ($(T)crtendT.o): Likewise.
10050         (stmp-fixinc): Do not complain about missing headers if
10051         inhibit_libc.
10052         * configure.ac (inhibit_libc): Set it to true/false.
10053         (--with-build-sysroot): New option.  Use it to set
10054         SYSTEM_HEADER_DIR.
10055         * configure: Regenerated.
10056
10057 2005-07-25  Manfred Hollstein  <mh@suse.com>
10058
10059         * calls.c (store_one_arg): Fix unsigned comparison warning.
10060
10061 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10062
10063         PR other/22337
10064         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
10065         (ggc_print_statistics): Initialize variable before use.
10066
10067 2005-07-25  Richard Guenther  <rguenther@suse.de>
10068
10069         * tree-dfa.c (mark_new_vars_to_rename): Protect against
10070         calling with a PHI_NODE argument.
10071
10072         * tree-flow-inline.h (overlap_subvar): Protect against
10073         possible overflow.
10074
10075 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
10076
10077         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
10078         * configure: Regenerate.
10079
10080 2005-07-25  Ira Rosen  <irar@il.ibm.com>
10081
10082         * expr.c (highest_pow2_factor): Make extern.
10083         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
10084         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
10085         record_array_differ_p, array_ptr_differ_p): Likewise.
10086         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
10087         additional cases. Call the above functions.
10088         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
10089         base_object_differ_p when there are two base objects. Otherwise, compare
10090         base address and offset. Call may_alias_p.
10091         (dump_data_reference): Use a correct field name.
10092         (analyze_array): Make static. Initialize new data-ref fields.
10093         (analyze_indirect_ref): New function.
10094         (init_data_ref): Initialize new data-ref fields.
10095         (strip_conversion): Moved from tree-vect-analyze.c.
10096         (analyze_offset_expr, get_ptr_offset, address_analysis,
10097         object_analysis): Likewise.
10098         (analyze_offset): New function.
10099         (create_data_ref): Likewise.
10100         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
10101         dimensions for ARRAY_REFs only.
10102         (build_classic_dist_vector): Make static.
10103         (access_functions_are_affine_or_constant_p): Call macro to get the
10104         address of access functions.
10105         (compute_all_dependences): Add new parameter
10106         compute_self_and_read_read_dependences. Compute self and read-read
10107         dependences if it is true.
10108         (find_data_references_in_loop): Call create_data_ref. Initialize new
10109         data-ref fields.
10110         (compute_data_dependences_for_loop): Add new parameter
10111         compute_self_and_read_read_dependences. Remove parameter nb_loops,
10112         compute nb_loops. Call compute_all_dependences,
10113         build_classic_dist_vector and build_classic_dir_vector with correct
10114         parameters.
10115         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
10116         with correct parameters. Compare dimensions for ARRAY_REFs only.
10117         (free_data_refs): Call macro to free access functions.
10118         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
10119         fields from stmt_vinfo.
10120         (struct base_object_info): New structure.
10121         (struct data_reference): Move fields to base_object_info. Add fields
10122         first_location and object_info for above structures. Move fields from
10123         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
10124         aligned_to.  Add macros to access the new fields.
10125         Update functions declarations.
10126         * tree-flow.h (is_aliased_with): Declare.
10127         * tree-loop-linear.c (linear_transform_loops): Call
10128         compute_data_dependences_for_loop with correct parameters.
10129         * tree-ssa-alias.c (is_aliased_with): New function.
10130         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
10131         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
10132         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
10133         vect_base_addr_differ_p, compute_subscript_distance and
10134         build_classic_dist_vector. Add printings. Check absolute value of
10135         distance.
10136         (vect_analyze_data_ref_dependences): Go through ddrs instead of
10137         data-refs.
10138         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
10139         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
10140         to bytes. Add printing.
10141         (vect_compute_data_refs_alignment): Go through loads and stores in one
10142         loop.
10143         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
10144         vect_analyze_data_ref_access): Likewise.
10145         (vect_analyze_pointer_ref_access): Remove.
10146         (vect_address_analysis, vect_object_analysis): Likewise.
10147         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
10148         and analyze data-refs in the loop.
10149         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
10150         fields of data-ref instead of stmt. Add init to the offset from the
10151         base.
10152         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
10153         (vect_update_init_of_dr): Likewise.
10154         (vect_update_inits_of_drs): Go through loads and stores in one loop.
10155         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
10156         removed fields.
10157         (new_loop_vec_info): Initialize new fields.
10158         (destroy_loop_vec_info): Free new fields.
10159         (vect_strip_conversion): Remove.
10160         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
10161         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
10162         datarefs. Add new field ddrs.
10163         Add macros for the new fields access.
10164         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
10165         base_aligned_p, misalignment, memtag, ptr_info and subvars.
10166         Remove their macros.
10167         * tree.h (highest_pow2_factor): Declare.
10168
10169 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
10170
10171         * calls.c (store_one_arg): Check for sibling call MEM arguments
10172         from already clobbered incoming argument area.
10173
10174 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10175
10176         * c-common.c (check_missing_format_attribute): New.
10177         * c-common.h (check_missing_format_attribute): Likewise.
10178         * c-typeck.c (convert_for_assignment): Use it.
10179
10180 2005-07-24  Andreas Schwab  <schwab@suse.de>
10181
10182         * config/m68k/m68k.md ("extendqidi2"): When source is an address
10183         register use a word move.  Correct operand of ext.w in 68000 code.
10184
10185 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
10186
10187         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
10188         variables as declarations, rather than definitions.
10189
10190 2005-07-24  Ira Rosen  <irar@il.ibm.com>
10191
10192         PR tree-optimization/22526
10193         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
10194         of the zero node.
10195
10196 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10197
10198         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
10199         that C99 reserve for future use. Use it to define clog10,
10200         clog10f and clog10l.
10201
10202 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10203
10204         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
10205         * configure.ac: Check for -Wmissing-format-attribute.
10206
10207         * configure: Regenerate.
10208
10209 2005-07-23  Richard Henderson  <rth@redhat.com>
10210
10211         PR tree-optimization/22623
10212         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
10213
10214 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
10215
10216         PR target/22577
10217         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
10218
10219 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10220
10221         * Makefile.in (C_TREE_H): Update dependencies.
10222         * c-tree.h: Include toplev.h.
10223         * diagnostic.h (diagnostic_set_info): Add format attribute.
10224         * rtl-error.c (diagnostic_for_asm): Likewise.
10225
10226 2005-07-23  Chao-ying Fu  <fu@mips.com>
10227
10228         * config/mips/mips-dsp.md: New file.
10229         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
10230         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
10231         functions.
10232         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
10233         MIPS_BUILTIN_BPOSGE32.
10234         (mips_expand_builtin_direct): Add one parameter to indicate that
10235         builtin functions need to return a value.
10236         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
10237         functions.
10238         (mips_regno_to_class): Add classes for 12 new DSP registers.
10239         (mips_subword): Change to check four HI registers.
10240         (mips_output_move): Output move to and from 6 new DSP accumulators.
10241         (override_options): Make sure -mdsp and -mips16 are not used together.
10242         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
10243         for machine modes.
10244         (mips_conditional_register_usage): Disable 6 new DSP accumulators
10245         when !TARGET_DSP.
10246         (print_operand): Add 'q' for printing DSP accumulators.
10247         (mips_cannot_change_mode_class): Check ACC_REGS.
10248         (mips_secondary_reload_class): Check ACC_REGS.
10249         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
10250         (mips_register_move_cost): Check ACC_REGS.
10251         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
10252         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
10253         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
10254         (dsp_bdesc): New array.
10255         (bdesc_arrays): Add DSP builtin function table.
10256         (mips_prepare_builtin_arg): Check predicate again after
10257         copy_to_mode_reg.
10258         (mips_expand_builtin): Add one more parameter to
10259         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
10260         MIPS_BUILTIN_BPOSGE32.
10261         (mips_init_builtins): Initialize new function types.
10262         (mips_expand_builtin_direct): Check if builtin functions need to
10263         return a value and pass operands properly.
10264         (mips_expand_builtin_bposge): New function.
10265         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
10266         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
10267         (FIRST_PSEUDO_REGISTER): Increase to 188.
10268         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
10269         Update for 12 new DSP registers.
10270         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
10271         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
10272         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
10273         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
10274         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
10275         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
10276         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
10277         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
10278         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
10279         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
10280         (REGISTER_NAMES): Add names for 12 new DSP registers.
10281         * config/mips/mips.md: Include mips-dsp.md.
10282         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
10283         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
10284         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
10285         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
10286         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
10287         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
10288         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
10289         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
10290         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
10291         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
10292         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
10293         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
10294         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
10295         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
10296         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
10297         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
10298         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
10299         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
10300         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10301         (UNSPEC_RDDSP): New constants.
10302         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
10303         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
10304         A<-d alternative.
10305         * config/mips/mips.opt (-mdsp): New option.
10306         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
10307         (reg_imm10_operand): New predicates.
10308         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
10309         * doc/invoke.texi (-mdsp): Document new option.
10310
10311 2005-07-22  DJ Delorie  <dj@redhat.com>
10312
10313         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
10314         to warning calls.
10315         * tree-inline.c (inlinable_function_p): Likewise.
10316
10317 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
10318
10319         PR debug/21828
10320         * toplev.c (check_global_declarations): Do not mark undefined
10321         variables as DECL_IGNORED_P.
10322         * varasm.c (first_global_object_name): GTY it.
10323         (weak_global_object_name): Likewise.
10324         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
10325         a string to go into {weak,first}_global_object_name.
10326
10327 2005-07-22  DJ Delorie  <dj@redhat.com>
10328
10329         * c-format.c (check_function_format): Change warning control
10330         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
10331
10332 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
10333
10334         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
10335         &PTR->FLD a dereference of PTR.
10336         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
10337         a potential dereference of PTR.
10338
10339 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
10340
10341         PR rtl-optimization/20370
10342         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
10343         call allocate_reg_info if necessary.
10344
10345         PR rtl-optimization/21848
10346         * calls.c (emit_library_call_value_1): For const functions, add
10347         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
10348
10349         PR rtl-optimization/22445
10350         * cselib.c (target.h): Include.
10351         (rtx_equal_for_cselib_p): Allow commutative matches.
10352         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
10353         Remove MODE parameter.  Changed all callers.
10354
10355         PR rtl-optimization/22258
10356         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
10357         New functions.
10358         (try_combine): Use likely_spilled_retval_p.
10359
10360 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
10361
10362         * config.gcc: Add crx-elf support.
10363
10364         * doc/contrib.texi: Mention crx.
10365         * doc/extend.texi: Document crx extensions.
10366         * doc/install.texi: Document crx install.
10367         * doc/invoke.texi: Document crx options.
10368         * doc/md.texi: Document crx constraints.
10369
10370         * config/crx/crx-protos.h: New file.
10371         * config/crx/crx.c: New file.
10372         * config/crx/crx.h: New file.
10373         * config/crx/crx.md: New file.
10374         * config/crx/crx.opt: New file.
10375         * config/crx/t-crx: New file.
10376
10377 2005-07-22  Manfred Hollstein  <mh@suse.com>
10378
10379         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
10380         warnings.
10381         (int_add_graph_edge): Likewise.
10382         (collapse_nodes): Likewise.
10383         (process_unification_queue): Likewise.
10384
10385 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10386             Laurent GUERBY  <laurent@guerby.net>
10387
10388         PR tree-optimization/22336
10389         * function.c (record_block_change): Check for
10390         cfun->ib_boundaries_block.
10391
10392 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
10393
10394         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
10395         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
10396
10397 2005-07-21  DJ Delorie  <dj@redhat.com>
10398
10399         * toplev.c (warn_deprecated_use): Add warning control to warning
10400         call.
10401         * c-typeck.c (parser_build_binary_op): Likewise.
10402         (c_finish_if_stmt): Likewise.
10403         * c-common.c (check_function_sentinel): Likewise.
10404         (check_nonnull_arg): Likewise.
10405
10406 2005-07-21  Richard Henderson  <rth@redhat.com>
10407
10408         PR tree-opt/22504
10409         * tree-complex.c (complex_ssa_name_components): New.
10410         (cvc_lookup): Allow entry not found.
10411         (create_components): Remove.
10412         (create_one_component_var, get_component_var): New.
10413         (get_component_ssa_name, set_component_ssa_name): New.
10414         (extract_component): Use get_component_ssa_name.
10415         (update_complex_components): Use set_component_ssa_name.
10416         (update_complex_components_on_edge): Likewise.
10417         (update_phi_components): Create new PHI nodes directly, instead
10418         of adding insns to edges.
10419         (tree_lower_complex): Allocate and free complex_variable_components
10420         and complex_ssa_name_components here.
10421
10422 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
10423
10424         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
10425         revert to returning false.
10426
10427 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10428
10429         PR target/21149
10430         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
10431
10432 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
10433
10434         PR target/22576
10435         * config/i386/i386.md (cmpxf): Change operand constraints
10436         to "nonmemory_operand".
10437
10438 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10439
10440         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
10441
10442 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10443
10444         PR middle-end/21180
10445         * fold-const.c (fold_build1): Add checksum for the operands.
10446         (fold_build2): Likewise.
10447         (fold_build3): Likewise.
10448
10449 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
10450
10451         PR middle-end/19055
10452         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
10453
10454 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10455
10456         * common.opt (-fforward-propagate): Committed by mistake,
10457         removed.
10458
10459 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10460
10461         * reg-stack.c: Fix comment typo(s).
10462         * tree-ssa-operands.c: Likewise.
10463         * tree-vectorizer: Likewise.
10464
10465 2005-07-21  Nick Clifton  <nickc@redhat.com>
10466
10467         * config/sh/symbian.c: Replace C++ style line comments with C
10468         style line comments.
10469         (symbian_add_attribute): Do not use a ? operator on the LHS of
10470         an assignment.
10471         (sh_symbian_handle_dll_attribute): Change the type of the
10472         method vector to "VEC(tree,gc)*" and use vector accessor
10473         macros to walk over the elements.
10474         (symbian_export_vtable_and_rtti_p): Likewise.
10475         (symbian_class_needs_attribute_p): Likewise.
10476
10477 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10478
10479         PR target/22085
10480         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
10481         initialize targetm.resolve_overloaded_builtin here.
10482         (altivec_expand_overloaded_builtin): Make it non-static.
10483         * config/rs6000/rs6000-protos.h
10484         (altivec_expand_overloaded_builtin): New prototype.
10485         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
10486         targetm.resolve_overloaded_builtin here.
10487         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
10488
10489 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
10490             Zdenek Dvorak  <dvorakz@suse.cz>
10491
10492         PR tree-optimization/19210
10493         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
10494         New.
10495         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
10496         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
10497         rely on unproven assumptions.
10498         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
10499         * tree-flow.h (number_of_iterations_exit): Add final parameter.
10500         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
10501         to number_of_iterations_exit.
10502         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
10503         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
10504         * tree-ssa-loop-niter.c (find_loop_niter,
10505         estimate_numbers_of_iterations_loop): Likewise.
10506         (number_of_iterations_exit): Honor the new options.
10507         * doc/invoke.texi (Wunsafe-loop-optimizations,
10508         funsafe-loop-optimizations): Document them.
10509
10510 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
10511
10512         PR rtl-optimization/22167
10513         * gcse.c (hoist_code): Fix hoist_exprs[] check.
10514
10515 2005-07-20  Adam Nemet  <anemet@lnxw.com>
10516
10517         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
10518         __do_global_dtors_aux longcall.
10519
10520 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
10521
10522         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
10523         (old_special_pred_table): Don't reference
10524         SPECIAL_MODE_PREDICATES.
10525         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
10526         * config/arc/arc.h: Don't mention PREDICATE_CODES.
10527         * config/sh/predicates.h: Don't mention
10528         SPECIAL_MODE_PREDICATES.
10529         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
10530         Remove.
10531
10532 2005-07-20  DJ Delorie  <dj@redhat.com>
10533
10534         * config.gcc: Add m32c-elf support.
10535
10536         * doc/contrib.texi: Mention m32c.
10537         * doc/extend.texi: Document m32c extensions.
10538         * doc/install.texi: Mention m32c.
10539         * doc/invoke.texi: Document m32c options.
10540         * doc/md.texi: Document m32c constraints.
10541
10542         * config/m32c/addsub.md: New file.
10543         * config/m32c/bitops.md: New file.
10544         * config/m32c/cond.md: New file.
10545         * config/m32c/jump.md: New file.
10546         * config/m32c/m32c-lib1.S: New file.
10547         * config/m32c/m32c-lib2.c: New file.
10548         * config/m32c/m32c-modes.def: New file.
10549         * config/m32c/m32c-pragma.c: New file.
10550         * config/m32c/m32c-protos.h: New file.
10551         * config/m32c/m32c.abi: New file.
10552         * config/m32c/m32c.c: New file.
10553         * config/m32c/m32c.h: New file.
10554         * config/m32c/m32c.md: New file.
10555         * config/m32c/m32c.opt: New file.
10556         * config/m32c/minmax.md: New file.
10557         * config/m32c/mov.md: New file.
10558         * config/m32c/muldiv.md: New file.
10559         * config/m32c/predicates.md: New file.
10560         * config/m32c/prologue.md: New file.
10561         * config/m32c/shift.md: New file.
10562         * config/m32c/t-m32c: New file.
10563
10564 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10565
10566         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
10567         (stack_protect_set, stack_protect_test): New expanders.
10568         (stack_protect_set_si, stack_protect_set_si_media,
10569         stack_protect_set_di_media, stack_protect_test_si,
10570         stack_protect_test_si_media, stack_protect_test_di_media):
10571         New insns.
10572
10573 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
10574
10575         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
10576
10577 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
10578
10579         * tree.h (tree_expr_nonzero_p): Export.
10580         * fold-const.c (tree_expr_nonzero_p): Likewise.
10581         Return true for CALL_EXPRs that are alloca calls.
10582         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
10583         against zero.
10584         * tree-flow.h (expr_computes_nonzero): Remove.
10585         * tree-vrp.c (expr_computes_nonzero): Remove.
10586         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
10587         (extract_range_from_unary_expr): Likewise.
10588         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
10589         tree_expr_nonzero_p.
10590
10591 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
10592
10593         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
10594         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
10595         extra arg "picreg" and use it instead of pic_offset_table_rtx.
10596         All callers changed.
10597         (frame_related_constant_load): New arg "related" which controls
10598         setting of RTX_FRAME_RELATED_P.  All callers changed.
10599         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
10600         (bfin_expand_prologue): Add stack limit checking.
10601         * config/bfin/bfin.md (trapifcc): New pattern.
10602
10603         * config/bfin/bfin.c: Include "langhooks.h".
10604         (def_builtin): Go through lang_hooks to call builtin_function.
10605
10606         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
10607         * config/bfin/predicates.md (symbol_ref_operand): New.
10608         (call_insn_operand): Delete.  All callers changed to use
10609         register_no_elim_operand.
10610         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
10611         call_cookie field.
10612         (function_arg): Use it to generate the call's operand 2.
10613         (bfin_longcall_p): New function.
10614         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
10615         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
10616         determine if the address needs to be in a REG.
10617         (bfin_handle_longcall_attribute): New function.
10618         (bfin_attribute_table): Add "longcall" and "shortcall".
10619         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
10620         (CUMULATIVE_ARGS): New member call_cookie.
10621         (PREDICATE_CODES): Add symbol_ref_operand.
10622         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
10623         extra USE to the pattern.
10624         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
10625         New patterns, split off call_insn, sibcall_insn, call_value_insn and
10626         sibcall_value_insn; now the new patterns handle direct calls and the
10627         old ones indirect calls.
10628         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
10629
10630 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
10631
10632         * doc/trouble.texi: Update section on handling of empty loops.
10633
10634 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
10635
10636         * config.gcc: Remove support for sparc-*-openbsd*,
10637         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
10638         ns32k-*-netbsd*.
10639         * config.host: Remove support for i860-*-sysv4* as a host.
10640         * config/i860/*, config/ip2k/*, config/ns32k/*,
10641         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
10642         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
10643         mention obsolete ports.
10644
10645 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10646
10647         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
10648         soft frame pointer.
10649         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
10650         of frame_pointer_rtx.
10651         (sh_expand_epilogue): Likewise.
10652         (sh_set_return_address): Likewise.
10653         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
10654         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
10655         offsets from FRAME_POINTER_REGNUM.
10656         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
10657         (sh_register_names): Add initializer for sfp.
10658         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
10659         (VALID_REGISTER_P): Likewise.
10660         (FIRST_PSEUDO_REGISTER): Update.
10661         (DWARF_FRAME_REGISTERS): Define.
10662         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
10663         (HARD_FRAME_POINTER_REGNUM): Define.
10664         (FRAME_POINTER_REGNUM): Redefine.
10665         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
10666         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
10667         from FRAME_POINTER_REGNUM.
10668         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
10669         FRAME_POINTER_REGNUM.
10670         (REG_CLASS_CONTENTS): Add sfp.
10671         (REG_ALLOC_ORDER): Likewise.
10672         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
10673         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
10674         of frame_pointer_rtx.
10675         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10676
10677 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
10678
10679         * fold-const.c (tree_expr_nonnegative_p): Only return true for
10680         ABS_EXPR when flag_wrapv is false because of INT_MIN.
10681         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
10682         of an ABS_EXPR.
10683         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
10684         ABS_EXPR<x>.
10685
10686 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
10687
10688         Make CONSTRUCTOR use VEC to store initializers.
10689         * c-common.c (complete_array_type): Update to cope with VEC in
10690         CONSTRUCTOR_ELTS.
10691         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
10692         (pp_c_constructor_elts): New function.
10693         * c-pretty-print.h (pp_c_constructor_elts): Declare.
10694         * c-typeck.c (build_function_call, build_c_cast, digest_init,
10695         struct constructor_stack, struct initializer_stack,
10696         constructor_elements, push_init_level, pop_init_level,
10697         add_pending_init, find_init_member, output_init_element): Update to
10698         cope with VEC in CONSTRUCTOR_ELTS.
10699         * coverage.c (build_fn_info_value, build_ctr_info_value,
10700         build_gcov_info): Likewise.
10701         * expr.c (categorize_ctor_elements_1, store_constructor,
10702         expand_expr_real_1): Likewise.
10703         * fold-const.c (fold_ternary): Likewise.
10704         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
10705         gimplify_init_constructor, gimplify_expr): Likewise.
10706         * tree-dump.c (dequeue_and_dump): Likewise.
10707         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
10708         node.
10709         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
10710         CONSTRUCTOR_ELTS.
10711         * tree-sra.c (generate_element_init_1): Likewise.
10712         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
10713         * tree-ssa-operands.c (get_expr_operands): Likewise.
10714         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10715         * tree-vect-transform.c (vect_get_vec_def_for_operand):
10716         (get_initial_def_for_reduction): Likewise.
10717         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
10718         value handle in annotations.
10719         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
10720         tree_node_structure): Add support for constr_kind.
10721         (build_vector_from_ctor, build_constructor_single,
10722         build_constructor_from_list): New functions.
10723         (build_constructor): Update to take a VEC instead of a TREE_LIST.
10724         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
10725         Update to cope with VEC in CONSTRUCTOR_ELTS.
10726         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
10727         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
10728         CONSTRUCTOR_APPEND_ELT): New macros.
10729         (struct constructor_elt, struct tree_constructor): New data types.
10730         (union tree_node): Add tree_constructor field.
10731         * treestruct.def: Define TS_CONSTRUCTOR.
10732         * varasm.c (const_hash_1, compare_constant, copy_constant,
10733         compute_reloc_for_constant, output_addressed_constants,
10734         initializer_constant_valid_p, output_constant,
10735         array_size_for_constructor, output_constructor): Update to cope with
10736         VEC in CONSTRUCTOR_ELTS.
10737         * vec.h (VEC_empty, VEC_copy): New macros.
10738
10739 2005-07-19  Devang Patel  <dpatel@apple.com>
10740
10741         * dbxout.c (dbxout_type): Check Objective-C++ lang.
10742
10743 2005-07-19  Richard Henderson  <rth@redhat.com>
10744
10745         PR tree-opt/22278
10746         * gimplify.c (gimplify_expr): Use main variant type for the temp
10747         destination for a discarded volatile read.
10748         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
10749         casts between non-void types that change volatility.
10750
10751 2005-07-15  DJ Delorie  <dj@redhat.com>
10752
10753         * toplev.h: Add comment about the first parameter for warning().
10754         * errors.h: Likewise.
10755
10756         * c.opt (Wpragmas): New.
10757         * doc/invoke.texi: Document it.
10758
10759         * function.c (do_warn_unused_parameter): Add warning control to
10760         warning call.
10761         * c-decl.c (warn_if_shadowing): Likewise.
10762         * c-lex.c (cb_def_pragma): Likewise.
10763         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
10764         (pop_alignment): Likewise.
10765         (handle_pragma_pack): Likewise.
10766         (apply_pragma_weak): Likewise.
10767         (handle_pragma_weak): Likewise.
10768         (handle_pragma_redefine_extname): Likewise.
10769         (add_to_renaming_pragma_list): Likewise.
10770         (handle_pragma_extern_prefix): Likewise.
10771         (maybe_apply_renaming_pragma): Likewise.
10772         (handle_pragma_visibility): Likewise.
10773
10774         * config/c4x/c4x-c.c (BAD): Likewise.
10775         (c4x_parse_pragma): Likewise.
10776         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
10777         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
10778         (rs6000_pragma_longcall): Likewise.
10779         * config/v850/v850-c.c (pop_data_area): Likewise.
10780         (ghs_pragma_section): Likewise.
10781         (ghs_pragma_section): Likewise.
10782         (ghs_pragma_interrupt): Likewise.
10783         (ghs_pragma_starttda): Likewise.
10784         (ghs_pragma_startsda): Likewise.
10785         (ghs_pragma_startzda): Likewise.
10786         (ghs_pragma_endtda): Likewise.
10787         (ghs_pragma_endsda): Likewise.
10788         (ghs_pragma_endzda): Likewise.
10789
10790 2005-07-19  Danny Berlin <dberlin@dberlin.org>
10791             Kenneth Zadeck <zadeck@naturalbridge.com>
10792
10793         * Makefile.in: Removed tree-promote-statics.c
10794         * tree-promote-statics.c: Removed.
10795         * common.opt: Removed flag-promote-statics.
10796         * opts.c: Ditto.
10797         * passes.c: Removed tree-promote-statics pass.
10798         * tree-pass.h: Ditto.
10799         * timevar.def: Removed TV_PROMOTE_STATICS.
10800
10801
10802 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
10803
10804         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
10805         and *-*-freebsd9.
10806         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
10807
10808 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10809
10810         PR c/22476
10811         * c-common.c (check_function_arguments): Call
10812         'check_function_format' if either -Wformat or
10813         -Wmissing-format-attribute are specified.
10814         * c-format.c (check_function_format): Check -Wformat before
10815         calling 'check_format_info'.
10816         * c-opts.c (c_common_post_options): Don't warn for
10817         -Wmissing-format-attribute without -Wformat.
10818         * c-typeck.c (convert_for_assignment): Detect additional cases for
10819         -Wmissing-format-attribute.
10820         * doc/invoke.texi (-Wmissing-format-attribute): Document new
10821         behavior.
10822
10823 2005-07-19  Richard Guenther  <rguenther@suse.de>
10824
10825         * config/i386/i386.md (lrint<mode>2): Use temporary
10826         instead of clobbering non-existent memory.
10827
10828 2005-07-19  Nick Clifton  <nickc@redhat.com>
10829
10830         * config/avr/avr.c (legitimate_address_p): Fix debugging print
10831         statement to avoid displaying ASCII control characters.
10832
10833 2005-07-19  Ben Elliston  <bje@au.ibm.com>
10834
10835         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
10836         * cfganal.c (find_edge_index): Ditto.
10837         * combine.c (combine_instructions): Ditto.
10838         * ddg.c (create_scc): Ditto.
10839         (find_successors): Ditto.
10840         (find_predecessors): Ditto.
10841         (find_nodes_on_paths): Ditto.
10842         (longest_simple_path): Ditto.
10843         * flow.c (update_life_info): Ditto.
10844         (count_or_remove_death_notes): Ditto.
10845         (clear_log_links): Ditto.
10846         * modulo-sched.c (generate_reg_moves): Ditto.
10847         (find_max_asap): Ditto.
10848         (find_max_hv_min_mob): Ditto.
10849         (find_max_dv_min_mob): Ditto.
10850         * sbitmap.c (sbitmap_first_set_bit): Ditto.
10851         * sched-rgn.c (extract_edgelst): Ditto.
10852         * tree-into-ssa.c (prepare_names_to_update): Ditto.
10853         (dump_update_ssa): Ditto.
10854         (ssa_names_to_replace) Ditto.
10855         (switch_virtuals_to_full_rewrite): Ditto.
10856         (update_ssa): Ditto.
10857         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
10858
10859 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
10860
10861         Fix PR tree-optimization/22483
10862
10863         * tree-complex.c (create_components): Use
10864         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
10865         * tree-flow-inline.h (fill_referenced_var_vec): New function.
10866         * tree-flow.h (safe_referenced_var_iterator): New structure.
10867         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
10868         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
10869         safe_referenced_var iterator.
10870         (add_type_alias): Ditto.
10871
10872 2005-07-19  Steven Bosscher  <stevenb@suse.de>
10873
10874         * loop-init.c (rest_of_handle_loop2): Remove.
10875         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
10876         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
10877         (pass_rtl_loop_init, pass_rtl_loop_done,
10878         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
10879         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
10880         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
10881         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
10882         pass_tree_loop_done, and pass_tree_unswitch.
10883         (gate_loop): Rename to gate_tree_loop.
10884         * passes.c (init_optimization_passes): Update for renamed tree
10885         loop passes.  Add the new loop2 passes as subpasses of loop2.
10886         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
10887         Update for the renamed tree loop passes.
10888
10889 2005-07-18  Ian Lance Taylor  <ian@airs.com>
10890
10891         PR middle-end/22057
10892         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
10893         blocks when optimizing.
10894
10895 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
10896
10897         * common.opt (frename-registers): Initialize to 2.
10898         (fweb): Ditto.
10899         (fgcse-after-reload): Ditto.
10900         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
10901         (process_options): Only change flag_web, flag_rename_registers,
10902         and flag_rerun_cse_after_loop if not explicitly set by user.
10903
10904 2005-07-18  Jan Beulich  <jbeulich@novell.com>
10905
10906         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
10907         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
10908         in 64-bit mode the same as DImode in 32-bit mode.
10909         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
10910         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
10911         mode. Add new mode parameter.
10912         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
10913         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
10914         x86_64_shift_adj): New expanders.
10915         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
10916         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
10917         insns.
10918         Respective new splitters. Use renamed shift splitter helpers in 32-bit
10919         DImode shift splitters.
10920         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
10921         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
10922         mode parameter.
10923
10924 2005-07-18  Jan Beulich  <jbeulich@novell.com>
10925
10926         * i386.md (movdi_extzv_1): New.
10927         (zero_extendhidi2): Combine alternatives and never force use of
10928         REX64 prefix.
10929         (zero_extendqidi2): Likewise. Don't restrict input selection.
10930
10931 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10932
10933         Fix PR tree-optimization/22531
10934         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
10935          moment.
10936
10937 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10938
10939         * tree-promote-statics.c (pass_promote_statics): Change dump file
10940          name.
10941
10942 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
10943
10944         * tree-optimize.c (init_tree_optimization_passes): Add
10945         pass_eliminate_useless_stores pass.
10946         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
10947         * tree-ssa-pre.c (is_copy_stmt): New function.
10948         (follow_copies_till_vuse): Ditto.
10949         (do_eustores): Ditto.
10950         (gate_eustores): Ditto.
10951
10952 2005-07-16  Richard Henderson  <rth@redhat.com>
10953
10954         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
10955
10956 2005-07-16 Danny Berlin <dberlin@dberlin.org>
10957            Kenneth Zadeck <zadeck@naturalbridge.com>
10958
10959         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
10960         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
10961         ipa-type-escape.h, tree-promote-statics.c
10962         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
10963         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
10964         tree-promote-statics.c: new files.
10965         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
10966         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
10967         int nonlocal_set_p, mark_constant_function): Deleted.
10968         (rest_of_handle_cfg): Removed call to mark_constant_function.
10969         (nonoverlapping_component_refs_p): Added calls to support
10970         type based aliasing.
10971         * tree-ssa-alias.c (may_alias_p,
10972         compute_flow_insensitive_aliasing): Ditto.
10973         * calls.c (flags_from_decl_or_type): Removed reference to
10974         cgraph_rtl_info.
10975         * c-typeck.c (convert_arguments): Make builtins tolerant of having
10976         too many arguments.  This is necessary for Spec 2000.
10977         * cgraph.h (const_function, pure_function): Removed.
10978         * common.opt: Added "fipa-pure-const", "fipa-reference",
10979         "fipa-type-escape", and "ftree-promote-static".
10980         * opts.c: Ditto.
10981         * passes.c: Added ipa and tree-promote-statics passes.
10982         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
10983         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
10984         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
10985         * tree-flow.h: Added exposed sra calls and addition of
10986         reference_vars_info field for FUNCTION_DECLS.
10987         * tree-pass.h: Added passes.
10988         * tree-sra.c: (sra_init_cache): New function.
10989         (sra_insert_before, sra_insert_after) Made public.
10990         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
10991         and made public.
10992         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
10993         aliasing. (may_alias_p): Added code to use type escape analysis to
10994         improve alias sets.
10995         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
10996         code to prune clobbers of static variables based on information
10997         produced in ipa-reference pass.  Changed call clobbering so that
10998         statics are not marked as clobbered if the call does not clobber
10999         them.
11000
11001 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
11002
11003         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
11004         too.
11005
11006 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11007
11008         * doc/install.texi (*-*-solaris2*): Document recommended version
11009         of GNU binutils and mention GNU linker problem on Solaris 10.
11010
11011 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
11012
11013         PR c/22421
11014         * c-decl.c (c_build_bitfield_integer_type): New function.
11015         (finish_struct): Call it.
11016         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
11017
11018 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11019
11020         * c-typeck.c (digest_init): Call 'convert_for_assignment'
11021         before returning.
11022
11023 2005-07-16  Jan Hubicka  <jh@suse.cz>
11024
11025         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
11026         (scale_bbs_frequencies_int): Watch roundoff errors.
11027         * predict.c (return_prediction): Initialize return_stmt.
11028
11029 2005-07-16  Jan Hubicka  <jh@suse.cz>
11030
11031         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
11032         after RTL profiling.
11033
11034 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
11035
11036         PR middle-end/22398
11037         * fold-const.c (build_range_check): Convert high/low to etype
11038         if we are only comparing against exp.
11039
11040 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
11041
11042         Fix PR tree-optimization/22376
11043         * tree-ssa-structalias.c (build_constraint_graph): We really meant
11044         special var here.
11045         (need_to_solve): New function.
11046         (compute_points_to_sets): Use it.
11047
11048 2005-07-15  Jan Hubicka  <jh@suse.cz>
11049
11050         * cfg.c (update_bb_profile_for_threading): More diagnostic.
11051         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
11052
11053 2005-07-15  Richard Guenther  <rguenther@suse.de>
11054
11055         * c-common.c (handle_flatten_attribute): New function.
11056         Add flatten function attribute.
11057         * doc/extend.texi: Document flatten function attribute.
11058         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
11059         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
11060         New functions.
11061         (cgraph_decide_inlining): Handle functions with flatten
11062         attribute.
11063
11064 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
11065
11066         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
11067         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
11068         UNSPEC_XCHG, UNSPEC_AND): New.
11069         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
11070         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
11071         * config/rs6000/sync.md (FETCHOP): New code macro.
11072         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
11073         New code attrs.
11074         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
11075         (sync_compare_and_swap<mode>): Same.
11076         (sync_lock_test_and_set<mode>): Same.
11077         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
11078         for QImode and HImode, and not PPC405.
11079         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
11080         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
11081         (sync_<fetchop>{si,di}_internal): New.
11082         (sync_nand{si,di}_internal): New.
11083         (sync_old_<fetchop>{si,di}_internal): New.
11084         (sync_old_nand{si,di}_internal): New
11085         (sync_new_<fetchop>{si,di}_internal): New.
11086         (sync_new_nand{si,di}_internal): New.
11087         (atomic_and{si,di}): New.
11088         (sync_new_nand{si,di}_internal): New.
11089         (atomic_and{si,di}): New.
11090         (sync_add<mode>_internal): Delete.
11091         (sync_addshort_internal): Use unspec instead of unspec_volatile.
11092         (sync_sub<mode>_internal): Delte.
11093         (sync_subshort_internal): New.
11094         (sync_andsi_internal): Use unspec instead of unspec_volatile.
11095         (sync_anddi_internal): Delete.
11096         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
11097         (sync_booldi_internal): Delete.
11098         (sync_boolc<mode>_internal): Delete.
11099         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
11100         (sync_boolc<mode>_internal2): Delete.
11101         (sync_boolcc<mode>_internal): Delete.
11102         (isync, lwsync): Use unspec instead of unspec_volatile.
11103         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
11104         Revert UNSPEC_VOLATILE.
11105         (rs6000_split_atomic_op): New.
11106         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
11107
11108 2005-07-14  Eric Christopher  <echristo@redhat.com>
11109
11110         * config/mips/mips.c (mips_canonicalize_comparison): Cast
11111         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
11112
11113 2005-07-14  Eric Christopher  <echristo@redhat.com>
11114
11115         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
11116
11117 2005-07-14  Steven Bosscher  <stevenb@suse.de>
11118
11119         PR tree-optimization/22230
11120         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
11121         the computation of the four cross productions for "range op range".
11122
11123 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
11124             Ulrich Weigand  <uweigand@de.ibm.com>
11125
11126         PR target/20126
11127         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
11128         in some insn.
11129
11130 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
11131
11132         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
11133
11134 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
11135
11136         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
11137
11138 2005-07-14  Richard Guenther  <rguenther@suse.de>
11139
11140         PR middle-end/22347
11141         * config/i386/i386-protos.h (ix86_function_value): Change
11142         prototype to match new target hook.
11143         * config/i386/i386.c (ix86_value_regno): Change prototype
11144         to take extra type argument.
11145         (TARGET_FUNCTION_VALUE): Define.
11146         (ix86_function_ok_for_sibcall): Pass extra argument to
11147         ix86_value_regno, check return slot rtx for exact match.
11148         (ix86_function_value): Take extra parameter.  Dispatch to
11149         ix86_value_regno with fndecl/fntype as provided.
11150         (ix86_value_regno): Handle extra type argument.
11151         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
11152
11153         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
11154         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
11155         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
11156         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
11157         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
11158
11159 2005-07-14  Richard Guenther  <rguenther@suse.de>
11160
11161         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
11162         * calls.c (expand_call): Pass fntype to hard_function_value.
11163         (emit_library_call_value_1): Likewise.
11164         * explow.c: Include target.h.
11165         (hard_function_value): Take extra argument, the fntype.
11166         Use new target hook for function_value.
11167         * expr.h (hard_function_value): Change prototype.
11168         * function.c (aggregate_value_p): Pass 0 as fntype to
11169         hard_function_value.
11170         (assign_parms): Use new target hook for function_value.
11171         Pass 0 as fntype to hard_function_value.
11172         (expand_function_end): Likewise.
11173         * reg-stack.c: Include target.h.
11174         (stack_result): Use new target hook for function_value.
11175         * target-def.h: New target hook function_value.
11176         * target.h: Likewise.
11177         * targhooks.c (default_function_value): New function.
11178         * targhooks.h (default_function_value): Declare.
11179
11180 2005-07-13  Ian Lance Taylor  <ian@airs.com>
11181
11182         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
11183
11184 2005-07-14  Jan Hubicka  <jh@suse.cz>
11185
11186         * tree-dfa.c (dump_variable): Use default_def function.
11187         * tree-ssa-alias.c (dump_points_to_info): Likewise.
11188         * tree-ssa.c (verify_use): Likewise.
11189         * tree-ssanames.c (release_ssa_name): Likewise.
11190         * tree-tailcall.c (eliminate_tail_call): Likewise.
11191         (tree_optimize_tail_calls_1): Likewise.
11192         * tree-vrp.c (get_value_range): Likewise.
11193
11194 2005-07-14  Ben Elliston  <bje@au.ibm.com>
11195
11196         * gcc.c (main): Compare language[0] with '*' when iterating over
11197         the infiles.
11198
11199 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11200
11201         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
11202         "s390_emit_compare".  Add handling of CCZ1mode.
11203         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
11204         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
11205         checking.
11206         (s390_branch_condition_mask): Add CCZ1mode handling.
11207         * config/s390/s390.md: ("seq", "*seq"): New pattern.
11208         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
11209         Use CCZ1mode instead of CCZmode.
11210         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
11211
11212 2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
11213
11214         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
11215         pattern.
11216         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
11217
11218 2005-07-13  Eric Christopher  <echristo@redhat.com>
11219
11220         * config/mips/mips.c (mips_canonicalize_comparison): New.
11221         (mips_emit_int_relational): Use.
11222
11223 2005-07-13  Eric Christopher  <echristo@redhat.com>
11224
11225         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11226         static extra parts.
11227         * config/s390/s390.md: Include tpf.md. Move tpf specific
11228         patterns...
11229         * config/s390/tpf.md: To here.
11230         * config/s390/s390.opt: Move tpf specific options...
11231         * config/s390/tpf.opt: to here. Add mmain option.
11232         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11233         * config/s390/tpf.h: Rewrite.
11234
11235 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11236
11237         * doc/tm.texi: Remove @xref{Cross-profiling}.
11238
11239 2005-07-13  Jeff Law  <law@redhat.com>
11240
11241         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
11242         expressions, test their _DECL operands for pointer equality rather
11243         than using operand_equal_p.
11244
11245 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11246
11247         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
11248         (TARGET_POSIX_IO): This.
11249         * config/darwin.h: Likewise.
11250         * config/freebsd.h: Likewise.
11251         * config/linux.h: Likewise.
11252         * config/lynx.h: Likewise.
11253         * config/netbsd.h: Likewise.
11254         * config/rs6000/linux64.h: Likewise.
11255         * config/rs6000/linux.h: Likewise.
11256         * config/s390/tpf.h: Likewise.
11257         * config/sh/embed-elf.h: Likewise.
11258         * config/sparc/linux64.h: Likewise.
11259         * config/sparc/linux.h: Likewise.
11260         * config/svr4.h: Likewise.
11261         * gcov-io.h: Likewise.
11262
11263         * doc/tm.texi: Updated.
11264
11265         * libgcov.c (create_file_directory): Defined only if
11266         TARGET_POSIX_IO is defined.
11267         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
11268         is defined.
11269
11270 2005-07-13  Jan Hubicka  <jh@suse.cz>
11271
11272         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
11273
11274 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
11275
11276         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
11277         structure as argument.
11278
11279 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
11280
11281         PR tree-optimization/21921
11282         * tree-iterator.c (tsi_link_before): Support the case when
11283         tsi_end_p (tsi) == true.
11284
11285 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11286
11287         PR tree-optimization/22442
11288         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
11289         correctly.
11290
11291 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11292
11293         PR rtl-optimization/20376
11294         * toplev.c (process_options): Enable -fweb and -frename-registers when
11295         unrolling.
11296         * doc/invoke.texi: Update the information about when -fweb and
11297         -frename-registers are enabled.
11298
11299 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11300
11301         PR tree-opt/21840
11302         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
11303         if *rhs_p is not a SSA_NAME.
11304
11305 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
11306
11307         Fix PR tree-optimization/22422
11308         * tree-ssa-structalias.c (struct variable_info): Add flag for
11309         special vars.
11310         (get_varinfo): Now a static function.
11311         (new_varinfo): init has_union and is_special_var to false.
11312         (solution_set_add): Check has_union.
11313         (do_da_constraint): Move temporary variable so it gets reset
11314         properly.
11315         Also check for special variable.
11316         (do_ds_constraint): Ditto.
11317         (do_sd_constraint): Ditto.
11318         (do_structure_copy): Check for special variable.
11319         (find_func_aliases): Ditto.
11320         (init_base_vars): Set special vars properly.
11321
11322 2005-07-13  Jan Hubicka  <jh@suse.cz>
11323
11324         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
11325         do unit-at-a-time.
11326
11327         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
11328         (get_expr_operands): Fix thinko wrt flags and subvars.
11329
11330         PR tree-optimize/22379
11331         * tree-inline.c (expand_call_inline): Do not output sorry in early
11332         inlining.
11333
11334 2005-07-12  Dale Johannesen  <dalej@apple.com>
11335
11336         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
11337
11338 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11339
11340         PR bootstrap/21704
11341         * host-linux.h: Include limits.h.
11342
11343 2005-07-12  Dale Johannesen  <dalej@apple.com>
11344
11345         * expr.c (compress_float_constant):  Add cost check.
11346         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
11347
11348 2005-07-12  Dale Johannesen  <dalej@apple.com>
11349
11350         * gcc.target/i386/compress-float-sse.c:  New.
11351         * gcc.target/i386/compress-float-sse-pic.c:  New.
11352         * gcc.target/i386/compress-float-387.c:  New.
11353         * gcc.target/i386/compress-float-387-pic.c:  New.
11354         * gcc.dg/compress-float-ppc.c:  New.
11355         * gcc.dg/compress-float-ppc-pic.c:  New.
11356
11357 2005-07-12  Eric Christopher  <echristo@redhat.com>
11358
11359         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
11360         static extra parts.
11361         * config/s390/s390.md: Include tpf.md. Move tpf specific
11362         patterns...
11363         * config/s390/tpf.md: To here.
11364         * config/s390/s390.opt: Move tpf specific options...
11365         * config/s390/tpf.opt: to here. Add mmain option.
11366         * config/s390/tpf-unwind.h: Remove unnecessary defines.
11367         * config/s390/tpf.h: Rewrite.
11368
11369 2005-07-12  Eric Christopher  <echristo@redhat.com>
11370
11371         * gcc.c (struct infile): Update comment for language.
11372         (main): Rewrite input file resetting code.
11373
11374 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
11375
11376         PR tree-opt/22335
11377         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
11378         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
11379         (lookup_avail_expr): Use constant_boolean_node instead
11380         of boolean_false_node/boolean_true_node.
11381
11382 2005-07-12  Ben Elliston  <bje@au.ibm.com>
11383
11384         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
11385         and use it when printing num_edges.
11386
11387 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
11388
11389         * doc/extend.texi (Blackfin Built-in Functions): New section.
11390         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
11391         @opindex.
11392
11393 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
11394
11395         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
11396         s/cmpstrsi/cmpstrnsi
11397         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
11398         'cmpstrnsi'.
11399         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
11400         (init_optabs): Initialize cmpstrn_optab.
11401         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
11402         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
11403         * expr.c: (enum insn_code cmpstrn_optab): Declare.
11404         * config/i386/i386.md: s/cmpstr/cmpstrn
11405         * config/c4x/c4x.md: s/cmpstr/cmpstrn
11406         * doc/md.texi: Update documentation.
11407
11408 2005-07-11  Richard Henderson  <rth@redhat.com>
11409
11410         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
11411         build_va_arg_indirect_ref.
11412         (alpha_gimplify_va_arg): Likewise.
11413         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11414         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
11415         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
11416         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11417         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
11418         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
11419         Likewise.
11420         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
11421
11422 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
11423
11424         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
11425         * passes.c (init_optimization_passes): Add pass_empty_loop.
11426         * tree-pass.h (pass_empty_loop): Declare.
11427         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
11428         try_remove_empty_loop, remove_empty_loops): New functions.
11429         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
11430         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
11431
11432 2005-07-12  Peter Barada  <peter@the-baradas.com>
11433
11434         PR middle-end/16719
11435         PR middle-end/18421
11436         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
11437         in address registers.
11438         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
11439         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
11440         alternative of addsi3_5200.
11441
11442 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11443
11444         * config/mips/mips.md (ffs<mode>2): Remove.
11445
11446 2005-07-11  Ian Lance Taylor  <ian@airs.com>
11447
11448         * doc/tree-ssa.texi (Cleanups): Improve description of
11449         TRY_FINALLY_EXPR.
11450         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
11451
11452 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11453
11454         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
11455         * tree.h (DECL_ARGUMENT_FLD): New macro.
11456
11457 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
11458
11459         Fix PR tree-optimization/22404
11460
11461         * tree-ssa-structalias.c (create_variable_info_for): Use
11462         correct offset.
11463
11464 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
11465
11466         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
11467         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
11468         for second comparison operand.
11469         * config/bfin/predicates.md (reg_or_const_int_operand): New.
11470
11471         * config/bfin/bfin.md (define_attr "type"): Add "sync".
11472         (define_insn_reservation "alu"): Likewise.
11473         (csync, ssync): Now of type sync.
11474         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
11475         -mcsync-anomaly -mspecld-anomaly.
11476         * config/bfin/bfin.opt (mcsync): Remove.
11477         (mcsync-anomaly, mspecld-anomaly): Add.
11478         * config/bfin/bfin.c: Include "insn-codes.h".
11479         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
11480         (TARGET_DEFAULT_TARGET_FLAGS): New.
11481         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
11482
11483 2005-07-11  Steven Bosscher  <stevenb@suse.de>
11484
11485         * basic-block.h: Give the BB flags enum a name, bb_flags.
11486         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
11487         * cfgcleanup.c (enum bb_flags): Remove here.
11488         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
11489         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
11490         (update_forwarder_flag): Likewise.
11491         (thread_jump): Likewise.
11492         (try_forward_edges): Likewise.
11493         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
11494         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
11495         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
11496
11497 2005-07-11  Richard Guenther  <rguenther@suse.de>
11498
11499         * config/i386/i386.opt: New target option -msseregparm.
11500         * config/i386/i386.c (override_options): Error out for
11501         -msseregparm but no SSE support.
11502         (ix86_function_sseregparm): Check for global sseregparm.
11503         * doc/invoke.texi: Document -msseregparm.
11504
11505 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11506
11507         * config.gcc (m32r-*-linux*): Use the default extra_parts.
11508         (m32rle-*-linux*): Ditto.
11509
11510 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
11511
11512         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
11513         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
11514         bytes.
11515
11516 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11517
11518         PR middle-end/22239
11519         PR target/20126
11520         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
11521         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
11522
11523 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
11524
11525         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
11526         (varmap): Heapify varmap.
11527         (constraints): Heapify constraints.
11528         (struct constraint_graph): Heapify succs and preds.
11529         (constraint_vec_find): Update for heapification.
11530         (constraint_set_union): Ditto.
11531         (insert_into_complex): Ditto.
11532         (constraint_edge_vec_find): Ditto.
11533         (erase_graph_self_edge): Ditto.
11534         (add_graph_edge): Ditto.
11535         (get_graph_weights): Ditto.
11536         (merge_graph_nodes): Ditto.
11537         (build_constraint_graph): Ditto.
11538         (topo_visit): Ditto.
11539         (solve_graph): Ditto.
11540         (create_variable_info_for): Ditto.
11541         (init_base_vars): Ditto.
11542         (delete_points_to_sets): Free graph, varmap, and complex constraints.
11543         (condese_varmap_nodes): Free complex vector.
11544         (clear_edges_for_node): Clear succs and preds vector.
11545
11546 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11547
11548         * tree-ssa-structalias.c (update_alias_info): Change counting of
11549         references to not include vdefs.
11550
11551 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
11552
11553         * tree-ssa-alias.c (free_used_part_map): Add missing free.
11554         (up_insert): Ditto.
11555
11556 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11557
11558         * pa.c (pa_commutative_p): Make PLUS commutative when
11559         TARGET_NO_SPACE_REGS is true.
11560
11561 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11562
11563         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
11564         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
11565         * tree-dfa.c (dump_subvars_for): New.
11566         (debug_subvars_for): New.
11567         (dump_variable): Show subvariables if VAR has them.
11568         * tree-flow-inline.h (get_subvar_at): New.
11569         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
11570         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
11571         Update all users.
11572         (struct subvar): Change fields offset and size to unsigned
11573         HOST_WIDE_INT.
11574         (dump_subvars_for): Declare.
11575         (debug_subvars_for): Declare.
11576         (get_subvar_at): Declare.
11577         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
11578         to unsigned HOST_WIDE_INT *.
11579         (overlap_subvar): Likewise.
11580         * tree-gimple.c (is_gimple_reg): Always return false for
11581         SFTs and memory tags.
11582         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
11583         Update all callers.
11584         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
11585         (compute_may_aliases): Call compute_points_to_sets.
11586         (collect_points_to_info_for): Remove.
11587         (compute_points_to_and_addr_escape): Remove.
11588         (delete_alias_info): Call delete_points_to_sets.
11589         (compute_flow_sensitive_aliasing): If the call to
11590         find_what_p_points_to returns false, call set_pt_anything.
11591         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
11592         (set_pt_anything): Clear pi->pt_vars.
11593         (set_pt_malloc): Remove.
11594         (merge_pointed_to_info): Remove.
11595         (add_pointed_to_expr): Remove.
11596         (add_pointed_to_var): Remove.
11597         (collect_points_to_info_r): Remove.
11598         (is_escape_site): Make extern.
11599         (create_sft): New.
11600         (create_overlap_variables_for): Call it.
11601         * tree-ssa-copy.c (merge_alias_info): Never merge
11602         flow-sensitive alias information.
11603         * tree-ssa-operands.c (get_expr_operands): Adjust variables
11604         offset and size to be unsigned HOST_WIDE_INT.
11605         (add_to_addressable_set): Rename from note_addressable.
11606         Set TREE_ADDRESSABLE as the variables are added to the set.
11607         Update all users.
11608         (add_stmt_operand): Do not try to micro-optimize unmodifiable
11609         operands into VUSEs when adding V_MAY_DEFs for members in an
11610         alias set.
11611         * tree-ssa-operands.h (add_to_addressable_set): Declare.
11612         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
11613         (struct variable_info): Add bitfield is_heap_var.
11614         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
11615         (new_var_info): Initialize is_heap_var.
11616         (get_constraint_for): Add HEAP variables to the symbol table.
11617         Mark them with is_heap_var.
11618         (update_alias_info): New.  Taken mostly from the old
11619         compute_points_to_and_addr_escape.
11620         (handle_ptr_arith): New.
11621         (find_func_aliases): Call update_alias_info.
11622         Call handle_ptr_info for tcc_binary expressions.
11623         Call mark_stmt_modified.
11624         (create_variable_info_for): If DECL has subvars, do not create
11625         variables for its subvars.  Always add all the fields.
11626         (set_uids_in_ptset): If the solution includes ANYOFFSET and
11627         SFTs, then add all the SFTs of the structure.
11628         If VI->DECL is an aggregate with subvariables, add the SFT at
11629         VI->OFFSET.
11630         (find_what_p_points_to): If VI is an artificial variable,
11631         translate to bitfields in SSA_NAME_PTR_INFO.
11632         If the solution is empty, set pi->pt_vars to NULL
11633         (init_base_vars): Create ANYOFFSET.
11634         (compute_points_to_sets): Rename from create_alias_vars.
11635         Make extern.
11636         (pass_build_pta): Remove.
11637         (delete_points_to_sets): Rename from delete_alias_vars.
11638         (pass_del_pta): Remove.
11639         * tree-ssa-structalias.h (struct alias_info): Move from
11640         tree-ssa-alias.h.
11641         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
11642         NUM_REFERENCES_SET): Likewise.
11643         (compute_points_to_sets, delete_points_to_sets): Declare.
11644
11645 2005-07-09  Richard Henderson  <rth@redhat.com>
11646
11647         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
11648         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
11649         alpha_split_lock_test_and_set_12): New functions.
11650         * config/alpha/alpha-protos.h: Update.
11651         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
11652         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
11653         * config/alpha/sync.md (I12MODE): New.
11654         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
11655         (sync_<fetchop_name><I48MODE>): Likewise.
11656         (sync_nand<I48MODE>): Likewise.
11657         (sync_old_<fetchop_name><I48MODE>): Likewise.
11658         (sync_new_<fetchop_name><I48MODE>): Likewise.
11659         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
11660         (sync_compare_and_swap<I48MODE>): Likewise.
11661         (sync_lock_test_and_set<I48MODE>): Likewise.
11662         (sync_compare_and_swap<I12MODE>): New.
11663         (sync_compare_and_swap<I12MODE>_1): New.
11664         (sync_lock_test_and_set<I12MODE>): New.
11665         (sync_lock_test_and_set<I12MODE>_1): New.
11666
11667 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
11668
11669         PR 21356
11670         PR 22332
11671         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
11672
11673 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
11674
11675         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
11676         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
11677
11678 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
11679
11680         PR target/21656
11681         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
11682
11683 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
11684
11685         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
11686         memory_operand constraint.
11687         (store_conditional_<mode>): Same.
11688         (sync_compare_and_swap<mode>): Same.
11689         (sync_lock_test_and_set<mode>): Same.
11690
11691 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
11692
11693         Rewrite PIC support to more closely model actual instructions.
11694         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
11695         (cris_symbol): Remove prototypes for removed functions.
11696         (cris_pic_symbol_type_of, cris_valid_pic_const)
11697         (cris_expand_pic_call_address): Prototypes for new functions.
11698         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
11699         variable.
11700         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
11701         modifiers.
11702         <case ':'>: Add case for new punctuation character.
11703         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
11704         emitting (extra) PIC modifier.
11705         <case UNSPEC>: Do not assert for PLT.
11706         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
11707         (cris_expand_prologue, cris_expand_epilogue): Check
11708         for pic_offset_table_rtx usage instead of taking
11709         current_function_uses_pic_offset_table as the final word.
11710         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
11711         Remove flag_pic difference.
11712         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
11713         the moral equivalents of...
11714         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
11715         functions.
11716         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
11717         (cris_handle_option): Mark ARG as unused.
11718         (cris_expand_pic_call_address): New worker function for "call",
11719         "call_value".
11720         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
11721         output PIC constructs here.
11722         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
11723         as symbol-specific modifers, not whole or part of operands.
11724         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
11725         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
11726         constants and flag_pic.
11727         (CONSTANT_INDEX_P): Adjust for new functions.
11728         (enum cris_pic_symbol_type): New helper type.
11729         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
11730         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
11731         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
11732         define_constants.
11733         ("movsi"): Emit actual instructions for GOT and relative access.
11734         ("*movsi_got_load"): New pattern to set up the register holding
11735         the GOT pointer.
11736         ("*movsi_internal"): Operand 1 is not a plain general_operand.
11737         Adjust FIXME for 'S'.
11738         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
11739         Use "movs" for -fpic cases.
11740         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
11741         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
11742         ("call", "call_value"): Just call cris_expand_pic_call_address for
11743         PIC addresses.
11744         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
11745         Remove special pattern.
11746         ("*expanded_call_side", "*expanded_call_value_side"): New
11747         patterns.
11748         (gotplt-to-plt, gotplt-to-plt-side-call)
11749         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
11750         peephole2:s.
11751         * config/cris/cris/predicates.md
11752         ("cris_general_operand_or_gotless_symbol"): Remove unused
11753         predicate.
11754         ("cris_general_operand_or_symbol"): Adjust for new functions.
11755
11756 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11757
11758         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
11759
11760 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
11761
11762         * Makefile.in (TREE_H): Add treestruct.def.
11763         (c-decl.o): Add pointer-set.h
11764         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
11765         visibility on regular DECL's.
11766         (merge_decls): Fix the copying of decl nodes of various types for
11767         the new structures.  Don't update RTL, section name, weak status,
11768         etc, on DECL's without RTL.
11769         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
11770         Don't check volatile on non-variable types.
11771         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
11772         to check whether we have seen arguments.
11773         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
11774         flag is checked before field (flag is common, field is not).
11775         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
11776         TS_DECL_COMMON could have an origin.
11777         (add_location_or_const_value_attribute): Don't check section name
11778         on non-var/function decls.
11779         (dwarf2out_var_location): Reverse order of tests.
11780         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
11781         with DECL_WRTL_CHECK.
11782         * expmed.c (make_tree): rtl is now in decl_with_rtl.
11783         * fold-const.c (fold_binary): Don't check weakness on
11784         non-var/function decls.
11785         (tree_expr_nonzero_p): Ditto.
11786         (fold_checksum_tree): Use tree_decl_extra as sizeof
11787         buffer.
11788         * ggc-page.c (extra_order_size_table): Add sizes for
11789         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
11790         tree_field_decl.
11791         * gimplify.c (gimplify_bind_expr): Only set
11792         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
11793         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
11794         without RTL.
11795         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
11796         * langhooks.h (init_ts). New langhook.
11797         * passes.c (rest_of_decl_compilation): Reverse order of tests.
11798         * print-tree.c (print_node): Update to only print fields that
11799         exist in the structures the passed decl has.
11800         * toplev.c (wrapup_global_declarations): Don't reset
11801         DECL_DEFER_OUTPUT on DECL's that don't contain it.
11802         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
11803         * tree-inline.c (remap_decl): Ditto.
11804         * tree-outof-ssa.c (create_temp): Reverse order of tests.
11805         * tree-pretty-print.c (print_declaration): Don't print
11806         DECL_REGISTER on things that don't contain it.
11807         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
11808         non-var/function decls.
11809         * tree.c (tree_contains_struct): New structure.
11810         (init_priority_for_decl): New hashtable.
11811         (tree_int_map): New structure.
11812         (tree_int_map_eq): New function.
11813         (tree_int_map_marked_p): Ditto.
11814         (tree_int_map_hash): Ditto.
11815         (tree_map): Move to tree.h.
11816         (tree_map_eq): Externalize.
11817         (tree_map_hash): Ditto.
11818         (tree_map_marked_p): Ditto.
11819         (init_ttree): Set up tree_contains_struct and call langhook.
11820         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
11821         (tree_code_size): Update for new structures.
11822         (tree_node_structure): Update for new structures.
11823         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
11824         without the field.
11825         (copy_node_stat):  Copy init priority.
11826         (build_decl_stat): Ditto for visibility.
11827         (ts_enum_names): New.
11828         (tree_contains_struct_check_failed): New function.
11829         (decl_init_priority_lookup): Ditto.
11830         (decl_init_priority_insert): Ditto.
11831         * treestruct.def: New file.
11832         * tree.h (CODE_CONTAINS_STRUCT): New macro.
11833         (CONTAINS_STRUCT_CHECK): Ditto.
11834         (tree_contains_struct_check_failed): New prototype.
11835         (DECL_CHECK): Removed.
11836         (DECL_MINIMAL_CHECK): New.
11837         (DECL_COMMON_CHECK): Ditto.
11838         (DECL_WRTL_CHECK): Ditto.
11839         (DECL_NON_COMMON_CHECK): Ditto.
11840         (DECL_WITH_VIS_CHECK): Ditto.
11841         (VAR_OR_FUNCTION_DECL_P): Ditto
11842         (struct tree_decl_minimal): New structure.
11843         (struct tree_decl_common): Ditto.
11844         (struct tree_decl_with_rtl): Ditto.
11845         (struct tree_decl_with_vis): Ditto.
11846         (struct tree_decl_non_common): Ditto.
11847         (struct tree_field_decl): Ditto.
11848         (struct tree_parm_decl): Ditto.
11849         (struct tree_var_decl): Ditto.
11850         (struct tree_function_decl): Ditto.
11851         (struct tree_const_decl): Ditto.
11852         (struct tree_result_decl): Ditto.
11853         (union tree_node): Add new structures.
11854         * var-tracking.c (track_expr_p): Reverse order of tests.
11855
11856         * doc/c-tree.texi: Add documentation on DECL node internal structure.
11857
11858 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
11859
11860         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
11861         * system.h: Poison FINALIZE_PIC.
11862         * doc/tm.texi (FINALIZE_PIC): Remove.
11863
11864 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11865
11866         PR tree-opt/22329
11867         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
11868         to the correct type if we have a MODIFY_EXPR.
11869
11870 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
11871
11872         PR tree-optimization/22360
11873         * tree.c (upper_bound_in_type): Fix calculations for casting
11874         to a non-wider signed type and casting a signed value to a
11875         wider unsigned type.
11876         (lower_bound_in_type): Fix calculations for casting to a
11877         non-wider signed type.
11878
11879         PR tree-optimization/20139
11880         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
11881         release_defs.
11882         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
11883         fold_cond_expr_cond.
11884         * tree-ssanames.c (release_defs): Assert in_ssa_p.
11885         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
11886
11887 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
11888
11889         PR tree-opt/22356
11890         * tree-complex.c (expand_complex_libcall): Produce
11891         REALPART_EXPR/IMAGPART_EXPR with the correct type.
11892
11893 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
11894
11895         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
11896         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
11897         b" assert and inserted fastpath code for this case.
11898         (bitmap_ior): Removed "a != b" assert.
11899
11900 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
11901
11902         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
11903         (ENDFILE_SPEC): Likewise.
11904         * config/m32r/m32r.h (ASM_SPEC): Likewise.
11905
11906         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
11907         a large stack frame at epilogue.
11908
11909 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
11910
11911         * final.c: Include sdbout.h when required.
11912
11913 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
11914
11915         * config.gcc (*-*-darwin*): Only one target-specific header file
11916         for generic darwin.
11917         (powerpc-*-darwin*): Add version-specific header files.
11918         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
11919         * config.in: Regenerate.
11920         * configure: Regenerate.
11921         * gcc.c: Include xregex.h.
11922         (version_compare_spec_function): New.
11923         (spec_function): Add version-compare.
11924         (replace_outfile_spec_function): Reformat comment.
11925         (compare_version_strings): New.
11926         * config/darwin-c.c (version_as_macro): New.
11927         (builtin_define): New.
11928         (darwin_cpp_builtins): New.
11929         * config/darwin-protos.h (darwin_cpp_builtins): New.
11930         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
11931         (LIB_SPEC): Make unconditional, update comment.
11932         (TARGET_C99_FUNCTIONS): Define.
11933         * config/darwin.opt: Sort.
11934         (mmacosx-version-min=): New.
11935         * config/darwin7.h: Delete.
11936         * config/darwin8.h: Delete.
11937         * config/i386/darwin.h (): Call darwin_cpp_builtins.
11938         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
11939         (TARGET_C99_FUNCTIONS): Define.
11940         * config/rs6000/darwin7.h: New.
11941         * config/rs6000/darwin8.h: New.
11942         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
11943         (-mmacosx-version-min): Document.
11944
11945 2005-07-07  Ian Lance Taylor  <ian@airs.com>
11946
11947         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
11948
11949 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
11950
11951         PR middle-end/22239
11952         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
11953
11954 2005-07-07  Khem Raj  <kraj@mvista.com>
11955
11956         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
11957         in bytes, not words.
11958
11959 2005-07-07  Paul Brook  <paul@codesourcery.com>
11960
11961         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
11962         DEFAULT_FUNCTION_ARG_PADDING to upward.
11963
11964 2005-07-07  Richard Henderson  <rth@redhat.com>
11965
11966         * function.c (locate_and_pad_parm): Record parameter alignment in
11967         stack_alignment_needed.
11968
11969 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
11970
11971         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
11972         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
11973         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
11974         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
11975         (define_attr "type"): Add isync, sync, load_l, store_c.
11976         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
11977         Create scratch volatile MEM.
11978         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
11979         sync.
11980         (load_locked_<mode>): New.
11981         (store_conditional_<mode>): New.
11982         (sync_compare_and_swap<mode>): Replace with splitter.
11983         (sync_lock_test_and_set<mode>): Replace with splitter.
11984         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
11985         and UNSPECV_ISYNC.
11986         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
11987         is ics.  Attribute isync.
11988         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
11989         lwsync.
11990         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
11991         and UNSPECV_SYNC_OP.
11992         (emit_unlikely_jump): New.
11993         (emit_load_locked): New.
11994         (emit_store_conditional): New.
11995         (rs6000_split_compare_and_swap): New.
11996         (rs6000_split_lock_test_and_set): New.
11997         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
11998         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
11999         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
12000         rs6000_split_lock_test_and_set): Declare.
12001         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
12002         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
12003         store_c, isync, sync.
12004
12005 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
12006
12007         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
12008         filenames to gtyp-gen.h.
12009         (s-typ-gen): Use it in place of for loops.
12010
12011 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
12012
12013         * hooks.c (hook_bool_rtx_int_false): New function.
12014         * hooks.h (hook_bool_rtx_int_false): Declare.
12015         * target-def.h (TARGET_COMMUTATIVE_P): Define.
12016         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
12017         * target.h (struct gcc_target): Add commutative_p member.
12018         * targhooks.c (hook_bool_rtx_commutative_p): New function.
12019         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
12020         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
12021         (pa_commutative_p): New function.
12022         * jump.c (target.h): Include.
12023         (rtx_renumbered_equal_p): Use targetm.commutative_p.
12024         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
12025
12026 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12027
12028         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
12029         (s390_expand_setmem): New.
12030         * config/s390/s390.c: Likewise.
12031         (print_shift_count_operand): Truncate to 12 bits instead of 6.
12032         Adapt comments.
12033         * config/s390/s390.md: ("setmem<mode>"): Accept character as
12034         general_operand.  Call new function "s390_expand_setmem".
12035         ("clrmem_long", "*clrmem_long"): Rewrite to ...
12036         ("setmem_long", "*setmem_long"): ... this.
12037
12038 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12039
12040         * config/s390/s390.c: (optimization_options): Enable
12041         TARGET_MVCLE at -Os.
12042         * doc/invoke.texi: Document changes in default behaviour.
12043         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
12044
12045 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
12046
12047         * expr.c: (set_storage_via_setmem): Convert opchar to mode
12048         defined by back-end.
12049
12050 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
12051
12052         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
12053         all sets in the pattern.
12054         * config/rs6000/rs6000.md (stack_protect_testsi,
12055         stack_protect_testdi): Likewise.
12056
12057 2005-07-06  Jeff Law  <law@redhat.com>
12058
12059         * tree-vrp.c (simplify_using_ranges): Kill.
12060         (vrp_finalize): Remove call to simplify_using_ranges.
12061         (simplify_stmt_using_ranges): New function extracted from
12062         simplify_using_ranges.
12063         (simplify_div_or_mod_using_ranges): Likewise.
12064         (simplify_abs_using_ranges): Likewise.
12065         (simplify_cond_using_ranges): New function.
12066         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
12067         * tree-ssa-propagate.c (substitute_and_fold): Call
12068         simplify_stmt_using_ranges if we have range information.
12069
12070 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
12071
12072         * config/ia64/ia64.c (ia64_reorg): Check optimize before
12073         ia64_flag_schedule_isns2.
12074
12075         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
12076         reading/writing general registers.
12077         (ia64_function_arg): Revert 2005-06-18 change.
12078
12079 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
12080
12081         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
12082         (legitimize_tls_address): Use gcc_unreachable instead of abort.
12083
12084 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
12085
12086         * function.c (expand_function_end): Revert part of 2005-06-27
12087         patch.  Do sjlj_emit_function_exit_after after return_label.
12088
12089 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12090
12091         * doc/install.texi (--disable-libssp): New.
12092
12093 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
12094
12095         * doc/invoke.texi: Update -fforce-mem documentation.
12096         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
12097         code for -fforce-mem.
12098         * expmed.c: (store_bit_field,store_fixed_bit_field,
12099         extract_bit_field): Ditto.
12100         * expr.c: (convert_move): Ditto.
12101         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
12102         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
12103         emit_conditional_add,expand_float,expand_fix): Ditto.
12104         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
12105         (common_handle_option): Issue warning when -fforce-mem specified.
12106
12107 2005-07-06  Paul Brook  <paul@codesourcery.com>
12108
12109         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
12110         argument is empty.
12111         * configure: Regenerate.
12112
12113 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
12114
12115         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
12116
12117 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
12118
12119         Fix PR tree-optimization/22319
12120         Fix PR tree-optimization/22140
12121         Fix PR tree-optimization/22310
12122
12123         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
12124         variable sized types.
12125         Use correct type for intermediate structure on *a = *b structure
12126         copies.
12127
12128 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12129
12130         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
12131         Remove.
12132         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
12133         (machine_function): Move typedef to...
12134         * config/rs6000/rs6000.c (machine_function): ... here.  Add
12135         varargs_save_offset field.
12136         (rs6000_stack_t): Remove varargs_size field.
12137         (setup_incoming_varargs): Allocate varargs save area using
12138         assign_stack_local, try to make it as small as possible.
12139         Save offset from virtual_stack_vars_rtx to the save area
12140         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
12141         instead of magic 8 when fp word byte size is used.
12142         (rs6000_va_start): Use cfun->machine->varargs_save_offset
12143         instead of -RS6000_VARARGS_SIZE.
12144         (rs6000_stack_info, debug_stack_info,
12145         rs6000_initial_elimination_offset): Remove all traces of
12146         varargs_size.
12147         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
12148         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
12149         RS6000_VARARGS_AREA.
12150
12151 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
12152
12153         PR tree-optimization/21963
12154         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
12155         constant_multiple_of in the same way get_computation_cost_at does.
12156
12157 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
12158
12159         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
12160         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
12161         (gen_compare_reg): If sparc_compare_emitted is set, clear it
12162         and return its previous value.
12163         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
12164         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
12165         constants.
12166         (stack_protect_set, stack_protect_test): New expanders.
12167         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
12168         stack_protect_testdi): New insns.
12169         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12170         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
12171
12172 2005-07-06  Jeff Law  <law@redhat.com>
12173
12174         * tree-ssa-dce.c (cfg_altered): New global.
12175         (tree_dce_init): Initialize cfg_altered.
12176         (remove_dead_stmt): If we remove an edge in the CFG, then set
12177         CFG_ALTERED.
12178         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
12179         the dominators.
12180
12181 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
12182
12183         * Makefile.in (stamp-collect-ld): Use
12184         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
12185         ./collect-ld if it already exists.
12186         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
12187         Don't remove ./nm if it already exists.
12188
12189 2005-07-05  Devang Patel  <dpatel@apple.com>
12190
12191         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
12192         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
12193         * tree-vectorizer.c (vect_loop_location): New.
12194         (vect_print_dump_info): Use vect_loop_location.
12195         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
12196         (vectorize_loops): Set vect_loop_location.
12197         * tree-vect-analyze.c (vect_analyze_offset_expr,
12198         vect_determin_vectorization_factor, vect_analyze_operations,
12199         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
12200         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
12201         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
12202         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
12203         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
12204         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
12205         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
12206         vect_analyze_loop): Adjust vect_print_dump_info API.
12207         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
12208         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
12209         vect_finish_stmt_generation, vectorizable_assignment,
12210         vectorizable_operation, vectorizable_store, vectorizable_load,
12211         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
12212         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
12213         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
12214         vect_transform_loop): Same.
12215         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
12216         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
12217         Same.
12218
12219 2005-07-05  Randolph Chung  <tausq@debian.org>
12220
12221         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
12222         * configure: Regenerate.
12223         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
12224         (pa_tls_referenced_p): Declare.
12225         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
12226         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
12227         (legitimize_tls_address): New.
12228         (hppa_legitimize_address): Handle TLS addresses.
12229         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
12230         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12231         (emit_move_sequence): Handle TLS addresses.
12232         (pa_encode_section_info): Call default handler to handle common
12233         sections.
12234         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
12235         (CONSTANT_ADDRESS_P): Reject TLS operands.
12236         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
12237         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
12238         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
12239         (UNSPEC_TLSLE): Define new constants.
12240         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
12241         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
12242         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
12243         (tie_symbolic_operand, tle_symbolic_operand): New
12244
12245 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
12246
12247         * aclocal.m4: Update macros for autoconf 2.59 style.
12248         * configure.ac: Likewise.
12249
12250 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12251
12252         * pa.c (function_value): Handle small aggregates on 32-bit targets.
12253         (function_arg): Pass small aggregates in general registers on 32-bit
12254         targets.
12255         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
12256
12257 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
12258
12259         * Makefile.in (final.o): Fix dependencies.
12260
12261 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12262
12263         PR c/22013
12264         PR c/22098
12265         * langhooks.h (struct lang_hooks): Add expr_to_decl.
12266         * langhooks.c (lhd_expr_to_decl): New.
12267         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
12268         New.
12269         (LANG_HOOKS_INITIALIZER): Update.
12270         * tree.c (recompute_tree_invarant_for_addr_expr): Call
12271         expr_to_decl langhook.
12272         * c-tree.h (c_expr_to_decl): Declare.
12273         * c-typeck.c (c_expr_to_decl): New.
12274         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
12275         specially.
12276         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
12277
12278 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
12279
12280         PR c/22308
12281         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
12282         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
12283
12284 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
12285
12286         * Makefile.in: Adjust dependencies.
12287         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
12288         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
12289         * alias.c (rest_of_handle_cfg, pass_cfg): New.
12290         * bb-reorder.c (duplicate_computed_gotos): Make it static.
12291         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
12292         rest_of_compilation.
12293
12294         * bb-reorder.c (gate_duplicate_computed_gotos,
12295         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
12296         rest_of_handle_reorder_blocks, pass_reorder_blocks,
12297         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
12298         pass_partition_blocks): New.
12299         * bt-load.c (gate_handle_branch_target_load_optimize,
12300         rest_of_handle_branch_target_load_optimize,
12301         pass_branch_target_load_optimize): New.
12302         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
12303         pass_jump2): New.
12304         * cfglayout.c (pass_insn_locators_initialize): New.
12305         * cfgrtl.c (pass_free_cfg): New.
12306         * combine.c (gate_handle_combine, rest_of_handle_combine,
12307         pass_combine): New.
12308         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
12309         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
12310         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
12311         * except.c (pass_set_nothrow_function_flags,
12312         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
12313         pass_rtl_eh): New.
12314         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
12315         rest_of_handle_shorten_branches, pass_shorten_branches,
12316         rest_of_clean_state, pass_clean_state): New.
12317         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
12318         rest_of_handle_remove_death_notes, pass_remove_death_notes,
12319         rest_of_handle_life, pass_life, rest_of_handle_flow2,
12320         pass_flow2): New.
12321         * function.c (pass_instantiate_virtual_regs, pass_init_function,
12322         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
12323         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
12324         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
12325         pass_gcse): New.
12326         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
12327         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
12328         pass_rtl_ifcvt, gate_handle_if_after_combine,
12329         rest_of_handle_if_after_combine, pass_if_after_combine,
12330         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
12331         pass_if_after_reload): New.
12332         * integrate.c (pass_initial_value_sets): New.
12333         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
12334         pass_purge_lineno_notes): New.
12335         * mode-switching.c (rest_of_handle_mode_switching,
12336         pass_mode_switching): New.
12337         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
12338         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
12339         pass_loop2): New.
12340         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
12341         pass_loop_optimize): New.
12342         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
12343         pass_sms): New.
12344         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
12345         pass_gcse2): New.
12346         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
12347         pass_postreload_cse): New.
12348         * profile.c (gate_handle_profiling, pass_profiling,
12349         rest_of_handle_branch_prob, pass_branch_prob): New.
12350         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
12351         pass_split_before_regstack, gate_handle_split_before_regstack,
12352         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
12353         rest_of_handle_split_all_insns, pass_split_all_insns): New.
12354         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
12355         pass_stack_regs): New.
12356         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
12357         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
12358         pass_stack_adjustments): New.
12359         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
12360         pass_regrename): New.
12361         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
12362         pass_delay_slots, gate_handle_machine_reorg,
12363         rest_of_handle_machine_reorg, pass_machine_reorg): New.
12364         * rtl.h (extern void purge_line_number_notes): New.
12365         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
12366         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
12367         pass_sched2): New.
12368         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
12369         pass_tracer): New.
12370         * value-prof.c (gate_handle_value_profile_transformations,
12371         rest_of_handle_value_profile_transformations,
12372         pass_value_profile_transformations): New.
12373         * var-tracking.c (gate_handle_var_tracking,
12374         pass_variable_tracking): New.
12375         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
12376
12377         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
12378         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
12379         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
12380         rest_of_handle_old_regalloc, rest_of_handle_regrename,
12381         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
12382         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
12383         rest_of_handle_gcse2, rest_of_handle_regmove,
12384         rest_of_handle_tracer, rest_of_handle_if_conversion,
12385         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
12386         rest_of_handle_web, rest_of_handle_branch_prob,
12387         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
12388         rest_of_handle_jump_bypass, rest_of_handle_combine,
12389         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
12390         rest_of_handle_gcse, rest_of_handle_loop_optimize,
12391         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
12392         rest_of_handle_mode_switching, rest_of_handle_jump,
12393         rest_of_handle_eh, rest_of_handle_stack_adjustments,
12394         rest_of_handle_flow2, rest_of_handle_jump2,
12395         rest_of_handle_peephole2, rest_of_handle_postreload,
12396         rest_of_handle_shorten_branches, rest_of_clean_state,
12397         rest_of_compilation): Remove.
12398
12399         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
12400         * passes.c (dump_flags, in_gimple_form, all_passes,
12401         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12402         register_dump_files, next_pass_1, last_verified, execute_todo,
12403         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
12404         from tree-optimize.c.
12405         (init_optimization_passes): Moved from tree-optimize.c,
12406         adding the RTL optimizations.
12407         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
12408         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
12409         all_ipa_passes, all_lowering_passes, register_one_dump_file,
12410         register_dump_files, next_pass_1, last_verified, execute_todo,
12411         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
12412         init_tree_optimization_passes, ipa_passes): Delete.
12413         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
12414         the RTL dumps.
12415         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
12416         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
12417         from tree.h.
12418         (ipa_passes): Remove.
12419         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
12420         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
12421         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
12422         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
12423         (dump_info_p, dump_flag): Moved to tree-dump.h.
12424
12425         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
12426         cgraph.c, opts.c.
12427         * passes.c (finish_optimization_passes): Use dump_begin
12428         and dump_end, TDI_end.
12429         (gate_rest_of_compilation): New.
12430         (pass_rest_of_compilation): Use it.
12431         (gate_postreload, pass_postreload): New.
12432         * toplev.c (general_init): Rename init_tree_optimization_passes.
12433         * toplev.h (init_tree_optimization_passes): Rename to
12434         init_optimizations_passes.
12435         * tree-dump.c (dump_flag): Make static.
12436         (dump_files): Remove RTL dumps.
12437         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
12438         pass_cleanup_cfg, pass_free_cfg_annotations,
12439         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
12440         pass_init_datastructures, pass_fixup_cfg): Make non-static.
12441         * tree-pretty-print.c: Include tree-pass.h.
12442         * cgraph.c: Include tree-dump.h.
12443
12444 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12445
12446         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
12447         Only fall back to saying it points to readonly memory if
12448         we can't do better.
12449
12450 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12451
12452         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
12453         * config/m32r/m32r.c (m32r_compute_frame_size,
12454         m32r_expand_prologue): Take current_function_profile into
12455         account whenever we reference
12456         current_function_uses_pic_offset_table.
12457         (m32r_finalize_pic): Remove.
12458         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
12459
12460 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
12461
12462         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
12463         instead of $<.  Don't remove ./as if it already exists.
12464
12465 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12466
12467         PR target/21723
12468         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
12469         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
12470         for complex modes when generating code for PA 1.0.
12471         (VALID_FP_MODE_P): New macro.
12472         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12473         sets for all general and floating point modes.  Align wide floating
12474         point modes to even register boundaries to comply with architectural
12475         requirements.
12476         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
12477         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
12478         (VALID_FP_MODE_P): New macro.
12479         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
12480         sets for all general and floating point modes.  Align wide floating
12481         point modes to even register boundaries to comply with architectural
12482         requirements.
12483
12484 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12485
12486         * tree-dump.c (dump_files): Initialize dump number for .cgraph
12487         to 0.
12488
12489 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12490
12491         * tree-ssa-structalias.c: Don't include expr.h.
12492
12493 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
12494
12495         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
12496         comments.
12497
12498 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
12499
12500         Fix PR tree-optimization/22279
12501
12502         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
12503         correct operator.
12504
12505 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
12506
12507         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
12508
12509 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12510
12511         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
12512         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
12513         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
12514         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
12515         config/stormy16/stormy16.c, config/v850/v850.c,
12516         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
12517         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
12518         Avoid "." or "\n" at end of diagnostics and capital letters at
12519         start of diagnostics.
12520         * combine.c, cse.c: Don't translate dump file output.
12521         * toplev.c (print_version): Only translate output if going to
12522         stderr.
12523
12524 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12525
12526         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
12527         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
12528         typos.
12529
12530 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12531
12532         * pa.c (fix_range): Fix typo in comment.
12533
12534 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
12535
12536         * tree-vrp.c (extract_range_from_assert): Replace
12537         fold (build (...)) with fold_build2.
12538
12539 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12540
12541         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
12542         gcc_gfc_char_table, init_dynamic_gfc_info): New.
12543         (format_types_orig, handle_format_attribute): Add support for
12544         format "gcc_gfc".
12545
12546 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12547
12548         * varasm.c (assemble_variable): Fix format specifier thinko.
12549
12550 2005-07-03  Ira Rosen  <irar@il.ibm.com>
12551
12552         PR tree-optimization/22029 (and 22135)
12553         * tree-pretty-print.c (dump_generic_node): Check that the node is not
12554         a phi node before calling dump_vops.
12555
12556 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12557
12558         * tree-dump.h (dump_string_field): Declare.
12559         * tree-dump.c: Use it instead of dump_string.
12560         (dump_string_field): Make non-static.
12561
12562 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
12563
12564         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
12565         up the minimal CFG stuff always when optimize > 0.  Call
12566         split_all_insns_noflow in PIC case if needed.
12567
12568 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12569             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
12570
12571         PR c++/18279
12572         * c-decl.c (c_write_global_declarations): Dump contents of
12573         external scope to.
12574         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
12575         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
12576         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
12577         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
12578         is enabled.
12579
12580 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
12581
12582         * c-common.h (GCC_DIAG_STYLE): Define.
12583         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
12584         version for format checking to 4.1.
12585         * c-format.c: Include toplev.h after c-common.h.
12586         (enum format_type): Add gcc_tdiag_format_type.
12587         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
12588         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
12589         (format_types_orig): Add gcc_tdiag.
12590         (init_dynamic_diag_info): Support gcc_tdiag formats.
12591         (handle_format_attribute): Likewise.
12592         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
12593         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
12594         version for format checking to 4.1.
12595         (warning0, warning, error, pedwarn, sorry): Use
12596         ATTRIBUTE_GCC_DIAG.
12597         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
12598         (finish_aliases_1): Do not use %qE.
12599         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
12600         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
12601         Correct format bugs.
12602         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
12603         parameter to unsigned HOST_WIDE_INT.
12604         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
12605
12606 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
12607
12608         PR middle-end/21742
12609         * expr.c (write_complex_part): Use adjust_address for MEM.
12610         (read_complex_part): Same.
12611
12612 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
12613
12614         Fix PR tree-optimization/22280
12615
12616         * tree-sra.c (generate_element_init): Remove useless loop.
12617
12618 2005-07-02  Richard Henderson  <rth@redhat.com>
12619
12620         * config/alpha/alpha.c (alpha_legitimize_address): Check for
12621         TLS_MODEL_NONE.
12622         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
12623
12624 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
12625
12626         PR middle-end/14490
12627         * fold-const.c (fold_binary): Handle the return value of
12628         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
12629         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
12630
12631 2005-07-02  Jeff Law  <law@redhat.com>
12632
12633         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
12634         a eliminate type conversion which feeds an equality comparison
12635         if the original type or either operand in the comparison is a
12636         function pointer.
12637
12638 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
12639
12640         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
12641         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
12642         texts.
12643         * config/avr/avr.c: Do not use '`' as left quote.
12644         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
12645         Remove "." from end of diagnostics.  Make diagnostics start with
12646         lowercase letter.
12647
12648 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
12649             Joseph S. Myers  <joseph@codesourcery.com>
12650
12651         * toplev.c (default_tree_printer): Handle setting location with
12652         '+' flag.
12653         * c-objc.common.c (c_tree_printer): Likewise.
12654         * c-format.c (gcc_diag_flag_specs): Add '+'.
12655         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
12656         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
12657         formats.
12658         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
12659         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
12660         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
12661         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
12662         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
12663         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
12664         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
12665         format arguments where %J is used without %D.
12666
12667 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
12668
12669         * gcc.c (LINK_SSP_SPEC): Define.
12670         (link_ssp_spec): New variable.
12671         (LINK_COMMAND_SPEC): Add %(link_ssp).
12672         (static_specs): Add link_ssp_spec.
12673         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
12674         * configure: Rebuilt.
12675         * config.in: Rebuilt.
12676
12677         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
12678         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12679         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12680         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
12681         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
12682         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
12683         -0x7008(2) instead of reading __stack_chk_guard variable.
12684         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
12685         number.
12686         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
12687         (stack_protect_set, stack_protect_test): Use *_tls* patterns
12688         if TARGET_THREAD_SSP_OFFSET is defined.
12689         (stack_tls_protect_set_si, stack_tls_protect_set_di,
12690         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
12691
12692         Revert:
12693         2005-06-27  Richard Henderson  <rth@redhat.com>
12694         * libgcc-std.ver (GCC_4.1.0): New.
12695         * libgcc.h (__stack_chk_guard): Declare.
12696         (__stack_chk_fail, __stack_chk_fail_local): Declare.
12697         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
12698         * mklibgcc.in (lib2funcs): Add them.
12699
12700 2005-07-01  Richard Henderson  <rth@redhat.com>
12701
12702         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
12703         void * before struct sigcontext *.
12704         (x86_fallback_frame_state): Likewise.
12705
12706 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
12707
12708         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
12709
12710 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
12711
12712         PR tree-opt/22269
12713         * tree-ssa-reassoc.c (should_transpose): Fix which operand
12714         we check for SSA_NAME for.
12715
12716 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
12717
12718         Fix PR tree-optimization/22071
12719
12720         * tree-ssa-structalias.c (offset_overlaps_with_access): New
12721         function.
12722         (get_constraint_for_component_ref): Use it.
12723
12724 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
12725
12726         PR other/22264
12727         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
12728         print out the last new line.
12729
12730 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
12731
12732         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
12733         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
12734         * config/cris/cris.c (cris_conditional_register_usage): Adjust
12735         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
12736         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
12737         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
12738         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
12739         (enum reg_class): New member CC0_REGS.
12740         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
12741         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
12742         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
12743         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
12744         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
12745         Adjust for register now described.
12746
12747 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
12748
12749         PR target/22262
12750         * config/i386/i386.md (stack_protect_test_si,
12751         stack_protect_test_di): Add earlyclobber for scratch 3.
12752         * config/rs6000/rs6000.md (stack_protect_testsi,
12753         stack_protect_testdi): Add earlyclobber for scratch 3,
12754         remove earlyclobber from scratch 4.
12755
12756 Older entries for 2005 can be found in ChangeLog-2005.